JP6881693B2 - ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム - Google Patents

ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム Download PDF

Info

Publication number
JP6881693B2
JP6881693B2 JP2020558557A JP2020558557A JP6881693B2 JP 6881693 B2 JP6881693 B2 JP 6881693B2 JP 2020558557 A JP2020558557 A JP 2020558557A JP 2020558557 A JP2020558557 A JP 2020558557A JP 6881693 B2 JP6881693 B2 JP 6881693B2
Authority
JP
Japan
Prior art keywords
neuromorphic
learning
conductance
circuit
array
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
JP2020558557A
Other languages
English (en)
Other versions
JPWO2020129204A1 (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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Publication of JPWO2020129204A1 publication Critical patent/JPWO2020129204A1/ja
Application granted granted Critical
Publication of JP6881693B2 publication Critical patent/JP6881693B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1677Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0009RRAM elements whose operation depends upon chemical change
    • G11C13/0011RRAM elements whose operation depends upon chemical change comprising conductive bridging RAM [CBRAM] or programming metallization cells [PMCs]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used

Landscapes

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

Description

本発明は、ニューロモーフィック素子を含むアレイの重み更新に関する制御装置、制御方法およびプログラムに関する。
従来から、ニューラルネットワークの技術が検討されている。
深層学習をはじめ、ニューラルネット技術を用いた高度な情報の識別技術、分類技術が金融、マーケティング、認証、セキュリティなどの広い分野で実用化されている。このような技術では、膨大な量の積和演算が必要であり、クラウドサーバあるいは巨大な計算機を用いて実行される場合が多い。
近年、アナログ的にコンダクタンス、あるいは抵抗値を変化させることが可能なニューロモーフィック(Neuromorphic)素子を利用して、上述の積和演算を低電力で高速に実行可能な新たな演算機構が研究されている。これらは、人間の脳の認識プロセスにおけるニューロンとシナプスの関係を模倣することで低消費電力、高速な信号処理を実現しようとするもので、ニューラルネットワークの構造をスタティックなネットワークモデルとして模倣する技術、あるいは、スパイク信号のタイミングからニューロンの発火モデルを実現しようとする技術など、幅広い研究が行われている。
この分野における、ニューロモーフィック素子の例を説明する。例えば、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子や電気化学的反応により金属析出とイオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge RAM)を使用する素子などがある。
また、他の例として、スピントロニクス(Spintronics)を使用する素子も用いられている。例えば、磁壁の制御による線形的なコンダクタンス変化を発生させるドメインウォール型、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子の研究が進められている。
さらに他のニューロモーフィック素子の例としては、TaO等の媒体の界面の酸素欠陥濃度を利用するReRAM(Resistive Random Access Memory)を使用する素子があげられる。
ニューロモーフィック素子は特に推論機能を実行するアナログハードウェア基盤として研究されてきたが、その様な中、ニューロモーフィック素子を複数アレイ状に配置したニューロモーフィックアレイで、従来コンピュータ上の演算で行ってきたニューラルネットワークの学習自体を実行するための研究も始まっている。一例として、特許文献1では、スパイク型のニューラルネットワークにおいて、同一ビット線に接続される複数の素子のコンダクタンスを各素子に同時印加した際の入力と出力の電位差によって、一括して各々の素子のコンダクタンスを更新する、つまりニューラルネットワークシステムの学習手法が開示されている。(引用文献1参照。)。
ニューラルネットワークの学習では一般的に勾配降下法などの方法が用いられる。勾配降下法は出力と教師データの差分から、ニューラルネットワークの各ノードを結合するシナプス重み(以下、単に重みという)に対する変更量を計算することを繰り返し実行することで、最終的に入力データに対するニューラルネットワークの出力が教師データに一致する様にニューラルネットの重みを最適化する手法である。より詳細には、下記式(1)〜(5)に示すように、ニューラルネットの出力と教師信号の差分を、ニューラルネットの重みで偏微分した結果が0になる様に重みを更新していく。
式(1)を計算し、Δwを求める。第一項は、式(2)で表せる。第二項は、活性化関数がRELUの場合、式(3)で表せる。第三項の変数vは、wの多項式であるから、その偏微分は、式(4)で表せる。以上の結果を基に、Δwを式(5)で算出する(ρは、学習率を表す係数である)。
Figure 0006881693
Figure 0006881693
Figure 0006881693
Figure 0006881693
Figure 0006881693
この学習アルゴリズムをニューロモーフィック素子で構成されたニューロモーフィックアレイに適用する場合は、ニューラルネットワークで計算した重みの更新量から、素子のコンダクタンスの更新量に換算する。そして、重み更新量に相当するコンダクタンス変化を素子に与えるために書き込み信号を素子に印加する。しかしながら、一般に素子のコンダクタンス変化を全く均一に製造することは困難であり、そのためコンダクタンス変化量が正しく素子のコンダクタンスの実際の値に反映されるとは限らない。アレイを構成する素子数が少ない場合は、書き込み信号を印加した後に、素子毎にコンダクタンスを測定しコンダクタンス値を微調整することで、素子のコンダクタンスを精度よく決定することができる。しかしながら、一般的にニューラルネットの各層のサイズは100個×100個、あるいはそれ以上の規模になり、この様な手法は現実的ではない。先行例に示す様な一括書き換えなどの手法はこの様な背景の下で提案されたものである。
この様に、ニューロモーフィック素子でニューラルネットワークを実行する場合における課題の一つとして、素子のばらつきがあげられる。素子のばらつきには、例えばアレイを構成した場合の各素子間のコンダクタンスばらつきや、読出し再現性ばらつき、あるいは、同一素子内の各ステップにおけるコンダクタンスの非線形性、非対称性ばらつきなどがあげられる。これらのばらつきは、コンピュータ上で計算されるニューラルネットワークでは通常考慮されていないため、ニューラルネットをこの様な素子によるアレイで実現しようとすると、多くの課題が生じる。特に、識別性能に対して重要な影響を与える学習アルゴリズムにおいて深刻な影響を与える可能性がある。例えば、素子が正確な重みを反映していないことによる識別性能低下、あるいは、学習アルゴリズムの実行において学習収束までに時間がかかる、あるいは、学習アルゴリズムが収束しないなどの問題が発生する。
再現性が高い、スタティックなばらつきは、ニューラルネットワークの重みの、コンダクタンスへの割り当て方法などで補正する方法があるが、ダイナミックなばらつき、つまり、一回のコンダクタンス変化操作の単位での変動は、その様な手法での回避が困難である。この様な現象は、例えば、フィラメント形成型の素子(CBRAM)などでは、抵抗変化のために与えた電界エネルギーに対して原子間ポテンシャルが離散的な値をとることにより、フィラメントの形成状態が次のステップのコンダクタンス状態との境界領域付近にとどまってしまうなどの状態がありえる。また、磁気抵抗変化素子を用いた応用例では、磁性膜の磁気ポテンシャル変動によって生じるトラップサイトによって、本来移動させたい磁壁位置目標よりも手前の位置で磁壁が停止し、コンダクタンスが本来変動させたい目標値から外れてしまうなどの現象が上げられる。
上述のように、素子のコンダクタンスばらつきがあるために、重み更新量と素子のコンダクタンス変化量(離散ステップ)から計算したコンダクタンス変化量を期待する書き込み信号を素子に印加しても、学習アルゴリズムが期待するコンダクタンス値から変動してしまう。その結果、コンダクタンス変化範囲内の同一ステップ位置では本来同じコンダクタンス値を持つことが求められるのに対し、実際の素子のコンダクタンスは、ばらつきを持つことになる。つまり、アルゴリズムから計算されたコンダクタンスの目標値からずれた状態になる。これは学習アルゴリズムの収束性やオプティマイザと呼ばれる最適化処理の動作や局所最適解リスクを回避するための正則化処理などの機構に悪影響を及ぼす。最悪の場合、学習アルゴリズムが破綻し、発散するなどの現象が起きる。これらの状況に鑑み、本発明はなされるものである。
特開2015−195011号 特許6293963号
ニューロモーフィック素子からなるニューロモーフィックアレイでニューラルネットワークの学習アルゴリズムを実行する場合、当該ニューロモーフィック素子の素子ばらつき、変動に起因して、学習性能が低下する、あるいは学習アルゴリズム自体が機能しない問題があった。また、現実的に製造されるニューロモーフィック素子を想定したニューラルネットワークの学習方法、最適化制御等については、今まで十分に検討されていなかった。
本発明は、このような事情を考慮してなされたもので、ニューロモーフィックアレイによるニューラルネットワークの学習アルゴリズムを効率的、安定的に実行させることができるニューロモーフィック素子を含むアレイの制御装置、素子のコンダクタンス変化方法およびプログラムを提供することを目的とする。
本発明の一態様は、可変な抵抗値をとりうる2個以上の可変抵抗素子が共通ビット線で接続され、入力データから入力信号を生成し、上記可変抵抗素子に印加する入力信号生成回路と、共通ビット線に流れる電流を検出する検出回路と、入力データに対応する教師信号と検出回路の出力の差分を出力する差分回路と、ニューラルネットワークの学習アルゴリズムを実行し、重み更新量を各素子のコンダクタンス変化量に変換する学習制御回路と、上記可変抵抗素子のコンダクタンスを上記学習制御回路で算出した分だけ変化させるための信号を生成する書き込み信号生成回路と、予め定めた選別条件によって一部の可変抵抗素子を選択する選択回路から構成されるニューロモルフィック回路において、コンダクタンス変化量に基づく書き込み信号を印加した後、選択回路によって選択された一部の素子にさらなる書き込み信号を印加した後、入力信号を全ての抵抗変化素子に再入力し、検出回路の出力と教師信号の差分の変化から学習を継続するか、停止するかを判定する判定機構を具備してなるニューロモーフィック回路である。
本発明の一態様は、上述の選択回路における選別条件は、重み更新量の絶対値をもとに算出された閾値によって選別する。
本発明の一態様は、上述の選択回路における選別条件は、入力データの絶対値をもとに算出された閾値によって選別する。
本発明の一態様は、上述の閾値は、共通ビット線に接続される素子総数に対して、一定の割合で素子が選別される様に決定する。
本発明の一態様は、上述の閾値は学習の進行に対して変動させる。
本発明の一態様は、第一の方向に配設される2本以上の前記共通ビット線で構成され、複数の共通ビット線上で端部から同じ位置に配置される複数の可変抵抗素子は、共通ビット線と異なる第二の方向に配設されるワード線によって相互に接続され、前記選択回路は各々の共通ビット線の単位で追加的書き込み信号印加処理を順次実施する。
本発明の一態様は、上述のニューロモーフィック回路において、前記閾値を共通ビット線毎に異なる値を設定する。
本発明の一態様は、上述の判定機構は、追加書き込み信号を印加した後、差分の変動量が正の場合にはさらに追加の書き込み信号を印加し、負の場合には逆の方向に抵抗を変化させるための書き込み信号を印加する。
本発明の一態様は、複数の可変抵抗素子で構成されるニューロモーフィックアレイにおいて、ニューラルネットワークの学習を行うステップと、ニューラルネットワークの重みの更新量をニューロモーフィックアレイの各可変抵抗素子のコンダクタンスの変化量に変換するステップと、変換したコンダクタンス変化量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに一部の素子を選択するステップと選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、を備える、ニューロモーフィックアレイの学習方法である。
本発明の一態様は、可変な特性の値に応じた重みを信号に乗算するニューロモーフィック素子を含むニューロモーフィックアレイにおいて、ニューラルネットワークの学習を行うステップと、ニューラルネットワークの重みの更新量をニューロモーフィックアレイ素子のコンダクタンスの変化量に変換するステップと、変換したコンダクタンス変化量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに一部の素子を選択するステップと、選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、をコンピュータに実行させるためのプログラムである。
本発明によれば、ニューロモーフィックアレイを使ってニューラルネットワークシステムの学習を行う場合に、コンピュータで計算された学習アルゴリズムを安定的に実行させることができる。
また、本発明によれば、ニューロモーフィックアレイを使用したニューラルネットワークにおいて学習アルゴリズムを高速に収束することが可能になる。
また、本発明によれば、ニューロモーフィックアレイを使用したニューラルネットワークにおいて、識別性能を改善することが可能になる。
本発明の実施形態に係る、ニューロモーフィックアレイを構成するニューロモーフィック素子のコンダクタンス変化を模式的に表現した図である 本発明の実施形態に係るニューラルネットワークに関して、学習の進展に伴う損失関数の出力、及び識別性能の変化推移をコンピュータシミュレーションで推移計算した結果を示す図である。 本発明の実施形態に係るニューラルネットワークに関して、理想的な特性を持つニューロモーフィックアレイで学習を実施した場合の学習の進展に伴う損失関数の出力、及び識別性能の変化推移を表すシミュレーション結果を示す図である。 ニューロモーフィック素子のばらつきを考慮したニューロモーフィックアレイで学習を実施した場合の学習の進展に伴う損失関数の出力、及び識別性能の変化推移を表すシミュレーション結果を示す図である。 本発明によるニューロモーフィック素子を使用したニューロモーフィックアレイの学習方法を示す 本発明の実施形態に係るニューラルネットワークシステム1の概略的な構成を示すブロック図である。 本発明の実施形態に係る、識別対象の画像の例を示したものである。 素子の離散的特性に素子のばらつきを加味して調整機能を全体の5%の素子に適用した場合の学習の進展に伴う損失関数の出力、及び識別性能の変化推移を表すシミュレーション結果を示す図である。 素子の離散的特性に素子のばらつきを加味して調整機能を全体の8%の素子に適用した場合の学習の進展に伴う損失関数の出力、及び識別性能の変化推移を表すシミュレーション結果を示す図である。 素子の離散的特性に素子のばらつきを加味して調整機能を全体の10%の素子に適用した場合の学習の進展に伴う損失関数の出力、及び識別性能の変化推移を表すシミュレーション結果を示す図である。
[ニューロモーフィック素子のコンダクタンス変化]
図1はニューロモーフィック素子のコンダクタンス変化におけるばらつきを示したものである。図1は、素子特性が理想的ではないため重み更新値の乖離が生じることを示す。ニューラルネットワークの積和演算器としてニューロモーフィック素子を使用する場合、各素子のコンダクタンス変化特性は図中の理想線形変化(Z線)に示す様な変化特性が望まれる。しかしながら、現実に製造される素子は、様々な素子間のばらつきやプロセスに依存する変動が起こりえる。また素子のコンダクタンス変化機序として利用する物理現象によっては原理的に非線形なコンダクタンス変化を示す場合もある。この様な変動を踏まえた現実的な素子のコンダクタンス変化は、例えば、図中の素子1、素子2、素子3の様なコンダクタンス変化を示す。
この様な特性を持つ素子を使用することを前提に、課題を説明する。今、素子3の時間Tにおけるコンダクタンスが図の値G[T]をとっているとする。この状態で勾配降下法などの学習アルゴリズムで計算した重み更新量からコンダクタンス変化量を計算し、期待するコンダクタンス値(白抜き三角(X点))まで素子のコンダクタンスを変化させることを考える。コンダクタンス変化を与えるための書き込み信号を印加し、素子のコンダクタンスが、図中の”現実の素子のコンダクタンス(Y点)”の値に変化する。この後に、次の学習サイクルが実行され、学習データがアレイに入力され、アレイの出力を教師信号と比較する。学習アルゴリズムが理想的に動作していれば、この出力と教師信号との差分値は漸減していく。しかしながら、現実的なプロセスを使用して製造されたニューロモーフィックアレイでは、計算されたコンダクタンス変化量が素子に正確には反映されず、G’[T]のコンダクタンスを持つため、この後に実行される学習サイクルでは学習アルゴリズムが期待する方向に収束せずに発散する、あるいは、収束性が低下するなどの現象を招く。
この様な素子のばらつきが学習アルゴリズムに与える影響をシミュレーションによって説明する。
手書き数字を識別させるためのニューラルネットワークにおける学習の様子を示す。ニューラルネットワークは3層構造のMLPを想定し、1層目は784次元、2層目は100次元、3層目は10次元のニューロンから構成されている。図2は、浮動小数点演算で重みを計算した場合の学習性能収束推移を示す。図2はこのニューラルネットワークにおいて、コンピュータ上で勾配降下法による学習アルゴリズムを実行させ、そのエポックの進捗に対する誤差関数の出力(赤破線)、識別率(青破線)の推移を示したものである。この様に、学習の進行とともに、誤差関数の出力が漸減し、識別性能が漸増する収束傾向を示している。応用上は誤差関数出力値やその差分、あるいは識別率等による何等かの基準で閾値を設定し、終了判定するのが一般的なコンピュータ上での実装方法である。なお、ここでは3層MLPで示したが、現実的な応用では様々なニューラルネットワークの層構成や機構などが提案されている。例えば層構造が20層を超えるネットワークなども使われ、応用的にも一般物体検出や識別、感情分析などの自然言語処理など多岐にわたっている。
図3はこのニューラルネットワークを理想的なコンダクタンス変化、つまり一定の離散ステップ幅でコンダクタンスが線形変化するニューロモーフィック素子によるアレイで実現した場合の学習推移を示す。ここで理想的と表現したのは、素子のばらつき要因は考慮せず、ニューロモーフィックアレイの各素子は均一な有限の離散ステップ幅を刻み、全ての素子が同一の線形コンダクタンス変化することを想定したものである。この様にニューロモーフィック素子の特性が理想的であれば、素子のコンダクタンスの離散化特性があっても、学習アルゴリズムは大きな影響を受けることなく、正常に収束することが期待される。特許文献2にも記載されている様に、素子のばらつきや重みの割り当て方法が適していれば、この様に実用上では問題ないレベルの学習アルゴリズムを実行可能である。
一方、図4はニューロモーフィック素子のばらつきを考慮した結果である。各ニューロモーフィック素子のコンダクタンスに対して1%程度の確率分布に基づく変動を与え、毎回の学習アルゴリズムの実行単位で独立した変動が起きると仮定したものである。この結果でわかるように、素子の変動が学習アルゴリズムに与える影響は大きく、このケースでは収束アルゴリズム自体が破綻していることを示している。現実の素子では変動のメカニズムによって、確率的に発生する変動や、素子個々の形状等による固定的なオフセット変動の様なものがあり、本シミュレーション結果は必ずしも普遍的な意味合いを持つものではないが、学習アルゴリズムは、演算語長を十分とった浮動小数点形式の中で、創出、検証されるため、素子特有の離散値に加えて、素子特性のばらつきを考慮する現実の素子において、学習アルゴリズムがコンピュータ上での計算結果と同様に機能することは保証されないと考えてよい。むしろ、本シミュレーションで示したように、収束するまでの学習回数の増加や振動を招く事は容易に推測される。この様な背景技術に基づき、本発明はなされるものである。
[ニューロモーフィック素子の学習の概要]
図5は本発明によるニューロモーフィック素子を使用したニューロモーフィックアレイの学習方法を概念的に示したものである。学習データ100をニューラルネットワーク200に入力し、その出力と教師信号(図示せず)との差分(損失)を誤差計算判定処理300で計算し、学習アルゴリズムの終了を判定する。終了しない場合は、学習アルゴリズム400で誤差を最小化する重み更新量を求める。通常は求めた重み更新量に基づいて、ニューラルネットワーク200の重みを変更する。さらにニューロモーフィックアレイの素子のコンダクタンスはNMD抵抗変化量計算500のステップで重み更新量からコンダクタンス変化量に換算し、NMD抵抗変化処理600で実際のニューロモーフィックアレイを構成する素子に書き込み信号を印加する。本発明では、上記までのステップの後にNMD素子調整ステップ700を設けて一部の素子のコンダクタンス値を調整することを特徴とする。
学習アルゴリズムは、バッチと呼ばれる単位で学習データを取得し、学習データをニューロモーフィックアレイに入力し、その出力を学習データに対応する教師データと比較し、その累積誤差を最小化するようにニューロモーフィックアレイの各素子のコンダクタンスを調整する方法で実現する。学習は学習データ入力からコンダクタンス更新サイクルを繰り返しながら、累積誤差が予め設定した閾値以上であれば学習サイクルを継続し、閾値以下になった場合には学習を終了するなどの制御がされる。
学習アルゴリズムとしては、例えば勾配降下法などがある。これは、教師信号との差分(損失)を層間の各重みで偏微分することで、各重みに対する変更量を計算する方法である。この計算アルゴリズムは、層を2個以上持つ、多層構造のニューラルネットワークに対しても、出力層から入力層に向かって層単位で順に遡って計算することが可能であり、多層ニューラルネットワーク全体の重みを更新することも可能にする。これは、誤差逆伝搬法と呼ばれ、通常のコンピュータ等で実行するニューラルネットワークで使用されている計算方法である。
また、別の学習方法として、STDP(Spike Timing Dependancy Plasticity)学習がある。これは、微分を使用した収束化アルゴリズムである勾配降下法と異なり、人間の脳のシナプス結合の結合度合いを更新するメカニズムを模倣したものである。シナプス結合は、前段ニューロン(プレニューロン)と後段ニューロン(ポストニューロン)の間に配置される抵抗変化型素子で実現され、前後のニューロンの発火タイミングの時間差を利用して、シナプス結合の素子に電位差をある期間生じさせ、コンダクタンスを上昇、あるいは、下降させるものである。コンダクタンスが減少することは、前段ニューロンの信号が後段に伝播しづらくなり、後段ニューロンの活性が低下し、逆にコンダクタンスが増加することは前段ニューロンの信号がより後段ニューロンに伝播しやすくなり、入力信号に対して励起しやすくなる。つまり、神経細胞の興奮状態をモデル化した学習方法である。
いずれの場合でも、ニューロモーフィックアレイを使用したニューラルネットワークでは、重みに相当する素子のコンダクタンス値を対象とする問題に最適化することが必要になる。図5内の、“NMDコンダクタンス変化量ΔG計算”では、計算上得られた重み更新量と、素子に割り当てられている分解能や重みのレンジなどのパラメータを基に、重み更新量に相当するコンダクタンス変化量を計算する。この様な重みと素子のコンダクタンスレンジに対する割り当て方法などは特許文献2に詳述されている。
“NMDコンダクタンス変化処理“では、コンダクタンス変化量に対応する書き込み信号を生成する。簡単な方法として、計算されたコンダクタンス変化量が書き込み信号による基本コンダクタンス変化量の何倍に相当するかを計算し、その回数分書き込み信号を印加するなどの手法が考えられる。この書き込み信号をニューロモーフィックアレイに印加することで素子のコンダクタンスを変化させ、次の学習サイクルを繰り返す。
本発明では、上記までの通常のコンダクタンス更新処理を実施した後に、素子ばらつき等に起因する変動の影響を抑制するための機能を設ける。本機能を学習サイクルに組み込むことによって、ニューロモーフィックアレイ全体としてコンダクタンスの精度ばらつきの影響が抑制され、学習アルゴリズムの収束安定化、高速化に資することができる。以下に調整機能について説明する。
[調整機能]
既に説明した様に、ニューロモーフィックアレイでは再現性ばらつきなどの変動要因により、浮動小数点演算等で計算した重み更新量を正確に反映することが困難である。従って、本発明では上記までのニューロモーフィック素子のコンダクタンス変化のための書き込みを実施した後に、以下の処理を実施することを開示する。ドロップアウトなどの手法を除けば、通常の学習アルゴリズムでは、演算語長に起因する計算分解能以下にならない限り、対象の層の全重みが更新計算の対象となる。一方、ニューロモーフィック素子は、コンダクタンス値が離散ステップをとるため、ある値以下の更新量の場合は、素子のコンダクタンス更新量は0になる。コンダクタンス更新量が0である素子以外に対して書き込み信号が印加される。この更新のための書き換え信号を印加した後に、調整機能では、素子の中から、特定の条件に合致する素子を選択し、その素子に対して追加書き込み信号を印加する。ここで特定の条件と記載したのは、全ての素子に対して調整機構を適用せずとも、学習アルゴリズムには支障がないためである。
素子のコンダクタンスは追加書き込みによって変化する。その後に改めて学習データをニューロモーフィックアレイに入力し、その出力と教師信号との差分を調整機能実施前の差分と比較する。その比較結果によって、選択した素子への書き込み信号をさらに追加で印加するか、反対方向の(負の)コンダクタンス変化を起こすための書き込み信号を印加するなどの判断を行う。このように、学習アルゴリズムで更新された素子の中から、一部の素子を抽出して追加的にコンダクタンス値を変動させることで、識別器の学習性能を改善することが可能になる。
調整機能における素子選択条件としては、重み更新量や、コンダクタンス、抵抗変化量等の絶対値に対する閾値を予め設定し、その閾値を超えて更新を行う素子を選択するなどが考えられる。さらには、ニューロモーフィックアレイを構成する全素子の数に対して、更新量の大きい順に一定の比率を設け、その比率の数の素子に対して同様の調整機能を実施することも想定される。調整機能は、後述するように、全体の素子の10%以下の素子に対して実行するだけで十分効果が発揮できる。さらには、その比率や閾値を、学習のバッチ進行とともに変化させるなどの手法でもよい。
さらに調整機能で使用する追加書き込み信号は、通常の学習サイクルでの書き込み信号よりも小さなコンダクタンス変化を起こすような書き込み信号を印加することも考えられる。例えば、電圧に依存してコンダクタンス変化量が決まるような素子の場合には、通常の書き換えに使用する電圧よりも低い電圧を使用する、あるいは、書き込みに定電圧パルス幅変調方式を使用する素子の場合にはパルス長を短くするなどの手法が考えられる。調整機能では、通常の学習プロセスのコンダクタンス変化最小量よりも小さなコンダクタンス変化を発生させても本素子調整機構の効果は期待される。
実施例の説明
本発明の実施例について説明する。
[ニューロモーフィックアレイを用いたニューラルネットワークシステムの概要]
図6は、本発明の実施形態に係るニューラルネットワークシステム1の概略的な構成を示すブロック図である。
ニューラルネットワークシステム1は、信号生成回路2、ニューロモーフィックアレイ3、検出回路4、差分回路5、学習制御回路6から構成される。信号生成回路2は、ニューロモーフィックアレイ3に印加する信号を生成するバッファ回路である。ニューロモーフィックアレイ3は、ニューラルネットワークシステム1におけるアナログ積和演算器としての機能を担い、2個以上のニューロモーフィック素子31、共通ビット線32、ワード線33から構成される。ニューロモーフィック素子31は、さらに入力端子311と共通端子312を持つ。検出回路4はニューロモーフィックアレイ3からの出力から総電荷量を検出し、電圧に変換する回路である。差分回路5は、検出回路4の出力と教師信号との差分である誤差信号を出力する回路である。学習制御回路6は、ニューロモーフィックアレイ3の各ニューロモーフィック素子31のコンダクタンスを適切に制御するための学習を制御する回路であり、学習用データセットから学習、及び検証データセットを受信し、読出し信号に変換する学習信号生成部61、学習用データセットから教師信号を生成する教師信号生成部62、誤差信号を受信して学習ステップを継続判断、追加的書き込み信号を生成するかの判断を行う学習判定部63、誤差信号からネットワークの重みを計算し、さらにコンダクタンス変化量に変換するコンダクタンス更新量計算部64、計算されたコンダクタンス更新量を起こさせるための書き込み信号生成部65、及び、学習判定部から追加的書き込み信号生成指示を受けて追加書き込み信号を発生する追加書き込み信号生成部66から構成される。
信号生成回路2は、ニューロモーフィックアレイ3に対する印加信号を発生させるバッファ回路である。印加信号は、コンダクタンスを読み出す信号とコンダクタンスを変化させる書き込み信号の両方を含む。なお、ここで例示するニューロモーフィック素子31は、二端子型の素子を想定し、読み出しも書き込みも同じ2個の端子を使用して実施するものとする。2端子型素子の場合は、読出しと書き込みよって印加する電圧を変化させることで、読出し時の電圧は抵抗変化が起きない、もしくは、予め定めた基準内に変化量が収まるように電圧が設定されるのが一般的である。
推論動作など、ニューロモーフィック素子のコンダクタンスを読みだす場合は、例えば0.2V程度の電圧を印加し、学習動作において素子のコンダクタンスを変化させる場合は、1V程度の書き込み信号を印加する。
なお、推論動作では入力信号に2値を超える意味を持たせる場合、各値を表現するための変調信号を用いる。ここでは、入力カウンタ回路(図示せず)を用いたパルス幅変調回路(電圧は0.2V)を想定し、10nsを単位として、0〜2550nsまでの256階調のパルス幅変調(PWM)方式として説明する。
[学習データ]
本実施例で使用する学習用データセットについて説明する。図7は、本発明の実施形態に係る識別対象の画像を24個、例として示したものである。例えば、Pic No.0は数字の「5」を手書きした場合における手書きパターンの画像である。同様に、Pic No.2から5までは各々数字の「4」、「1」、「7」、「0」を手書きした場合における手書きパターンの画像である。各パターンは28画素×28画素、計784画素のデータから構成され、各画素のデータは、0から1の範囲に正規化された形式で学習信号生成部61に入力される。一方、各手書き画像信号に対応して、各々の正解となる数字0から9の値が教師データとして、教師信号生成部62に入力される。本実施例のニューラルネットワークは、入力された手書きパターン画像が数字の5であるか、否かを識別するニューラルネットワークであるため、最終的に教師信号生成部62から出力される値は、正解値が「5」の場合は、1を、そうでない場合は、0を差分回路5に出力する。
[ニューロモーフィックアレイ]
本実施例のニューロモーフィックアレイ3は共通ビット線32に接続される複数の素子から構成される。各ニューロモーフィック素子31は入力端子311と共通端子312を持つ2端子型の素子として説明する。入力端子311は、信号生成回路2に接続され、ニューロモーフィックアレイ3を使った推論や学習の単位で実施される検証時に、所定の変調方式に従った入力信号が印加される。また、学習アルゴリズムによるコンダクタンス変化においては、入力端子311に書き込み信号が印加され、ニューロモーフィック素子31のコンダクタンスを変化させる。共通端子312は、推論時、あるいは、学習時に入力信号が印加された場合の電流が流れる経路となる。また、推論時には接続される複数の素子の電流が共通ビット線で合算される。書き込み時には書き込み電流の経路として使用される。公知例に示すように学習時に書き込み信号を共通端子312から印加する方式も可能である。本実施例では、読出し時は入力データをパルス幅変調した信号が入力端子311と共通端子312の間に印加され、書き込み時は書き込み信号としてパルス幅を固定した矩形波が入力端子311と共通端子312の間に印加される。なお書き込み用の矩形波の数は1に限らない。
各ニューロモーフィック素子31は入力画像の1画素に対応する乗算を実行する。つまり、本実施例では784画素分のデータが入力信号であるため、784個のニューロモーフィック素子31が共通ビット線32に対して、並列に接続されている。
[学習ステップ]
学習データの各画素の情報は信号生成回路2によって、10nsから2560nsの間のパルス幅変調信号(図中w[1]〜w[n]等で記載の波形)に変換された上で、ニューロモーフィックアレイ3の各素子31の入力端子311に印加される。素子31にはコンダクタンスと電圧を乗じた電流値がパルス幅の期間流れる。共通ビット線32によって接続される全ての素子に流れる電流量総和が検出回路4で電荷量として検出される。原理的には最大パルス長の時間、つまりこの例では2550ns期間において、共通ビット線32を流れる電流量総和が積和演算結果となるため、検出回路4ではこの電荷をQV変換回路などの回路によって電圧に変換する。なお、電荷量の検出方法に関しては必ずしもQV変換回路を用いる必要はなく、その他の方式でも構わない。
差分回路5は、検出回路4から出力される電圧値と教師信号との差分信号を誤差信号として出力する。本実施例では、共通ビット線32の出力は検出回路4によって電圧値に変換されているため、教師信号もまた、電圧値に変換しておく必要がある。(図示せず)一般には、QV変換回路など想定する回路のダイナミックレンジを想定して、上値と下値に各々1と0を割り当てた電圧を教師信号として差分回路5に入力することになる。もっとも共通ビット線32の出力をADC回路などでデジタル信号に変換した場合には、教師信号はデジタル信号の値をそのまま、あるいは、簡単な演算を加えるだけで実現でき、差分回路5は簡単なデジタル差分処理で計算可能である。ここで、教師信号は、入力データに対する正解判定値を示す。本実施例では、入力された手書き数字データが「5」であるか、否かを識別するものであるため、教師信号は、入力された手書き数字画像が「5」の場合は1に、そうでなければ0に対応する電圧値となる。
学習制御回路6の中の学習判定部63は、差分回路5の出力である誤差信号をデジタル値に変換する機構、及び、学習アルゴリズムによる重みの更新量を計算する回路である。差分回路5からの誤差信号が予め設定される閾値よりも小さい場合は当該学習サイクルを終了し、次の学習サイクルに進む。当該学習サイクルで学習自体を終了することもある。学習サイクルが継続する場合は、さらに勾配降下法等を使用して(式(1)〜(5))ニューラルネットワークシステムの重み更新量を計算する。本実施例では、共通ビット線32の出力が0、もしくは1の値をとるように重み更新量を計算する。この計算はデジタル計算で行うのが一般である。
全ての重みに対して各更新量を計算した後、コンダクタンス更新量計算部64で、重み更新量に対応する各素子のコンダクタンス更新量が計算される。前述の通り、コンダクタンス更新量は素子のコンダクタンス変化レンジや分解能とコンダクタンスに対する重みの割り当て方法を元に計算される。計算結果によっては、コンダクタンス更新量が0になる場合もある。
書き込み信号生成部65では、コンダクタンス更新量計算部64で計算されたコンダクタンス変化を起こさせるために必要な書き込み信号の元データを計算する。本実施例ではニューロモーフィック素子31のコンダクタンスは、書き込み信号のパルス数に対して線形的に変化するので、書き込み信号の元データとは、印加するパルス数に相当する値となる。書き込みの方法がニューロモーフィック素子31に印加するパルス幅や電圧の場合は、素子に応じたパルス長や電圧などの書き込み元信号を生成する。書き込み信号は、信号生成回路2によって所望の信号としてニューロモーフィック素子31の入力端子311に印加される。これによって、各ニューロモーフィック素子31は理論上、学習アルゴリズムで求めたコンダクタンス値に変化する。ここまでが、通常のニューラルネットワークシステムの学習アルゴリズムをニューロモーフィックアレイに適用した場合の学習ステップである。
次に、上述までのステップに続いて実施される、本発明による調整機能を実行するステップについて説明する。
[素子調整ステップ]
上述までの学習ステップによって各ニューロモーフィック素子31に対して書き込み信号を印加した後、学習判定部63で計算した重み更新量の絶対値が最大である素子を選択する。素子調整ステップでは選択された素子に対してのみ、追加書き込み信号生成部66で追加的書き込み信号を発生させる。追加的書き込み信号は、通常の学習ステップにおいて使用されるコンダクタンス変化量の最小単位の変化を起こす信号である。この結果、選択素子には、学習アルゴリズムが計算した重み更新量を超えて書き込み信号が印加される。この後、学習判定部63は、改めて今回の学習サイクルの学習データをニューロモーフィックアレイ3に入力し、ニューロモーフィックアレイ3の出力と教師信号の差分を差分回路5で求める。この差分が前回と比較して減少した場合は、上記を繰り返す。増加、あるいは、変動しない場合はこれ以上の素子調整ステップを中止するなどの制御を行う。複数の素子に対して素子調整ステップを実行する場合は、このプロセスを調整する素子の数分だけ複数回繰り返し実施する。
人間の脳のメカニズムから着想を得たニューラルネットワークは、対象とする問題を多次元の非線形空間に変換することで機能する。入力情報はその非線形空間上に射影され、期待される出力に合致するように、ネットワークの重みを学習させることによって機能実現する。従って、個々の素子のコンダクタンス値の精度に加え、系全体の状態が最適化(最小化)されているかを判断することは、学習プロセスの観点で大変重要である。つまり、ニューロモーフィックアレイが効率的に学習アルゴリズムを実行するには、個々の素子のコンダクタンスの精度を追求することもさることながら、系全体が最適化に向かうことを考慮しながら素子のコンダクタンスを決定していくことが重要である。本実施例では、最大更新量をもつ素子の様に、部分的に選択された素子について、学習アルゴリズムが計算した変化量を超えた入力を与えることで、系全体の出力が好ましい方向に進むかを判定しながら、ニューロモーフィックアレイの学習を実施することを主張するものである。加えて、追加的書き込み信号の印加は、ニューラルネットワークシステムに対するゆらぎの様な効果を与え、例えば系が局所最適解に陥ることに対する正則化項としての効果も期待される。この場合は、前述の素子調整ステップにおいて、追加的書き込み信号を印加した後の判定処理を削除することも考えられる。
なお、素子調整ステップにおいて、追加書き込み信号を印加して学習誤差が増加した場合、その増加分が予め定められた閾値を超えた場合は、逆向きの書き込み信号を印加する制御も考えられる。学習誤差が変動しない場合は、そこで素子調整ステップを終了し、次の学習サイクルに進む。学習は、複数のデータ単位によるバッチ処理でも、あるいは、オンライン学習の様に各一個の学習データ単位に学習アルゴリズムを実行してもよい。
なお、本実施例では、1クラスの識別器として説明したが、複数クラスの識別器にも適用可能である。例えば、0から9までの10個の手書き数字画像の分類器として実現する場合は、ニューロモーフィックアレイ3を水平方向に10本並列に配設し、各共通ビット線32の各々のニューロモーフィック素子31は横方向のワード線で接続されるような構造になる。そして、各10本の共通ビット線32の出力は、各々0から9までの10個のクラスに各対応し、識別処理の結果、最も尤度の高い共通ビット線32の出力が1となり、その他の共通ビット線32の出力は0になるような学習を実行する。その場合には、学習の各ステップにおいて、本実施例の様な調整機能を共通ビット線の単位で順次実行することで、学習アルゴリズムの高速化、収束の安定化を図ることが可能になる。
なお、本実施例は、本例の手書き数字に限定する必要はなく、動・静止画像、音声、あるいはセンサなどの時系列信号など様々な情報に対して、識別や予測などを行なうニューラルネットワークに対して適用可能であることは言うまでもない。
本実施例では2端子を持つ素子を使用したニューロモーフィックアレイとして説明した。例えば、RERAMや相変化型メモリの様な素子はこの様な2端子型の素子として研究されている。一方、本実施例を3端子型の素子に適用することも可能である。その場合は、入力端子311、共通端子322の代わりに、各ニューロモーフィック素子31は読み出し端子、書き込み端子、共通端子の3端子から構成され、信号生成回路は、推論時には読出し端子と共通端子間に信号を印加し、学習時のコンダクタンス変化のためには書き込み端子と共通端子の間に信号を印加することになる。なお、3端子型のニューロモーフィック素子として、スピントロニクスを用いた磁壁移動型抵抗変化素子などが研究されている。
さらに、本実施例では調整機能ステップにおける書き込み信号は、通常の学習時に使用される書き込み信号の最小パルス幅として説明したが、それを単位にした複数単位分の信号であっても、あるいは、学習時最小パルス幅よりも短いパルス幅を使用してもよい。
この様なニューロモーフィック素子としては、任意の素子が用いられてもよい。また、ニューロモーフィック素子としては、例えば、1種類のニューロモーフィック素子が複数組み合されて用いられてもよく、あるいは、2種類以上のニューロモーフィック素子が組み合されて用いられてもよい。
本実施形態では、素子の特性としてコンダクタンスの値を変化させることが可能なニューロモーフィック素子が用いられており、その変化の分解能が有限である。
なお、ニューロモーフィック素子としては、任意の特性を変化させることが可能なものが用いられてもよく、例えば、抵抗、あるいは、光位相などの特性を変化させることが可能なものが用いられてもよい。
素子調整機構の効果についてさらに説明する。
図4の結果は、既に説明したように3層MLPにおいて、素子のコンダクタンスが確率的変動を持つ場合を想定したものである。つまり、学習ステップの各コンダクタンス変化の処理毎に、コンダクタンス書き換え結果が確率的な分布を持つ誤りをもった場合に、学習アルゴリズム収束への影響を示している。ここでは、確率的変動によって、学習アルゴリズムが動作せず、損失関数の出力が学習の進展とともに上昇し、識別率が40%を切るまでに低下していることがわかる。素子の再現性誤りが学習アルゴリズムに悪影響を与えていることがわかる。
そこで、本発明を想定して、一部のニューロモーフィック素子31に対して調整機能に相当する処理を実施してみる。学習回毎に重み更新量の絶対値の大きい順に5%、8%、10%の数のニューロモーフィック素子31について、コンダクタンスばらつきを加えた後に離散値正値に戻す処理を加えて学習アルゴリズムを進めた結果が図8、図9、図10である。本発明での調整機能は必ずしも素子のコンダクタンスを正値に戻すことにはならないが、調整機能の中で一部の素子に対する追加書き込みと、再度ニューロモーフィックアレイの出力と教師差分を評価し、学習推移を判断することの効果を間接的に示していると考える。5%に対する調整機構では、識別率自体は若干改善するものの、アルゴリズムへの影響は回避できずに、損失関数の出力は再現性ばらつきを混入させた場合と同じく、低下傾向にある。しかし、8%の素子に対して同様の調整機構を適用すると、識別性能の改善に加えて、学習アルゴリズム自体も正常な動きをするようになる。つまり、第一層の素子784個×100個の素子の中の8%程度の素子に対して、本発明の調整機構を組み込むことで学習アルゴリズムの破綻を防ぐことが可能になる。さらに10%の素子でも同等の結果を示している。なお、ここでは8%の素子に対して調整機構を組み込むことで効果があることが示されたが、これは学習アルゴリズムやオプティマイザと呼ばれる学習率更新などの手法や、ネットワークの定義、構造によって異なる。
[実施形態のまとめ]
以上のように、本実施形態に係るニューラルネットワークシステム1では、分解能が有限であるニューロモーフィック素子を使用したニューロモーフィックアレイを使ってニューラルネットワークを学習する場合の素子調整機構を開示した。つまり、通常の勾配降下法等の学習アルゴリズムに基づいて計算された重み更新量に基づく、素子のコンダクタンス更新処理の後に、改めて素子列を構成する一部の素子を選択して、それらの素子に追加的に書き込み信号を印加し、その後に、学習データを入力させた出力結果と教師信号の差分を評価することで、学習性能が改善することを示した。これらの追加的適正化処理における素子の選択方法は、単に全体に対する素子数割合や、更新量絶対値、コンダクタンス更新量(絶対値)の大きい素子などを選択的に調整する手法が開示された。また、その選択にあたっては、全体の素子の8%程度の素子を選択することでも、十分に素子特性の変動が学習アルゴリズムに与える影響が抑制され、学習アルゴリズムの収束性を改善することができることが示された。
ニューラルネットワークにおける学習アルゴリズムの経過によって、重みの絶対値が漸増するように変化するのが一般である。従って、更新量の大きな値を持つ素子は値自体が大きくなる、その結合の活性度が上昇するため、そういった結合部に対して調整機構を組み込むことは合理的である。また式(1)〜(5)でもわかるように、誤差逆伝搬法では、重みの更新量は入力信号の絶対値に比例するので、重み更新量やコンダクタンス更新量の代わりに、学習データの入力信号の大きな値を持つ素子を選択するような機構を素子調整機構に組み込むことも可能である。
また、本実施形態では、多層のニューラルネットワークを複数のニューロモーフィックアレイで実現する場合においても有効である。多層のニューラルネットワークにおいて、学習は誤差逆伝搬法などを用いて出力段に近い層から順に、層単位で重み更新量を計算していくが、この時、ニューロモーフィックアレイのコンダクタンスの適正化も同様に各アレイの学習アルゴリズムの中で実施すればよい。
例えば、3層構造、つまり、隠れ層が一層ある場合は、入力層と隠れ層の間に対応する第一のニューロモーフィックアレイと隠れ層と出力層の間に対応する第二のニューロモーフィックアレイで実現する。この場合、学習は、ニューロモーフィックアレイの出力値と教師信号の差分から重み更新量を勾配降下法などで計算し、第二のニューロモーフィックアレイの各素子のコンダクタンス変化量を計算する。求めた変化量を起こさせるための書き換え信号を素子列に印加して各素子のコンダクタンスを変更する。第一のニューロモーフィックアレイのコンダクタンス変化は第二のニューロモーフィックアレイの重み更新量の計算過程を使用して計算する。この計算過程は誤差逆伝搬法と呼ばれる手法を適用することで何層にでも遡って適用することが可能である。
ここで、本実施形態では、ニューラルネットワークにより識別する対象(識別対象)として、数字の手書き画像データを用いたが、識別対象としての限定は無く、音声やセンサ信号等のデータを用いてもよい。また、目的も手書き画像データから筆記している数字を識別させることを例に説明したが、音声信号から文字の識別、音響信号の予測や動画像データから物体検出や識別機能、あるいは、画素単位のクラスを予測するセマンティックセグメンテーションなどへの応用も可能である。
また、ニューラルネットワークとしては、任意の種類のニューラルネットワークが用いられてもよく、例えば、全結合型のニューラルネットワーク、畳み込みニューラルネットワーク、あるいは、再帰型ニューラルネットワークなどが用いられてもよい。
なお、以上に示した実施形態に係る各装置(例えば、制御装置11)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
<構成例>
一構成例として、可変な特性(例えば、コンダクタンスなど)の値に応じた重みを信号に乗算するニューロモーフィック素子を含むアレイ(本実施形態では、ニューロモーフィックアレイ3)の制御装置(本実施形態では、学習制御回路6)であって、学習アルゴリズムが出力した重みの更新量から変換したニューロモーフィック素子のコンダクタンス変化を与えることでニューロモーフィック素子の学習を行う機能において、特定の条件で抽出した一部の素子に対して追加的変動を与えながら、コンダクタンスを調整する制御部(本実施形態では、学習制御回路6の機能であり、例えば、追加書き込み信号生成部66)を備える、制御装置である。
一構成例として、制御装置において、制御部は、対象素子の選択は学習データの入力値の最も大きい素子を選択する。
一構成例として、制御装置において、制御部は、学習アルゴリズムによって計算された重み更新量が最も大きい重みに対応する素子を選択する。
一構成例として、制御装置において、制御部は、素子のコンダクタンス変化量が最も大きい素子を選択する。
一構成例として、制御装置において、制御部は、上記のいずれかの基準に基づいて設定された閾値により、複数の対象素子を選択し、素子毎に順次、上述の調整機能を実行する。
一構成例として、制御装置において、制御部は、閾値を学習の進展毎に更新する機能を持つ。
一構成例として、制御装置において、制御部は、閾値はニューラルネットワークの各層毎に異なる値を設定する機能を持つ。
一構成例として、制御装置において、制御部は、上述の調整機能を実行後、学習データを入力した結果の教師信号との差分が縮小する間は、追加パルスの印加ステップを継続する機能を持つ。
一構成例として、制御装置において、制御部(本実施形態では、学習制御回路6の機能であり、例えば、学習判定部63、コンダクタンス更新量計算部64、書き込み信号生成部65)は、ニューロモーフィック素子の離散化ステップサイズを使用して、アレイについて学習を行う。
一構成例として、制御装置において、アレイは、ニューロモーフィック素子を用いてニューラルネットワークにおける積和演算を行う回路を有する。
一構成例として、可変な特性の値に応じた重みを信号に乗算するニューロモーフィック素子を含むアレイについて、ニューロモーフィック素子の特性の離散化ステップサイズに基づいて学習アルゴリズムを演算する演算方法(例えば、学習制御回路6のコンダクタンス更新量計算部64あるいは他のコンピュータにより行われる演算の方法)であって、ニューロモーフィック素子の特性の分解能よりも高い精度でニューラルネットワークの学習を行うステップと、重みの更新量をニューロモーフィックアレイの各素子のコンダクタンスの更新量に変換するステップと、変換したコンダクタンス更新量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに更新量が最大となる素子を選択するステップと選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、を備える、ニューロモーフィックアレイの学習方法である。
一構成例として、可変な特性の値に応じた重みを信号に乗算するニューロモーフィック素子を含むアレイについて、ニューロモーフィック素子の特性の離散化ステップサイズに基づいて学習アルゴリズム演算する演算方法(例えば、学習制御回路6のコンダクタンス更新量計算部64あるいは他のコンピュータにより行われる演算の方法)であって、ニューロモーフィック素子の特性の分解能よりも高い精度でニューラルネットワークの学習を行うステップと、重みの更新量をニューロモーフィックアレイの各素子のコンダクタンスの更新量に変換するステップと、変換したコンダクタンス更新量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに更新量が最大となる素子を選択するステップと選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、をコンピュータに実行させるためのプログラムである。
ここで、コンピュータでは、例えば、CPU(Central Processing Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明によれば、ニューロモーフィックアレイを使ってニューラルネットワークシステムの学習を行う場合に、コンピュータで計算された学習アルゴリズムを安定的に実行させることができる。
また、本発明によれば、ニューロモーフィックアレイを使用したニューラルネットワークにおいて学習アルゴリズムを高速に収束することが可能になる。
また、本発明によれば、ニューロモーフィックアレイを使用したニューラルネットワークにおいて、識別性能を改善することが可能になる。
1…ニューラルネットワークシステム
2…信号生成回路
3…ニューロモーフィックアレイ
31…ニューロモーフィック素子
311…入力端子
312…共通端子
32…共通ビット線
33…ワード線
4…検出回路
5…差分回路
6…学習制御回路
61…学習信号生成部
62…教師信号生成部
63…学習判定部
64…コンダクタンス更新量計算部
65…書き込み信号生成部
66…追加書き込み信号生成部
Pic No. 0〜24…画像

Claims (11)

  1. 可変な抵抗値をとりうる2個以上の可変抵抗素子が共通ビット線で接続され、
    入力データから入力信号を生成し、上記可変抵抗素子に印加する入力信号生成回路と、
    共通ビット線に流れる電流を検出する検出回路と、
    入力データに対応する教師信号と検出回路の出力の差分を出力する差分回路と、
    ニューラルネットワークの学習アルゴリズムを実行し、重み更新量を各素子のコンダクタンス変化量に変換する学習制御回路と、
    上記可変抵抗素子のコンダクタンスを上記学習制御回路で算出した分だけ変化させるための信号を生成する書き込み信号生成回路と、
    予め定めた選別条件によって一部の可変抵抗素子を選択する選択回路から構成されるニューロモルフィック回路において、
    コンダクタンス変化量に基づく書き込み信号を印加した後、選択回路によって選択された一部の素子にさらなる書き込み信号を印加した後、
    入力信号を全ての抵抗変化素子に再入力し、検出回路の出力と教師信号の差分の変化から
    学習を継続するか、停止するかを判定する判定機構を具備してなるニューロモーフィック回路。
  2. 前記選択回路における選別条件は、重み更新量の絶対値をもとに算出された閾値によって選別することを特徴とする請求項1記載のニューロモーフィック回路。
  3. 前記選択回路における選別条件は、入力データの絶対値をもとに算出された閾値によって選別することを特徴とする請求項1記載のニューロモーフィック回路。
  4. 前記閾値は、共通ビット線に接続される素子総数に対して、一定の割合で素子が選別される様に決定することを特徴とする請求項2乃至3記載のニューロモーフィック回路。
  5. 前記閾値は学習の進行に対して変動させることを特徴とする、請求項2乃至3記載のニューロモーフィック回路。
  6. 第一の方向に配設される2本以上の前記共通ビット線で構成され、複数の共通ビット線上で端部から同じ位置に配置される複数の可変抵抗素子は、共通ビット線と異なる第二の方向に配設されるワード線によって相互に接続され、前記選択回路は各々の共通ビット線の単位で追加的書き込み信号印加処理を順次実施することを特徴とする、請求項1記載のニューロモーフィック回路。
  7. 第一の方向に配設される2本以上の前記共通ビット線で構成され、複数の共通ビット線上で端部から同じ位置に配置される複数の可変抵抗素子は、共通ビット線と異なる第二の方向に配設されるワード線によって相互に接続され、前記選択回路は各々の共通ビット線の単位で追加的書き込み信号印加処理を順次実施することを特徴とする、請求項2乃至5記載のニューロモーフィック回路。
  8. 請求項7記載のニューロモーフィック回路において、
    前記閾値を共通ビット線毎に異なる値を設定することを特徴とするニューロモーフィック回路。
  9. 前記判定機構は、追加書き込み信号を印加した後、差分の変動量が正の場合にはさらに追加の書き込み信号を印加し、負の場合には逆の方向に抵抗を変化させるための書き込み信号を印加することを特徴とする、請求項1乃至記載のニューロモーフィック回路。
  10. 複数の可変抵抗素子で構成されるニューロモーフィックアレイにおいて、ニューラルネットワークの学習を行うステップと、ニューラルネットワークの重みの更新量をニューロモーフィックアレイの各可変抵抗素子のコンダクタンスの変化量に変換するステップと、変換したコンダクタンス変化量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに一部の素子を選択するステップと選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、を備える、ニューロモーフィックアレイの学習方法。
  11. 可変な特性の値に応じた重みを信号に乗算するニューロモーフィック素子を含むニューロモーフィックアレイにおいて、ニューラルネットワークの学習を行うステップと、ニューラルネットワークの重みの更新量をニューロモーフィックアレイ素子のコンダクタンスの変化量に変換するステップと、変換したコンダクタンス変化量に基づく書き込み信号をニューロモーフィックアレイに印加するステップと、さらに一部の素子を選択するステップと、選択した素子に対してのみ追加的な書き込み信号を印加するステップと、改めて学習データをニューロモーフィックアレイに入力し、その教師信号との差分によって当該学習サイクルの終了を判定するステップと、をコンピュータに実行させるためのプログラム。
JP2020558557A 2018-12-20 2018-12-20 ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム Active JP6881693B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/046924 WO2020129204A1 (ja) 2018-12-20 2018-12-20 ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2020129204A1 JPWO2020129204A1 (ja) 2021-03-11
JP6881693B2 true JP6881693B2 (ja) 2021-06-02

Family

ID=71102729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020558557A Active JP6881693B2 (ja) 2018-12-20 2018-12-20 ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム

Country Status (3)

Country Link
US (1) US20210312272A1 (ja)
JP (1) JP6881693B2 (ja)
WO (1) WO2020129204A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220044102A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory
US20220108158A1 (en) * 2020-10-02 2022-04-07 Sandisk Technologies Llc Ultralow power inference engine with external magnetic field programming assistance

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330610A (ja) * 1999-05-19 2000-11-30 Matsushita Electric Ind Co Ltd 学習制御装置および学習制御方法
JP2003263624A (ja) * 2002-03-07 2003-09-19 Matsushita Electric Ind Co Ltd ニューラル・ネットワーク装置の学習演算回路
US10332004B2 (en) * 2015-07-13 2019-06-25 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit

Also Published As

Publication number Publication date
WO2020129204A1 (ja) 2020-06-25
US20210312272A1 (en) 2021-10-07
JPWO2020129204A1 (ja) 2021-03-11

Similar Documents

Publication Publication Date Title
WO2023284142A1 (zh) 脉冲神经网络中神经元的信号处理方法及该网络训练方法
JP7182835B2 (ja) 人工ニューラル・ネットワークを訓練する方法および人工ニューラル・ネットワークを実施する装置(人工ニューラル・ネットワークの訓練)
JP6724870B2 (ja) 人工ニューラルネットワーク回路の訓練方法、訓練プログラム、及び訓練装置
KR102589303B1 (ko) 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치
US11373092B2 (en) Training of artificial neural networks
JP6293963B1 (ja) ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム
US9330355B2 (en) Computed synapses for neuromorphic systems
US11182676B2 (en) Cooperative neural network deep reinforcement learning with partial input assistance
US20150170027A1 (en) Neuronal diversity in spiking neural networks and pattern classification
US20220067588A1 (en) Transforming a trained artificial intelligence model into a trustworthy artificial intelligence model
JP2021047854A (ja) ニューラルネットワークに対するプルーニングを行う方法及びその装置
US20150317557A1 (en) Temporal spike encoding for temporal learning
CN112990444B (zh) 一种混合式神经网络训练方法、系统、设备及存储介质
US9672464B2 (en) Method and apparatus for efficient implementation of common neuron models
JP7059458B2 (ja) 生成的敵対神経網ベースの分類システム及び方法
JP6881693B2 (ja) ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム
US20140310216A1 (en) Method for generating compact representations of spike timing-dependent plasticity curves
US11562225B2 (en) Automatic monitoring and adjustment of machine learning model training
US11461640B2 (en) Mitigation of conductance drift in neural network resistive processing units
US9542645B2 (en) Plastic synapse management
KR20230019094A (ko) 아날로그 가속기들을 위한 드리프트 계수들에서의 변동에 대응하기 위한 드리프트 정규화
US9460384B2 (en) Effecting modulation by global scalar values in a spiking neural network
US11188454B2 (en) Reduced memory neural network training
JP2021140320A (ja) スパイキングニューラルネットワーク装置およびスパイキングニューラルネットワーク装置の学習方法
US20210133556A1 (en) Feature-separated neural network processing of tabular data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201020

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201020

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210204

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881693

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150