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