IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 財團法人工業技術研究院の特許一覧

特許7365999ニューラルネットワーク演算装置および方法
<>
  • 特許-ニューラルネットワーク演算装置および方法 図1
  • 特許-ニューラルネットワーク演算装置および方法 図2
  • 特許-ニューラルネットワーク演算装置および方法 図3
  • 特許-ニューラルネットワーク演算装置および方法 図4
  • 特許-ニューラルネットワーク演算装置および方法 図5
  • 特許-ニューラルネットワーク演算装置および方法 図6
  • 特許-ニューラルネットワーク演算装置および方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-12
(45)【発行日】2023-10-20
(54)【発明の名称】ニューラルネットワーク演算装置および方法
(51)【国際特許分類】
   G06G 7/60 20060101AFI20231013BHJP
   G06N 3/063 20230101ALI20231013BHJP
   G06N 3/08 20230101ALI20231013BHJP
【FI】
G06G7/60
G06N3/063
G06N3/08
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2020214202
(22)【出願日】2020-12-23
(65)【公開番号】P2021103521
(43)【公開日】2021-07-15
【審査請求日】2021-02-08
(31)【優先権主張番号】62/953,207
(32)【優先日】2019-12-24
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
【住所又は居所原語表記】No.195,Sec.4,ChungHsingRd.,Chutung,Hsinchu,Taiwan 31040
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(72)【発明者】
【氏名】李 思翰
(72)【発明者】
【氏名】張 世杰
(72)【発明者】
【氏名】許 世玄
(72)【発明者】
【氏名】蘇 建維
(72)【発明者】
【氏名】蔡 富程
【審査官】征矢 崇
(56)【参考文献】
【文献】国際公開第2018/208939(WO,A1)
【文献】国際公開第2018/135516(WO,A1)
【文献】特開2018-026040(JP,A)
【文献】特開2015-215837(JP,A)
【文献】特開2001-196920(JP,A)
【文献】特開2018-133016(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06G7/60
G06N3/063;3/08-3/0985
(57)【特許請求の範囲】
【請求項1】
固定された特徴パターン(pattern)に対するニューラルネットワーク演算を実行するトレーニングされたニューラルネットワークの第1の演算層集合を含む第1ニューラル回路と、
固定されていない特徴パターンに対するニューラルネットワーク演算を実行する前記トレーニングされたニューラルネットワークの第2の演算層集合を含む第2ニューラル回路と、
を含み、
前記第1ニューラル回路の性能が、前記第2ニューラル回路よりも大きく、
固定された前記特徴パターンが、認識対象物体に特定されない点、線、円、または多角形を含み、前記第1ニューラル回路が、ワンタイムプログラミング(One-time programming, OTP)メモリであり、前記第2ニューラル回路が、マルチタイムプログラミング(Multi-time programming, MTP)メモリであり、前記ワンタイムプログラミングメモリが、読み出し専用メモリ(Read only memory, ROM)または電子ヒューズ(Efuse)メモリであり、
前記トレーニングされたニューラルネットワークのトレーニング過程の間に、
ニューラルネットワークを構築し、
トレーニングデータをトレーニングのために前記ニューラルネットワークに送信して、前記トレーニングされたニューラルネットワークを取得し、前記トレーニングされたニューラルネットワークにおいて前記第1の演算層集合と前記第2の演算層集合とを分け、
新しいトレーニングデータを受信することに応答して、新しいニューラルネットワークを生成する再トレーニングのために、前記新しいトレーニングデータを以前のトレーニングにより取得された前記トレーニングされたニューラルネットワークに送信し、
前記トレーニングされたニューラルネットワークを再トレーニングする過程において、前記第1の演算層集合の構造および重み値の更新は行われず、前記第2の演算層集合の構造および重み値の少なくとも1つの更新のみが行われる、ニューラルネットワーク演算装置。
【請求項2】
前記マルチタイムプログラミングメモリが、スタティックランダムアクセスメモリ(Static random access memory, SRAM)またはフラッシュ(flash)メモリである請求項1に記載のニューラルネットワーク演算装置。
【請求項3】
入力信号に対して前処理を行い、前記第1ニューラル回路の複数の入力を生成する前処理回路をさらに含み、前記前処理が、信号増幅、フィルタリング、ノイズ抑制、補償、デジタル-アナログ変換、アナログ特徴抽出のうちの1つ、またはその組み合わせを含む請求項1または2に記載のニューラルネットワーク演算装置。
【請求項4】
前記第1ニューラル回路および前記第2ニューラル回路が、それぞれ前記ニューラルネットワーク演算の複数の入力を受信する複数の入力線、および前記複数の入力線と交差して配置された複数の出力線と、
それぞれ前記入力線と前記出力線の複数の交点に配置され、前記ニューラルネットワーク演算の複数の重み値を保存し、接続された前記入力線の前記入力に対して乗法演算を行って、接続された前記出力線に乗積を出力するための複数の記憶ユニットと、
それぞれ前記出力線に接続され、接続された前記記憶ユニットが出力した前記乗積を前記出力線が累加して得られる出力を感知するための複数のセンサアンプ(Sense amplifier, SA)と、を含む、請求項1~3のいずれか1項に記載のニューラルネットワーク演算装置。
【請求項5】
前記第1ニューラル回路および前記第2ニューラル回路が、さらに、
それぞれ前記センサアンプに接続または配置され、調整後の前記出力が次の前記演算層の入力として適するよう、前記センサアンプが感知した前記出力のゲイン(gain)およびバイアス(bias)を調整するための複数の調整回路を含む請求項4に記載のニューラルネットワーク演算装置。
【請求項6】
前記ニューラルネットワーク演算が、積和(Multiply Accumulate, MAC)演算である請求項1~5のいずれか1項に記載のニューラルネットワーク演算装置。
【請求項7】
第1ニューラル回路および第2ニューラル回路を内蔵したニューラルネットワーク演算装置に適用するニューラルネットワーク演算方法であって、前記第1ニューラル回路の性能が、前記第2ニューラル回路よりも大きく、前記方法が、
前記第1ニューラル回路に含まれるトレーニングされたニューラルネットワークの第1の演算層集合を使用して、固定された特徴パターンに対するニューラルネットワーク演算を実行するステップと、
前記第2ニューラル回路に含まれる前記トレーニングされたニューラルネットワークの第2の演算層集合を使用して、固定されていない特徴パターンに対するニューラルネットワーク演算を実行するステップと、を含み、
固定された前記特徴パターンが、認識対象物体に特定されない点、線、円、または多角形を含み、前記第1ニューラル回路が、ワンタイムプログラミングメモリであり、前記第2ニューラル回路が、マルチタイムプログラミングメモリであり、前記ワンタイムプログラミングメモリが、読み出し専用メモリまたは電子ヒューズメモリであり、
前記トレーニングされたニューラルネットワークのトレーニング過程の間に、
ニューラルネットワークを構築するステップと、
トレーニングデータをトレーニングのために前記ニューラルネットワークに送信して、前記トレーニングされたニューラルネットワークを取得し、前記トレーニングされたニューラルネットワークにおいて前記第1の演算層集合と前記第2の演算層集合とを分けるステップと、
新しいトレーニングデータを受信することに応答して、新しいニューラルネットワークを生成する再トレーニングのために、前記新しいトレーニングデータを以前のトレーニングにより取得された前記トレーニングされたニューラルネットワークに送信するステップと、
前記トレーニングされたニューラルネットワークを再トレーニングする過程において、前記第1の演算層集合の構造および重み値の更新は行われず、前記第2の演算層集合の構造および重み値の少なくとも1つの更新のみが行われるステップとを、含む、方法。
【請求項8】
前記第1ニューラル回路が、互いに交差して配置された複数の入力線および複数の出力線、それぞれ前記入力線と前記出力線の複数の交点に配置され、且つ前記ニューラルネットワーク演算の複数の重み値を保存する複数の記憶ユニット、およびそれぞれ前記出力線に接続された複数のセンサアンプを含み、前記第1ニューラル回路を使用して、前記ニューラルネットワークアルゴリズムにおいて特徴パターンが固定された少なくとも1つの演算層のニューラルネットワーク演算を実行する前記ステップが、
前記ニューラルネットワーク演算の複数の入力を前記入力線に入力するステップと、
前記記憶ユニットにより、接続された前記入力線の前記入力に対して乗法演算を行い、接続された前記出力線に乗積を出力するステップと、
前記センサアンプにより、接続された前記記憶ユニットが出力した前記乗積を前記出力線が累加して得られる出力を感知するステップと、
を含む請求項7に記載の方法。
【請求項9】
前記第1ニューラル回路を使用して、前記ニューラルネットワークアルゴリズムにおいて特徴パターンが固定された少なくとも1つの演算層のニューラルネットワーク演算を実行するステップの前に、さらに、
入力信号に対して前処理を行い、前記第1ニューラル回路の前記入力を生成するステップを含み、前記前処理が、信号増幅、フィルタリング、ノイズ抑制、補償、アナログ-デジタル変換、アナログ特徴抽出のうちの1つ、またはその組み合わせを含む請求項8に記載の方法。
【請求項10】
前記センサアンプにより、接続された前記記憶ユニットが出力した前記乗積を前記出力線が累加して得られる出力を感知するステップの後に、さらに、
前記センサアンプが感知した前記出力に対して後処理を行うことにより、次の前記演算層の入力とするステップを含み、前記後処理が、アナログ-デジタル変換、正規化(normalization)、および活性化関数(activation function)演算のうちの1つ、またはその組み合わせを含む請求項8に記載の方法。
【請求項11】
前記後処理が、さらに、調整後の前記出力が次の前記演算層の入力として適するよう、前記センサアンプが感知した前記出力のゲインおよびバイアスを調整することを含む請求項10に記載の方法。
【請求項12】
前記第2ニューラル回路が、互いに交差して配置された複数の入力線および複数の出力線、それぞれ前記入力線と前記出力線の複数の交点に配置され、且つ前記ニューラルネットワーク演算の複数の重み値を保存する複数の記憶ユニット、およびそれぞれ前記出力線に接続された複数のセンサアンプを含み、前記第2ニューラル回路を使用して、前記ニューラルネットワークアルゴリズムにおいて特徴パターンが固定されていない少なくとも1つの演算層のニューラルネットワーク演算を実行する前記ステップが、
前記ニューラルネットワーク演算の複数の入力を前記入力線に入力するステップと、
前記記憶ユニットにより、接続された前記入力線の前記入力に対して乗法演算を行い、
接続された前記出力線に乗積を出力するステップと、
前記センサアンプにより、接続された前記記憶ユニットが出力した前記乗積を前記出力線が累加して得られる出力を感知するステップと、
感知した前記出力に基づいて、前記演算層のアーキテクチャを調整する、または各前記記憶ユニットに保存した前記重み値を更新するステップと、
を含む請求項7~9のいずれか1項に記載の方法。
【請求項13】
前記センサアンプにより、接続された前記記憶ユニットが出力した前記乗積を前記出力線が累加して得られる出力を感知するステップの後に、さらに、
前記出力に対して後処理を行うことにより、次の前記演算層の入力とするステップを含み、前記後処理が、アナログ-デジタル変換、正規化、および活性化関数演算のうちの1つ、またはその組み合わせを含む請求項12に記載の方法。
【請求項14】
前記後処理が、さらに、調整後の前記出力が次の前記演算層の入力として適するよう、前記センサアンプが感知した前記出力のゲインおよびバイアスを調整することを含む請求項13に記載の方法。
【請求項15】
前記マルチタイムプログラミングメモリが、スタティックランダムアクセスメモリまたはフラッシュメモリである請求項7~14のいずれか1項に記載の方法。
【請求項16】
前記ニューラルネットワーク演算が、積和演算である請求項7~15のいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置および方法に関するものであり、特に、ニューラルネットワーク演算装置および方法に関するものである。
【背景技術】
【0002】
現在の生活において、人工知能(Artificial Intelligence,AI)が異なる技術分野において幅広く応用されるようになり、認識、警告、操作支援等に応用されている。しかし、AIが急速に発展したことによって、新しいタイプの様々なネットワークが生まれ、ハードウェア性能への要求も高まり続けている。人工知能発展の要求に応じるため、高効率人工知能の演算ハードウェアもまた、主な発展目的になっている。
【0003】
さらに、人工知能を実現する演算ハードウェアは、主に、フォン・ノイマン(Von Neumann)構造により実現することができ、主に、メモリを介して重み値を保存し、処理ユニットを使用して入力信号を処理し、メモリの重み値にアクセスして演算結果を生成することによって、ニューラル演算を行う。処理ユニットが演算を行うには、いずれもメモリから重み値情報にアクセスする必要があるため、電力を大幅に消費して演算の遅延をもたらし、フォン・ノイマン構造がフォン・ノイマン・ボトルネック(Von Neumann Bottleneck)となって、ニューラルハードウェアの電力と演算速度表現が制限される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ニューラルハードウェアの電力と演算速度表現を改善することのできるニューラルネットワーク演算装置および方法を提供する。
【課題を解決するための手段】
【0005】
本発明の1つの実施形態において、第1ニューラル回路および第2ニューラル回路を含むニューラルネットワーク演算装置を提供する。第1ニューラル回路は、ニューラルネットワークアルゴリズムにおいて特徴パターン(pattern)が固定された少なくとも1つの演算層のニューラルネットワーク演算を実行するために使用される。第2ニューラル回路は、ニューラルネットワークアルゴリズムにおいて特徴パターンが固定されていない少なくとも1つの演算層のニューラルネットワーク演算を実行するために使用される。第1ニューラル回路の性能は、第2ニューラル回路よりも大きい。
【0006】
本発明の1つの実施形態において、第1ニューラル回路および第2ニューラル回路を内蔵したニューラルネットワーク演算装置に適用するニューラルネットワーク演算方法を提供する。第1ニューラル回路の性能は、第2ニューラル回路よりも大きい。前記方法は、第1ニューラル回路を使用して、ニューラルネットワークアルゴリズムにおいて特徴パターンが固定された少なくとも1つの演算層のニューラルネットワーク演算を実行するステップと、第2ニューラル回路を使用して、ニューラルネットワークアルゴリズムにおいて特徴パターンが固定されていない少なくとも1つの演算層のニューラルネットワーク演算を実行するステップと、を含む。
【発明の効果】
【0007】
本発明の実施形態のニューラルネットワーク演算装置および方法は、それが実行する演算の特徴パターンに基づいて、ニューラルネットワークを2つの部分に分ける。特徴パターンが固定された特定の演算層のニューラルネットワーク演算については、性能の高いニューラル回路を使用して実行するが、特徴パターンが固定されていないその他の演算層については、性能は低いが弾性の高いニューラル回路を使用して実行するため、ニューラルハードウェアの電力および演算速度表現を改善することができる。
【0008】
本発明の上記および他の目的、特徴、および利点をより分かり易くするため、図面と併せた幾つかの実施形態を以下に説明する。
【図面の簡単な説明】
【0009】
添付図面は、本発明の原理がさらに理解されるために含まれており、本明細書に組み込まれ、且つその一部を構成するものである。図面は、本発明の実施形態を例示しており、説明とともに、本発明の原理を説明する役割を果たしている。
【0010】
図1】本発明の1つの実施形態に係るニューラルネットワークアーキテクチャの概略図である。
図2】本発明の1つの実施形態に係るニューラルネットワークの転移学習の概略図である。
図3】本発明の1つの実施形態に係るニューラルネットワーク演算装置のブロック図である。
図4】本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。
図5】本発明の1つの実施形態に係るニューラル回路の概略図である。
図6】本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。
図7】本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。
【発明を実施するための形態】
【0011】
本発明の実施形態は、半導体プロセスの方法で領域特定を実現する人工知能(Artificial Intelligence, AI)のニューラルネットワーク(Neural network)演算装置を提供する。メモリ内計算(Computing in memory, CIM)および転移学習(Transfer learning)の方法に基づいて、本発明の実施形態は、性能の高いニューラル回路を使用して、ニューラルネットワークにおいて特徴パターンが固定された(例えば、構造と重み値を更新する必要がない)特定の演算層のニューラルネットワーク演算を実行してから、性能は低いが弾性の高いニューラル回路を合わせて、ニューラルネットワークにおいて特徴パターンが固定されていない(例えば、構造と重み値を更新する必要がある)その他の演算層のニューラルネットワーク演算を実行する。そのため、演算リソースに限りのあるエッジデバイスにおいて、ニューラルネットワークを使用して映像/音声等の信号の認識を実現することができる。
【0012】
図1は、本発明の1つの実施形態に係るニューラルネットワークアーキテクチャの概略図である。図1を参照すると、本実施形態のニューラルネットワーク1が畳み込みニューラルネットワーク(Convolution neural network, CNN)である場合を例とすると、畳み込みニューラルネットワークは、認識対象信号2の処理に対し、機能に基づいて、前処理、調整、特徴抽出、接続、決定等の複数の段階に分ける。ここで、認識対象信号2は、例えば、音声、映像等のセンサにより測定して得られたセンサ信号であり、前処理段階において、例えば、前処理回路により信号増幅、フィルタリング、ノイズ抑制、補償、デジタル-アナログ変換、アナログ特徴抽出等の前処理を行って、ニューラルネットワーク1の入力を生成する。
【0013】
調整段階において、ニューラルネットワーク1は、例えば、様々な適応(adaptation)技術を応用して、後続の特徴抽出に適するよう、特徴の変化を調整する、または減少させる。
【0014】
特徴抽出段階において、ニューラルネットワーク1は、例えば、複数の畳み込み層、プーリング(pooling)層で構成された特徴抽出装置を使用して、調整後の入力データに対して特徴抽出を行う。畳み込み層は、例えば、複数の入力から成る入力画像上で、異なる畳み込みカーネル(kernel)を移動させて畳み込み演算を行い、1組の特徴マップ(feature map)を取得する。プーリング層は、例えば、非線形プーリング関数を使用して、入力画像に対してダウンサンプリングを行い、パラメータの数と計算量を減らす。いくつかの実施形態において、プーリング層は、さらに、畳み込み層の物体辺縁に対する敏感性を減らすことができる。
【0015】
特徴抽出のいくつか前の層において、ニューラルネットワーク1は、例えば、点、線、円、または多角形等の固定された特徴パターン(pattern)を採用して入力データの特徴を抽出する。これらの特徴は、通常、認識対象物体に特定されないが、後続の認識した物体に対する特定の特徴抽出の基礎とすることができる。顔認識を例に挙げると、まず、顔部分のライン、輪郭、または形状等の簡単な特徴を抽出することによって、後続の目、鼻、口等の特定部位の特徴抽出を行うのに有利になる。
【0016】
接続段階において、ニューラルネットワーク1は、例えば、1つまたは複数の完全接続(fully connected)層で構成された分類器を1層前の演算層(例えば、特徴抽出装置の最後の1層の畳み込み層)と接続して、前方の特徴抽出装置が抽出した全ての特徴の重み値を受信し、後続の分類を行う。
【0017】
決定段階において、ニューラルネットワーク1は、例えば、上述した完全接続層で構成された分類器により、接続段階で受信した特徴重み値に対し、ソフトマックス関数(softmax function)等の非線形関数を使用して個別の特徴の確率(各特徴の出力は0と1の間であり、且つ出力の総和は1である)を計算し、最後に、出力層により、分類器が計算した各特徴の確率に基づいて、投票により最終の認識結果を決定して出力する。上述した認識結果は、例えば、認識対象信号2が各分類に属する確率であり、認識対象信号2がどの分類に属するのか(例えば、確率の最も大きいものはどれか)を表示することができる。
【0018】
図2は、本発明の1つの実施形態に係るニューラルネットワークの転移学習の概略図である。図2を参照すると、本実施形態は、図1のニューラルネットワーク1を例に挙げて、転移学習の概念について説明する。
【0019】
まず、入力データの種類および認識対象の分類に基づいて、ニューラルネットワーク1の演算層アーキテクチャ(例えば、調整段階で応用する入力層、特徴抽出段階、接続段階、および決定段階で応用する複数の隠れ層、および決定段階の結果を出力するための出力層を含む)を決定し、ニューラルネットワーク1を確立するとともに、ランダム方式を採用して、各演算層における複数の節点の重み値を生成する。
【0020】
続いて、映像認識データベース(例えば、イメージネット(ImageNet))から取得した複数の画像およびそれに対応する分類結果をトレーニングデータ3としてニューラルネットワーク1に送信してトレーニングを行い、トレーニングされたニューラルネットワーク1aを取得する。このニューラルネットワーク1aの各演算層における節点の重み値は、既にトレーニングデータを学習することにより更新されている。ニューラルネットワーク1aの複数の演算層は、それが演算した特徴パターンに基づいて、特徴パターンが固定されたニューラルネットワーク演算を実行するための演算層集合12と、特徴パターンが固定されていないニューラルネットワーク演算を実行するための演算層集合14とに分けることができる。
【0021】
その後、新しいトレーニングデータ4および新しい分類をニューラルネットワーク1aに導入して、再度ニューラルネットワーク1aをトレーニングし、新しいニューラルネットワーク1bを生成する。トレーニング過程では、演算層集合12において各演算層が認識した特徴パターンに基づいて固定するため、その中の節点の重み値を更新する必要がなく、演算層集合14の複数の演算層に対してのみ構造調整および/または重み値更新を行うことができる。例を挙げて説明すると、ニューラルネットワーク1bにおいて、新しい分類に対し、調整後の演算層集合16における出力層の節点数は、3個増加されて5個になり、且つ各演算層の節点の重み値も新しいトレーニングデータ3を学習することにより更新される。
【0022】
動物画像の認識を例に挙げて説明すると、入力層の入力は、パターンの全ての画素点であり、第1層の畳み込み層は、最も基礎的な図形、例えば、横線、直線、丸のような図形を判断し、第2層は、やや複雑な図形、例えば、多角形を判断し、第3層は、さらに複雑な図形を判断し、以下同様に判断を行う。このことからわかるように、前方のいくつかの層の特徴認識は、認識対象のターゲットと直接関係がないため、猫、犬、鳥、象、虎のどれを認識するかに関わらず、画素レベルの微小図形ではない。しかしながら、どのような図形であるかに関わらず、いずれも画素レベルの図形がまとまって形成されているため、前方のいくつかの層も極めて重要である。したがって、本発明の実施形態において、前方のいくつかの層を保留して、後方のいくつかの層を置換または更新した後、再度モデルのパラメータをトレーニングすることによって、新しく、且つ要求を満たしたモデルを取得することができる。新しいモデルに基づいて後方のいくつかの層をトレーニングするだけでよく、計算するパラメータが比較的少ないため、過剰適合(over-fitting)の問題が発生しにくい。
【0023】
上述したニューラルネットワークアーキテクチャに基づき、本発明の実施形態は、メモリ内計算方式に基づくニューラルネットワーク演算装置アーキテクチャを提供する。図3は、本発明の1つの実施形態に係るニューラルネットワーク演算装置のブロック図である。図3を参照すると、本実施形態のニューラルネットワーク演算装置30は、例えば、抵抗変化型メモリアーキテクチャを採用したニューラルネットワーク加速器、あるいはこの加速器における1つの処理エンジン(Processing engine, PE)であり、ディープラーニング(Deep learning, DL)に応用され、プロセッサ(例えば、中央処理装置)を補助してニューラルネットワーク演算を行うために使用される。上述したニューラルネットワーク演算は、例えば、積和(Multiply Accumulate, MAC)演算である。
【0024】
ニューラルネットワーク演算装置30は、第1ニューラル回路32および第2ニューラル回路34を含み、且つ第1ニューラル回路32の性能は、第2ニューラル回路34よりも大きい。いくつかの実施形態において、第1ニューラル回路32は、例えば、読み出し専用メモリ(Read only memory,ROM)または電子ヒューズ(Efuse)メモリ等のワンタイムプログラミング(One-time programming, OTP)メモリである。第2ニューラル回路34は、例えば、スタティックランダムアクセスメモリ(Static random access memory,SRAM)またはフラッシュ(flash)メモリ等のマルチタイムプログラミング(Multi-time programming,MTP)メモリである。その他の実施形態において、第1ニューラル回路32および第2ニューラル回路34は、その他の類型のメモリの組み合わせであってもよく、本発明はこれに限定されない。
【0025】
いくつかの実施形態において、ニューラルネットワーク演算装置30は、さらに、入力および出力データを一時的に保存するためのバッファ(buffer)、および非線形関数およびプーリング関数演算を支持するための演算回路(図示せず)を含むが、本発明はこれに限定されない。
【0026】
図4は、本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。図3および図4を同時に参照すると、本実施形態の方法は、図3のニューラルネットワーク演算装置30に適用され、以下、ニューラルネットワーク演算装置30における各素子を組み合わせて、本発明のニューラルネットワーク演算方法の詳細なステップについて説明する。
【0027】
ステップS402において、ニューラルネットワーク演算装置30は、第1ニューラル回路32を使用して、ニューラルネットワークアルゴリズムにおいて特徴パターンが固定された少なくとも1つの演算層のニューラルネットワーク演算を実行する。上述した固定された特徴パターンは、認識対象物体に特定されない点、線、円、または多角形を含むが、本発明はこれに限定されない。第1ニューラル回路32は、例えば、ニューラルネットワークアルゴリズムにおいて特徴学習を担当する演算層の演算、またはその他の認識したい対象と直接関係のない演算層の演算を行うために使用される。
【0028】
いくつかの実施形態において、ニューラルネットワーク演算装置30は、例えば、まず、入力信号に対して信号増幅、フィルタリング、ノイズ抑制、補償、アナログ-デジタル変換、アナログ特徴抽出等の前処理を行って、第1ニューラル回路32の入力(例えば、図1の前処理段階における処理に対応する)を生成する。
【0029】
いくつかの実施形態において、第1ニューラル回路32は、互いに交差して配置された複数の入力線および複数の出力線、それぞれ入力線と出力線の複数の交点に配置され、且つニューラルネットワーク演算の複数の重み値を保存する複数の記憶ユニット、およびそれぞれ出力線に接続された複数のセンサアンプを含むメモリ内計算(Computing in memory, CIM)アーキテクチャを採用する。
【0030】
図5は、本発明の1つの実施形態に係るニューラル回路の概略図である。図5を参照すると、本実施形態は、図3の第1ニューラル回路32のアーキテクチャおよび操作方法を説明したものである。第1ニューラル回路32は、交差して配置された複数の入力線および複数の出力線を含むクロスバーアレイ(crossbar array)のアーキテクチャを採用する。これらの入力線および出力線は、例えば、メモリ回路のワード線およびビット線であり、列デコーダおよび行デコーダの制御により、ニューラルネットワーク演算の入力I1~入力線に送信することができるが、本発明はこれに限定されない。
【0031】
入力線および出力線の各交点において記憶ユニットを配置し、この記憶ユニットは、例えば、入力線の制御によりニューラルネットワーク演算の重み値(例えば、図示した重み値R11~Rmn、m、nは正の整数)を保存して、対応する出力電流または等価抵抗をイネーブルにする、または起動時に生成することのできる読み出し専用メモリ(Read only memory, ROM)または電子ヒューズ(Efuse)等の半導体素子を採用する。
【0032】
記憶ユニットは、n列とm行に分けられ、各行の記憶ユニットは、共に1本の入力線に接続され、ニューラルネットワーク演算の入力I1~Imを受信して、前記行記憶ユニットの電流の大きさまたは等価抵抗を制御する。各記憶ユニットは、例えば、接続された入力線の入力に対して乗法演算を行い、接続された出力線に乗積を出力する(例えば、入力電圧は、保存した抵抗値に対応するコンダクタンスの作用により、出力電流を生成する)。各列の記憶ユニットは、共に1本の出力線に接続され、出力線は、接続された記憶ユニットが出力した乗積を累加して、出力O1~Oを生成する(例えば、各記憶ユニットが出力した電流を集めて、出力電流を生成する)。
【0033】
センサアンプSA1~SAは、それぞれ出力線に接続され、接続された記憶ユニットが出力した乗積を出力線が累加して得られる出力O1~Oを感知するために使用され、次の演算層の入力として使用される。
【0034】
いくつかの実施形態において、ニューラルネットワーク演算装置30は、例えば、第1ニューラル回路32において複数の演算層のニューラルネットワーク演算を実行した時、互いに隣接する演算層の間に出力結果を調整することのできる1つの調整回路(図示せず)を追加し、この調整回路は、それぞれセンサアンプSA1~SAに接続または配置され、調整後の出力が次の演算層の入力として適するよう、センサアンプSA1~SAが感知した出力のゲイン(gain)およびバイアス(bias)を調整するために使用することができる。
【0035】
図6は、本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。図5および図6を同時に参照すると、本実施形態の方法は、図5の第1ニューラル回路32に適用され、以下、第1ニューラル回路32における各素子を組み合わせて、本発明のニューラルネットワーク演算方法の詳細なステップについて説明する。
【0036】
ステップS602において、ニューラルネットワーク演算装置30により、ニューラルネットワーク演算の複数の入力I1~Imをそれぞれ第1ニューラル回路32の入力線に入力する。
【0037】
ステップS604において、第1ニューラル回路32の記憶ユニットにより、接続された入力線の入力I1~Imに対して乗法演算を行い、接続された出力線に乗積を出力する。
【0038】
ステップS606において、第1ニューラル回路32のセンサアンプSA1~SAにより、接続された記憶ユニットが出力した乗積を出力線が累加して得られる出力O1~を感知する。
【0039】
ステップS608において、第1ニューラル回路32の調整回路により、調整後の出力が次の演算層の入力として適するよう、センサアンプSA1~SAが感知した出力のゲインとバイアスを調整する。
【0040】
出力結果を適切に調整することにより、1層下の演算層の特性または要求に符合させることができ、ハードウェアアーキテクチャを大幅に変更しなくても、より優れた正確性特性を実現することができる。
【0041】
図4のフローに戻ると、ステップS404において、ニューラルネットワーク演算装置30は、第2ニューラル回路34を使用して、ニューラルネットワークアルゴリズムにおいて特徴パターンが固定されていない少なくとも1つの演算層のニューラルネットワーク演算を実行する。つまり、第2ニューラル回路34は、例えば、ニューラルネットワークアルゴリズムにおいて分類を担当する演算層の演算、または認識対象が異なるために修正を必要とするその他の演算層の演算を行うために使用される。
【0042】
第1ニューラル回路32と同様に、第2ニューラル回路34もメモリ内計算演算アーキテクチャ(図5に示す)を採用するが、第1ニューラル回路32と異なるのは、第2ニューラル回路34における記憶ユニットが、スタティックランダムアクセスメモリ(Static random access memory,SRAM)またはフラッシュ(flash)等の半導体素子を採用することである。第1ニューラル回路32の記憶ユニットと相対させて説明すると、性能は低いが比較的高い弾性を有するため、新しい入力データに対応して、演算層のアーキテクチャを適応的に調整し、各演算層における節点の重み値を更新することができる。
【0043】
図7は、本発明の1つの実施形態に係るニューラルネットワーク演算方法のフロー図である。図3および図7を参照すると、本実施形態の方法は、図3の第2ニューラル回路34に適用され、第2ニューラル回路34は、図5に示した第1ニューラル回路32のアーキテクチャを採用する。
【0044】
ステップS702において、ニューラルネットワーク演算装置30は、ニューラルネットワーク演算の複数の入力をそれぞれ第2ニューラル回路34の入力線に入力する。
【0045】
ステップS704において、第2ニューラル回路34の記憶ユニットは、接続された入力線の入力に対して乗法演算を行い、接続された出力線に乗積を出力する。
【0046】
ステップS706において、第2ニューラル回路34のセンサアンプにより、接続された記憶ユニットが出力した乗積を出力線が累加して得られる出力を感知する。
【0047】
ステップS708において、第2ニューラル回路34により、センサアンプが感知した出力に基づいて、演算層のアーキテクチャを調整する、または各記憶ユニットに保存した重み値を更新する。そのため、調整後の演算層は、新しい分類演算を支持することができ、且つより優れた認識正確性を有する。
【0048】
いくつかの実施形態において、第2ニューラル回路34は、出力に対してアナログ-デジタル変換、正規化、および活性化関数演算等の後処理を行うことにより、次の演算層の入力とすることができるが、本発明はこれに限定されない。
【0049】
いくつかの実施形態において、第1ニューラル回路32と同様に、第2ニューラル回路34も、互いに隣接する演算層の間に出力結果を調整することのできる1つの調整回路を追加して、調整後の出力が次の演算層の入力として適するよう、センサアンプが感知した出力のゲインおよびバイアスを調整するために使用することができ、それにより、より優れた正確性を実現することができるが、本発明はこれに限定されない。
【0050】
以上のように、本発明の実施形態のニューラルネットワーク演算装置および方法は、メモリ内計算および転移学習の利点を組み合わせ、実行する演算の特徴パターンに基づいて、ニューラルネットワークを2つの部分に分ける。特徴パターンが固定された特定の演算層のニューラルネットワーク演算については、性能の高いニューラル回路を使用して実行するが、特徴パターンが固定されていないその他の演算層については、性能は低いが弾性の高いニューラル回路を使用して実行するため、高性能、低コスト、且つ一定の弾性を有するAI加速器チップ構造を実現することができ、端末(エッジ)またはクラウドのニューラルネットワーク加速器において運用することができる。
【0051】
以上のごとく、この発明を実施形態により開示したが、もとより、この発明を限定するためのものではなく、当業者であれば容易に理解できるように、この発明の技術思想の範囲内において、適当な変更ならびに修正が当然なされうるものであるから、その特許権保護の範囲は、特許請求の範囲および、それと均等な領域を基準として定めなければならない。
【産業上の利用可能性】
【0052】
本発明のニューラルネットワーク演算装置および方法は、メモリ装置、プロセッサ、およびその製造方法に応用することができる。
【符号の説明】
【0053】
1、1a、1b ニューラルネットワーク
2 認識対象信号
3、4 トレーニングデータ
12、14、16 演算層集合
30 ニューラルネットワーク演算装置
32 第1ニューラル回路
34 第2ニューラル回路
1~Im 入力
11~Rmn 重み値
1~On 出力
SA1~SAn センサアンプ
S402~S404、S602~S608、S702~S708 ステップ
図1
図2
図3
図4
図5
図6
図7