(57)【特許請求の範囲】
【請求項１】
プロセッサ（６１１）及びメモリ（６１２）を有するコントローラ（６１０）が、メモリスタ神経形態学的回路をトレーニングするための方法であって、
前記コントローラが、ニューラルネットワーク（１０）のフィードフォワード動作中に、メモリスタ素子（１１３、２１３、４１３、５１３）の第１端子の入力電圧を検出する（３１０）こと、
メモリスタ神経形態学的回路としてのニューラルネットワークは、メモリスタ素子と、そのメモリスタ素子に接続されたニューロン回路（１１２、１１４、２１２、２１４、４１２、４１４、５１２、５１４）とを含み、
前記コントローラが、ニューラルネットワークの誤差逆伝搬動作中に、メモリスタ素子の第２端子の誤差電圧を検出する（３２０）こと、
前記コントローラが、トレーニングルールに従い、検出された入力電圧と検出された誤差電圧とに基づき、メモリスタ素子の望ましいコンダクタンス変化を計算する（３３０）こと、及び、
前記コントローラが、メモリスタ素子にトレーニング電圧を印加する（３４０）ことを備え、そのトレーニング電圧は、望ましいコンダクタンス変化の対数値に比例する、メモリスタ神経形態学的回路をトレーニングするための方法。
【請求項２】
望ましいコンダクタンス変化は、検出された入力電圧及び検出された誤差電圧として計算され、そして、
トレーニング電圧は、メモリスタ素子の第１端子への第１相補電圧と、メモリスタ素子の第２端子への第２相補電圧として印加される請求項１の方法。
【請求項３】
第１相補電圧は、検出された入力電圧の対数値に比例し、そして、
第２相補電圧は、検出された誤差電圧の対数値に比例する請求項２の方法。
【請求項４】
前記コントローラが、第１相補電圧がメモリスタ素子の閾値電圧よりも小さくなり、第２相補電圧がメモリスタ素子の閾値電圧よりも小さくなり、及び、第１相補電圧と第２相補電圧の合計がメモリスタ素子の閾値電圧よりも大きくなるように、第１相補電圧と第２相補電圧を制限することと、正規化することとの少なくとも１つを実行することをさらに備える請求項２の方法。
【請求項５】
前記コントローラは、入力電圧検出と誤差電圧検出とを、複数の入力パターンに対して反復して実行し、そして、
望ましいコンダクタンス変化は、ΔＧＢＡＴＣＨ＝Σｘ＊ｅとして計算され、そこにおいて、ΔＧＢＡＴＣＨはバッチコンダクタンス変化であり、ｘ及びｅは、それぞれ、複数の入力パターンの各々で検出された入力電圧及び検出された誤差電圧であり、Σは複数の入力パターンに渡る合計を示す請求項１の方法。
【請求項６】
前記コントローラが、トレーニング電圧がメモリスタ素子の閾値電圧よりも大きくなり、メモリスタ素子の閾値電圧の２倍よりも小さくなるように制限することと、正規化することとの少なくとも１つを実行することをさらに備える請求項５の方法。
【請求項７】
ニューロン回路は、複数の入力ニューロン（４１２、５１２）と、複数の出力ニューロン（４１４、５１４）とを含み、及び、
メモリスタ素子は、クロスバー回路（４００、５００）として、複数の入力ニューロンを複数の出力ニューロンと交差接続するメモリスタ素子の複数の差動対に含まれる請求項１乃至６のいずれか１項の方法。
【請求項８】
前記コントローラが、第１の時間ステップで、メモリスタ素子の複数の差動対の第１のメモリスタ素子をトレーニングすること、第１のメモリスタ素子の各々は、フィードフォワード動作中に正の入力電圧と、誤差逆伝搬動作中に正の誤差電圧とを有するものであり、
前記コントローラが、第２の時間ステップで、メモリスタ素子の複数の差動対の第２のメモリスタ素子をトレーニングすること、第２のメモリスタ素子の各々は、フィードフォワード動作中に負の入力電圧と、誤差逆伝搬動作中に負の誤差電圧とを有するものであり、
前記コントローラが、第３の時間ステップで、メモリスタ素子の複数の差動対の第３のメモリスタ素子をトレーニングすること、第３のメモリスタ素子の各々は、フィードフォワード動作中に正の入力電圧と、誤差逆伝搬動作中に負の誤差電圧とを有するものであり、及び
前記コントローラが、第４の時間ステップで、メモリスタ素子の複数の差動対の第４のメモリスタ素子をトレーニングすること、第４のメモリスタ素子の各々は、フィードフォワード動作中に負の入力電圧と、誤差逆伝搬動作中に正の誤差電圧とを有するものである、をさらに備える請求項７の方法。
【請求項９】
前記コントローラは、入力電圧検出の際、フィードフォワード動作中に、複数の入力ニューロンにおいて複数の入力電圧を検出し、
前記コントローラは、誤差電圧検出の際、誤差逆伝搬動作中に、複数の出力ニューロンにおいて複数の誤差電圧を検出する請求項７の方法。
【請求項１０】
前記コントローラが、メモリスタ素子の複数の差動対の各メモリスタ素子に対する望ましいコンダクタンス変化を計算するために、検出された複数の入力電圧を、検出された複数の誤差電圧と行列乗算することをさらに備える請求項９の方法。
【請求項１１】
前記コントローラが、第１の時間ステップで、メモリスタ素子の複数の差動対の第１のメモリスタ素子をトレーニングすること、第１のメモリスタ素子の各々は、正の望ましいコンダクタンス変化を有するものであり、及び、
前記コントローラが、第２の時間ステップで、メモリスタ素子の複数の差動対の第２のメモリスタ素子をトレーニングすること、第２のメモリスタ素子の各々は、負の望ましいコンダクタンス変化を有するものである、をさらに備え
第１のメモリスタ素子と第２のメモリスタ素子とは同じ端子を共有する請求項１０の方法。
【請求項１２】
第１の時間ステップ中に、負の固定電圧が共有される同じ端子に印加され、及び
第２の時間ステップ中に、正の固定電圧が供給される同じ端子に印加される請求項１１の方法。
【請求項１３】
メモリスタ素子（１１３、２１３、４１３、５１３）と、
メモリスタ素子に接続されるニューロン回路（１１２、１１４、２１２、２１４、４１２、４１４、５１２、５１４）と、
プロセッサ（６１１）及びメモリ（６１２）を有するコントローラ（６１０）と、を備え、
コントローラは、
フィードフォワード動作中に、メモリスタ素子の第１端子の入力電圧を検出し（３１０）、
誤差逆伝搬動作中に、メモリスタ素子の第２端子の誤差電圧を検出し（３２０）、
検出された入力電圧及び検出された誤差電圧に基づき、メモリスタ素子の望ましいコンダクタンス変化を計算し（３３０）、そして、
メモリスタ素子にトレーニング電圧を印加する（３４０）ようにプログラムされ、
トレーニング電圧は、望ましいコンダクタンス変化の対数値に比例する、ニューラルネットワークを実現するためのメモリスタ神経形態学的回路。
【請求項１４】
メモリスタ素子は、ニューロン回路（２１２、２１４、４１２、４１４、５１２、５１４）に接続されたメモリスタ素子の差動対の第１のメモリスタ素子であり、メモリスタ素子の差動対は、第１のメモリスタ素子と第２のメモリスタ素子とを含む請求項１３のメモリスタ神経形態学的回路。
【請求項１５】
メモリスタ素子の差動対に接続された差動増幅器（２３０）をさらに備え、
差動増幅器は、第１のメモリスタ素子の出力と第２のメモリスタ素子の出力の差分を計算するように構成される請求項１４のメモリスタ神経形態学的回路。
【請求項１６】
メモリスタ素子の差動対は、メモリスタ素子の複数の差動対（５１３）の第１の差動対であり、及び、
メモリスタ素子の複数の差動対は、ニューロン回路（５１２、５１４）に接続される請求項１４のメモリスタ神経形態学的回路。
【請求項１７】
複数のクロスバーナノワイヤ（４７０、４８０）をさらに含み、
ニューロン回路、メモリスタ素子、及び複数のクロスバーナノワイヤは、クロスバー回路（４００、５００）として一緒に接続される請求項１３乃至１６のいずれか１項のメモリスタ神経形態学的回路。
【請求項１８】
ニューロン回路は、入力ニューロンと出力ニューロンの少なくとも１つを含む請求項１３乃至１７のいずれか１項のメモリスタ神経形態学的回路。
【請求項１９】
メモリスタ素子は、入力ニューロンと出力ニューロンとの間に接続される請求項１８のメモリスタ神経形態学的回路。
【請求項２０】
入力ニューロン、出力ニューロン、及びメモリスタ素子が単一の集積回路として一体的に形成される請求項１８のメモリスタ神経形態学的回路。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２０１５年７月１３日に出願された米国特許出願番号１４／７９７２８４に基づくものであり、その内容は、ここに参照によって援用される。
【技術分野】
【０００２】
本開示は、ニューラルネットワークを実装するメモリスタ神経形態学的回路、及びメモリスタ神経形態学的回路をトレーニングする方法に関する。
【背景技術】
【０００３】
人工ニューラルネットワークは、生物学的神経処理のモデルとして人工知能の分野で長く使用されてきた。従来、ニューラルネットワークは、中央処理装置（ＣＰＵｓ）や画像処理装置（ＧＰＵｓ）など、伝統的なフォンノイマンアーキテクチャのコンピューティングハードウエアと結合されたソフトウエアに実装されてきた。そのような実装は、膨大な量の記憶領域と電力を必要とする。
【０００４】
従って、より効率的で専用のハードウエア技術の使用に向けての動きが、長年にわたって迫られている。近年では、メモリスタとも呼ばれる、統合されたメモリスタ素子を備えたハイブリッド相補型金属酸化膜半導体（ＣＭＯＳ）回路が、１つの選択肢として浮上している（非特許文献１）。メモリスタ素子は、アナログの形態でシナプス重みをモデル化することができる抵抗スイッチング特性のため、ニューラルネットワークにおけるシナプス重みを実装するのに非常に適している。しかしながら、統合されたメモリスタ素子を備えるニューラルネットワークは、典型的なメモリスタ素子に存在する非線形動特性（非特許文献２）の観点において、ニューラルネットワークのトレーニングに新たな課題をもたらす。
【０００５】
１つのアプローチは、シミュレートされたニューラルネットワークがソフトウエアでトレーニングされるｅｘ−ｓｕｉｔトレーニングを実施することであり、その後、重みは、ＣＭＯＳ−メモリスタハードウエアに導入される（非特許文献３）。しかしながら、このアプローチは、オンライントレーニングが実行されないので、ハードウエアのばらつきを十分に考慮していない可能性がある点で懸念がある。その結果、ハードウエアニューラルネットワークはソフトウエアシミュレーションに対してアンダーパフォームする懸念がある。
【０００６】
逆に、ＣＭＯＳ−メモリスタハードウエアのｉｎ−ｓｕｉｔトレーニングを実行する１つのアプローチは、メモリスタ素子の非線形動特性を考慮するために、閉ループのチューニング制御の実行を含む（非特許文献３，４）。この場合、ｉｎ−ｓｕｉｔトレーニングアプローチは、より複雑な多層のニューラルネットワークに対して、あるいはより複雑なトレーニングアルゴリズム（例えば、逆伝播法、非特許文献５参照）であると、実行できない可能性があることが懸念される。これは、閉ループのチューニング制御プロセスが時間がかかるものであり、フィードバック回路が複雑になるためである。その結果、このアプローチでは実用的な速度で調整できない可能性があることが懸念される。
【０００７】
上記の理由のために、ＣＭＯＳ−メモリスタハードウエアの最近のｉｎ−ｓｉｔｕトレーニングは、主に、学習のため、スパイクタイミング依存可塑性（ＳＴＤＰ）またはデルタルール（非特許文献３）に焦点を当てている。しかしながら、逆伝搬は、多層ニューラルネットワークの基本的なトレーニングアルゴリズムと広く考えられている（非特許文献５）ので、それらのトレーニングルールは、より要求の厳しいアプリケーション（例えば、自動車または航空宇宙）に対する堅牢な解決策を提供できない可能性がある。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】K. K. Likharev, CrossNets: Neuromorphic hybrid CMOS/nanoelectronic networks, Sci. Adv. Mater., vol. 3, pp. 322-331, Jun. 2011.
【非特許文献２】F. Merrikh-Bayat et al. A phenomenological model of memristive behavior in Pt/TiO2-x/Pt devices, accepted to Applied Physics A, 2014.
【非特許文献３】F. Alibart et al., Pattern classification by memristive crossbar circuits using ex-situ and in-situ training, Nature Comm., vol. 4, art. 2071, 2013.
【非特許文献４】F. Alibart et. al., High precision tuning of state for memristive devices by adaptable variation-tolerant algorithm, Nanotechnology, vol. 23, p. 075201, 2012.
【非特許文献５】Y. LeCun et. al., Efficient backprop, in Neural Networks: Tricks of the trade (G. Orr and M. K., eds.), Springer, 1998.
【発明の概要】
【０００９】
本開示の第１の態様において、プロセッサ及びメモリを有するコントローラが、メモリスタ神経形態学的回路をトレーニングするための方法が提供される。その方法は、コントローラが、ニューラルネットワークのフィードフォワード動作中に、メモリスタ素子の第１端子の入力電圧を検出することを含み、ニューラルネットワークは、メモリスタ素子と、そのメモリスタ素子に接続されたニューロン回路とを含む。その方法は、さらに、コントローラが、ニューラルネットワークの誤差逆伝搬動作中に、メモリスタ素子の第２端子の誤差電圧を検出することを含む。その方法は、さらに、コントローラが、トレーニングルールに従い、検出された入力電圧と検出された誤差電圧とに基づき、メモリスタ素子の望ましいコンダクタンス変化を計算することを含む。そして、その方法は、さらに、コントローラが、メモリスタ素子にトレーニング電圧を印加することを含み、そのトレーニング電圧は、望ましいコンダクタンス変化の対数値に比例する。
【００１０】
本開示の第２の態様において、ニューラルネットワークを実現するためのメモリスタ神経形態学的回路が提供される。メモリスタ神経形態学的回路は、メモリスタ素子と、メモリスタ素子に接続されるニューロン回路と、プロセッサ及びメモリを有するコントローラとを含む。コントローラは、フィードフォワード動作中に、メモリスタ素子の第１端子の入力電圧を検出し、誤差逆伝搬動作中に、メモリスタ素子の第２端子の誤差電圧を検出し、検出された入力電圧及び検出された誤差電圧に基づき、メモリスタ素子の望ましいコンダクタンス変化を計算し、そして、メモリスタ素子にトレーニング電圧を印加するようにプログラムされ、トレーニング電圧は、望ましいコンダクタンス変化の対数値に比例する。
【００１１】
本開示のさらに他の目的、利点および特徴は、明細書および図面を検討した後に明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、本開示によるニューラルネットワークを示す概略図である。
【図２】図２は、本開示の第１実施形態によるメモリスタ神経形態学的回路を示す概略図である。
【図３】図３は、メモリスタ素子のコンダクタンス変化曲線を示すグラフである。
【図４】図４は、ＶをΔＧに対応付けるコンダクタンスマップを示すグラフである。
【図５】図５は、フィードフォワード及び誤差逆伝搬のための回路素子を備えた、第１実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図６】図６は、第１実施形態によるトレーニングプロセスを示すフローチャートである。
【図７】図７は、本開示の第２実施形態によるメモリスタ神経形態学的回路を示す斜視図である。
【図８Ａ】図８Ａは、フィードバック動作中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図８Ｂ】図８Ｂは、誤差逆伝搬動作中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図９】図９は、確率的トレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１０Ａ】図１０Ａは、確率的トレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１０Ｂ】図１０Ｂは、確率的トレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１０Ｃ】図１０Ｃは、確率的トレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１０Ｄ】図１０Ｄは、確率的トレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１１Ａ】図１１Ａは、バッチトレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１１Ｂ】図１１Ｂは、バッチトレーニング中の、第２実施形態のメモリスタ神経形態学的回路を示す概略図である。
【図１２】図１２は、本開示による制御システムを示す概略図である。
【発明を実施するための形態】
【００１３】
本開示の第１実施形態が、図１〜６を参照して説明される。
【００１４】
図１は、人工ニューラルネットワーク１０を示す概略図である。ニューラルネットワーク１０は、入力１１，入力ニューロン１２、重み１３，出力ニューロン１４、及び出力１５を含む。ここで、図１は、ニューラルネットワーク１０の代表的な一対の層を示している。換言すると、図１は、１つの入力層と１つの出力層を示しているが、入力ニューロン１２は、（図示されない）ニューロンの前の層からの出力としての入力１１を受領しても良い。同様に、出力ニューロン１４は、（図示されない）ニューロンの後ろの層へ入力される出力１５を出力しても良い。このように、本明細書で使用される入力及び出力との用語は、相対的な用語であり、入力ニューロン１２は最初の層あるいは隠れ層であってもよいことを意味し、同様に、出力ニューロンは、最後の層あるいは隠れ層であっても良いことを意味する。
【００１５】
入力１１は、個々の入力ｘ１、ｘ２などをｘｎまで含み、入力ニューロン１２のそれぞれに入力される。そして、入力ニューロン１２は、シナプスと呼ばれることもある重み１３を介して出力ニューロン１４に接続される。その後、出力１５が、出力ニューロン１４から出力される。具体的には、出力ニューロン１４の各々が、それぞれ個々の出力ｙ１、ｙ２、などをｙｎまで出力するように構成されている。入力ニューロン１２と出力ニューロン１４とはノードと呼ばれることがあり、重み１３はシナプスと呼ばれることがある。
【００１６】
図１において、入力ニューロン１２と出力ニューロン１４とは、非繰り返しの、完全接続構成で示されている。しかしながら、この型式は代表的なものであって、種々の他の型式が考えられる。本明細書で使用される代表的なものとは、例としての役割を果たすことを意味し、必ずしも好ましいまたは有利な態様と解釈される必要はない。
【００１７】
本実施形態において、ニューラルネットワーク１０は、ハイブリッドＣＭＯＳ−メモリスタ型回路であるメモリスタ神経形態学的回路１００として物理的に実現されている。図２は、本実施形態によるメモリスタ神経形態学的回路１００の一部を示す概略図である。メモリスタ神経形態学的回路１００は、メモリスタ素子１１３を通じて出力ニューロン１１４に接続される入力ニューロン１１２を含む。入力ｘｉ及び出力ｙｉは電圧信号である。ここで、入力ニューロン１１２と出力ニューロン１１４はＣＭＯＳ素子である。入力ニューロン１１２は、ニューロン回路として物理的に実現される。具体的には、入力ニューロン１１２は、好ましくは、入力ｘｉを変換する活性化関数φ（又は入力−出力関数）を有する集積回路（ＩＣ）である。活性化関数φは、線形、ロジスティックシグモイド、双曲線正接、正規化線形、または様々な活性化関数のいずれか１つであってもよい。活性化関数φは、入力ニューロン１１２と出力ニューロン１１４に対して同じであっても良いし、異なっていても良い。
【００１８】
入力ニューロン１１２は、変換された電圧信号をメモリスタ素子１１３へ出力する。加えて、入力ニューロン１１２は、活性化関数φに先立って、そこに入力されたすべての信号を合計する総和関数を含んでも良い。あるいは、総和関数は、別個の回路（例えば、総和オペアンプ回路）として実現されてもよい。本実施形態においては、出力ニューロン１１４も、ニューロン回路として実現され、入力ニューロン１１２と同じ構成を有している。しかしながら、これに限定されず、出力ニューロン１１４の構成は、例えば、総和関数を含むか含まないかによって異なっていてもよい。入力ニューロン１１２及び出力ニューロン１１４の入力および出力を読み取るために、センシング回路（図示せず）が設けられることが好ましい。
【００１９】
さらに図２を参照すると、本実施形態のメモリスタ素子１１３は、最小値ＧＭＩＮと最大値ＧＭＡＸとの間で、可逆的かつ連続的に調整可能なコンダクタンスＧを有するバイポーラメモリスタ素子である。本実施形態においては、メモリスタ素子１１３は、好ましくは、Ｐｔ／ＴｉＯ２−Ｘ／Ｐｔ金属酸化物素子であるが、代替的に、異なる金属酸化物素子、相変化メモリ、磁気トンネル接合メモリセル、固体抵抗スイッチング素子などとして実現されても良い。
【００２０】
メモリスタ素子１１３のコンダクタンスＧは、ニューラルネットワーク１０において重みｗｉとして働く。具体的には、ニューラルネットワーク１０がパターンを分類するとき、入力ニューロン１１２からの入力電圧信号が、オームの法則に従って、メモリスタ素子１１３のコンダクタンスＧによってリニアにスケーリングされ、出力ニューロン１１４へ送られる。同様に、ニューラルネットワーク１０が、例えば逆伝播によってトレーニングされる場合、誤差がニューラルネットワーク１０内を逆伝播されるときに、出力ニューロン１１４からの誤差信号が、メモリスタ素子１１３のコンダクタンスＧによってリニアにスケーリングされ、入力ニューロン１１２に送られる。ニューラルネットワーク１０のトレーニングの間、メモリスタ素子１１３のコンダクタンスＧは、トレーニングルールに従って調整されることができる。本実施形態では、トレーニングルールは、好ましくは逆伝播であるが、人工ニューラルネットワークの分野において公知である任意のトレーニングルールであっても良い。
【００２１】
一般的に、メモリスタ素子１１３のコンダクタンスＧは、負のトレーニング電圧ＶＳＥＴが印加されたときに増加され（すなわち、セットされ）、正のトレーニング電圧ＶＲＥＳＥＴが印加されたときに減少される（すなわち、リセットされる）。以下では、簡単化のため、ＶＳＥＴ及びＶＲＥＳＥＴが、表記が明示されることなく、それぞれの振幅に関して説明される。図２において、ＶＳＥＴ及びＶＲＥＳＥＴは、メモリスタ素子１１３へ直接的に印加されるように示されている。これは、入力ニューロン１１２及び出力ニューロン１１４の活性化関数φによってＶＳＥＴ及びＶＲＥＳＥＴ電圧信号自体が変換されないように行われる。もしくは、入力ニューロン１１２及び出力ニューロン１１４が、線形、またはほぼ線形の活性化関数φで構成されている場合、ＶＳＥＴ及びＶＲＥＳＥＴ電圧信号は、代わりに、入力ニューロン１１２及び出力ニューロン１１４を介して送信されてもよい。
【００２２】
概して、メモリスタ素子１１３におけるコンダクタンス変化ΔＧは、そこに印加されるトレーニング電圧Ｖの積分に依存する。しかしながら、メモリスタ素子１１３の内部動特性が非常に非線形であり、その結果、メモリスタ素子１１３のコンダクタンス変化ΔＧは、メモリスタ素子１１３自体の瞬間的なコンダクタンスＧにも依存する。具体的には、ΔＧは数式１として与えられる。
（数１）    ΔＧ＝ｆ（Ｇ、Ｖ、Δｔ）
そこにおいて、Ｇはメモリスタ素子１１３自体の瞬時コンダクタンス、Ｖは印加されるトレーニング電圧信号（トレーニング電圧信号の振幅と符号の両方を包含する）、及びΔｔはトレーニング電圧信号が印加される期間である。以下では、簡単化のため、ΔＧが、表記が明示されることなく、その大きさに関して説明される。
【００２３】
図３は、メモリスタ素子１１３に印加されたときの、メモリスタ素子１１３の瞬時コンダクタンスＧの範囲にわたる、複数の異なるトレーニング電圧信号の例示的なコンダクタンス変化曲線を示している。具体的には、図３は、種々の振幅のトレーニング電圧信号がメモリスタ素子１１３に印加されたときの、コンダクタンス変化ΔＧと瞬時コンダクタンスＧとの関係を示している。
【００２４】
図３において、印加されるトレーニング電圧信号の振幅及び符号の影響を分離するために、全てのトレーニング電圧信号は所定の期間Δｔ（例えば、１０μｓ）だけ印加される。なお、図３に示されるトレーニング電圧信号は、例示の目的のために任意に選択されたものであり、それゆえ、限定するものとして解釈されるべきではないことに留意すべきである。同様に、図３における、コンダクタンス変化曲線の特定の形状は、典型的なものではあるが、それにも係わらずメモリスタ素子固有のものであり、それゆえ、同じく本質的に例示的なものである。例えば、等しく本実施形態に適用可能な異なるメモリスタ素子では、ＶＳＥＴのコンダクタンス変化曲線が、瞬時コンダクタンスＧがＧＭＡＸに近づくにつれて減少するかもしれない。
【００２５】
図３に示されるように、与えられた任意のトレーニング電圧信号について、メモリスタ素子１１３のコンダクタンス変化ΔＧは、メモリスタ素子１１３自体の瞬時コンダクタンスＧに依存する。さらに、メモリスタ素子１１３自体の任意の瞬時コンダクタンスＧにおいて、メモリスタ素子１１３のコンダクタンス変化ΔＧは、印加されるトレーニング電圧信号の大きさと符号の両方に依存する。その上、コンダクタンス変化曲線は、メモリスタ素子１１３のコンダクタンス変化ΔＧが、それらのパラメータのいずれに関しても線形ではないことを示している。
【００２６】
図３は、ＶＳＥＴが閾値電圧ＶＳＥＴＴＨよりも低いとき、又はＶＲＥＳＥＴが閾値電圧ＶＲＥＳＥＴＴＨよりも低いとき、メモリスタ素子１１３のコンダクタンス変化ΔＧが、Ｇの全範囲においてゼロであることも示している。この特有の非線形性は、メモリスタ素子１１３のコンダクタンスＧが、選択的に、（すなわち、閾値電圧よりも低い電圧信号を印加することによって）読み出され、または、（すなわち、閾値電圧を超える電圧信号を印加することによって）書き込まれることが可能となることにより有用である。特に、閾値電圧よりも低い電圧信号で読み出すとき、メモリスタ素子１１３の瞬時コンダクタンスＧは乱されない。
【００２７】
より具体的には、メモリスタ素子１１３のコンダクタンスＧを読み出すとき、読出閾値電圧ＶＲＥＡＤＴＨ以下の振幅を持った読出電圧ＶＲＥＡＤがメモリスタ素子１１３に印加される。ここで、コンダクタンスは無指向性であり、オームの法則を用いていずれの方向に測定してもよいので、ＶＲＥＡＤの方向性は正または負のいずれかとして設定することができる。ＶＲＥＡＤが正の信号として設定されたとき、ＶＲＥＡＤＴＨの振幅は、ＶＲＥＳＥＴＴＨの振幅以下にセットされる。逆に、ＶＲＥＡＤが負の信号として設定されたとき、ＶＲＥＡＤＴＨの振幅は、ＶＳＥＴＴＨの振幅以下にセットされる。ＶＲＥＡＤの方向性は任意に設定可能であるので、以下に用いられるＶＲＥＡＤは、正または負の読み出し信号のいずれを指すものであっても良い。
【００２８】
実際には、ＶＲＥＡＤＴＨは、概して安全マージン分だけＶＳＥＴＴＨ又はＶＲＥＳＥＴＴＨよりも低くセットされ、それにより、メモリスタ素子１１３のコンダクタンスＧを読み出すときに、メモリスタ素子１１３のコンダクタンスＧが意図せずに変化しないようにすることができる。これは、ＶＳＥＴＴＨ及びＶＲＥＳＥＴＴＨの値が、複数のメモリスタ素子間で変化し得るとともに、印加される電圧信号の異なる期間Δｔでも変化し得るためである。１つの例示的な設定において、特定のＰｔ／ＴｉＯ２−Ｘ／Ｐｔ金属酸化物素子は、それぞれ−０．８Ｖ及び１．３５ＶのＶＳＥＴＴＨ値及びＶＲＥＳＥＴＴＨ値を有することが分かっている。この特定のＰｔ／ＴｉＯ２−Ｘ／Ｐｔ金属酸化物素子のコンダクタンスＧを読み出すときに安全マージンを確保するために、読出閾値電圧ＶＲＥＡＤＴＨの大きさが０．５Ｖ、すなわち、実質的に、ＶＳＥＴＴＨ及びＶＲＥＳＥＴＴＨの公称値よりも低くセットされる。ここで、様々な安全マージンを使用することができ、より大きい又はより小さい安全マージンを使用するか、または安全マージンをまったく使用しない他の設定も考えられる。
【００２９】
以下の説明を簡略化するために、総称用語ＶＴＨが、ＶＲＥＡＤＴＨ、ＶＳＥＴＴＨ、及びＶＲＥＳＥＴＴＨに全般的に言及するために以下で使用される。具体的には、セットプロセス及びリセットプロセスの両方において、ＶＴＨより低い電圧を印加するときΔＧ＝０であり、ＶＴＨ以上の電圧を印加するとき｜ΔＧ｜＞０となる。
【００３０】
図３に戻り、上述したように、すべてのコンダクタンス変化曲線は、同じ所定の期間Δｔだけ印加される電圧信号から得られる。ここで、電圧信号の期間Δｔを変化させることは、得られるコンダクタンス変化ΔＧをリニアにスケーリングするものとして近似することができる。換言すれば、図３に示されるコンダクタンス変化曲線の振幅は、Ｇの全範囲にわたって線形係数によってスケーリングされうる。これは、本実施形態では、コンダクタンスの変化率ΔＧ／Δｔが、印加されるトレーニング電圧の期間Δｔにわたってほぼ一定であるＧの全範囲と比較して、コンダクタンス変化ΔＧの大きさが十分に小さいためである。
【００３１】
上述した非線型性を考慮するために、本実施形態のニューラルネットワーク１０は、好ましくは、ＶＳＥＴとＶＲＥＳＥＴとの両方に対するΔＧを持つコンダクタンスマップを使用することによってトレーニングされ、その結果、望ましいΔＧが与えられると、対応するＶＳＥＴ又はＶＲＥＳＥＴを得ることができる。なお、典型的なメモリスタ素子において、Ｖは、ΔＧの対数値に比例することに留意されるべきである。この理由のため、本実施形態は、好ましくは、Ｖを数式２の形態でΔＧに対応付けるコンダクタンスマップを使用する。
（数２）    Ｖ＝ａ＊ｌｏｇｃ（ΔＧ’）＋ｂ
そこにおいて、ａ、ｂ及びｃは、メモリスタ素子固有の所定のパラメータであり、ΔＧ’は、［０，１］の範囲で正規化されたΔＧである。この正規化プロセスは、対数関数に対応するための形式的手続きであり、対数マッピングにとっては一般的である。簡潔さのため、数式２の対数関数は、以下の説明及び図において、ｌｏｇ（）と称される。
【００３２】
本実施形態において、コンダクタンスマップは、様々な方法で導き出すことができる。例えば、コンダクタンスマップは、特定のメモリスタ素子の手作業での特徴付けによって導出されても良い。いずれの場合でも、コンダクタンスマップが導出される方法の詳細は、ここでは重要ではない。例示的なコンダクタンスマップが、図４にグラフの形態で示されており、そこでは、ＶＳＥＴ及びＶＲＥＳＥＴの振幅が、数式２に従って、ΔＧの正規化された値の対数値に比例している。図４の例は、説明的、かつ、素子固有のものであり、したがって、限定するものとして解釈されるべきではない。
【００３３】
本実施形態のニューラルネットワーク１０は、好ましくは、バックプロパゲーションもしくは単にバックプロップとも呼ばれることがある、逆伝搬トレーニングによってトレーニングされる。図５は、本実施形態による、メモリスタ神経形態学的回路２００の代表的な電気的構成を示す回路図である。メモリスタ神経形態学的回路２００は、複数の入力ニューロン２１２、複数の出力ニューロン２１４（簡略化のため１つを図示）、及び入力ニューロン２１２を出力ニューロン２１４に接続する複数の重み（差動対２１３）を含む。図５において、入力ニューロン２１２、出力ニューロン２１４、及び差動対２１３の各メモリスタ素子の個々の構成及び特性は、図２に示されるもののように、同じであることが好ましい。さらに、前述したように、本明細書で使用される入力及び出力との用語は相対的な用語であり、入力ニューロン２１２は、最初の層あるいは隠れ層であってもよいことを意味し、同様に、出力ニューロン２１４は、最後の層あるいは隠れ層であっても良いことを意味する。
【００３４】
この技術分野の当業者に知られているように、逆伝搬トレーニングは、典型的には、３つのステップを含む。最初に、（フォワードパスとも称されることがある）フィードフォワードの間に、ニューラルネットワーク１０が、入力信号が入力ニューロン２１２から出力ニューロン２１４の方向に伝搬する入力パターンを分類するために使用される。次に、逆伝搬の間に、誤差信号が出力ニューロン２１４から入力ニューロン２１２の方向に逆伝搬される。最後に、トレーニングの間に、ニューラルネットワーク１０の重み１３が数式３に従ってトレーニングされる。
（数３）    ΔＧ＝ε＊ｘ＊ｅ
そこにおいて、ΔＧは望ましいコンダクタンスの変化、εは任意にセットすることができる学習率、ｘは前の層からの入力、ｅは次の層から逆伝搬される誤差である。
【００３５】
出力ニューロン２１４が最後の層にある場合、その誤差ｅｌａｓｔは数式４によって与えられる。
（数４）    ｅｌａｓｔ＝φ’（ｙｄｅｓｉｒｅｄ−ｙ）
そこにおいて、φ’は出力ニューロン２１４の活性化関数の導関数、ｙｄｅｓｉｒｅｄは出力ニューロン２１４の望ましい出力、及びｙは出力ニューロン２１４の実際の出力である。
【００３６】
逆に、入力ニューロン２１２又は出力ニューロン２１４が隠れ層を形成する場合、任意の隠れ層の誤差ｅｈｉｄｄｅｎは数式５によって与えられる。
（数５）    ｅｈｉｄｄｅｎ＝φ’（ｗｈｉｄｄｅｎ−ｔｏ−ｎｅｘｔ＊ｅｎｅｘｔ）
そこにおいて、ｗｈｉｄｄｅｎ−ｔｏ−ｎｅｘｔは任意の隠れ層と次の層からの重み、ｅｎｅｘｔは次の層からの誤差信号である。φ’は、再び、任意の隠れ層におけるニューロンの活性化関数の導関数である。数式５から、各々の誤差信号は次の層の誤差信号から計算されることが理解される。それゆえ、ニューラルネットワーク１０の誤差信号は、最後の層から逆向きに、換言すると、誤差逆伝搬によって計算される。
【００３７】
数式３において、ΔＧは、ε、ｘ、及びｅの符号に依存して、正又は負の値であってもよい。この理由のため、ニューラルネットワーク１０の重み１３は、好ましくは負の最小値と正の最大値との間の範囲にあるので、重み１３はトレーニングアルゴリズムの要求に従って正または負であってもよい。図５のメモリスタ神経形態学的回路において、これは、メモリスタ素子の差動対２１３を用いることによって実現される。図５に示すように、メモリスタ素子の各差動対２１３は、Ｇ＋の瞬時コンダクタンスを持つメモリスタ素子と、Ｇ−の瞬時コンダクタンスを持つメモリスタ素子とを含む。ここで、Ｇ＋とＧ−の両方とも、実際には正の値であり、記号表記は、以下の説明から明らかとなるように、ラベル付けする目的のためであることに留意すべきである。
【００３８】
ニューラルネットワーク１０のフィードフォワード動作中、各入力ニューロン２１２の出力を合計するために、メモリスタ素子の差動対２１３は総和オペアンプ回路２２０に接続される。総和オペアンプ回路２２０は、典型的な負帰還加算増幅器として構成することができる。本実施形態では、好ましくは、図５に示されるように、Ｇ＋コンダクタンスを通過したすべての電圧信号を合計するための１つの総和オペアンプ回路２２１と、Ｇ−コンダクタンスを通過したすべての電圧信号を合計するためのもう１つの総和オペアンプ回路２２２との、２つの総和オペアンプ回路２２０が各出力ニューロン２１４に対して与えられる。一対の総和オペアンプ回路２２０は、次に、その構成が好ましくは典型的なものであり（例えば、ユニティゲインフィードバック抵抗を備えたオペアンプ）、それゆえ、その詳細は簡潔のために省略される、ユニティゲイン差動増幅器２３０に接続される。
【００３９】
ここで、各入力電圧信号に対する瞬時コンダクタンスＧ＋及びＧ−を個別に調整することによって、メモリスタ素子の各差動対２１３の全瞬時コンダクタンスＧは、正の値となったり（すなわち、差動増幅器２３０が正電圧を出力する）、又は負の値となったりする（すなわち、差動増幅器２３０が負電圧を出力する）。換言すると、所与のメモリスタ素子の差動対２１３は、−（ＧＭＡＸ−ＧＭＩＮ）から（ＧＭＡＸ−ＧＭＩＮ）までの範囲の全コンダクタンスを表すことができ、この場合、ＧＭＩＮ及びＧＭＡＸは、各差動対２１３における各々のメモリスタ素子の最小及び最大瞬時コンダクタンス値である。
【００４０】
図５は、ニューラルネットワーク１０の上述した誤差逆伝搬動作を実行する、メモリスタ神経形態学的回路２００の代表的な電気的構成も示している。入力ニューロン２１２と出力ニューロン２１４とは、それぞれ、フィードフォワード用の活性化関数φと、誤差逆伝搬用の活性化関数の導関数φ’を有するものとして、図５に示されている。本実施形態では、φ及びφ’は、別々のＩＣとして実現されてもよく、又は、単一のＩＣとして実現されてもよい。
【００４１】
さらに図５を参照すると、誤差信号は、出力ニューロン２１４のφ’を通じて逆伝搬される。次に、誤差信号は、反転ゲート２４０によって（非反転及び反転された）相補信号に分割される。その後、非反転誤差信号は、Ｇ＋メモリスタ素子を通じて逆伝搬され、反転誤差信号は、Ｇ−メモリスタ素子を通じて逆伝搬される。総和オペアンプ回路２５０は、メモリスタ素子の差動対２１３を通過した後の非反転及び反転誤差信号を合計するために、入力ニューロン２１２の各々に対して設けられる。そして、合計された誤差信号が、各入力ニューロン２１２のφ’を通じて逆伝搬され、ニューラルネットワーク１０内の逆伝播を続けることができる。
【００４２】
さらに、図５に示されるように、逆伝搬経路全体を通じて、スイッチ２６０が設けられている。スイッチ２６０は、フィードフォワード信号を伝えることを回避するために、フィードフォワードの間、開かれている（すなわち、オフ）。そして、スイッチ２６０は、誤差逆伝搬の間、閉じられる（すなわち、オン）。本実施形態の変形態様では、いくつかの又はすべてのスイッチ２６０が設けられなくともよく、代わりに、入力ニューロン２１２と出力ニューロン２１４の各ニューロン回路に内在化させても良い。
【００４３】
さらに、図示されないが、検出回路が、図５のメモリスタ神経形態学的回路２００の全体を通じて、入力信号（電圧）と誤差信号（電圧）を検出するために設けられる。検出回路は、入力ニューロン２１２及び出力ニューロン２１４と一体化されてもよいし、別個に設けられてもよい。
【００４４】
図５に示される回路レイアウトは、代表的なものであり、限定するものと解釈されるべきではない。等価な、又は実質的に等価な機能を提供する多数の代替構成が考えられる。例えば、図５において、逆伝搬誤差電圧が反転ゲート２４０によって相補信号に分割される一方で、フィードフォワード入力電圧は、差動増幅器２３０を通じて送られる。しかしながら、逆のことも本開示に等しく適用可能であり、すなわち、その場合、フィードフォワード入力電圧が反転ゲートによって相補信号に分割され、それぞれのＧ＋及びＧ−メモリスタ素子を通じて送られ、その後、単に合計される。そして、逆伝搬誤差電圧は、Ｇ＋及びＧ−メモリスタ素子を通じて直接的に送られ、その後、差動増幅器によって減算される。
【００４５】
なお、フィードフォワード動作及び誤差逆伝搬動作の両方とも、読出信号が、重み１３を乱すことなく、ニューラルネットワーク１０を通じて伝搬されるという点で、読み出し動作であることに留意すべきである。かくして、入力信号及び誤差信号の大きさは、好ましくは、ＶＴＨの直前までに制限される。ここで、入力信号及び誤差信号は、種々の方法で制限することができる。例えば、ハードウエアでの解決策は、図５のメモリスタ神経形態学的回路２００内の様々な読み出し動作電気部品のレール電圧を、ＶＴＨの直前となるように設定するだけで実現することができる。換言すれば、例えば、数式４又は数式５から計算された誤差ｅが、ＶＴＨよりも大きかったとしても、該当するハードウエアは飽和し、ＶＴＨ直前の値を出力するだけである。
【００４６】
あるいは、フィードフォワード又は誤差逆伝搬の間に、差動対２１３が誤って乱されることがないことをない確保するために、ＶＴＨ直前の飽和電圧を持った電圧バッファ回路（図示せず）が、各差動対２１３の端子の前に設けられてもよい。さらなる代替えとして、電圧コントロールのより洗練された方法が実行されてもよい。例えば、各層において、最大入力信号または最大誤差信号がＶＴＨの直前にスケーリングされるように、すべての入力信号または誤差信号を一緒に正規化してもよい。この正規化プロセスは、追加の処理回路（例えば、マイクロプロセッサ）を必要とするが、信号のより正確な伝搬を可能にする。
【００４７】
メモリスタ神経形態学的回路２００をトレーニングするために、トレーニング回路（図示せず）も、差動対２１３の各メモリスタにトレーニング電圧を直接印加するために設けられる。トレーニングの間、各差動対２１３のＧ＋及びＧ−メモリスタ素子は、同じ入力電圧が入力されるが、反対の誤差電圧を入力されるので、特定の差動対２１３の望ましいコンダクタンス変化ΔＧが、Ｇ＋及びＧ−メモリスタ素子に対して単に反対方向に働く。
【００４８】
なお、図５に示されるように、それぞれ個々のＧ＋又はＧ−メモリスタ素子は、他の個々のＧ＋又はＧ−メモリスタ素子と端子を共有していることに留意すべきである。そのため、ＶＴＨを超えるトレーニング電圧が、１つのメモリスタ素子の端子に印加されると、同じ端子を共有する他のメモリスタ素子（いわゆる、半選択素子）が誤って乱される可能性がある。この理由のため、トレーニングは、好ましくは、電圧バイアス方式で実行され、その場合、各々のトレーニング電圧は、トレーニングされるべきメモリスタ素子のそれぞれの端子に印加される２つの相補電圧に分割される。各々の相補電圧はＶＴＨを下回ることが保証され、その一方で、全体のトレーニング電圧はＶＴＨを上回ることが保証される。換言すれば、もし相補電圧が等しいならば、トレーニング電圧は２ＶＴＨ未満であることが保証される。
【００４９】
そうするために、トレーニング電圧は、制限され（すなわち、それぞれの制限を超える電圧は、個別にそれぞれの制限内に設定される）、正規化され（すなわち、１つの層について、最大トレーニング電圧は２ＶＴＨの直前に設定され、かつすべて他の訓練電圧は同じ係数でスケーリングされる）、もしくは、制限と正規化とが組み合わせられる。トレーニング電圧の制限と正規化は、層毎に実行されることが好ましいが、全体的に、すなわち、トレーニングの反復ごとにニューラルネットワーク１０内のすべてのトレーニング電圧について実行されてもよい。この電圧バイアス方式を使用することによって、任意の特定のメモリスタ素子は、半選択素子を乱すことなくトレーニングされ得る。
【００５０】
本実施形態のニューラルネットワーク１０を実現するメモリスタ神経形態学的回路をトレーニングするためのプロセス３００が、図６を参照して説明される。プロセス３００は、特定の行為主体に制限されるものと解釈されるべきではない。例えば、後述する１つの実施形態では、プロセス３００の１つ以上のステップ又はサブステップが、自動的に又はそれ以外の方法でコントローラによって実行され得る。しかし、様々な行為主体、及びそれらの組み合わせが考えられる。
【００５１】
プロセス３００は、ステップ３１０で始まり、そこにおいて、ニューラルネットワーク１０のフィードフォワード動作の間に、特定のメモリスタ素子の第１端子にて入力電圧が検出される。この検出された入力電圧は、数式３に関して定義されたｘに対応する。さらに、ここでの特定のメモリスタ素子が、ニューラルネットワーク１０における任意の重み１３に対応する。
【００５２】
次に、プロセス３００はステップ３２０に進み、そこにおいて、ニューラルネットワーク１０の誤差逆伝搬動作の間に、特定のメモリスタ素子の第２端子にて誤差電圧が検出される。この検出された誤差電圧は、数式３に関して定義されたｅに対応する。誤差電圧が検出されると、プロセス３００はステップ３３０に進む。
【００５３】
ステップ３３０では、特定のメモリスタ素子の望ましいコンダクタンス変化がトレーニングルール（例えば、逆伝搬）に従い、かつ検出された入電電圧及び検出された誤差電圧に基づいて計算される。望ましいコンダクタンス変化は数式３に関して定義されたΔＧに対応する。しかしながら、望ましいコンダクタンス変化は、ΔＧのような単一の値の形態に制限されない。代わりに、望ましいコンダクタンス変化は、後述されるように、ΔＧに関連する様々な形態で計算することができる。
【００５４】
次に、プロセス３００は、ステップ３４０に進み、そこにおいて、トレーニング電圧が特定のメモリスタ素子に印加され、そのトレーニング電圧は望ましいコンダクタンス変化の対数値に比例する。例えば、望ましいコンダクタンス変化がΔＧとして計算された場合、トレーニング電圧は、図４のような、Ｖをｌｏｇ（ΔＧ）と対応付けるコンダクタンスマップから直接導出することができる。
【００５５】
なお、ステップ３４０において、トレーニング電圧はΔＧの対数に比例するので、特定のメモリスタ素子の瞬時コンダクタンスＧは要因ではないことに留意すべきである。換言すれば、ステップ３４０は、ニューラルネットワーク１０にオープンループ制御を適用する。かくして、プロセス３００は複雑なフィードバック同調回路を必要とせず、ニューラルネットワーク１０の大きさで十分に調整し、そして、比較的素早く反復することができる。
【００５６】
本実施形態では、トレーニング電圧は、多様な方法で印加することができる。本実施形態の１つの態様において、ニューラルネットワーク１０は、オンライントレーニングとも称されることがある確率的逆伝搬トレーニングでトレーニングされる。確率的トレーニングでは、ニューラルネットワーク１０の重み１３が、フィードフォワード動作及び誤差逆伝搬動作の各ラウンド後に、更新される。本態様では、プロセス３００のステップ３３０は、２つの検出された値ｘ及びｅとして望ましいコンダクタンス変化を直接的に計算する。換言すれば、数式３のΔＧの値は、具体的に計算されない。次に、ステップ３４０にて、トレーニング電圧Ｖは、それに応じて、数式６の形態で、ＶｘとＶｅとに分けられる。
（数６）    Ｖｘ〜ｌｏｇ（ｘ）、Ｖｅ〜−ｌｏｇ（ｅ）
そこにおいて、「〜」は比例関係を定義する。ここで、数式６も比例対数関数の形態であるので、ＶｘとＶｅの値も、図４のようなコンダクタンスマップから直接導出することができる。次に、ＶｘとＶｅが、トレーニングされる特定のメモリスタ素子の２つの端子に印加される。従って、特定のメモリスタ素子には、Ｖの全体のトレーニング電圧が入力される。この場合、特定のメモリスタ素子における全体的なコンダクタンス変化は、依然として、望ましいコンダクタンスΔＧとなる。これは、トレーニング電圧Ｖが数式７として与えら得るからである。
（数７）    Ｖ〜ｌｏｇ（ｘ）＋ｌｏｇ（ｅ）
それは、対数関数の積の性質を使って、数式８に簡略化される。
（数８）    Ｖ〜ｌｏｇ（ｘ＊ｅ）
次に、数式３を数式８に代入すると、その結果の関係は数式９となる。
（数９）    Ｖ〜ｌｏｇ（ΔＧ）
そこにおいて、学習率項εは、数式７〜９がすでに比例関係を定義しているので、無視することができる。換言すれば、トレーニング電圧Ｖは、特定のメモリスタ素子の２つの端子間に相補電圧ＶｘおよびＶｅとして物理的に印加されるが、実際には、トレーニング電圧Ｖも、所望のコンダクタンス変化ΔＧの対数値に比例する。
【００５７】
トレーニング電圧Ｖは、コンダクタンス変化がもたらされることを確実にするため、好ましくはＶＴＨを上回る一方で、ＶｘおよびＶｅは、半選択素子を乱さないために、好ましくはＶＴＨを下回る。従って、本態様も、半選択素子を有するニューラルネットワーク構成（例えば、差動対が使用されるとき）に適した電圧バイアス方式を実行できる。第１実施形態の本態様においては、トレーニング電圧Ｖは、検出された入力電圧ｘと誤差電圧ｅを直接的に用いることによってフィードフォワード動作及び誤差逆伝搬動作の各反復後に印加される。その結果、例えば、中間の検出値を記憶および処理するための、又はΔＧ値を具体的に計算するための複雑な回路が省略され得るので、トレーニングプロセスは、大幅に単純化される。
【００５８】
本実施形態の別の態様では、ニューラルネットワーク１０がバッチ逆伝搬トレーニングでトレーニングされる。バッチトレーニングでは、ニューラルネットワーク１０の重み１３が、フィードフォワード動作及び誤差逆伝搬動作の複数のラウンド（すなわち、バッチ）後に更新される。具体的には、本態様では、複数の入力電圧ｘ及び誤差電圧ｅを検出するために、プロセス３００のステップ３１０、３２０が複数の入力パターンに対して繰り返される。次に、ステップ３３０において、バッチコンダクタンス変化値ΔＧＢＡＴＣＨが、数式１０により特定のメモリスタ素子に対して計算される。
（数１０）    ΔＧＢＡＴＣＨ＝Σｘ＊ｅ
そこにおいて、ｘ及びｅは、入力パターンの各々に対して検出された入力電圧及び誤差電圧に対応し、Σは複数の入力パターンに渡る合計を示す。換言すれば、ΔＧＢＡＴＣＨは、入力パターンの全バッチにわたって計算される。
【００５９】
次に、ステップ３４０において、トレーニング電圧Ｖは、例えば、図４のようなコンダクタンスマップを使用することにより、ΔＧＢＡＴＣＨの比例対数値として導出される。その後、トレーニング電圧Ｖは、望ましいコンダクタンス変化ΔＧをもたらすために、トレーニングされる特定のメモリスタ素子に印加される。第１実施形態の本態様では、トレーニング電圧は、好ましくは、ＶＴＨと２ＶＴＨとの間となるように制限及び／又は正規化され、先に説明したような電圧バイアス方式が使用される。
【００６０】
次に、本開示の第２実施形態のニューラルネットワーク１０が説明される。図７は、メモリスタ神経形態学的回路であるハイブリッドＣＭＯＳ−メモリスタクロスバー回路４００として物理的に実現されたニューラルネットワーク１０を示す斜視図である。クロスバー回路４００は、第１実施形態のように、複数の入力ニューロン４１２、複数の重み（メモリスタ素子４１３）、及び複数の出力ニューロン４１４（１つだけ図示）を含む。さらに、第２実施形態においては、入力ニューロン４１２、出力ニューロン４１４、及びメモリスタ素子４１３の個々の構成及び特性は、好ましくは、第１実施形態のそれらと同様である。
【００６１】
図７において、入力電圧は、入力ニューロン４１２、入力クロスバーナノワイヤ４７０、メモリスタ素子４１３、出力クロスバーナノワイヤ４８０、そして、出力ニューロン４１４を、この順序で通過することにより、クロスバー回路４００を通じて伝播される。図１の概略図と同じく、図７も、複数の入力ニューロン４１２が、それぞれのメモリスタ素子４１３を介して各出力ニューロン４１４に接続されていることを示している。明確にするために、図７のクロスバーナノワイヤ４７０、４８０は、ニューラルネットワーク１０内の特定の要素を構成せず、入力ニューロン４１２をメモリスタ素子４１３を通じて出力ニューロン４１４へ交差接続するための、体積効率のよい高密度導体として機能するだけである。この場合、図７のクロスバー構造は、小さな物理的パッケージに多数のニューロンを含む、信頼できる高密度なニューラルネットワーク１０の製造を可能とする
【００６２】
図８Ａ及び８Ｂは、重みとしてのメモリスタ素子の差動対５１３（図では、図を不必要に複雑化することを避けるため、２つの代表的なペアのみが参照番号で示されている）、入力層における６つの入力ニューロン５１２、隠れ層における４つの隠れニューロン５１６，及び出力層における３つの出力ニューロン５１４を含む３層のニューラルネットワークを実現する代表的なクロスバー回路５００を示している。具体的には、図８Ａは、フィードフォワード動作中のクロスバー回路５００を示し、図８Ｂは、誤差逆伝搬動作中のクロスバー回路５００を示している。クロスバー回路５００の特定のトポロジーは、任意に選択され、本質的に例示的なものである。本実施形態の以下の説明は、ニューラルネットワークの分野で知られているように、任意の数の層、ニューロン、及び接続を有するクロスバー回路に拡張することができる。
【００６３】
なお、図８Ａ及び８Ｂは、同じクロスバー回路５００を描いているが、理解の容易のために別々に示されていることに留意すべきである。クロスバー回路５００における様々な回路要素は、メモリスタ素子の差動対５１３の物理的なクロスバー構成を示すために拡張されていることを除き、図５においてすでに図示され、説明されたものに相当する。さらに、検出回路（図示せず）が、クロスバー回路５００の各層において入力電圧及び誤差電圧を検出するために設けられる。フィードフォワード動作及び逆伝搬動作は、前述したのと同様の方法でクロスバー回路５００において実行される。従って、ここでは、簡略化のため省略される。本実施形態では、トレーニング電圧は、トレーニング回路（図示せず）を使用することによって、クロスバーナノワイヤを介して各メモリスタ素子に直接的に印加される。
【００６４】
本実施形態の一態様では、クロスバー回路５００は、第１実施形態の確率的トレーニング方法でトレーニングされる。図９は、クロスバー構成のメモリスタ素子の差動対５１３に確率的トレーニング電圧を印加するための例示的な構成を示している。示されるように、数式６に従うＶＸ及びＶｅが、それぞれ、垂直及び水平クロスバーナノワイヤに直接印加され、各メモリスタ素子には、その入力電圧ｘ及び誤差電圧ｅに対応する全体電圧が入力される。
【００６５】
しかしながら、ＶＸ及びＶｅは、各メモリスタ素子に対し、異なる符号及び大きさを有する可能性があるので、クロスバー回路５００の全てのメモリスタ素子を同時にトレーニングすることはもちろん一般的に不可能である。逆に、各メモリスタ素子を１つずつトレーニングすることは、そのようにすると、非実用的な時間を消費し、したがって、ニューラルネットワーク１０が多数の層またはニューロンにうまくスケーリングすることを妨げるので、好ましくない。
【００６６】
第２実施形態の本態様は、４つのステップでクロスバー回路５００をトレーニングする方法を提供し、各メモリスア素子の入力データ（すなわち、ｘ及びｅ）の極性について可能な状態は、正のｘと負のｅ（リセット）、負のｘと正のｅ（リセット）、正のｘと正のｅ（セット）、及び負のｘと負のｅ（セット）の４つだけである。その上、差動対５１３の使用によってセット及びリセットされるメモリスタ素子の数が等しくならなければならない。具体的には、各差動対５１３に対して、Ｇ＋クロスバーナノワイヤ上のメモリスタ素子は、Ｇ−クロスバーナノワイヤ上の対応するメモリスタ素子と反対方向にトレーニングされる。これは、図８Ａ及び８Ｂに示されるように、フィードフォワード入力電圧ｘは、各差動対５１３のＧ＋及びＧ−メモリスタ素子に対して同じであり、その一方、逆伝搬される誤差電圧ｅは、Ｇ＋メモリスタ素子に対して反転されず、Ｇ−メモリスタ素子に対して反転されるためである。このように、数式３から計算されるΔＧは、各差動対５１３のＧ＋及びＧ−メモリスタ素子に対して、常に、異なる符号（すなわち、反対方向となる）を有する。
【００６７】
上記を考慮に入れ、図１０Ａから１０Ｄは、第２実施形態の本態様によるクロスバー回路５００をトレーニングするためのプロセスを示す。図１０Ａは、各行がＧ＋又はＧ−メモリスタ素子にスに接続されているかどうかとともに、各クロスバーナノワイヤに対する入力データの極性（すなわち、ｘ及びｅの極性）を示している。それらの表記は、簡潔のため、図１０Ｂから１０Ｄから省かれている。図１０Ａの第１の時間ステップにおいて、リセットトレーニング電圧が、負のｘと正のｅを持つメモリスタ素子に印加される。次に、図１０Ｂの第２時間ステップにおいて、リセットトレーニング電圧が、正のｘと負のｅを持つメモリスタ素子に印加される。そして、図１０Ｃの第３お時間ステップで、セットトレーニング電圧が、正のｘと正のｅを持つメモリスタ素子に印加される。最後に、図１０Ｄの第４の時間ステップで、セットトレーニング電圧が、負のｘと負のｅを持つメモリスタ素子に印加される。図１０Ａから１０Ｄのそれぞれにおいて、トレーニングされるメモリスタ素子は、破線の輪郭で示されている。その結果、クロスバー回路５００のすべての差動対が４つのステップでトレーニングされる。
【００６８】
図１０Ａから１０Ｄは、任意に順序付けられる。入力データの４つの状態のメモリスタ素子は、任意の順序でトレーニングすることができる。さらに、本開示の確率的トレーニング方法は、好ましくは、前述したような電圧バイアス方式を使用し、それにより、図１０Ａから１０Ｄの各々に示される半選択メモリスタ素子は乱されない。
【００６９】
第２実施形態の本態様は、検出された入力電圧ｘと検出された誤差電圧ｅとに基づく行列乗算を実行する必要性を効果的に取り除く。具体的には、一般的に、入力電圧及び誤差電圧は、各メモリスタ素子に対して望ましいコンダクタンス変化ΔＧを発生させるために、行列乗算される。対照的に、本態様のプロセス３００は、４つのステップでクロスバー回路５００に相補電圧ＶｘとＶｅを直接印加し、それは、例えば行列乗算によって具体的にΔＧを計算する必要性無しで、数式７〜９に従って、すべてのメモリスタ素子に望ましいコンダクタンス変化ΔＧをもたらす結果となる。かくして、第２実施形態の本態様は、クロスバー回路５００をトレーニングする迅速かつ堅牢な方法を提供する。
【００７０】
本実施形態の別の態様では、クロスバー回路５００は、第１実施形態のバッチトレーニング方法でトレーニングされる。ここで、第１実施形態のように、各メモリスタ素子に対するトレーニング電圧Ｖは、各メモリスタ素子のために計算されるバッチコンダクタンス変化ΔＧＢＡＴＣＨから導出される。この場合、フィードフォワード及び誤差逆伝搬の各反復後に中間ΔＧ値を計算するために、入力電圧ｘを誤差電圧ｅと行列乗算すべく、行列乗算回路（図示せず）が設けられる。
【００７１】
第２実施形態の本形態においても、トレーニング電圧Ｖは、各メモリスタ素子に対して異なる符号と大きさを有する可能性がある。従って、クロスバー回路５００の全てのメモリスタ素子を同時にトレーニングすることはもちろん一般的に不可能である。逆に、各メモリスタ素子を１つずつトレーニングすることは、そのようにすると、非実用的な時間を消費し、したがって、ニューラルネットワーク１０が多数の層またはニューロンにうまくスケーリングすることを妨げるので、好ましくない。
【００７２】
本態様は、図１１Ａと１１Ｂに示される、一度に１つのクロスバーナノワイヤを更新することによってクロスバー回路５００をバッチトレーニングする方法を提供する。図１１Ａと１１Ｂは、各メモリスタ素子に対するトレーニング電圧が、典型的なマトリクス表記で示されており、そこにおいて、Ｖｉｊは、左上から数えて、ｉ行目とｊ列目のメモリスタ素子のトレーニング電圧である。具体的には、本態様において、メモリスタ素子は行毎に更新され、各行は２つのステップで更新される。図１１Ａに示される最初のステップでは、負の固定電圧ＶＦＩＸが水平クロスバーナノワイヤに印加される。次いで、固定電圧ＶＦＩＸを減算した後の正のリセットトレーニング電圧Ｖｉｊが、リセットされるべきメモリスタ素子の垂直クロスバーナノワイヤに印加される。更新される素子が破線の輪郭で示されている。
【００７３】
次に、図１１Ｂに示される正の固定電圧ＶＦＩＸが、同じ水平クロスバーナノワイヤに印加される。次いで、固定電圧ＶＦＩＸを減算した後の負のセットトレーニング電圧が、セットされるべきメモリスタ素子の垂直クロスバーナノワイヤに印加される。再び、更新される素子が破線の輪郭で示されている。従って、メモリスタ素子の１行が更新される。次に、方法は、クロスバー回路５００全体がトレーニングされるまで、行毎に同じ手法を続ける。
【００７４】
本態様において、水平クロスバーナノワイヤに印加される固定電圧ＶＦＩＸは、電圧バイアス方式に従って、様々な方法で設定することができる。好ましくは、固定電圧ＶＦＩＸは、半選択素子が乱されないように、ＶＴＨのすぐ下に設定される。次に、垂直クロスバーナノワイヤに、Ｖｉｊ−ＶＴＨが印加される。トレーニング電圧Ｖｉｊは、好ましくは、本開示の電圧バイアス方式に従って、最大で２ＶＴＨのすぐ下に制限及び／又は正規化されるので、垂直クロスバーナノワイヤ上の半選択素子も、最悪の場合にＶＴＨのすぐ下となるだけで、乱されることはない。代替の実施例では、固定電圧ＶＦＩＸは、安全のため、ＶＴＨより十分に低く設定してもよい。例えば、固定電圧ＶＦＩＸは、ＶＴＨ／２に設定してもよい。この場合、トレーニング電圧Ｖｉｊは、最悪の場合でも半選択素子が乱されないことを確実にするために、下限値で制限され、及び／又は正規化される。
【００７５】
図１１Ａ及び１１Ｂの描写は、本質的に例示的なものであることに留意すべきである。代替として、クロスバー回路５００は、行単位の代わりに列単位でトレーニングされてもよい。また、列又は行がトレーニングされる順序は、任意に決定することができる。さらに、クロスバー回路５００は、最初に各行又は各列に対してセット又はリセットパルスの一方を印加し、次いで、各行又は各列に対してセット又はリセットパルスの他方を印加することによって、トレーニングされてもよい。
【００７６】
本開示の上記実施形態は、制御システム６００として実現されても良い。図１２は、ＣＰＵ（又は、プロセッサ）６１１とメモリ６１２を有するコントローラ５１０を含む制御システム６００を示す概略図である。コントローラ６１０は、ニューラルネットワーク１０と双方向通信する。コントローラ６１０のＣＰＵ６１１は、メモリ６１２に格納されたプログラムやデータを読み出してコントローラ６１０を動作させる。ここで、ニューラルネットワーク１０は、上記実施形態のいずれかに従って構成することができる。
【００７７】
コントローラ６１０は、好ましくは、ニューラルネットワーク１０を読み書きする駆動回路および検出回路（図示せず）を含む。具体的には、コントローラ６１０は、入力パターンのフィードフォワード中に入力信号を印加し、誤差逆伝播中に誤差信号を印加することによってニューラルネットワーク１０を読み取るように構成される。コントローラ６１０は、ニューラルネットワーク１０のフィードフォワード動作及び誤差逆伝搬動作中に検出された入力電圧及び誤差電圧に基づき、望ましいコンダクタンス変化値を計算するためにＣＰＵ６１１を使う。さらに、逆伝搬のようなトレーニングルールに基づき、コントローラ６１０は、好ましくはメモリ６１２に格納されたコンダクタンスマップを使用することによって（つまり、図４に示すようなコンダクタンスマップを使用することによって）、ニューラルネットワーク１０のメモリスタ素子に書き込むように構成される。バッチトレーニングを通じて逆伝搬を実行するために、コントローラ６１０は、行列乗算回路も含んでも良い。従って、制御システム６００は、前述した実施形態のいずれも実行することができる。
【００７８】
加えて、図１２に示される制御システム６００のレイアウトは、例示的なものであり、従って、限定的に解釈されるべきではない。多くの代替構成が考えられ、本開示に適用可能である。１つの代替的な実施形態では、制御システム６００は、メモリスタ素子が神経形態学的コア（すなわち、ニューラルネットワーク１０においてアナログ重み１３を提供する）とＣＰＵコア（すなわち、デジタルメモリを提供する）の両方を形成する統合神経形態学的システムとして実現される。この場合、ＳＲＡＭや内蔵フラッシュのような独立したＣＭＯＳメモリは必要とされず、制御システム６００はより少ないプロセスを通じて製造され、コストを節約することができる。
【００７９】
本開示は上記実施形態に限定されるものではなく、本開示の要旨を逸脱しない種々の変更が考えられる。
【００８０】
上述した実施形態の変更態様では、確率的かつバッチトレーニング方法が、固定振幅トレーニングで実現されてもよい。固定振幅トレーニングでは、望ましいコンダクタンス変化ΔＧの符号情報だけが使用され、符号に依存して、所定のセット電圧か所定のリセット電圧のいずれかが各メモリスタ素子に印加される。
【００８１】
上述した実施形態のさらに別の変更態様では、入力ニューロン１２、出力ニューロン１４、任意のクロスバーナノワイヤ、および重み（メモリスタ素子）１３を含むニューラルネットワーク１０の様々な構成要素が、単一のＩＣに一体的に形成されても良い。その結果、ニューラルネットワーク１０の物理的なパッケージサイズが低減され、ニューラルネットワーク１０は、温度変化などの環境の影響を受けにくくなる可能性がある。もしくは、ニューラルネットワーク１０の入力ニューロン１２及び出力ニューロン１４は、ニューロン回路として一体的に形成されてもよい。
【００８２】
上述した実施形態のさらに別の変更態様では、入力ニューロン１２及び出力ニューロン１４の活性化関数φ及びその導関数φ’は、別個のＣＭＯＳデバイスとして実現されてもよい。例えば、専用の活性化関数ＩＣが、ニューラルネットワーク１０内の電圧信号を変換するための適切な位置に設けられても良い。
【００８３】
上述した実施形態のさらに別の変更態様では、数式３の学習率εが、トレーニング電圧の期間Δｔを調整することによって調整される。以前に説明したように、期間ΔｔはΔＧのリニアなスケーリングとして近似することができ、従って、学習率εを近似するのに適している。
【００８４】
上述した実施形態のさらに別の変更態様では、ニューラルネットワーク１０の重み１３は１つずつトレーニングされる。この場合、トレーニングを完了するために必要とされる時間が増加するかもしれないが、適切な電圧の相補対を各メモリスタ素子に印加することができる。例えば、ＶＴＨと２ＶＴＨとの間のトレーニング電圧Ｖが与えられれば、適切な電圧の相補対Ｖ／２と−Ｖ／２が、トレーニングされるべきメモリスタ素子の両端に印加され得る。この場合、電圧の相補対は、可能な限りＶＴＨから離れるようにし、それにより、半選択素子が乱される可能性を低減する。
【００８５】
上述した実施形態及び変更は、組み合わせが本開示の趣旨を逸脱しないとすれば、そのような組み合わせが特に言及されていなくとも、種々の態様で組み合わせることが可能である。従って、実施形態の範囲は上記の説明に限定されるべきではなく、むしろ広範な等価物、修正形態および組み合わせを含むべきである。
【図１】
0006477924.tif 000002
【図２】
0006477924.tif 000003
【図３】
0006477924.tif 000004
【図４】
0006477924.tif 000005
【図５】
0006477924.tif 000006
【図６】
0006477924.tif 000007
【図７】
0006477924.tif 000008
【図８Ａ】
0006477924.tif 000009
【図８Ｂ】
0006477924.tif 000010
【図９】
0006477924.tif 000011
【図１０Ａ】
0006477924.tif 000012
【図１０Ｂ】
0006477924.tif 000013
【図１０Ｃ】
0006477924.tif 000014
【図１０Ｄ】
0006477924.tif 000015
【図１１Ａ】
0006477924.tif 000016
【図１１Ｂ】
0006477924.tif 000017
【図１２】
0006477924.tif 000018