(57)【要約】【課題】環境温度が変化した場合の性能の劣化を抑制することが可能な人工ＮＮ回路を提供すること【解決手段】人工ＮＮ回路は、階層化されたニューロン間で信号の伝達を行うクロスバー回路４４を有する。クロスバー回路４４は、複数の入力バーと複数の出力バーとの各交点にメモリスタ５３が設けられたものである。処理回路４５は、伝達される信号に対して協働して所望の重みを付与するようにメモリスタ５３のコンダクタンス値が設定された、別々の複数の出力バーに流れ込む信号の総和を算出するように構成される。【選択図】図５
2020057278.tif 000002
【特許請求の範囲】
【請求項１】
人工ニューラルネットワークの階層化されたニューロン間で信号の伝達を行うクロスバー回路（４４）と、
前記クロスバー回路は、複数の入力バー（５０）と複数の出力バー（５１ａ、５１ｂ、５２ａ、５２ｂ）とが交差するように配列され、かつ、前記複数の入力バーと前記複数の出力バーとの各交点に、伝達される信号に対して重みを付与する抵抗変化型メモリであるメモリスタ（５３）が設けられたものであり、
前記ニューロンにおける信号処理として、少なくとも、前記メモリスタによってそれぞれ重みが付与されて、各々の前記出力バーに流れ込む信号の総和の算出を実行する処理回路（４５）と、を備えた人工ニューラルネットワーク回路であって、
前記処理回路は、前記信号の総和として、伝達される信号に対して協働して所望の重みを付与するように前記メモリスタのコンダクタンス値が設定された、別々の複数の出力バーに流れ込む信号の総和を算出するように構成される人工ニューラルネットワーク回路。
【請求項２】
前記別々の複数の出力バーは、接続される複数のメモリスタの重みが相互に同一となるように設定される同一重み出力バー（５１ａと５１ｂ、５２ａと５２ｂ）である請求項１に記載の人工ニューラルネットワーク回路。
【請求項３】
前記複数の出力バーは、１対の出力バーが差動対出力バーとして用いられることで、各入力バーとの間において、差動対出力バーの正側の出力バーに接続されるメモリスタの重みと、負側の出力バーに接続されるメモリスタの重みとの差分に応じて、各入力バーに入力される信号に正又は負の重みを付与可能とされ、
前記差動対出力バーの正側の出力バーは複数の出力バーを含み、前記差動対出力バーの負側の出力バーは、正側の出力バーと同数の複数の出力バーを含み、
前記処理回路は、前記信号の総和として、複数の正側の出力バーから出力される信号の総和と、複数の負側の出力バーから出力される信号の総和との差分を算出するように構成される請求項１に記載の人工ニューラルネットワーク回路。
【請求項４】
前記差動対出力バーは、前記複数の正側の出力バーが、接続される複数のメモリスタの重みが相互に同一となるように設定され、かつ、前記複数の負側の出力バーが、接続される複数のメモリスタの重みが相互に同一となるように設定される同一重み差動対出力バーである請求項３に記載の人工ニューラルネットワーク回路。
【請求項５】
前記処理回路は、前記差動対出力バーに含まれる複数の正側の出力バーから出力される信号の総和と、複数の負側の出力バーから出力される信号の総和との差分を、前記複数の正側の出力バーの数で正規化する請求項３又は４に記載の人工ニューラルネットワーク回路。
【請求項６】
前記差動対出力バーの前記複数の正側の出力バーに接続されるメモリスタと、前記複数の負側の出力バーに接続されるメモリスタとには、学習により得られた重みを前記複数の正側の出力バーの数で正規化した重みが設定される請求項３又は４に記載の人工ニューラルネットワーク回路。
【請求項７】
前記人工ニューラルネットワークは、少なくともニューロンが３層に階層化された多層ニューラルネットワークであって、
前記差動対出力バーを含むクロスバー回路及び前記差動対出力バーの信号の総和の差分を算出する処理回路は、階層化されたニューロンのすべての層間に設けられる請求項３乃至６のいずれかに記載の人工ニューラルネットワーク回路。
【請求項８】
前記人工ニューラルネットワークは、少なくともニューロンが３層に階層化された多層ニューラルネットワークであって、
前記差動対出力バーを含むクロスバー回路及び前記差動対出力バーの信号の総和の差分を算出する処理回路は、階層化されたニューロンの一部の層間だけに設けられる請求項３乃至６のいずれかに記載の人工ニューラルネットワーク回路。
【請求項９】
前記差動対出力バーを含むクロスバー回路及び前記差動対出力バーの信号の総和の差分を算出する処理回路は、前記多層ニューラルネットワークの階層化されたニューロンの各層間の中で、相対的に、前記クロスバー回路の入力バー及び／又は出力バーの本数が少ない、少なくとも１つの層間に設けられる請求項８に記載の人工ニューラルネットワーク回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリスタを有するクロスバー回路を備えた人工ニューラルネットワーク回路に関する。
【背景技術】
【０００２】
近年、ディープニューラルネットワークなどの人工ニューラルネットワーク（以下、人工ＮＮ）が、例えば画像認識の分野において、従来の機械学習による認識性能を凌駕する認識性能を発揮することが確認されている。ただし、人工ＮＮは、一般的に演算負荷が高い。このため、人工ＮＮは、高効率な並列計算に適したＧＰＵ（graphic processing unit）を用いた所謂ＧＰＧＰＵ（general-purpose computing on GPU）によりソフトウェア的に実現されることがある。
【０００３】
しかし、ＧＰＧＰＵは、消費電力が大きい。従って、ＧＰＧＰＵを用いた人工ＮＮは、例えばクラウドコンピューティングベースのアプリケーションでは適用可能であるが、非クラウドコンピューティングベースのアプリケーションでは適用することが困難な場合がある。例えば、非クラウドコンピューティングベースのアプリケーションの一例として、車両において、障害物を認識し、その障害物との衝突を防止／緩和するための衝突防止制御を実行するアプリケーションや、車両を目的地まで自動運転するためのアプリケーションなどがある。これらのアプリケーションの実行に際しては、低電力消費でありながら高速に動作することが求められる。従って、低電力消費、高速、且つ、小型の人工ＮＮ専用のハードウェア回路が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１７／０１００４８号
【特許文献２】国際公開第２０１７／０１００４９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した人工ＮＮ専用のハードウェア回路の一つとして、本願発明者は、抵抗変化型メモリ（以下、メモリスタ）を有するクロスバー回路を備えた人工ＮＮ回路の研究を進めてきた。その研究結果は、例えば、ここに参照により援用する特許文献１及び特許文献２に開示されている。
【０００６】
クロスバー回路は、複数の入力バーと複数の出力バーとが交差するように配列され、各交点において入力バーと出力バーとがメモリスタを介して接続されることによって構成される。クロスバー回路の入力バーに、前段のニューロンの出力値に応じた電圧信号が入力されると、各電圧信号はメモリスタのコンダクタンス値を重みとして乗じられた後、出力バーに接続される処理回路へ出力され、処理回路によって総和となる電圧信号が算出される。そして、処理回路は、後段のニューロンへの入力として、算出した総和電圧信号から活性化関数に応じた出力値を生成して出力する。このようにして、人工ＮＮにおけるシナプスが、クロスバー回路を用いて、ハードウェア的に実現される。
【０００７】
このようなクロスバー回路を備えた人工ＮＮ回路では、例えば、コンピュータシミュレーションによって、伝達される各信号に付与する重みが学習され、各メモリスタは、その学習された重みに応じたコンダクタンス値に設定される。メモリスタは、印加電圧によって、最小値と最大値との間で、異なるコンダクタンスに設定することが可能である。例えば、メモリスタのコンダクタンスは、電圧印加装置を用いて、負の書込電圧を印加することにより増加させることができ、正の書込電圧を印加することにより減少させることができる。そして、メモリスタは、正負の書込電圧閾値以上の大きさの電圧が印加されない限り、設定されたコンダクタンス値を維持する。
【０００８】
しかしながら、メモリスタを有するクロスバー回路を備えた人工ＮＮ回路には、メモリスタが有する温度特性に起因して、人工ＮＮ回路が置かれた環境温度の変化により、性能の劣化が生じることがあるという問題がある。例えば、上述した人工ＮＮ回路を用いて画像認識を行った場合、環境温度が上昇するほど、認識エラー率が上昇してしまうことがある。
【０００９】
本発明は、上述した点に鑑みてなされたものであり、環境温度が変化した場合の性能の劣化を抑制することが可能な人工ＮＮ回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明による人工ＮＮ回路は、
人工ＮＮの階層化されたニューロン間で信号の伝達を行うクロスバー回路（４４）と、
クロスバー回路は、複数の入力バー（５０）と複数の出力バー（５１ａ、５１ｂ、５２ａ、５２ｂ）とが交差するように配列され、かつ、複数の入力バーと複数の出力バーとの各交点に、伝達される信号に対して重みを付与する抵抗変化型メモリであるメモリスタ（５３）が設けられたものであり、
ニューロンにおける信号処理として、少なくとも、メモリスタによってそれぞれ重みが付与されて、各々の出力バーに流れ込む信号の総和の算出を実行する処理回路（４５）と、を備え、
処理回路は、信号の総和として、伝達される信号に対して協働して所望の重みを付与するようにメモリスタのコンダクタンス値が設定された、別々の複数の出力バーに流れ込む信号の総和を算出するように構成される。
【００１１】
クロスバー回路に設けられる各メモリスタは、温度特性を有している。このため、環境温度の変化に応じて、各メモリスタに設定されたコンダクタンス値が変化する。このコンダクタンス値の変化の割合が、クロスバー回路に含まれる各メモリスタにおいて一様であれば、各メモリスタ間で、それぞれのコンダクタンス値による重みの相互の関係は保たれる。しかしながら、各メモリスタのコンダクタンス値は、環境温度の変化に応じて、必ずしも一様の割合で変化しないことがある。すなわち、同じ温度変化に対して、コンダクタンス値が大きく変化するメモリスタもあれば、コンダクタンス値の変化が小さいメモリスタもありえる。このように、クロスバー回路に含まれる各メモリスタにおいて、環境温度の変化によるコンダクタンス値の変化の割合にばらつきがあると、環境温度の変化に応じて、各メモリスタ間で重みの相互の関係が崩れてしまう。その結果、人工ＮＮ回路の性能の劣化が生じてしまうのである。
【００１２】
そこで、本発明による人工ＮＮ回路は、上述したように、処理回路が、信号の総和として、伝達される信号に対して協働して所望の重みを付与するようにメモリスタのコンダクタンス値が設定された、別々の複数の出力バーに流れ込む信号の総和を算出するように構成した。
【００１３】
このような構成を採用したことにより、環境温度の変化に対して、クロスバー回路に設けられる各メモリスタのコンダクタンス値の変化の割合にばらつきがあっても、そのばらつきの影響を低減することができるようになる。つまり、１つの出力バーに流れ込む信号の総和を算出するだけでは、その出力バーに接続された個々のメモリスタのコンダクタンス値の変化が、そのまま、算出される信号の総和に反映される。しかし、別々の複数の出力バーに流れ込む信号の総和を算出するようにすると、同じ信号に対して協働して所望の重みを付与する、別々の出力バーの各々のメモリスタのコンダクタンス値がすべて相対的に大きなコンダクタンス値の変化を示したり、すべて相対的に小さなコンダクタンス値の変化を示したりする可能性は小さい。そのため、処理回路において、別々の複数の出力バーに流れ込む信号の総和を算出することにより、メモリスタの相対的に大きなコンダクタンス値の変化や、相対的に小さなコンダクタンス値の変化をより平均的な変化に近づけることと同等の効果を得ることができる。その結果、環境温度が変化したときに、各メモリスタのコンダクタンス値の変化のばらつきによる影響を抑えることができ、人工ＮＮ回路の性能の劣化を抑制することが可能となる。
【００１４】
上述した構成の発明において、複数の出力バーは、１対の出力バーが差動対出力バーとして用いられることで、各入力バーとの間において、差動対出力バーの正側の出力バーに接続されるメモリスタの重みと、負側の出力バーに接続されるメモリスタの重みとの差分に応じて、各入力バーに入力される信号に正又は負の重みを付与可能とされ、差動対出力バーの正側の出力バーは複数の出力バーを含み、差動対出力バーの負側の出力バーは、正側の出力バーと同数の複数の出力バーを含み、処理回路は、信号の総和として、複数の正側の出力バーから出力される信号の総和と、複数の負側の出力バーから出力される信号の総和との差分を算出するように構成されることが好ましい。
【００１５】
このように構成することで、クロスバー回路によって興奮性及び抑制性のシナプスを模擬しつつ、環境温度の変化に対する、クロスバー回路に設けられる各メモリスタのコンダクタンス値の変化のばらつきの影響を低減することができるようになる。
【００１６】
上記括弧内の参照番号は、本開示の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら発明の範囲を制限することを意図したものではない。
【００１７】
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
【図面の簡単な説明】
【００１８】
【図１】多層ＮＮの一例を概念的に示す図である。
【図２】畳み込みＮＮの構造の一例を概念的に示す図である。
【図３】畳み込みＮＮを具現化した全体構成の一例を示す図である。
【図４】クロスバー回路について説明するための説明図である。
【図５】クロスバー回路について説明するための別の説明図である。
【図６】クロスバー回路について説明するためのさらに別の説明図である。
【図７】メモリスタの温度特性の一例を示す図である。
【図８】メモリスタの温度特性のばらつきについて説明するための説明図である。
【図９】実施形態の人工ＮＮ回路と、比較対象人工ＮＮ回路との、認識エラーの発生率を調べた結果を示す図である。
【図１０】実施形態の人工ＮＮ回路と、比較対象人工ＮＮ回路との、認識エラーの発生率を調べた結果を示す図である。
【図１１】実施形態の畳み込みＮＮ回路と、比較対象畳み込みＮＮ回路との、認識エラーの発生率を調べた結果を示す図である。
【図１２】実施形態の畳み込みＮＮ回路と、比較対象畳み込みＮＮ回路との、認識エラーの発生率を調べた結果を示す図である。
【図１３】比較対象畳み込みＮＮ回路による認識エラーの発生率に対する、実施形態による各種の畳み込みＮＮ回路による認識エラーの発生率の低減度合を示す図である。
【図１４】実施形態による各種の畳み込みＮＮ回路の効率積を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明による人工ＮＮ回路の実施形態について、図面を参照して詳しく説明する。なお、本実施形態による人工ＮＮ回路は、例えば、少なくともニューロンが３層に階層化された多層ＮＮ（多層パーセプトロン）や、いわゆる畳み込みＮＮをハードウェア的に実現するために用いることができる。以下の説明においては、まず、本実施形態の人工ＮＮ回路でハードウェア的に実現可能な多層ＮＮや畳み込みＮＮについて説明する。
【００２０】
図１は、多層ＮＮ１０の一例を概念的に示す図である。図１に示すように、多層ＮＮ１０は、入力層１１と、中間層１２と、出力層１３と、を備える。入力層１１、中間層１２、出力層１３の各層は、少なくとも１つのニューロン１４を有する。中間層１２は、隠れ層とも呼ばれる。
【００２１】
多層ＮＮ１０に対する入力データが入力層１１に入力されると、入力層１１の各ニューロン１４から、入力データに対応する出力ｘ１、ｘ２、…が出力される。そして、出力ｘ１、ｘ２、…に対して、シナプスとしての重みｗ１，ｗ２、…が乗じられ、それぞれ、中間層１２のニューロン１４に入力される。中間層１２のニューロン１４は、これらの総和Σｗｉｘｉを算出するとともに、総和Σｗｉｘｉを、ＲｅＬＵやｔａｎｈなどの活性化関数ｆにより変換して、出力ｙ（＝ｆ（Σｗｉｘｉ））を生成する。そして、生成した出力ｙを、後段層の各ニューロン１４に向けて出力する。後段層は、多層ＮＮ１０が３層の場合、出力層１３となる。４層以上の場合、後段中間層（図示なし）となる。このように入力データが各ニューロン１４の活性化関数ｆにより変換されて、最終的に、出力層１３に入力される。出力層１３のニューロン１４は、例えば、ソフトマックス関数によって入力を変換して出力する。
【００２２】
このような多層ＮＮ１０は、入力データとしての画像（例えば、ＭＮＩＳＴデータセット）を用いて、画像を複数のカテゴリ（例えば、０〜９の数字）に分類する用途に適用できる。この場合、入力層１１への入力データは、画像のピクセル値（例えば、０〜２５５）とすることができる。また、出力層１３の各ニューロン１４からの出力を、入力データとしての画像が各カテゴリに属する確率とするように構成できる。多層ＮＮ１０のシナプスの重みは、このような用途に適するように学習によって決定される。
【００２３】
そして、出力層１３の各カテゴリに対応するそれぞれのニューロン１４が出力する確率の中で最も高い確率に対応するカテゴリを選択することにより、入力データとしての画像を、複数のカテゴリに分類することができる。もちろん、多層ＮＮ１０は、その他の用途に適用することも可能である。例えば、物体や人の検出、人の顔の認識、あるいは、道路標識の認識などにも適用することが可能である。さらに、情報圧縮、運動制御、雑音除去、時系列予測などの用途に適用することも可能である。
【００２４】
次に、畳み込みＮＮに関して説明する。畳み込みＮＮは、特に画像認識の精度を高めることが可能な多層ＮＮである。図２は、畳み込みＮＮ２０の構造の一例を概念的に示す図である。畳み込みＮＮ２０は、基本的に、コンボリューション層とプーリング層とを交互に接続した構造を有する。例えば、図２に示す例では、畳み込みＮＮ２０は、第１コンボリューション層２１、第２コンボリューション層２２、第３コンボリューション層２３、第４コンボリューション層２４、第５コンボリューション層２５、第６コンボリューション層２６、及び、第７コンボリューション層２７からなる７層のコンボリューション層を有している。そして、第２コンボリューション層２２と第３コンボリューション層２３との間に、第１プーリング層２８が設けられ、第４コンボリューション層２４と第５コンボリューション層２５との間に、第２プーリング層２９が設けられている。
【００２５】
このように、畳み込みＮＮ２０においては、コンボリューション層の次に必ずプーリング層が接続されるとは限らず、複数のコンボリューション層を接続した後に、プーリング層が接続されることもある。また、コンボリューション層２１〜２７及びプーリング層２８〜２９の層数は、図１に示す例に限られない。一般的には、コンボリューション層２１〜２７及びプーリング層２８〜２９の層数を増やすほど、画像の認識性能をより向上させることができる。
【００２６】
第１〜第７コンボリューション層２１〜２７は、それぞれの入力ニューロンに入力される入力データ（画像）に対して、シナプスの重みを利用して、所定のサイズ（例えば３×３、５×５）を有するフィルタを畳み込む演算を行う。入力データとしての画像は、２次元に配列された入力値（ピクセル値）を有する。各コンボリューション層２１〜２７におけるフィルタの畳み込み演算は、一般的な画像処理でのフィルタの畳み込み、すなわち、小サイズの画像（フィルタ）を入力画像に２次元的に畳み込んで、画像をぼかしたり、エッジを強調したりするものと基本的に同じである。
【００２７】
具体的には、第１〜第７コンボリューション層２１〜２７では、フィルタの畳み込み演算として、フィルタとしての小サイズの画像の各ピクセル値（重み）と、入力データとしての画像におけるフィルタと同サイズの領域の各ピクセル値とをそれぞれ掛け合わせた各乗算結果を積算する。この際、入力データが複数枚の画像を含む場合には、それら複数枚の入力画像の同じ領域において同じフィルタによる畳み込み演算が行われ、出力ニューロンにおいて、それらの畳み込み演算による演算結果が積算される。さらに、出力ニューロンにおいて、計算された積算結果が、ＲｅＬＵなどの活性化関数を経て、各コンボリューション層２１〜２７の画像上のフィルタの位置に対応する出力値となる。
【００２８】
フィルタは、所定のストライドで入力データとしての画像上をシフトされていき、そのシフト位置において、上述した畳み込み演算が繰り返し行われる。これにより、各コンボリューション層２１〜２７において、入力画像全体に渡ってそれぞれのフィルタのシフト位置に応じた出力値が作成される。それらの出力値を、フィルタのシフト位置に対応するように２次元的にまとめた結果が、各コンボリューション層２１〜２７による出力データとなり、次の階層の入力データとなる。
【００２９】
このように、各コンボリューション層２１〜２７の出力データは、それぞれ２次元的に配列される画像の形を取り、一般的には特徴マップと呼ばれる。この特徴マップは、各コンボリューション層２１〜２７において使用されるフィルタの数と同じ数だけ生成される。このため、通常は、第２コンボリューション層２２以降の各コンボリューション層２２〜２７には、複数枚の入力画像（特徴マップ）を含む入力データが入力される。また、第１コンボリューション層２１においても、入力画像がカラー画像である場合には、ＲＧＢに対応する３枚の画像が入力される。一方、入力画像がグレースケール画像である場合には、第１コンボリューション層２１には、１枚の画像が入力されるだけである。
【００３０】
なお、本実施形態では、第６、第７コンボリューション層２６、２７において使用されるフィルタのサイズは１×１に設定されている。つまり、第６、第７コンボリューション層２６、２７では、各入力画像における同じ位置のピクセル値が、フィルタによる重みを掛け合わされた上で加算される、１×１の畳み込み演算が行われる。これら第６、第７コンボリューション層２６、２７として、いわゆる全結合層を用いることも可能であるが、本実施形態では、第６、第７コンボリューション層２６、２７を含む各コンボリューション層２１〜２７における畳み込み演算を、後述するクロスバー回路を用いてアナログ領域において実行するために、上述したように１×１の畳み込み演算を行うコンボリューション層を採用している。全結合層を採用すると、入力バーの数が過大となり、１つのクロスバー回路で対応することが困難になるためである。クロスバー回路に関しては、後に詳細に説明する。
【００３１】
本実施形態では、上述したように、活性化関数として、ＲｅＬＵを用いる。ＲｅＬＵは、ｍａｘ（０、ｘ）により定義される関数である。このように出力値に上限値が定められていないＲｅＬＵを用いることにより、計算が速い、勾配損失しない、スパース性の高さに繋がる、などのメリットが得られる。ただし、活性化関数はＲｅＬＵに限られず、ＲｅＬＵと類似する他の関数（ｌｅａｋｙ ＲｅＬＵ、Ｐａｒａｍｅｔｒｉc ＲｅＬＵ、ｍａｘｏｕｔ）などを用いても良い。
【００３２】
また、上述したフィルタの重みは学習によって決定される。学習は、本実施形態では、畳み込みＮＮ２０を、一旦コンピュータ上に構築して、教師あり学習により行われる。学習の対象は、上述したフィルタの重みの他、後述するバイアス入力に対する重みの大きさが含まれる。
【００３３】
第１、第２プーリング層２８、２９は、入力画像のどの位置でフィルタとの適合性が高かったかを示す情報の一部を捨てることにより、入力画像内に現れる特徴の位置変化に対する不変性を高めるとともに、画像のサイズを縮小して後の計算量を削減できるようにするためのものである。
【００３４】
具体的には、第１、第２プーリング層２８、２９は、入力画像に対して所定のサイズ（２×２、３×３など）のウインドウを定め、そのウインドウ内の入力値（ピクセル値）を平均化（平均プーリング）したり、ウインドウ内の入力値の最大値を採用（最大プーリング）したりすることにより、入力画像の複数の入力値をまとめる。なお、プーリング層２８、２９におけるプーリング演算として平均プーリングを用いることにより、プーリング層２８、２９のプーリング演算も、後述するクロスバー回路を用いて行うことができる。
【００３５】
このプーリング演算では、プーリングの対象範囲を定めるウインドウが重ならないように、ウインドウが行方向及び列方向にシフトされる。ただし、プーリング範囲を定めるウインドウが一部重なるように、ウインドウをシフトさせても良い。また、このようなプーリングは、各入力画像（特徴マップ）毎に行われるので、プーリング前後の入力画像の枚数は不変である。
【００３６】
出力層３０は、例えば、ソフトマックス関数による正規化により、分類すべき複数のカテゴリ毎に、入力データとしての画像が属する確率を出力するように構成される。従って、出力層３０が出力する確率の中で最も高い確率に対応するカテゴリを選択することにより、入力データとしての画像を、複数のカテゴリに分類することができる。
【００３７】
次に、上述した多層ＮＮ１０や畳み込みＮＮ２０を、クロスバー回路及びＣＭＯＳ素子の集積回路によって構成されるアナログ処理回路を用いて具現化するための構成について説明する。なお、多層ＮＮ１０や畳み込みＮＮ２０は、クロスバー回路及びアナログ処理回路以外の要素も用いて構成されるので、まず、一例として、畳み込みＮＮ２０を具現化するための全体構成について説明し、その後、クロスバー回路及びアナログ処理回路について説明する。
【００３８】
図３は、畳み込みＮＮ２０を具現化した全体構成の一例を示す図である。図３に示すように、畳み込みＮＮ２０を具現化するための構成要素として、本実施形態では、主に、マイクロコンピュータ４０、Ｄ／Ａ変換回路４３、クロスバー回路４４、アナログ処理回路４５、及びＡ／Ｄ変換回路４６を備えている。
【００３９】
マイクロコンピュータ４０は、ＣＰＵ４１、ＲＡＭ４２、ＲＯＭなどを備え、例えば、ＲＯＭに記憶されたプログラムに従い、種々の処理を実施する。なお、以下においては、第１コンボリューション層２１を対象とした処理について説明するが、マイクロコンピュータ４０は、他のコンボリューション層２２〜２７に対しても原則として同様の処理を行なう。
【００４０】
まず、マイクロコンピュータ４０は、入力データとしての画像において、フィルタの畳み込み演算を行う領域を定め、その領域に含まれる各ピクセルのピクセル値に応じたデジタル信号をＤ／Ａ変換回路４３に出力する。これにより、Ｄ／Ａ変換回路４３は、畳み込み演算が行われる領域の各ピクセル値に応じたアナログ信号（電圧信号）をクロスバー回路４４へ出力する。
【００４１】
さらに、マイクロコンピュータ４０は、クロスバー回路４４及びアナログ処理回路４５における演算処理が終了して、出力が出されるタイミングで、Ａ／Ｄ変換回路４６からの出力を取り込む処理を実行する。この際、Ａ／Ｄ変換回路４６は、第１コンボリューション層２１において使用されるフィルタ数と同数の、あるフィルタのシフト位置での畳み込み演算、活性化関数による処理を経た出力値をデジタル信号に変換して出力している。マイクロコンピュータ４０は、Ａ／Ｄ変換回路４６から出力されたデジタル信号を、複数のフィルタ毎に区別して、ＲＡＭ４２にそれぞれ格納する。
【００４２】
そして、マイクロコンピュータ４０は、入力画像において、フィルタの畳み込み演算を行う領域を所定のストライドだけシフトさせ、そのシフト後の領域に含まれるピクセル値に対応するデジタル信号をＤ／Ａ変換回路４３に出力するとともに、上述したのと同様の処理を行う。これを、入力画像のすべての領域でフィルタのシフトが完了するまで繰り返す。これにより、第１コンボリューション層２１により作成された、フィルタ数と同数の特徴マップを示すデジタルデータがＲＡＭ４２に保存される。
【００４３】
なお、図１に示す多層ＮＮ１０に関しては、所定のストライドでフィルタをシフトさせる必要は無いので、クロスバー回路４４及びアナログ処理回路４５による出力値を、都度、マイクロコンピュータ４０に取り込む必要はない。換言すれば、図１に示す多層ＮＮ１０は、アナログ処理回路４５からの出力を、そのまま、後段層のクロスバー回路４４の入力とすることができる
次に、クロスバー回路４４の基本的な構成について、図４〜図６に基づいて説明する。クロスバー回路４４は、上述した多層ＮＮ１０や畳み込みＮＮ２０の隣接する層の間で、信号を伝達させるために用いられるものである。図４〜図６は、図示及び説明の便宜上、クロスバー回路４４の一部のみを示している。
【００４４】
図４に示すように、クロスバー回路４４は、複数の入力バー５０と、複数の出力バー５１ａ、５１ｂ、５２ａ、５２ｂとを有する。複数の入力バー５０と複数の出力バー５１ａ、５１ｂ、５２ａ、５２ｂとは、それぞれ交差するように配列される。これらの入力バー５０及び出力バー５１ａ、５１ｂ、５２ａ、５２ｂは、ＣＭＯＳ素子が形成されたＣＭＯＳ基板上に形成され得る。入力バー５０には、ＣＭＯＳ素子からなる入力ニューロン５５を介して、例えば、上述したピクセル値に対応する電圧信号が入力されるように構成される。そして、複数の入力バー５０と複数の出力バー５１ａ、５１ｂ、５２ａ、５２ｂとの各交点に、入力バー５０から出力バー５１ａ、５１ｂ、５２ａ、５２ｂへと伝達される入力信号に対して重みを付与する抵抗変化型メモリであるメモリスタ５３が設けられている。つまり、複数の入力バー５０と、複数の出力バー５１ａ、５１ｂ、５２ａ、５２ｂとは、それぞれ、対応するメモリスタ５３を介して接続されている。
【００４５】
メモリスタ５３は、印加電圧や通電電流によって、最小値と最大値との間で、異なる抵抗状態に設定することが可能な抵抗変化型メモリである。例えば、メモリスタ５３のコンダクタンス値は、図示しない電圧印加回路を用いて、負の書込電圧を印加することにより増加させることができ、正の書込電圧を印加することにより減少させることができる。そして、メモリスタ５３は、正負の書込電圧以上の電圧が印加されない限り、設定された抵抗状態（コンダクタンス値）を維持する。このようなメモリスタ５３として使用可能な素子としては、Pt/TiO2/Pt金属酸化物素子、相変化メモリ、磁気トンネル接合メモリ、などがある。
【００４６】
クロスバー回路４４と、出力ニューロン５６としての役割を果たすアナログ処理回路４５とは、例えば、メモリスタ５３が組み込まれたハイブリッドＣＭＯＳ回路として構成することができる。以下に、出力ニューロン５６としての役割を果たすアナログ処理回路４５について、図５を参照して説明する。図５は、クロスバー回路４４及び出力ニューロン５６としてのアナログ処理回路４５を電気回路的に示した図である。
【００４７】
図５に示すように、本実施形態においては、一対の出力バー（５１ａと５２ａ、５１ｂと５２ｂ）が差動対出力バーとして用いられることで、各入力バー５０との間において、差動対出力バーの正側の出力バー５１ａ、５１ｂに接続されるメモリスタ５３による重み（コンダクタンス値）Ｇ（＋）と、負側の出力バー５２ａ、５２ｂに接続されるメモリスタ５３による重み（コンダクタンス値）Ｇ（−）との差分に応じて、各入力バー５０に入力される信号に正又は負の重みを付与可能に構成されている。なお、差動対出力バーの正側の出力バー５１ａ、５１ｂは、差動増幅器５４の非反転入力端子に接続された出力バーであり、負側の出力バー５２ａ、５２ｂは、差動増幅器５４の反転入力端子に接続された出力バーである。
【００４８】
そして、本実施形態では、差動対出力バーの正側の出力バー５１ａ、５１ｂは複数の出力バー５１ａ、５１ｂを含み、差動対出力バーの負側の出力バー５２ａ、５２ｂも、正側の出力バーと同数の複数の出力バー５２ａ、５２ｂを含んでいる。この結果、本実施形態におけるクロスバー回路４４の出力バー５１ａ、５１ｂ、５２ａ、５２ｂの数は、従来のクロスバー回路の出力バーの数の倍数（例えば、図４及び図５では２倍）となる。なお、図４及び図５には、差動対出力バーの、複数の正側の出力バー５１ａ、５１ｂの数及び複数の負側の出力バー５２ａ、５２ｂの数を「２」とした例を示していが、それぞれの出力バーの数は３以上であっても良い。差動対出力バーの、正側及び負側の出力バーの数を「３」とした場合には、出力バーの数が、重複分の出力バーを設けない構成に比較して３倍となり、正側及び負側の出力バーの数を「４」とした場合には、出力バーの数が４倍となる。
【００４９】
また、本実施形態では、差動対出力バーは、複数の正側の出力バー５１ａ、５１ｂが、接続される複数のメモリスタ５３の重みが相互に同一となるように設定され、かつ、複数の負側の出力バー５２ａ、５２ｂが、接続される複数のメモリスタ５３の重みが相互に同一となるように設定される同一重み差動対出力バーとなっている。つまり、出力バー５１ａと出力バー５１ｂとにそれぞれ接続されるメモリスタ５３のコンダクタンス値は、Ｇ（+）１１＝Ｇ（+）１２、Ｇ（+）２１＝Ｇ（+）２２であり、同じ入力信号Ｖ１、Ｖ２に対して同じ重みを付与するように設定されている。同様に、出力バー５２ａと出力バー５２ｂとにそれぞれ接続されるメモリスタ５３のコンダクタンス値は、Ｇ（−）１１＝Ｇ（−）１２、Ｇ（−）２１＝Ｇ（−）２２となるように設定されている。このように、複数の正側の出力バー５１ａ、５１ｂは、入力信号Ｖ１、Ｖ２に対して協働して所望の重みを付与するように、それぞれのメモリスタ５３のコンダクタンス値が同じ値に設定されたものである。同様に、複数の負側の出力バー５２ａ、５２ｂも、入力信号Ｖ１、Ｖ２に対して協働して所望の重みを付与するように、それぞれのメモリスタ５３のコンダクタンス値が同じ値に設定されたものである。
【００５０】
ただし、入力信号Ｖ１、Ｖ２に対して協働して所望の重みを付与する複数の出力バー（５１ａと５１ｂ、５２ａと５２ｂ）に接続された各メモリスタ５３のコンダクタンス値は、必ずしも相互に同一でなくても良い。例えば、同じ入力信号に対して重みを付与する、複数の出力バーに接続された各メモリスタ５３のコンダクタンス値は相違するが、それらのコンダクタンス値の合計値が、所望の重みに対応するものであってもよい。
【００５１】
アナログ処理回路４５は、図５に示すように、入力信号に正の重み（Ｇ（＋））を付与するメモリスタ５３が接続された複数の正側の出力バー５１ａ、５１ｂから出力される信号の総和を算出して出力する加算器５７ａ、入力信号に負の重み（Ｇ（-））を付与するメモリスタ５３が接続された複数の負側の出力バー５２ａ、５２ｂの信号の総和を算出して出力する加算器５７ｂ、及び、それぞれの加算器５７ａ、５７ｂから出力される総和の差分を算出して出力する差動増幅器５４を有する。さらに、アナログ処理回路４５は、図示していないが、差動増幅器５４から出力される操作の差分を、所定の活性化関数ｆによって変換し、その変換した値を出力する活性化関数処理回路も有している。なお、加算器５７ａ、５７ｂ、差動増幅器５４や活性化関数処理回路は、ＣＭＯＳ基板内のＣＭＯＳ素子を用いて構成され得る。
【００５２】
加算器５７ａ、５７ｂは、演算増幅器の入出力間に抵抗Ｒが接続された構成を有する。このため、図５に示すように、入力バー５０に電圧信号Ｖ１、Ｖ２が入力されると、電圧信号Ｖ１にはコンダクタンスＧ（+）１１、Ｇ（+）１２が掛け合わされ、電圧信号Ｖ２にはコンダクタンスＧ（+）２１、Ｇ（+）２２が掛け合わされた上で、加算器５７ａにおいて加算され、総和が算出される。さらに、その総和は、加算器５７ａにてＲ倍される。同様に、加算器５７ｂにおいても、電圧信号Ｖ１にコンダクタンスＧ（-）１１、Ｇ（-）１２をかけ合わせた結果と、電圧信号Ｖ２にコンダクタンスＧ（-）２１、Ｇ（+）２２を掛け合わせた結果とが加算されて総和が算出され、さらに、その総和がＲ倍される。
【００５３】
そして、差動増幅器５４は、加算器５７ａが出力する総和と、加算器５７ｂが出力する総和との差分を算出して出力する。このため、出力ニューロン５６としてのアナログ処理回路４５において、以下の数式１に示す結果が得られる。
【００５４】
（数１）
出力電圧＝Ｒ（Ｇ（+）１１Ｖ１−Ｇ（-）１１Ｖ１＋Ｇ（+）１２Ｖ１−Ｇ（-）１２Ｖ１
＋Ｇ（+）２１Ｖ２−Ｇ（-）２１Ｖ２＋Ｇ（+）２２Ｖ２−Ｇ（-）２２Ｖ２＋…）
従って、差動対出力バー５１ａ、５１ｂ、５２ａ、５２ｂを介して入力信号Ｖ１が伝達されるときにメモリスタ５３によって付与される重みは、Ｒ（Ｇ（+）１１−Ｇ（-）１１＋Ｇ（+）１２Ｖ１−Ｇ（-）１２＋…）となる。また、入力信号Ｖ２が伝達されるときにメモリスタ５３によって付与される重みは、Ｒ（Ｇ（+）２１−Ｇ（-）２１＋Ｇ（+）２２−Ｇ（-）２２＋…）となる。図４及び図５には図示していないが、他の入力信号に対する重みについても同様である。
【００５５】
また、本実施形態では、上述したように、差動対出力バー５１ａ、５１ｂ、５２ａ、５２ｂは、複数の正側の出力バー５１ａ、５１ｂに接続される複数のメモリスタ５３の重みが相互に同一となるように設定され、かつ、複数の負側の出力バー５２ａ、５２ｂに接続される複数のメモリスタ５３の重みが相互に同一となるように設定される。従って、差動対出力バー５１ａ、５１ｂ、５２ａ、５２ｂに含まれる正側、負側のそれぞれの出力バーの本数をＮとすると、上記の入力信号Ｖ１に対する重みは、ＲＮ（Ｇ（+）１１−Ｇ（-）１１）となり、上記の入力信号Ｖ２に対する重みは、ＲＮ（Ｇ（+）２１−Ｇ（-）２１）となる。このため、抵抗Ｒの値を、１／Ｎに相当する値に設定した場合、換言すれば、抵抗Ｒの値により、それぞれの入力信号Ｖ１、Ｖ２に対する重みを、正側／負側の出力バーの数で正規化した場合には、入力信号Ｖ１に対する重みは、（Ｇ（+）１１−Ｇ（-）１１）となり、入力信号Ｖ２に対する重みは、（Ｇ（+）２１−Ｇ（-）２１）となる。これは、正側及び負側の出力バーの本数をそれぞれ１本としたときの、入力信号Ｖ１、Ｖ２に対する重みと同じである。このため、アナログ処理回路の信号レンジを広げずとも、複数の正側の出力バーの信号の総和、及び複数の負側の出力バーの信号の総和を算出することができる。
【００５６】
図６は、畳み込みＮＮ２０に用いる、クロスバー回路４４及びアナログ処理回路４５の一例を示している。図６に示すクロスバー回路４４及びアナログ処理回路４５は、基本的に、図４及び図５を用いて説明したクロスバー回路４４及びアナログ処理回路４５と同様の構成を有している。ただし、畳み込みＮＮ２０に用いるクロスバー回路４４の各メモリスタ５３には、該当するコンボリューション層２１〜２７において使用される、それぞれのフィルタ１、２、３、…に対応する重みが設定される。
【００５７】
ここで、クロスバー回路４４に設けられる各メモリスタ５３は、温度特性を有している。このため、環境温度の変化に応じて、各メモリスタ５３に設定されたコンダクタンス値が変化する。図７は、このようなメモリスタ５３の温度特性の一例を示している。図７に示すように、入力電圧Ｖが同じであっても、環境温度に応じて、メモリスタ５３のコンダクタンス値が変化するので、結果的に出力電流Ｉも変化することになる。
【００５８】
クロスバー回路４４に含まれるメモリスタ５３のコンダクタンス値の変化の割合が、すべてのメモリスタ５３において一様であれば、各メモリスタ５３間で、それぞれのコンダクタンス値による重みの相互の関係は保たれる。しかしながら、図８に示すように、各メモリスタ５３のコンダクタンス値は、環境温度の変化に応じて、必ずしも一様の割合で変化しないことがある。すなわち、同じ温度変化に対して、コンダクタンス値が大きく変化するメモリスタもあれば、コンダクタンス値の変化が小さいメモリスタもありえる。このように、クロスバー回路４４に含まれる各メモリスタ５３において、環境温度の変化によるコンダクタンス値の変化の割合にばらつきがあると、各メモリスタ５３間で重みの相互の関係が崩れてしまう。その結果、人工ＮＮ回路の性能の劣化が生じてしまう。
【００５９】
そのため、本実施形態では、上述したように、差動対出力バーの正側の出力バーは複数の出力バー５１ａ、５１ｂを含み、差動対出力バーの負側の出力バーも、正側の出力バー５１ａ、５１ｂと同数の複数の出力バー５２ａ、５２ｂを含み、アナログ処理回路４５は、複数の正側の出力バー５１ａ、５１ｂから出力される信号の総和と、複数の負側の出力バー５２ａ、５２ｂから出力される信号の総和との差分を算出するように構成される。
【００６０】
このような構成を採用したことにより、環境温度の変化に対して、クロスバー回路４４に設けられる各メモリスタ５３のコンダクタンス値の変化の割合にばらつきがあっても、そのばらつきの影響を低減することができるようになる。つまり、アナログ処理回路４５が、１つの出力バーに流れ込む信号の総和を算出するだけでは、個々のメモリスタ５３のコンダクタンス値の変化が、そのまま、算出される信号の総和に反映されてしまう。しかし、同じ入力信号に対して協働して所望の重みを付与する、別々の出力バー（５１ａと５１ｂ、５２ａと５２ｂ）の各々のメモリスタ５３のコンダクタンス値がすべて相対的に大きなコンダクタンス値の変化を示したり、すべて相対的に小さなコンダクタンス値の変化を示したりする可能性は小さい。そのため、アナログ処理回路４５が、別々の複数の出力バー（５１ａと５１ｂ、５２ａと５２ｂ）に流れ込む信号の総和を算出することにより、メモリスタ５３の相対的に大きなコンダクタンス値の変化や、相対的に小さなコンダクタンス値の変化をより平均的な変化に近づけることと同等の効果を得ることができる。その結果、環境温度が変化したときに、各メモリスタ５３のコンダクタンス値の変化のばらつきの影響を抑えることができ、人工ＮＮ回路の性能の劣化を抑制することが可能となる。
【００６１】
また、本実施形態では、アナログ処理回路４５は、信号の総和として、複数の正側の出力バー５１ａ、５１ｂから出力される信号の総和と、複数の負側の出力バー５２ａ、５２ｂから出力される信号の総和との差分を算出するように構成される。このため、クロスバー回路４４よって興奮性及び抑制性のシナプスを模擬しつつ、環境温度の変化に対する、クロスバー回路４４に設けられる各メモリスタ５３のコンダクタンス値の変化のばらつきの影響を低減することができるようになる。
【００６２】
さらに、本実施形態では、入力信号Ｖ１、Ｖ２に対して協働して所望の重みを付与する複数の出力バー（５１ａと５１ｂ、５２ａと５２ｂ）に接続される各メモリスタ５３のコンダクタンス値は、相互に同一となるように設定される。このように、複数の出力バーに接続された各メモリスタ５３に相互に同一のコンダクタンス値を設定すれば良いので、コンダクタンス値の設定作業を容易かつ短時間で行うことが可能となる。
【００６３】
次に、本実施形態におけるクロスバー回路４４及びアナログ処理回路４５を採用した場合に得られる効果について説明する。
【００６４】
まず、ＭＮＩＳＴデータセットを用いて、クロスバー回路４４の各メモリスタ５３の重みと、クロスバー回路４４の１つの入力バーへ入力されるバイアスとを学習させた、図１に示した構成を有する多層ＮＮ１０を具現化した人工ＮＮ回路を準備した。入力画像は、２８×２８ピクセルの大きさを持つため、入力層１１のニューロン数は、各ピクセルのピクセル値とバイアスの入力のために７８５（２８×２８＋１）である。中間層１２のニューロン数は、入力層１１のニューロンからの入力を受けるニューロン数を３００とし、バイアス入力分を加えて、合計で３０１とした。そして、出力層１３のニューロン数は１０である。このため、入力層１１と中間層１２との間のクロスバー回路４４の入力バーの数は７８５であり、差動対出力バーの正側／負側の出力バーの本数（重複数）を２としたため、出力バーの数は１２００である。また、中間層１２と出力層１３との間のクロスバー回路４４の入力バーの本数は、中間層１２のニューロン数（３００）とバイアス入力に対応する３０１であり、差動対出力バーの重複数は２であるため、出力バーの本数は４０である。
【００６５】
さらに、比較対象として、差動対出力バーの正側／負側の出力バーの本数を１としたクロスバー回路４４を有し、その他は上述した人工ＮＮ回路と同様とした、比較対象人工ＮＮ回路も準備した。
【００６６】
そして、本実施形態による人工ＮＮ回路を実装した１０個のチップと、比較対象人工ＮＮ回路を実装した１０個のチップとを用いて、認識エラーの発生率を調べた。その結果を図９のグラフに示す。なお、図９のグラフには、温度変化に応じて各メモリスタ５３の重みが変化しない理想重みの場合の認識エラーの発生率のばらつきと平均値を結んだ線分、本実施形態による、差動対出力バーの正側／負側の出力バーの本数を２とした場合の認識エラーの発生率のばらつきと平均値を結んだ線分、及び、比較対象人工ＮＮ回路による認識エラーの発生率のばらつきと平均値を結んだ線分が示されている。
【００６７】
比較対象人工ＮＮ回路では、上述したように、差動対出力バーの正側／負側の出力バーの本数を１としており、出力バーの重複はない。従って、差動対出力バーの正側／負側の出力バーに接続された各メモリスタのコンダクタンス値の変化の大きさのばらつきが、認識エラーの発生率に直接的に影響することになる。このため、環境温度が室温（約２７℃）から上昇するにつれて、認識エラーの発生率も高くなり、１００℃の時点では、１０チップの平均値が２％を超えてしまう。
【００６８】
それに対して、本実施形態による人工ＮＮ回路によれば、差動対出力バーの正側／負側の出力バーとしてそれぞれ２本の出力バーが接続されているので、各メモリスタのコンダクタンス値の変化の大きさのばらつきの影響を抑制することができる。このため、本実施形態による人工ＮＮ回路では、１０チップの平均の認識エラーの発生率（平均値）が、７０°〜１００℃の環境温度において、比較対象人工ＮＮ回路よりも低減されており、改善されていることが分かる。
【００６９】
さらに、本実施形態による人工ＮＮ回路を実装した１０個のチップに、それぞれ異なる２０セットの学習値（重み及びバイアス）をそれぞれ設定して、認識エラーの発生率を調べた。同様に、比較対象人工ＮＮ回路を実装した１０個のチップに、同様の２０セットの学習値を設定して、認識エラーの発生率を調べた。その結果を図１０のグラフに示す。図１０に示すように、２０セットの学習値をそれぞれ設定した場合における１０チップの認識エラーの発生率の平均値に関して、本実施形態による人工ＮＮ回路と、比較対象人工ＮＮ回路とは、図９のグラフとほぼ同様の傾向を示し、本実施形態による人工ＮＮ回路では、認識エラーの発生率の平均値が、比較対象人工ＮＮ回路よりも改善されていることが分かる。
【００７０】
図２に示す構成を有する畳み込みＮＮ２０についても、同様の検証を行った。具体的には、本実施形態による畳み込みＮＮ２０を具現化した畳み込みＮＮ回路として、第１〜第７コンボリューション層のクロスバー回路４４における差動対出力バーの正側／負側の出力バーの本数を「２」としたチップと、「４」としたチップをそれぞれ５個作成した。そして、それらのチップに、ＣＩＦＡＲ１０データセットを用いて学習した学習値（重み及びバイアス）を設定し、認識エラーの発生率を調べた。なお、ＣＩＦＡＲ１０は、飛行機、自動車、鳥、猫など、１０種類に分類される画像のデータセットである。
【００７１】
また、比較対象として、各コンボリューション層のクロスバー回路における差動対出力バーの正側／負側の出力バーの本数を１とし、その他は上述した畳み込みＮＮ回路と同様とした、比較対象畳み込みＮＮ回路を実装したチップも５個準備した。
【００７２】
そして、本実施形態による、差動対出力バーの正側／負側の出力バーの本数を２とした畳み込みＮＮ回路を実装した５個のチップと、差動対出力バーの正側／負側の出力バーの本数を４とした畳み込みＮＮ回路を実装した５個のチップと、比較対象畳み込みＮＮ回路を実装した５個のチップとを用いて、認識エラーの発生率を調べた。その結果を図１１のグラフに示す。
【００７３】
図１１に示すように、比較対象畳み込みＮＮ回路では、環境温度の上昇とともに、認識エラーの発生率が上昇する。具体的には、環境温度が室温程度である場合、認識エラーの発生率の平均値は９％強であるが、環境温度が１００℃まで上昇すると、認識エラーの発生率の平均値が１５％超まで上昇する。
【００７４】
それに対して、本実施形態の畳み込みＮＮ回路では、差動対出力バーの正側／負側の出力バーの本数を２とした場合、例えば１００℃での認識エラーの発生率の平均値は１１％程度に留まる。理想重みによる認識エラーの発生率とを基準として正規化した場合、差動対出力バーの正側／負側の出力バーの本数を２としたときの認識エラーの発生率の平均値は、比較対象人工ＮＮ回路による認識エラーの発生率の平均値の約１／２となっている。さらに、本実施形態の畳み込みＮＮ回路において、差動対出力バーの正側／負側の出力バーの本数を４としたときには、差動対出力バーの正側／負側の出力バーの本数を２としたときと比較して、認識エラーの発生率の平均値をさらに低減することができる。図１１に示す例では、理想重みによる認識エラー率を基準として正規化した場合、差動対出力バーの正側／負側の出力バーの本数を４としたときの認識エラーの発生率の平均値は、出力バーの本数を４としたときの認識エラーの発生率の平均値の約１／２となっている。
【００７５】
さらに、本実施形態による、差動対出力バーの正側／負側の出力バーの本数を２とした畳み込みＮＮ回路を実装した５個のチップ、及び差動対出力バーの正側／負側の出力バーの本数を４とした畳み込みＮＮ回路を実装した５個のチップに、異なる４セットの学習値（重み及びバイアス）をそれぞれ設定して、認識エラーの発生率を調べた。同様に、比較対象畳み込みＮＮ回路を実装した５個のチップに、同様の４セットの学習値を設定して、認識エラーの発生率を調べた。その結果を図１２のグラフに示す。図１２に示すように、４セットの学習値をそれぞれ設定した場合における５チップの認識エラーの発生率の平均値についても、図９のグラフとほぼ同様の傾向を示し、本実施形態による、差動対出力バーの正側／負側の出力バーの本数を複数とした畳み込みＮＮ回路では、認識エラーの発生率が、比較対象畳み込みＮＮ回路よりも改善されていることが分かる。さらに、差動対出力バーの正側／負側の出力バーの本数を増やすことにより（２本→４本）、一層、認識エラーの発生率を低減できることが分かる。
【００７６】
ここで、図１１及び図１２は、図２に示す構成を有する畳み込みＮＮ２０のすべてのコンボリューション層のクロスバー回路において、差動対出力バーの正側／負側の出力バーの本数を複数とした場合の結果を示している。
【００７７】
しかしながら、すべてのコンボリューション層ではなく、一部のコンボリューション層のクロスバー回路において、差動対出力バーの正側／負側の出力バーの本数を複数とするだけでも、認識エラーの低減に関して一定の効果を得られる。
【００７８】
以下に、一部のコンボリューション層のクロスバー回路において、差動対出力バーの正側／負側の出力バーの本数を複数とする例、およびその場合に得られる効果について説明する。
【００７９】
まず、第１の例として、第１コンボリューション層についてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの本数を４とした畳み込みＮＮ回路を実装した５個のチップを作成した。そして、これら５個のチップに、異なる４セットの学習値（重み及びバイアス）をそれぞれ設定して、認識エラーの発生率を調べた。すると、図１３に示すように、僅かではあるが、比較対象畳み込みＮＮ回路（各コンボリューション層のクロスバー回路における差動対出力バーの正側／負側の出力バーの本数を１としたもの）の認識エラーの発生率を改善できることを確認した。
【００８０】
次に、第２の例として、第１、第６、及び第７コンボリューション層についてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの本数を４とした畳み込みＮＮ回路を実装した５個のチップを作成した。そして、これら５個のチップに、異なる４セットの学習値（重み及びバイアス）をそれぞれ設定して、認識エラーの発生率を調べた。すると、図１３に示すように、すべてのコンボリューション層のクロスバー回路について、差動対出力バーの正側／負側の出力バーの本数を２とした畳み込みＮＮ回路よりも、認識エラーの発生率を低減できることを確認した。そして、第１及び第２の例の結果から、例えば、出力側のコンボリューション層についてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの数を複数とした場合も、比較対象畳み込みＮＮ回路よりも、認識エラーの発生率を低減できる可能性が高いといえる。
【００８１】
ここで、図２に示す構成の畳み込みＮＮ２０では、中間のコンボリューション層のクロスバー回路は、入力側及び出力側のコンボリューション層のクロスバー回路に比較して、入力バーと出力バーの本数が多くなる傾向がある。入力バーと出力バーの本数が多いクロスバー回路において、出力バーの本数を２倍以上に増やすと、クロスバー回路のサイズが大きくなり、その製造が困難になるとともに、コストの増加を招く虞がある。
【００８２】
その点、上述した第１の例や第２の例では、入力バーと出力バーの本数が相対的に少ない、入力側及び／又は出力側の一部のコンボリューション層においてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの本数を増加させている。このため、上述した問題を回避することができ、さらに、比較対象畳み込みＮＮ回路よりも認識エラーの発生率を低減することができる。
【００８３】
ここで、比較対象畳み込みＮＮ回路の認識エラーの発生率を基準とする、本実施形態の各種の畳み込みＮＮ回路による認識エラーの発生率の低減率と、比較対象畳み込みＮＮ回路におけるクロスバー回路の出力バーの本数を基準とする、本実施形態の各種の畳み込みＮＮ回路におけるクロスバー回路の出力バーの本数の増加率をかけ合わせた数値を、効率積として定義する。この効率積が１未満であれば、出力バーの本数を増加しても、それ以上に認識エラーの発生率を低減できることを意味し、さらに、この効率積が小さいほど、認識エラーの発生率の低減を効率よく行いうることを意味する。
【００８４】
図１４は、本実施形態の各種の畳み込みＮＮ回路の効率積をプロットしたものである。図１４に示すように、すべてのコンボリューション層のクロスバー回路の、差動対出力バーの正側／負側の出力バーの本数を２とした場合、差動対出力バーの正側／負側の出力バーの本数を４とした場合、及び第１コンボリューション層についてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの本数を４とした場合の効率積は、それほど大きな差はなく、０．９２〜０．９５程度の範囲に収まっている。それに対して、第１、第６、及び第７コンボリューション層についてのみ、クロスバー回路の差動対出力バーの正側／負側の出力バーの本数を４とした場合には、効率積が０．６７程度まで減少している。従って、上述した第２の例は、クロスバー回路の出力バーの本数をそれほど増やさず、効率的に、認識エラーの発生率を低減できるものであると言える。
【００８５】
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することができる。
【００８６】
例えば、上述した実施形態では、伝達される信号に正又は負の重みを付与可能とするために、クロスバー回路４４に差動対出力バーを設定する例について説明した。しかしながら、必ずしもクロスバー回路に４４に差動対出力バーを設定しなくともよい。この場合、出力バーに接続される各メモリスタ５３の重みはすべて正の符号を持つことになる。そして、アナログ処理回路４５は、伝達される信号に対して協働して所望の重みを付与するように各メモリスタ５３のコンダクタンス値が設定された、別々の複数の出力バーに流れ込む信号の総和を算出するように構成すればよい。
【００８７】
また、上述した実施形態では、差動対出力バーの正側の複数の出力バーの信号の総和を算出するとともに、負側の複数の出力バーの信号の総和を算出し、その後、それぞれの信号の総和の差分を算出する例について説明した。しかしながら、演算の順序は、これに限定されず、先に、差動対となる正側の出力バーの信号の総和と負側の出力バーの信号の操作の差分をそれぞれ算出し、その後、各差分信号を算出するようにしても良い。
【００８８】
さらに、上述した実施形態では、人工ＮＮをコンピュータ上に構築して、教師あり学習により、各メモリスタ５３の重み及びバイアスに関する学習値を算出する例について説明した。しかしながら、重み及びバイアスに関する学習値の算出は、チップに実装された人工ＮＮ回路に、実際に電圧信号を伝播させることで行ってもよい。
【００８９】
また、上述した実施形態では、差動対出力バーの正側及び負側の複数の出力バーにそれぞれ接続される各メモリスタ５３に、学習により得られた本来の重みを設定しつつ、それら出力バーの信号の総和を算出する加算器の抵抗Ｒの値により、算出される総和を正側／負側の出力バーの数で正規化するように構成する例について説明した。しかしながら、算出される総和を正規化する手法はこれに限られない。例えば、差動対出力バーの複数の正側の出力バーに接続される各メモリスタと、複数の負側の出力バーに接続される各メモリスタとには、学習により得られた本来の重みを、複数の正側／負側の出力バーの数で正規化した重みが設定されてもよい。このようにしても、正規化した信号の総和を得ることができる。
【００９０】
さらに、上述した実施形態では、畳み込みＮＮ回路において、コンボリューション層のクロスバー回路において、例について説明した。しかしながら、プーリング層がクロスバー回路を用いて平均プーリングを行うものである場合、プーリング層のクロスバー回路にも、正側／負側の出力バーの本数を複数とする差動対出力バーを設けてもよい。
【符号の説明】
【００９１】
１０：多層ニューラルネットワーク、１１：入力層、１２：中間層、１３：出力層、１４：ニューロン、２０：畳み込みニューラルネットワーク、２１：第１コンボリューション層、２２：第２コンボリューション層、２３：第３コンボリューション層、２４：第４コンボリューション層、２５：第５コンボリューション層、２６：第６コンボリューション層、２７：第７コンボリューション層、２８：第１プーリング層、２９：第２プーリング層、３０：出力層、４０：マイクロコンピュータ、４１：ＣＰＵ、４２：ＲＡＭ、４３：Ｄ／Ａ変換回路、４４：クロスバー回路、４５：アナログ処理回路、４６：Ａ／Ｄ変換回路、５０：入力バー、５１ａ、５１ｂ、５２ａ、５２ｂ：出力バー、５３：メモリスタ、５４：差動増幅器、５５：入力ニューロン、５６：出力ニューロン、５７ａ、５７ｂ：加算器
【図１】
2020057278.tif 000003
【図２】
2020057278.tif 000004
【図３】
2020057278.tif 000005
【図４】
2020057278.tif 000006
【図５】
2020057278.tif 000007
【図６】
2020057278.tif 000008
【図７】
2020057278.tif 000009
【図８】
2020057278.tif 000010
【図９】
2020057278.tif 000011
【図１０】
2020057278.tif 000012
【図１１】
2020057278.tif 000013
【図１２】
2020057278.tif 000014
【図１３】
2020057278.tif 000015
【図１４】
2020057278.tif 000016