JP6724869B2 - 多層ニューラルネットワークのニューロンの出力レベル調整方法 - Google Patents

多層ニューラルネットワークのニューロンの出力レベル調整方法 Download PDF

Info

Publication number
JP6724869B2
JP6724869B2 JP2017119685A JP2017119685A JP6724869B2 JP 6724869 B2 JP6724869 B2 JP 6724869B2 JP 2017119685 A JP2017119685 A JP 2017119685A JP 2017119685 A JP2017119685 A JP 2017119685A JP 6724869 B2 JP6724869 B2 JP 6724869B2
Authority
JP
Japan
Prior art keywords
output
neuron
layer
neural network
memristor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017119685A
Other languages
English (en)
Other versions
JP2019003546A (ja
Inventor
イリナ カタエヴァ
イリナ カタエヴァ
茂樹 大塚
茂樹 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2017119685A priority Critical patent/JP6724869B2/ja
Priority to PCT/JP2018/018298 priority patent/WO2018235448A1/ja
Publication of JP2019003546A publication Critical patent/JP2019003546A/ja
Priority to US16/710,296 priority patent/US12026608B2/en
Application granted granted Critical
Publication of JP6724869B2 publication Critical patent/JP6724869B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Description

本発明は、多層ニューラルネットワークのニューロンの出力レベル調整方法に関する。
多層ニューラルネットワークは、人間の神経回路網の挙動を模倣するように作られた情報処理機構である。この多層ニューラルネットワークは、典型的には、入力値が与えられて他のニューロンに分配するための入力用ニューロンを含む入力層と、外部に対して出力値を出す出力用ニューロンを含む出力層と、入力用ニューロンと出力用ニューロンとの間に存在する中間ニューロンを含む中間層とから構成される。
信号は、入力層から中間層を介して出力層へと一方向に流れる。入力用ニューロンは、入力値に対して処理を行なわずにそのまま中間ニューロンに伝達する。中間ニューロン及び出力用ニューロンは、前の層の複数のニューロンの出力値に、それぞれ、結合の強さを示す正又は負の重みを掛け合わせたものの総和を算出し、その算出値を活性化関数に通して出力値とする。
活性化関数として、従来は、シグモイド関数や、双曲線正接関数が用いられていた。シグモイド関数は、入力値の0を境に、出力値がシグモイド曲線に従い0と1の間で変化する関数である。双曲線正接関数は、入力値の0を境に、出力値がtanhによる双曲線に従って−1と1の間で変化する関数である。しかし、これらの活性化関数を用いた場合、計算負荷が高い、入力値が大きい値を取るときに微分係数、すなわち勾配が小さくなるため、逆誤差伝播法を用いて多層ニューラルネットワークの学習を行う際に、深い層で勾配が消失するといった問題があった。
そのため、近年では、活性化関数として、ReLU(Rectified Linear Unit)やそれに類似する関数(leaky ReLU、maxoutなど)が用いられることが多い。例えば、ReLUは、max(0,x)により定義される関数である。これらの関数の強みは、単純であるため計算が速い、勾配損失しない、スパース性の高さに繋がる、などである。非特許文献1には、ReLUを用いることで、多層ニューラルネットワークの学習時間を短縮できることが記載されている。さらに、非特許文献1には、ReLUは、入力を正規化しなくとも出力が飽和することはないが、ReLUの出力を正規化することにより、認識エラー率を低減できることも示されている。
ただし、非特許文献1では、多層ニューラルネットワークにおける種々の計算がGPU(Graphics Processing Unit)を用いてデジタル的に行われる。従って、ReLUの出力の正規化も容易に行うことができる。一方、GPUは消費電力が大きいという問題があるため、多層ニューラルネットワークにおける計算をより低消費電力にて行うことが可能な専用のハードウエア回路の開発が進められている。そのハードウエア回路の一例として、例えば特許文献1に示されるような、印加電圧や通電電流によって異なる抵抗状態に設定することが可能な抵抗変化型メモリ(メモリスタ)が組み込まれたハイブリッドCMOS回路がある。このハイブリッドCMOS回路では、入力バーと出力バーとが交差するクロスバー回路の交点に設けられたメモリスタによって入力値に重みが付与される。そして、出力バーにCMOS素子によって構成された集積回路が接続され、この集積回路が、ニューロンとして、重みが付与された入力値の加算や、加算した入力値から活性化関数に応じた出力値の生成をアナログ領域で実行する。
国際公開第2017/010048号
A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural networks," in Advances in neural information processing systems, pp. 1097-1105, 2012.
しかしながら、特許文献1に示されるように、CMOS素子によって構成される集積回路(アナログ処理回路)において、活性化関数に応じた出力値の生成がアナログ領域で行われる場合、以下に説明するような問題が生じることが考えられる。なお、以下に説明する問題は、ReLUのような出力値に上限値が定められていない活性化関数を用いる場合、上位階層のニューロンの出力値が増大する傾向が生じるため、特に生じやすくなる。
まず、集積回路内で、活性化関数としての処理を行う回路は、その回路構成や回路素子の特性に応じて、出力可能な範囲である出力レンジが規制される。そのため、活性化関数に応じた出力値が大きい場合、その出力レンジによる制限を受けて、出力値が飽和してしまう可能性がある。出力値が飽和した場合、活性化関数としての処理を行う回路は、正しい出力値を出力することができなくなってしまう。また、ある層のメモリスタは、前層のニューロンにより過大な出力値が生成され、その出力値に応じた入力値が入力されることにより書込閾値以上の電圧が印加されると、コンダクタンスが変化してしまう可能性がある。メモリスタのコンダクタンスが変化してしまった場合、入力値に対して付与すべき所望の重みを付与することができなくなってしまう。
本発明は、上述した点に鑑みてなされたものであり、メモリスタ及びアナログ処理回路を用いて多層ニューラルネットワークを構成する際に、アナログ処理回路の出力の飽和やメモリスタのコンダクタンスの変化の発生を抑制することが可能な、多層ニューラルネットワークのニューロンの出力レベル調整方法を提供することを目的としている。
上記目的を達成するべく、本発明によるニューロンの出力レベル調整方法は、多層ニューラルネットワーク(20)の階層化されたニューロン(56)間での信号の伝達及びニューロンでの信号処理をアナログ領域で行うべく、伝達される信号に対してシナプスとしての重みを付与する抵抗変化型メモリであるメモリスタ(53)と、ニューロンにおける信号処理として、それぞれ重みが付与された信号の加算、及び加算した信号から活性化関数に応じた出力値の生成を実行するアナログ処理回路(44)とを備えた多層ニューラルネットワークに適用され、
各階層のニューロンの出力値が、最も大きくなったときでも、メモリスタの書込閾値電圧未満であって、かつ活性化関数に応じた出力値の生成を実行するアナログ処理回路の、設定された最大出力レンジ内に収まるように、各階層のニューロンの出力レベルを調整する調整ステップ(S110〜S140、S200〜S240)を備える。
従って、本発明によれば、活性化関数に応じた出力値が、アナログ処理回路の出力レンジによる制限を受けて飽和してしまったり、その出力値によって次の階層のメモリスタのコンダクタンスが変化してしまったりすることを抑制することができる。そのため、多層ニューラルネットワークによる認識、予測、運動制御などの精度の劣化を回避することが可能となる。
調整ステップの一例として、調整ステップ(S110〜S140)は、コンピュータ上に構築された多層ニューラルネットワークに対して実行され、
調整ステップは、
各階層のニューロンの出力値を検出する検出ステップ(S110)と、
検出ステップによって検出された各階層のニューロンの出力値に基づいて決定される各階層のニューロンの出力最大値と、活性化関数に応じた出力値の生成を実行するアナログ処理回路の最大出力レンジとに基づいて、各階層毎に、スケーリングファクターを算出する算出ステップ(S120、S130)と、
アナログ処理回路の最大出力レンジは、各階層のニューロンの出力値がメモリスタの書込閾値電圧よりも小さくなるように設定され、
算出ステップで算出された各階層毎のスケーリングファクターによって、それぞれ、対応するメモリスタのコンダクタンスを修正する修正ステップ(S140)と、を含み、
修正ステップによって修正されたコンダクタンスが、実際に前記メモリスタに設定されるようにすることができる。
上記のように、コンピュータ上に構築された多層ニューラルネットワークに対して調整ステップを実行する場合には、スケーリングファクターを算出し、このスケーリングファクターによってメモリスタのコンダクタンス(重み)を修正する、これにより、各階層のニューロンの出力レベルを適切に調整することができるようになる。つまり、スケーリングファクターは、各階層のニューロンの出力最大値と、アナログ処理回路の最大出力レンジとに基づいて、各階層毎に算出される。アナログ処理回路の最大出力レンジは、各階層のニューロンの出力値が必ずメモリスタの書込閾値電圧よりも小さくなるように設定されている。そのため、スケーリングファクターによってメモリスタのコンダクタンスを修正することにより、ニューロンの出力値は、設定されたアナログ処理回路の最大出力レンジの範囲に収まる可能性を高めることができ、さらに、メモリスタの書込閾値電圧を超えないようにすることができる。
また、調整ステップの他の例として、調整ステップ(S200〜S240)は、メモリスタ及びアナログ処理回路を用いて構築された多層ニューラルネットワークにおいて学習が行われるときに、併せて実行され、
アナログ処理回路は、演算増幅器と、当該演算増幅器の出力と反転入力端子とを接続し、演算増幅器による増幅度を決定するフィードバック抵抗(R)と、を含み、フィードバック抵抗としてメモリスタが使用され、
調整ステップは、
各階層のニューロンの出力値を検出する検出ステップ(S210)と、
検出ステップによって検出された各階層のニューロンの出力値が、メモリスタの書込閾値電圧に基づいて定められた所定のレンジ上限を超えているか否かを判定する判定ステップ(S220)と、
レンジ上限を超えた出力値を持つニューロンに対応するアナログ処理回路において、フィードバック抵抗としてのメモリスタの抵抗値を変更して、ニューロンの出力値をレンジ上限以下に低下させる変更ステップ(S230)と、を含むようにすることができる。
上記のように、メモリスタ及びアナログ処理回路を用いて構築された多層ニューラルネットワークにおいて学習が行われるときに、併せて調整ステップも実行する場合、メモリスタのコンダクタンス(重み)は学習によって変更される。従って、調整ステップとして、メモリスタのコンダクタンスを修正することはできない。そのため、アナログ処理回路に、演算増幅器と、メモリスタからなるフィードバック抵抗を設け、出力値がレンジ上限を超えた出力値を持つニューロンに対応するアナログ処理回路において、フィードバック抵抗としてのメモリスタの抵抗値を変更する。このようにしても、ニューロンの出力値が、設定されたアナログ処理回路の最大出力レンジの範囲に収まる可能性を高めることができ、さらに、メモリスタの書込閾値電圧を超えないようにすることができる。
上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
実施形態による多層ニューラルネットワークの構造の一例を概念的に示す図である。 図1の多層ニューラルネットワークを、クロスバー回路を用いて具現化した場合の構成を示す構成図である。 クロスバー回路について説明するための説明図である。 クロスバー回路について説明するための別の説明図である。 クロスバー回路について説明するためのさらに別の説明図である。 第1コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第2コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第3コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第4コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第5コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第6コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第7コンボリューション層の各出力ニューロンの出力値の中の最大出力の振幅を示すグラフである。 第1実施形態によるニューロンの出力レベルを調整するための処理を示したフローチャートである。 修正フィルタ重み及び修正バイアス入力を用いた場合に、各コンボリューション層の出力ニューロンから出力される最大出力の振幅の一例を示すグラフである。 第2実施形態によるニューロンの出力レベルを調整するための処理を示したフローチャートである。
(第1実施形態)
以下、本発明に係る多層ニューラルネットワークのニューロンの出力レベル調整方法の第1実施形態を図面を参照して説明する。なお、本実施形態では、多層ニューラルネットワークとしていわゆる畳み込みニューラルネットワーク(Convolution Neural Network)を採用し、入力データとしての画像を、複数のカテゴリに分類する用途に適用した例について説明する。ただし、本発明は、いわゆる入力層、中間層、及び出力層からなる通常の多層ニューラルネットワークに適用することも可能である。また、多層ニューラルネットワークの用途として、上述した入力画像の分類の他、画像以外のパターン認識、情報圧縮、運動制御、雑音除去、時系列予測などが挙げられる。
図1は、本実施形態による畳み込みニューラルネットワーク20の構造の一例を概念的に示している。畳み込みニューラルネットワーク20は、基本的に、コンボリューション層とプーリング層とを交互に接続した構造を有する。例えば、図1に示す例では、畳み込みニューラルネットワーク20は、第1コンボリューション層21、第2コンボリューション層22、第3コンボリューション層23、第4コンボリューション層24、第5コンボリューション層25、第6コンボリューション層26、及び、第7コンボリューション層27からなる7層のコンボリューション層を有している。そして、第2コンボリューション層22と第3コンボリューション層23との間に、第1プーリング層28が設けられ、第4コンボリューション層24と第5コンボリューション層25との間に、第2プーリング層29が設けられている。
このように、畳み込みニューラルネットワーク20においては、コンボリューション層の次に必ずプーリング層が接続されるとは限らず、複数のコンボリューション層を接続した後に、プーリング層が接続されることもある。また、コンボリューション層21〜27及びプーリング層28〜29の層数は、図1に示す例に限られない。一般的には、コンボリューション層21〜27及びプーリング層28〜29の層数を増やすほど、認識性能をより向上させることができる。
第1〜第7コンボリューション層21〜27は、それぞれ入力される入力データ(画像)に対して、所定のサイズ(例えば3×3、5×5)を有するフィルタを畳み込む演算を行う。入力データとしての画像は、2次元に配列された入力値(ピクセル値)を有する。各コンボリューション層21〜27におけるフィルタの畳み込み演算は、一般的な画像処理でのフィルタの畳み込み、すなわち、小サイズの画像(フィルタ)を入力画像に2次元的に畳み込んで、画像をぼかしたり、エッジを強調したりするものと基本的に同じである。
具体的には、第1〜第7コンボリューション層21〜27では、フィルタの畳み込み演算として、フィルタとしての小サイズの画像の各ピクセル値(重み)と、入力データとしての画像におけるフィルタと同サイズの領域の各ピクセル値とをそれぞれ掛け合わせた各乗算結果を積算する。この際、入力データが複数枚の画像を含む場合には、それら複数枚の入力画像の同じ領域において同じフィルタによる畳み込み演算が行われ、それらの畳み込み演算による演算結果がさらに積算される。このようにして計算された積算結果は、ReLUなどの活性化関数を経て、各コンボリューション層21〜27のフィルタ位置に対応する出力値となる。
フィルタは、所定のストライドで入力データとしての画像上をシフトされていき、各シフト位置において、上述した畳み込み演算が繰り返し行われる。これにより、各コンボリューション層21〜27において、入力画像全体に渡ってそれぞれのフィルタのシフト位置に応じた出力値が作成される。それらの出力値を、フィルタのシフト位置に対応するように2次元的にまとめた結果が、各コンボリューション層21〜27による出力データとなり、次の階層の入力データとなる。
このように、各コンボリューション層21〜27の出力データは、それぞれ2次元的に配列される画像の形を取り、一般的には特徴マップと呼ばれる。この特徴マップは、各コンボリューション層21〜27において使用されるフィルタの数と同じ数だけ生成される。このため、通常は、第2コンボリューション層22以降の各コンボリューション層22〜27には、複数枚の入力画像(特徴マップ)を含む入力データが入力される。また、第1コンボリューション層21においても、入力画像がカラー画像である場合には、RGBに対応する3枚の画像が入力される。一方、入力画像がグレースケール画像である場合には、第1コンボリューション層21には、1枚の画像が入力されるだけである。
なお、本実施形態では、第6、第7コンボリューション層26、27において使用されるフィルタのサイズは1×1に設定されている。つまり、第6、第7コンボリューション層26、27では、各入力画像における同じ位置のピクセル値が、フィルタによる重みを掛け合わされた上で加算される、1×1の畳み込み演算が行われる。これら第6、第7コンボリューション層26、27として、いわゆる全結合層を用いることも可能であるが、本実施形態では、第6、第7コンボリューション層26、27を含む各コンボリューション層21〜27における畳み込み演算を、後述するクロスバー回路を用いてアナログ領域において実行するために、上述したように1×1の畳み込み演算を行うコンボリューション層を採用している。全結合層を採用すると、入力バーの数が過大となり、1つのクロスバー回路で対応することが困難になるためである。クロスバー回路に関しては、後に詳細に説明する。
本実施形態では、上述したように、活性化関数として、ReLUを用いる。ReLUは、max(0,x)により定義される関数である。このように出力値に上限値が定められていないReLUを用いることにより、計算が速い、勾配損失しない、スパース性の高さに繋がる、などのメリットが得られる。ただし、活性化関数はReLUに限られず、ReLUと類似する近似関数(f=log(1+ex))、leaky ReLU(f=max(0.01 x,x))、Parametric ReLU(f=max(ax,x))、複数の線形関数の中での最大値を関数の値として採用するmaxoutなどを用いても良い。
また、上述したフィルタの重みは学習によって決定される。学習は、本実施形態では、畳み込みニューラルネットワーク20を、一旦コンピュータ上に構築して、教師あり学習により行われる。学習の対象は、上述したフィルタの重みの他、後述するバイアス入力に対する重みの大きさが含まれる。
第1、第2プーリング層28、29は、入力画像のどの位置でフィルタとの適合性が高かったかを示す情報の一部を捨てることにより、入力画像内に現れる特徴の位置変化に対する不変性を高めるとともに、画像のサイズを縮小して後の計算量を削減できるようにするためのものである。
具体的には、第1、第2プーリング層28、29は、入力画像に対して所定のサイズ(2×2、3×3など)のウインドウを定め、そのウインドウ内の入力値(ピクセル値)を平均化(平均プーリング)したり、ウインドウ内の入力値の最大値を採用(最大プーリング)したりすることにより、入力画像の複数の入力値をまとめる。このプーリング演算では、プーリングの対象範囲を定めるウインドウが重ならないように、ウインドウが行方向及び列方向にシフトされる。ただし、プーリング範囲を定めるウインドウが一部重なるように、ウインドウをシフトさせても良い。また、このようなプーリングは、各入力画像(特徴マップ)毎に行われるので、プーリング前後の入力画像の枚数は不変である。
出力層30は、例えば、ソフトマックス関数による正規化により、分類すべき複数のカテゴリ毎に、入力データ10としての画像が属する確率を出力するように構成される。従って、出力層30が出力する確率の中で最も高い確率に対応するカテゴリを選択することにより、入力データ10としての画像を、複数のカテゴリに分類することができる。
次に、上述した構造を有する畳み込みニューラルネットワーク20を、クロスバー回路及びCMOS素子の集積回路によって構成されるアナログ処理回路を用いて具現化するための構成について図2を参照して説明する。図2に示すように、畳み込みニューラルネットワーク20を具現化するための構成要素として、本実施形態では、主に、マイクロコンピュータ40、D/A変換回路43、クロスバー回路44、及びA/D変換回路45を備えている。
最初に、クロスバー回路44について、図3〜図5に基づいて説明する。クロスバー回路44は、例えば、抵抗変化型メモリであるメモリスタが組み込まれたハイブリッドCMOS回路として構成される。このクロスバー回路44は、メモリスタにより入力信号に重みを付与するとともに、各ニューロン毎に、それぞれのニューロンに入力される、重みが付与された入力信号を加算し、その加算結果を活性化関数を通して出力値を生成する処理をアナログ領域で行うアナログ処理回路である。
図3に示すように、クロスバー回路44は、複数の入力バー50と、複数の出力バー51、52と、入力信号に重み付与する複数のメモリスタ53と、複数の差動演算増幅器54とを有する。複数の入力バー50には、マイクロコンピュータ40によって、入力画像における、上述したフィルタと同サイズの領域の各ピクセル値に対応する入力信号(電圧信号)が入力される。複数の出力バー51、52は、複数の入力バー50とそれぞれ交差するように設けられる。
これらの入力バー50及び出力バー51、52は、図4に示すように、CMOS素子が形成されたCMOS基板上に形成され得る。この場合、入力バー50には、CMOS素子からなる入力ニューロン55を介して、上述したピクセル値に対応する電圧信号が入力されるように構成される。入力バー50と出力バー51との交点には、入力信号に重みを付与するメモリスタ53が設けられ、入力バー50と出力バー51とは、メモリスタ53を介して接続されている。
メモリスタ53は、印加電圧や通電電流によって、最小値と最大値との間で、異なる抵抗状態に設定することが可能な抵抗変化型メモリである。例えば、メモリスタ53のコンダクタンスは、図示しない電圧印加回路を用いて、負の書込電圧を印加することにより増加させることができ、正の書込電圧を印加することにより減少させることができる。そして、メモリスタ53は、正負の書込電圧以上の電圧が印加されない限り、設定された抵抗状態(コンダクタンス)を維持する。このようなメモリスタ53として使用可能な素子としては、Pt/TiO2/Pt金属酸化物素子、相変化メモリ、磁気トンネル接合メモリ、などがある。
図4に示す構成を、電気回路的に示すと図5のようになる。図5に示すように、出力バー51に接続される出力ニューロン56を構成するCMOS素子によって演算増幅器が形成されている。さらに、この演算増幅器の入出力間に抵抗Rが接続されることにより、加算器57が構成されている。このため、図5に示すように、入力ニューロン55から入力バー50にそれぞれ入力された電圧信号V1、V2は、メモリスタ53によるコンダクタンスG1、G2がそれぞれ掛け合わされた上で、出力バー51に接続された加算器57において加算される。なお、この加算結果は、加算器57にてR倍される。このようにして、出力ニューロン56において、以下の数式1に示すように、各入力バー50の電圧信号V1、V2、…と、メモリスタ53のコンダクタンスG1、G2との乗算結果が積算され、さらにR倍された結果が得られる。
(数1)
出力ニューロンの出力電圧=RΣViGi
図3に示すように、出力バー51は、差動演算増幅器54の非反転入力端子に接続され、出力バー52は、差動演算増幅器54の反転入力端子に接続されている。差動演算増幅器54は、CMOS基板内のCMOS素子を用いて構成され得る。なお、図3においては、図5に示した加算器57は省略されている。さらに、図3では、上述した活性化関数としての処理を行う活性化関数処理回路も省略されている。実際には、加算器57は差動演算増幅器54の入力側において、出力バー51,52のそれぞれに設けられ、活性化関数処理回路は差動演算増幅器54の出力側に設けられる。このように、CMOS素子によって構成される集積回路には、加算器57、差動演算増幅器54、及び活性化関数処理回路などが含まれる。
本実施形態では、差動演算増幅器54の非反転入力端子及び反転入力端子に、それぞれ出力バー51、52を接続しているので、フィルタとして、正の重みだけでなく、負の重みも利用して畳み込み演算を行うことが可能になる。すなわち、ある入力信号に対して正の重みを掛け合わせる場合には、非反転入力端子に接続された出力バー51と入力バー50との間に設けられたメモリスタ53のコンダクタンスを、反転入力端子に接続された出力バー52と入力バー50との間に設けられたメモリスタ53のコンダクタンスよりも、設定しようとしている正の重み分だけ大きく設定すれば良い。逆に、ある入力信号に対して負の重みを掛け合わせる場合には、反転入力端子に接続された出力バー52と入力バー50との間に設けられたメモリスタ53のコンダクタンスを、非反転入力端子に接続された出力バー51と入力バー50との間に設けられたメモリスタ53のコンダクタンスよりも、設定しようとしている負の重み分だけ大きく設定すれば良い。
従って、本実施形態では、図3に示すように、2本の出力バー51、52を1組として、その1組の出力バー51、52と入力バー50との間のメモリスタ53に対して、該当するコンボリューション層21〜27において使用される、それぞれのフィルタ1、2、3、…に対応する重みが設定される。
マイクロコンピュータ40は、CPU41、RAM42、ROMなどを備え、例えば、ROMに記憶されたプログラムに従い、種々の処理を実施する。なお、以下においては、第1コンボリューション層21を対象とした処理について説明するが、マイクロコンピュータ40は、他のコンボリューション層22〜27に対しても原則として同様の処理を行なう。
まず、マイクロコンピュータ40は、入力データ10としての画像において、フィルタの畳み込み演算を行う領域を定め、その領域に含まれる各ピクセルのピクセル値に応じたデジタル信号をD/A変換回路43に出力する。これにより、D/A変換回路43は、畳み込み演算が行われる領域の各ピクセル値に応じたアナログ信号(電圧信号)をクロスバー回路44へ出力する。
さらに、マイクロコンピュータ40は、クロスバー回路44における演算処理が終了して、出力が出されるタイミングで、A/D変換回路45からの出力を取り込む処理を実行する。この際、A/D変換回路45は、第1コンボリューション層21において使用されるフィルタ数と同数の、あるフィルタのシフト位置での畳み込み演算、活性化関数による処理を経た出力値をデジタル信号に変換して出力している。マイクロコンピュータ40は、A/D変換回路45から出力されたデジタル信号を、複数のフィルタ毎に区別して、RAM42にそれぞれ格納する。
そして、マイクロコンピュータ40は、入力画像において、フィルタの畳み込み演算を行う領域を所定のストライドだけシフトさせ、そのシフト後の領域に含まれるピクセル値に対応するデジタル信号をD/A変換回路43に出力するとともに、上述したのと同様の処理を行う。これを、入力画像のすべての領域でフィルタのシフトが完了するまで繰り返す。これにより、第1コンボリューション層21により作成された、フィルタ数と同数の特徴マップを示すデジタルデータがRAM42に保存される。
次に、本実施形態の技術的特徴について説明する。上述したように、本実施形態では、畳み込みニューラルネットワーク20がコンピュータ上に構築され、一般的な勾配降下法、誤差逆伝播法などの手法を用いて、フィルタの重みやバイアス入力の大きさが学習される。この学習により、各コンボリューション層21〜27におけるフィルタ重みやバイアス入力に対する重みは最適化されていく。
その一方で、学習が終了した時点での、各コンボリューション層21〜27の出力値のレベルは、相互に大きく相違する。特に、ReLUのような、出力値に上限値が定められていない活性化関数を用いた場合、出力層に近い上位層のニューロンほど出力値が増大する傾向が生じるため、各コンボリューション層21〜27の出力値のレベル差が大きくなりやすい。
各コンボリューション層21〜27のニューロンの出力値のレベル差の一例が、図6〜図12に示されている。図6〜図12は、多層ニューラルネットワーク20に、ある画像が入力された場合の、各コンボリューション層21〜27に属する出力ニューロン56の最大出力振幅をプロットしたものである。なお、各コンボリューション層21〜27の出力レベルが異なるだけでなく、同じコンボリューション層21〜27に属する出力ニューロン56に関しても、出力レベルが大きく変動するため、図6〜図12の縦軸は対数目盛としている。
第1及び第2コンボリューション層21、22には、96個のフィルタが設定されている。そのため、第1及び第2コンボリューション層21、22は、96個のフィルタに対応する96個の出力ニューロン56を有する。この96個の出力ニューロン56からは、上述したように、フィルタのシフト位置毎に出力値が出力される。図6は、所定の出力値(電圧値)を単位として、第1コンボリューション層21の各出力ニューロン56の出力値の中の最大出力の振幅を示したものである。図6に示すように、第1コンボリューション層21に属する出力ニューロン56の最大出力は、約2.5〜約15の範囲に分散している。図7は、第2コンボリューション層22に属する出力ニューロン56の最大出力振幅を示している。図7に示すように、第2コンボリューション層22に属する各々の出力ニューロン56の最大出力は、約15〜約50の範囲に分散している。
第3〜第6コンボリューション層23〜26には、それぞれ、192個のフィルタが設定されている。そのため、第3〜第6コンボリューション層23〜26は、192個の出力ニューロン56を有する。そして、第3コンボリューション層23に属する各々の出力ニューロン56の最大出力は、図8に示すように、約15〜約65の範囲に分散している。第4コンボリューション層24に属する各々の出力ニューロン56の最大出力は、図9に示すように、約25〜約110の範囲に分散している。第5コンボリューション層25に属する各々の出力ニューロン56の最大出力は、図10に示すように、約18〜約80の範囲に分散している。第6コンボリューション層26に属する各々の出力ニューロン56の最大出力は、図11に示すように、約2〜約70の範囲に分散している。
第7コンボリューション層27は、分類すべきカテゴリ数に応じた10個の出力ニューロン56を有する。この第7コンボリューション層27に属する各々の出力ニューロン56の最大出力は、図12に示すように、約280〜約600の範囲に分散している。
以上のように、各コンボリューション層21〜27が有する出力ニューロン56の最大出力には、200倍以上の開きがある。さらに、同じコンボリューション層21〜27に属する出力ニューロンの最大出力も、数倍から数十倍の開きがある。
ここで、本実施形態では、上述したように、活性化関数としての処理を行う活性化関数処理回路は、アナログ処理回路の一部として、CMOS素子から構成される集積回路内に設けられる。従って、活性化関数処理回路は、その回路構成や、回路素子の特性に応じて、出力可能な範囲である出力レンジが規制されることになる。そのため、上述した範囲で最大出力が分散するケースでは、出力レンジに収まらず、出力値が飽和してしまう可能性がある。出力値が飽和した場合、活性化関数処理回路は、正しい出力値を出力することができなくなってしまう。
また、クロスバー回路44のメモリスタ53は、前層の出力ニューロン56によって過大な出力値が生成され、その出力値に応じた入力値が入力された場合、書き込み閾値以上の電圧が印加されてコンダクタンスが変化してしまう可能性が生じる。メモリスタ53のコンダクタンスが変化してしまった場合、入力値に対して付与すべき重みを付与することができなくなってしまう。
そこで、本実施形態では、学習したフィルタの重みやバイアス入力に対する重みを、そのままクロスバー回路44のメモリスタ53に設定するのではなく、各出力ニューロンの出力レベルが適正となるように修正した上で用いることとした。以下、本実施形態における、ニューロンの出力レベルの調整手法について、図13のフローチャートを参照して説明する。なお、図13のフローチャートに示す処理は、多層ニューラルネットワークとしての畳み込みニューラルネットワーク20を構築したコンピュータにおいて実行される。
まず、ステップS100では、コンピュータ上に構築した畳み込みニューラルネットワーク20に対して、勾配降下法、誤差逆伝播法などの手法を適用し、各コンボリューション層21〜27のフィルタの重みやバイアス入力に対する重みの大きさを学習する。なお、本実施形態では、各層のバイアス入力の大きさを所定値(例えば、1)としている。
学習の終了後、ステップS110において、フィルタ重みやバイアス入力に対する重みが最適化された、コンピュータ上に構築された畳み込みニューラルネットワーク20にある画像を入力したときの、各コンボリューション層21〜27の出力ニューロン56から出力される出力値を検出する。この際、複数枚の画像を入力して、各層の出力ニューロン56の出力値を検出するようにしても良い。
そして、ステップS120において、各コンボリューション層21〜27の各出力ニューロン56の出力値の中の最大出力を、出力ニューロン56毎に選択する。さらにステップS120では、コンボリューション層21〜27毎に、それぞれのコンボリューション層21〜27に含まれる各出力ニューロン56の最大出力の中の最大値に基づいて、各コンボリューション層21〜27での出力ニューロン56の出力最大値を決定する。
続くステップS130では、ステップS120で決定した出力最大値と、活性化関数処理回路の最大出力レンジとに基づいて、各コンボリューション層21〜27毎に、スケーリングファクターを算出する。このスケーリングファクターの算出は、第1コンボリューション層21から第7コンボリューション層27へと順番に実行される。
活性化関数処理回路の最大出力レンジは、活性化関数処理回路の出力が最大出力レンジの上限値となった場合であっても、次の階層への入力電圧がメモリスタ53の書込閾値電圧(例えば、0.9V)以上とならないように設定される。例えば、活性化関数処理回路の最大出力レンジは、0.5V未満の範囲で設定され、本実施形態では、0.2Vとしている。このように、最大出力レンジを、メモリスタ53の書込閾値電圧に対してマージンを持った0.5V未満に設定することにより、入力画像に応じて、各コンボリューション層21〜27の出力最大値が、ステップS120にて決定した出力最大値を超えることがあったとしても、メモリスタ53の書込閾値電圧までは達しないようにすることができる。
第1コンボリューション層21用の第1層スケーリングファクターは、例えば、下記の数式2に従って算出される。
(数2)
Scaling_factor_layer1=maximum neuron output_layer1/max_range
このように、第1コンボリューション層21に含まれる出力ニューロン56の最も大きな出力値に相当する値を第1層出力最大値とし、この第1層出力最大値を、活性化関数処理回路の最大出力レンジで除算して第1層スケーリングファクターを算出する。
次に、第2コンボリューション層22用の第2層スケーリングファクターは、例えば、下記の数式3に従って算出される。
(数3)
Scaling_factor_layer2
=(maximum neuron output_layer2/max_range)/Scaling_factor_layer1
このように、第2層スケーリングファクターは、第2コンボリューション層22に含まれる出力ニューロン56の最も大きな出力値に相当する第2出力最大値を、活性化関数処理回路の最大出力レンジで除算した結果を、第1層スケーリングファクターで除算して算出する。
つまり、第1コンボリューション層21の各出力ニューロン56の出力値は、後述するステップS140の処理により第1層スケーリングファクターによって適正範囲に修正(縮小)される。このため、第2コンボリューション層22に入力される入力値は、第1層スケーリングファクターによる修正の影響を受ける。そこで、第2層スケーリングファクターは、上述したように第1スケーリングファクターを加味して算出される。
第3〜第7コンボリューション層23〜27用の各スケーリングファクターも、同様に下位の階層のスケーリングファクターを加味して、例えば、下記の数式4に従って算出される。
(数4)
Scaling_factor_layerN
=(maximum neuron output_layerN/max_range)/(Scaling_factor_layer1*・・・
*Scaling_factor_layerN-1)
このように、第3〜第7コンボリューション層23〜27の上位階層のスケーリングファクターは、それよりも下位階層のスケーリングファクターを累積的に考慮した上で算出される。
各層のスケーリングファクターの算出が完了すると、ステップS140の処理に進む。ステップS140では、ステップS100において学習された、各コンボリューション層21〜27のフィルタの重みやバイアス入力に対する重みの大きさを、ステップS130で算出した各層のスケーリングファクターを用いて修正する。具体的には、各コンボリューション層21〜27毎に、下記の数式5、数式6に示されるように、学習されたオリジナルのフィルタ重み及びバイアス入力に対する重みを、対応するスケーリングファクターで除算することにより、修正フィルタ重み及び修正バイアス入力重みを算出する。
(数5)
Wscaled_layerN=Woriginal_layerN/Scaling_factor_layerN
(数6)
W_Biasscaled_layerN=W_Biasoriginal_layerN/(Scaling_factor_layerN*Scaling_factor_layer (N-1)*・・・* Scaling_factor_layer2*Scaling_factor_layer1)
修正フィルタ重み及び修正バイアス入力重みに関する情報は、図示しないコンダクタンス設定装置に提供される。コンダクタンス設定装置は、各コンボリューション層21〜27のクロスバー回路44の入力バー50と出力バー51、52との間にメモリスタ53の書込閾値電圧以上の電圧を印加して、それぞれのメモリスタ53に修正したフィルタ重み及び修正バイアス入力重みに対応するコンダクタンスを設定する。
上述したようにして、各層のスケーリングファクターを算出し、そのスケーリングファクターを用いて、各層のフィルタ重み及びバイアス入力に対する重みを修正することにより、各層の出力ニューロン56の出力値が、設定されたアナログ処理回路の最大出力レンジの範囲に収まる可能性を高めることができ、さらに、メモリスタ53の書込閾値電圧を超えないようにすることができる。
なお、本実施形態において活性化関数として用いるReLUは、正の範囲において、線形な関数であるため、フィルタの重みやバイアス入力をスケーリングファクターによって修正しても、認識性能に悪影響を与えることはない。
修正フィルタ重み及び修正バイアス入力重みを用いた場合に、各コンボリューション層21〜27の出力ニューロン56から出力される最大出力の振幅を調べた結果を図14のグラフに示す。図14には、各コンボリューション層21〜27の出力ニューロン56の最大出力の振幅が重ねて示されている。
図14から理解されるように、いずれの層の出力ニューロン56の出力の振幅も、0〜2の範囲に収まっている。図14に示す例では、最大出力振幅の単位は、電圧値に換算すると0.1Vに対応するように定めている。従って、図14の例では、各層の出力ニューロン56の出力値は、電圧換算でいずれも0.2Vまでの範囲に収まっている。
上述した第1実施形態では、各コンボリューション層21〜27の出力最大値を、各コンボリューション層21〜27に含まれる出力ニューロン56の最も大きな出力値に相当する値として算出した。しかしながら、各コンボリューション層21〜27の出力最大値の算出方法は、これに限られない。
例えば、各コンボリューション層21〜27の出力最大値は、下記の数式7に示すように、各層に含まれる複数の出力ニューロン56のそれぞれの出力値の最大値を平均化した平均値に対しMσ(Mは実数、σは標準偏差)を加えた値として算出しても良い。
(数7)
第N層出力最大値=mean value of maximum neuron outputs_layerN+Mσ
標準偏差σの大きさは、単数又は複数の画像を畳み込みニューラルネットワーク20に入力したときの各出力ニューロン56の最大出力の分布から算出することができる。また、標準偏差σは、各層毎に算出されることが好ましい。標準偏差σに乗じる実数Mは、安全なマージンを確保するため、例えば3〜6の範囲で選択されることが好ましい。
このような算出手法を採用した場合であっても、各コンボリューション層21〜27の出力最大値を適切に算出することができる。
(第2実施形態)
次に、本発明に係る多層ニューラルネットワークのニューロンの出力レベル調整方法の第2実施形態について説明する。
上述した第1実施形態では、まず、コンピュータ上に構築された畳み込みニューラルネットワーク20に対して、フィルタの重みやバイアス入力の大きさの学習を行った。次いで、学習後の畳み込みニューラルネットワーク20において、各コンボリューション層21〜27の出力ニューロン56の出力値を検出し、その出力値に基づいて、各出力ニューロン56の出力レベルを調整するためのスケーリングファクターを算出した。
しかしながら、畳み込みニューラルネットワーク20の学習は、クロスバー回路44を用いて具現化した構成にて実施することも可能である。本実施形態では、クロスバー回路44を用いて具現化した畳み込みニューラルネットワーク20において学習を行うとともに、その学習が行われるときに、併せて各コンボリューション層21〜27の出力ニューロン56の出力レベルの調整を実行するものである。
以下に、クロスバー回路44を用いて具現化した畳み込みニューラルネットワーク20の学習の概要を説明する。
クロスバー回路44を用いて具現化した畳み込みニューラルネットワーク20に、教師データ(例えば、0から9までの手書きの数字のMNISTデータセット)を入力する。そして、畳み込みニューラルネットワーク20からのアナログ出力電圧yを計測する。このアナログ出力電圧yを用いて、誤認識率(例えばMNISTカテゴリ分類の誤認識率)に対応する、目標アナログ出力電圧targetと実際のアナログ出力電圧yとの差e=target−yを算出する。これは、畳み込みニューラルネットワーク20内の信号の順伝播に相当する。
そして、畳み込みニューラルネットワーク20の出力側から誤認識率e=target−yに対応する電圧信号を入力して、畳み込みニューラルネットワーク20の入力側から出力される出力電圧を測定する。これは、畳み込みニューラルネットワーク20内の信号の逆伝播に相当する。ただし、逆伝播における電圧信号は、アナログ処理回路において、活性化関数処理回路をバイパスして、微分活性化関数処理回路で変換されつつ伝播するようにする。微分活性化関数処理回路とは、活性化関数を微分した関数を具現化する回路である。
そして、順伝播において得られた誤認識率と、逆伝播において得られた出力電圧とに基づいて、クロスバー回路44の各メモリスタ53のコンダクタンスについて、コンダクタンス更新量を算出する。さらに、コンダクタンス更新量を実現するために、各メモリスタ53に印加すべき書込電圧を算出する。このようなニューラルネットワークの学習における順伝播及び逆伝播、並びにこれらに基づいたコンダクタンスの更新量の算出方法は、本願発明者による特許文献1等に詳細に記載されているため、これ以上の説明は省略する。
上述したように、クロスバー回路44を用いて具現化した畳み込みニューラルネットワーク20において学習が行われる場合、クロスバー回路44のメモリスタ53のコンダクタンス(重み)は学習によって変更される。従って、第1実施形態のように、各コンボリューション層21〜27の出力ニューロン56の出力レベルを調整するために、各メモリスタ53のコンダクタンスを修正することはできない。
そこで、本実施形態では、アナログ処理回路内に設けられた、図5に示す加算器57や、図3に示す差動演算増幅器54を利用して、各層の出力ニューロン56の出力レベルを調整する。以下に、図15のフローチャートを用いて、本実施形態による、ニューロンの出力レベル調整方法について詳しく説明する。図15のフローチャートに示す処理は、マイクロコンピュータ40によって実行される。
なお、以下の説明では、各層の出力ニューロン56の出力レベル調整のために、図5に示す加算器57を利用する例について説明する。この場合、加算器57のフィードバック抵抗Rは、例えばメモリスタによって構成され、そのフィードバック抵抗Rの大きさを変更することが可能となっている。
図15のフローチャートのステップS200では、上述した教師データを用いた学習が行われる。続くステップS210では、各コンボリューション層21〜27の出力ニューロン56の出力値が検出される。
ステップS220では、検出された出力ニューロン56の出力値(つまり、活性化処理回路の出力値)が、メモリスタ53の書込閾値電圧未満に設定されたアナログ処理回路の最大出力レンジの上限を超えたか否かを判定する。出力ニューロン56の出力値が、アナログ処理回路の最大出力レンジの上限を超えたと判定すると、ステップS230の処理に進み、該当する出力ニューロン56の出力値がレンジ上限未満となるように、加算器57のフィードバック抵抗Rの大きさを調整(低下)する。その後、ステップS240において、学習が終了したか否かを判定し、終了していない場合には、ステップS200からの処理を繰り返す。
上記のように本実施形態では、出力ニューロン56の出力値がレンジ上限未満となるように加算器57のフィードバック抵抗Rの大きさを調整する。このため、学習が終了したときには、各出力ニューロン56の出力値が、設定されたアナログ処理回路の最大出力レンジの範囲に収まる可能性を高めることができ、さらに、メモリスタの書込閾値電圧を超えないようにすることができる。
フィードバック抵抗Rの調整は、上述した第1実施形態と同様に、畳み込みニューラルネットワーク20の入力層に近い下位の階層の出力ニューロン56から、出力層に近い上位の階層の出力ニューロン56へと順番に行うことが好ましい。これにより、上位の階層の出力ニューロン56では、下位の階層の出力ニューロン56の出力レベルの調整結果を加味した上で、出力レベルの調整を行うことができる。
また、上記のように、下位の階層の出力ニューロン56から、上位の階層の出力ニューロン56へと順番に出力レベルの調整を行う場合、同じ階層に属するそれぞれの出力ニューロン56に対するフィードバック抵抗Rの大きさの調整は個別に行っても良い。しかし、例えば、同じ階層に属する複数の出力ニューロン56の中で、レンジ上限を超えた出力値の中で最も大きい出力値を選定し、その最も大きい出力値を最大出力レンジの上限未満に調整するために必要な分だけ、同じ階層に属する複数の出力ニューロンのフィードバック抵抗Rの大きさを一緒に調整するようにしても良い。
さらに、すべての階層の出力ニューロン56に対応するアナログ処理回路に含まれるフィードバック抵抗Rの大きさを一緒に調整するようにしても良い。
また、加算器57のフィードバック抵抗Rではなく、図3に示す差動演算増幅器54の反転入力端子と出力端子との間に、メモリスタからなるフィードバック抵抗Rを接続し、差動演算増幅器54のフィードバック抵抗Rを調整対象としても良い。さらに、調整幅の拡大のため、加算器57のフィードバック抵抗Rと、差動演算増幅器54のフィードバック抵抗Rとの両方を調整対象としても良い。
10 :入力データ
20 :多層ニューラルネットワーク(畳み込みニューラルネットワーク)
40 :マイクロコンピュータ
44 :クロスバー回路
50 :入力バー
51、52:出力バー
53 :メモリスタ
54 :差動演算増幅器
55 :入力ニューロン
56 :出力ニューロン
57 :加算器

Claims (12)

  1. 多層ニューラルネットワーク(20)の階層化されたニューロン(56)間での信号の伝達及び前記ニューロンでの信号処理をアナログ領域で行うべく、伝達される信号に対してシナプスとしての重みを付与する抵抗変化型メモリであるメモリスタ(53)と、前記ニューロンにおける信号処理として、それぞれ重みが付与された信号の加算、及び加算した信号から活性化関数に応じた出力値の生成を実行するアナログ処理回路(44)とを備えた多層ニューラルネットワークのニューロンの出力レベル調整方法であって、
    各階層のニューロンの出力値が、最も大きくなったときでも、前記メモリスタの書込閾値電圧未満であって、かつ活性化関数に応じた出力値の生成を実行するアナログ処理回路の、設定された最大出力レンジ内に収まるように、各階層のニューロンの出力レベルを調整する調整ステップ(S110〜S140、S200〜S240)を備える多層ニューラルネットワークのニューロンの出力レベル調整方法。
  2. 前記活性化関数として、出力値に上限値が定められていない活性化関数が用いられる請求項1に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  3. 前記調整ステップ(S110〜S140)は、コンピュータ上に構築された多層ニューラルネットワークに対して実行され、
    前記調整ステップは、
    前記各階層のニューロンの出力値を検出する検出ステップ(S110)と、
    前記検出ステップによって検出された前記各階層のニューロンの出力値に基づいて決定される前記各階層のニューロンの出力最大値と、前記活性化関数に応じた出力値の生成を実行する前記アナログ処理回路の最大出力レンジとに基づいて、各階層毎に、スケーリングファクターを算出する算出ステップ(S120、S130)と、
    前記アナログ処理回路の最大出力レンジは、前記各階層のニューロンの出力値が前記メモリスタの書込閾値電圧よりも小さくなるように設定され、
    前記算出ステップで算出された各階層毎のスケーリングファクターによって、それぞれ、対応する前記メモリスタのコンダクタンスを修正する修正ステップ(S140)と、を含み、
    前記修正ステップによって修正されたコンダクタンスが、実際に前記メモリスタに設定される請求項2に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  4. 前記算出ステップでは、多層ニューラルネットワークの入力層に近い下位階層のニューロンから、出力層に近い上位階層のニューロンへと順番にスケーリングファクターが算出され、前記上位階層のニューロンに対するスケーリングファクターは、それよりも下位階層のニューロンに対するスケーリングファクターを累積的に考慮した上で算出される請求項3に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  5. 前記算出ステップでは、各階層毎に、それぞれの階層に含まれる各ニューロンの出力値の中の最大値に基づいて、前記各階層のニューロンの出力最大値が決定される請求項3又は4に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  6. 前記算出ステップでは、各階層毎に、それぞれの階層に含まれる複数のニューロンの各々の出力値の最大値を平均化した平均値に対しNσ(Nは整数、σは標準偏差)を加えた値から、前記各階層のニューロンの出力最大値が決定される請求項3又は4に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  7. コンピュータ上に構築された多層ニューラルネットワークの学習が行われた後に、前記調整ステップが実行される請求項3乃至6のいずれかに記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  8. 前記アナログ処理回路では、前記メモリスタのコンダクタンスによる重みが付与された信号を加算する際に、併せて重みが付与されたバイアス入力も加算し、
    前記修正ステップでは、前記算出ステップで算出された各階層毎のスケーリングファクターによって、それぞれ、対応するバイアス入力に対する重みも修正する請求項3乃至7のいずれかに記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  9. 前記調整ステップ(S200〜S240)は、前記メモリスタ及び前記アナログ処理回路を用いて構築された多層ニューラルネットワークにおいて学習が行われるときに、併せて実行され、
    前記アナログ処理回路は、演算増幅器と、当該演算増幅器の出力と反転入力端子とを接続し、前記演算増幅器による増幅度を決定するフィードバック抵抗(R)と、を含み、前記フィードバック抵抗としてメモリスタが使用され、
    前記調整ステップは、
    前記各階層のニューロンの出力値を検出する検出ステップ(S210)と、
    前記検出ステップによって検出された前記各階層のニューロンの出力値が、前記メモリスタの書込閾値電圧に基づいて定められた所定のレンジ上限を超えているか否かを判定する判定ステップ(S220)と、
    前記レンジ上限を超えた出力値を持つニューロンに対応する前記アナログ処理回路において、前記フィードバック抵抗としての前記メモリスタの抵抗値を変更して、ニューロンの出力値を前記レンジ上限以下に低下させる変更ステップ(S230)と、を含む請求項1又は2に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  10. 前記変更ステップでは、多層ニューラルネットワークの入力層に近い下位階層のニューロンから、出力層に近い上位階層のニューロンへと順番に、前記フィードバック抵抗としてのメモリスタの抵抗値の変更が行われる請求項9に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  11. 前記変更ステップでは、各階層のニューロンに対応する前記アナログ処理回路に含まれる前記フィードバック抵抗としてのメモリスタの抵抗値の変更が一緒に行われる請求項10に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
  12. 前記変更ステップでは、すべての階層のニューロンに対応する前記アナログ処理回路に含まれる前記フィードバック抵抗としてのメモリスタの抵抗値の変更が一緒に行われる請求項9に記載の多層ニューラルネットワークのニューロンの出力レベル調整方法。
JP2017119685A 2017-06-19 2017-06-19 多層ニューラルネットワークのニューロンの出力レベル調整方法 Active JP6724869B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017119685A JP6724869B2 (ja) 2017-06-19 2017-06-19 多層ニューラルネットワークのニューロンの出力レベル調整方法
PCT/JP2018/018298 WO2018235448A1 (ja) 2017-06-19 2018-05-11 多層ニューラルネットワークのニューロンの出力レベル調整方法
US16/710,296 US12026608B2 (en) 2017-06-19 2019-12-11 Method for adjusting output level of multilayer neural network neuron

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017119685A JP6724869B2 (ja) 2017-06-19 2017-06-19 多層ニューラルネットワークのニューロンの出力レベル調整方法

Publications (2)

Publication Number Publication Date
JP2019003546A JP2019003546A (ja) 2019-01-10
JP6724869B2 true JP6724869B2 (ja) 2020-07-15

Family

ID=64735736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017119685A Active JP6724869B2 (ja) 2017-06-19 2017-06-19 多層ニューラルネットワークのニューロンの出力レベル調整方法

Country Status (3)

Country Link
US (1) US12026608B2 (ja)
JP (1) JP6724869B2 (ja)
WO (1) WO2018235448A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6724870B2 (ja) 2017-06-19 2020-07-15 株式会社デンソー 人工ニューラルネットワーク回路の訓練方法、訓練プログラム、及び訓練装置
US20220058492A1 (en) * 2018-12-04 2022-02-24 Technion Research & Development Foundation Limited Delta-sigma modulation neurons for high-precision training of memristive synapses in deep neural networks
CN109816096B (zh) * 2019-01-23 2022-10-18 长安大学 一种基于忆阻器的感知器神经网络电路及其调节方法
US10803259B2 (en) 2019-02-26 2020-10-13 Lightmatter, Inc. Hybrid analog-digital matrix processors
JP7034984B2 (ja) * 2019-05-30 2022-03-14 株式会社東芝 演算装置
WO2020261285A1 (en) * 2019-06-24 2020-12-30 Telefonaktiebolaget Lm Ericsson (Publ) First node, and method performed thereby, for handling a problem in a communications network
US11250107B2 (en) * 2019-07-15 2022-02-15 International Business Machines Corporation Method for interfacing with hardware accelerators
CN111291879B (zh) * 2020-03-29 2023-08-22 湖南大学 一种具备习惯化与敏感化的信号发生装置
CN111461308B (zh) * 2020-04-14 2023-06-30 中国人民解放军国防科技大学 忆阻神经网络及权值训练方法
JP7371235B2 (ja) * 2020-06-25 2023-10-30 ポリン テクノロジー リミテッド ニューラルネットワークのアナログハードウェア実現
WO2022003657A1 (en) * 2020-06-30 2022-01-06 Samsung Electronics Co., Ltd. A method and system for processing data efficiently in a model inference phase in a communication device
CN111950719B (zh) * 2020-08-14 2024-06-04 清华大学 基于忆阻器的信息处理电路以及信息处理方法
CN112686373B (zh) * 2020-12-31 2022-11-01 上海交通大学 一种基于忆阻器的在线训练强化学习方法
CN113517016B (zh) * 2021-07-21 2023-04-18 清华大学 计算装置及其鲁棒性处理方法
CN113570042B (zh) * 2021-07-30 2024-07-19 昕海智创(深圳)科技有限公司 一种基于带通滤波软件的滤波算法
WO2023128792A1 (en) * 2021-12-30 2023-07-06 PolyN Technology Limited Transformations, optimizations, and interfaces for analog hardware realization of neural networks
WO2023148580A1 (ja) * 2022-02-07 2023-08-10 株式会社半導体エネルギー研究所 半導体装置の動作方法
KR102650005B1 (ko) * 2022-04-15 2024-03-22 국민대학교 산학협력단 메모리 장치, 메모리 장치의 동작 방법, 및 이를 포함하는 메모리 시스템
CN115906968B (zh) * 2022-11-09 2023-12-08 南方科技大学 双有符号操作数非易失性存算一体单元、阵列及运算方法
CN118211551B (zh) * 2024-05-17 2024-07-09 天津中医药大学 人体经络等效电路模型可信度评估及元件参数定量方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092736B2 (en) * 2010-07-07 2015-07-28 Qualcomm Incorporated Communication and synapse training method and hardware for biologically inspired networks
US10109348B2 (en) 2014-10-30 2018-10-23 Hewlett Packard Enterprise Development Lp Double bias memristive dot product engine for vector processing
US9934463B2 (en) 2015-05-15 2018-04-03 Arizona Board Of Regents On Behalf Of Arizona State University Neuromorphic computational system(s) using resistive synaptic devices
US10885429B2 (en) * 2015-07-06 2021-01-05 University Of Dayton On-chip training of memristor crossbar neuromorphic processing systems
US10332004B2 (en) * 2015-07-13 2019-06-25 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
US10074050B2 (en) * 2015-07-13 2018-09-11 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
KR102578124B1 (ko) * 2016-12-16 2023-09-14 에스케이하이닉스 주식회사 신경망 장치의 정규화 장치 및 방법
JP6724863B2 (ja) 2017-05-29 2020-07-15 株式会社デンソー 畳み込みニューラルネットワーク
JP6724870B2 (ja) 2017-06-19 2020-07-15 株式会社デンソー 人工ニューラルネットワーク回路の訓練方法、訓練プログラム、及び訓練装置
JP6805984B2 (ja) 2017-07-06 2020-12-23 株式会社デンソー 畳み込みニューラルネットワーク

Also Published As

Publication number Publication date
US12026608B2 (en) 2024-07-02
WO2018235448A1 (ja) 2018-12-27
US20200110991A1 (en) 2020-04-09
JP2019003546A (ja) 2019-01-10

Similar Documents

Publication Publication Date Title
JP6724869B2 (ja) 多層ニューラルネットワークのニューロンの出力レベル調整方法
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
US11537897B2 (en) Artificial neural network circuit training method, training program, and training device
JP5937284B2 (ja) 階層型ニューラルネットワーク装置、判別器学習方法および判別方法
JP6805984B2 (ja) 畳み込みニューラルネットワーク
CN111052152B (zh) 包含仿神经元件的阵列的控制装置、离散化步长的运算方法及程序
JP6724863B2 (ja) 畳み込みニューラルネットワーク
JP7196803B2 (ja) 人工ニューラルネットワーク回路及び人工ニューラルネットワーク回路における学習値切替方法
US20200372325A1 (en) Neural network reduction device, neural network reduction method, and storage medium
US11562215B2 (en) Artificial neural network circuit
US20200133273A1 (en) Artificial neural networks having competitive reward modulated spike time dependent plasticity and methods of training the same
KR101563569B1 (ko) 학습형 다이내믹 시각 이미지 패턴 인식 시스템 및 방법
CN115346125B (zh) 一种基于深度学习的目标检测方法
KR102031983B1 (ko) 복수의 lstm을 이용한 시계열적 자세 예측 장치
Chen Image denoising using adaptive neuro-fuzzy system
Bavandpour et al. Spiking neuro-fuzzy clustering system and its memristor crossbar based implementation
CN111582461B (zh) 神经网络训练方法、装置、终端设备和可读存储介质
WO2021023724A1 (en) System simulating a decisional process in a mammal brain about motions of a visually observed body
JP6741159B1 (ja) 推論装置及び推論方法
EP3908982A1 (en) A spiking neural network for probabilistic computation
WO2024083180A1 (en) Dnn training algorithm with dynamically computed zero-reference.
Lo et al. Training deep neural networks with gradual deconvexification
CN116997914A (zh) 图像处理装置及其操作方法
EP4111381A1 (en) Device and method for identifying unknown classes for artificial neural networks
JPH0737016A (ja) 信号処理回路網における結合係数符号処理方法及びその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200608

R151 Written notification of patent or utility model registration

Ref document number: 6724869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250