(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】シナプス回路およびニューラルネットワーク装置
(51)【国際特許分類】
G06N 3/063 20230101AFI20240304BHJP
G06N 3/08 20230101ALI20240304BHJP
G06N 3/049 20230101ALI20240304BHJP
【FI】
G06N3/063
G06N3/08
G06N3/049
(21)【出願番号】P 2021027592
(22)【出願日】2021-02-24
【審査請求日】2023-02-07
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】野村 久美子
(72)【発明者】
【氏名】西 義史
(72)【発明者】
【氏名】丸亀 孝生
(72)【発明者】
【氏名】水島 公一
【審査官】円子 英紀
(56)【参考文献】
【文献】特表2014-523592(JP,A)
【文献】米国特許出願公開第2012/0173471(US,A1)
【文献】特表2014-532907(JP,A)
【文献】特表2017-515207(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
学習によって変更されるウェイト値が設定され、前段ニューロン回路から2値の入力信号を受け取り、後段ニューロン回路へと出力信号を出力するシナプス回路であって、
前記入力信号に対して前記ウェイト値の影響を加えた前記出力信号を前記後段ニューロン回路へと供給する伝播回路と、
前記ウェイト値が予め定められた基準値より小さい場合、前記伝播回路から前記後段ニューロン回路への前記出力信号の出力を停止させる制御回路と、
を備えるシナプス回路。
【請求項2】
前記ウェイト値を、スパイクタイミング依存シナプス可塑性学習により更新する学習回路
をさらに備える請求項1に記載のシナプス回路。
【請求項3】
前記伝播回路は、前記入力信号を、前記ウェイト値に応じた時間分遅延させた前記出力信号を出力する
請求項1または2に記載のシナプス回路。
【請求項4】
前記伝播回路は、前記ウェイト値が大きいほど、前記入力信号を受け取ってから前記出力信号を出力するまでの遅延時間を短くする
請求項3に記載のシナプス回路。
【請求項5】
前記前段ニューロン回路から前記入力信号を受け取り、前記伝播回路へと前記入力信号を与えるか否かを切り替えるスイッチ回路をさらに備え、
前記制御回路は、
前記ウェイト値が前記基準値以上である場合、前記スイッチ回路をオン状態にして、前記伝播回路へと前記入力信号を与えさせ、
前記ウェイト値が前記基準値より小さい場合、前記スイッチ回路をオフ状態にして、前記伝播回路へと前記入力信号を与えない
請求項1から4の何れか1項に記載のシナプス回路。
【請求項6】
設定された前記ウェイト値に応じたウェイト電圧を発生するウェイト保持回路をさらに備え、
前記制御回路は、
前記基準値に応じた基準値電圧を受け取り、前記基準値電圧と前記ウェイト電圧を比較し、
前記ウェイト電圧が前記基準値電圧以上である場合、前記スイッチ回路を前記オン状態にして、前記伝播回路へと前記入力信号を与えさせ、
前記ウェイト電圧が前記基準値電圧より小さい場合、前記スイッチ回路を前記オフ状態にして、前記伝播回路へと前記入力信号を与えない
請求項5に記載のシナプス回路。
【請求項7】
前記伝播回路は、
前記ウェイト値に応じた電流値のウェイト電流を流すウェイト電流回路と、
前記入力信号に応じて、前記ウェイト電流回路に前記ウェイト電流を流させるか否かを切り替える入力回路と、
第1端子および第2端子を有し、前記第1端子に定電圧が印加されるキャパシタと、
前記第2端子に発生するキャパシタ電圧に応じた前記出力信号を出力する出力回路と、
前記入力回路により前記ウェイト電流が流される場合、前記第2端子から前記ウェイト電流の電流値に応じたキャパシタ電流を吸い出す、または、前記キャパシタ電流を前記第2端子に供給することにより、前記キャパシタに蓄積される電荷を減少または増加させる電荷調整回路と、
を有する
請求項1から6の何れか1項に記載のシナプス回路。
【請求項8】
前記基準値を変更する変更回路をさらに備え、
前記変更回路は、
前記ウェイト値が前記基準値より小さい場合、予め設定されている下限基準値を下限として、前記基準値を時間経過に従って段階的に減少させ、
前記ウェイト値が前記基準値以上である場合、前記下限基準値より大きい上限基準値を上限として、前記基準値を時間経過に従って段階的に増加させる
請求項1から7の何れか1項に記載のシナプス回路。
【請求項9】
前記基準値を変更する変更回路をさらに備え、
前記変更回路は、
前記ウェイト値が前記基準値より小さくなったタイミングから予め設定された時間を経過した後において、前記基準値を下限基準値に変更し、
前記ウェイト値が前記基準値以上となったタイミングから予め設定された時間を経過した後において、前記基準値を前記下限基準値より大きい上限基準値に変更する
請求項1から7の何れか1項に記載のシナプス回路。
【請求項10】
請求項1から9の何れか1項に記載のシナプス回路を有する
ニューラルネットワーク装置。
【請求項11】
複数のレイアのうちの第1レイヤから出力された信号を、前記第1レイヤまたは前記第1レイヤより前段のレイヤにフィードバックさせる再帰構造を有する
請求項10に記載のニューラルネットワーク装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、シナプス回路およびニューラルネットワーク装置に関する。
【背景技術】
【0002】
近年、ハードウェア化したニューラルネットワークを用いて、脳型プロセッサを実現する技術が提案されている。このような脳型プロセッサは、シナプス回路を有する。シナプス回路は、重みを表すウェイト値が設定され、前段のニューロンから受け取った信号に対してウェイト値の影響を加えた信号を、後段のニューロンへと与える。
【0003】
シナプス回路に設定されているウェイト値は、所定の学習方法により更新される。脳型プロセッサの学習方法として、スパイクタイミング依存シナプス可塑性(STDP)を用いた学習が知られている。
【0004】
STDP学習は、前段のニューロンが発火したことに応じて、前段のニューロンの次に配置された後段のニューロンが発火する場合、前段のニューロンと後段のニューロンとの間のシナプス回路に設定されたウェイト値を大きくする。反対に、STDP学習は、ほとんど発火しない前段のニューロンと後段のニューロンとの間のシナプス回路に設定されるウェイト値を小さくする。これにより、STDP学習は、関連性の強いニューロンの間のシナプス回路のウェイト値を大きくし、関連性の弱いニューロン間のシナプス回路のウェイト値を小さくすることができる。
【0005】
ところで、STDP学習によりウェイト値を更新した場合、複数の前段のニューロンのうちの1つが頻繁に発火しているような場合がある。このような場合、発火の頻度が低い他の前段のニューロンの発火タイミングが、偶然に、後段のニューロンの発火タイミングと一致する確率が高くなる。STDP学習では、このような場合、発火の頻度が低い他の前段のニューロンと、後段のニューロンとの間の関連性が強いと判断し、シナプス回路に設定されたウェイト値を大きくしてしまう。このため、STDP学習では、学習の途中段階で、頻繁に発火している前段のニューロンの影響により、関連性が低い前段のニューロンと後段のニューロンとの間のシナプス回路のウェイト値を大きくしてしまう場合があった。
【0006】
学習の途中段階で、このように関連性が低いニューロン間のウェイト値を大きくしてしまうと、学習が収束するまでの時間が長くなってしまう可能性があった。また、精度の良い結果が得られるまでニューラルネットワークを学習させることができない可能性も残り、ニューラルネットワークの精度を安定化させることができない可能性もあった。
【先行技術文献】
【非特許文献】
【0007】
【文献】Elisabetta Chicca, et al., “Neuromorphic Electronic Circuits for Building Autonomous Cognitive Systems”, Proceedings of the IEEE (Volume: 102 , Issue: 9 , Sept. 2014), P1367-1388,2014年5月1日
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、学習が収束するまでの時間を短くし、学習の精度を安定化させることができるシナプス回路およびニューラルネットワーク装置を提供することにある。
【課題を解決するための手段】
【0009】
実施形態に係るシナプス回路は、学習によって変更されるウェイト値が設定され、前段ニューロン回路から2値の入力信号を受け取り、後段ニューロン回路へと出力信号を出力する。前記シナプス回路は、伝播回路と、制御回路とを備える。前記伝播回路は、前記入力信号に対して前記ウェイト値の影響を加えた前記出力信号を前記後段ニューロン回路へと供給する。前記制御回路は、前記ウェイト値が予め定められた基準値より小さい場合、前記伝播回路から前記後段ニューロン回路への前記出力信号の出力を停止させる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るニューラルネットワーク装置の構成の一例を示す図。
【
図4】リザーバーコンピューティングの構成を示す図。
【
図6】出力を停止させない場合の学習回数に対するウェイト値の一例を示す図。
【
図7】出力を停止する場合の学習回数に対するウェイト値の一例を示す図。
【
図8】出力を停止させない場合の学習回数に対する正確性の一例を示す図。
【
図9】出力を停止する場合の学習回数に対する正確性の一例を示す図。
【
図10】変形例に係るシナプス回路の構成を示す図。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態に係るニューラルネットワーク装置10について説明する。実施形態に係るニューラルネットワーク装置10は、ハードウェアにより実現され、学習が収束するまでの時間を短くし、学習の精度を安定化させる。この結果、実施形態に係るニューラルネットワーク装置10は、精度の良い推論を実行することができる。
【0012】
図1は、実施形態に係るニューラルネットワーク装置10の構成の一例を示す図である。ニューラルネットワーク装置10は、N段(Nは2以上の整数)のレイヤ22と、(N-1)個のシナプス部24と、学習回路26とを備える。
【0013】
N段のレイヤ22のそれぞれは、複数のニューロン回路30を含む。複数のニューロン回路30のそれぞれは、前段のレイヤ22から出力された複数の信号を取得し、取得した複数の信号に対して積和演算処理を実行する。なお、N段のレイヤ22のうち1段目のレイヤ22は、外部の装置または入力レイヤから複数の信号を取得する。そして、複数のニューロン回路30のそれぞれは、積和演算結果を表す信号に対して活性化関数処理を行った信号を出力する。複数のニューロン回路30のそれぞれは、積和演算処理および活性化関数処理を、例えばアナログ回路により実行する。
【0014】
(N-1)個のシナプス部24のそれぞれは、複数のシナプス回路40を含む。複数のシナプス回路40のそれぞれは、学習回路26によりウェイト値が設定される。
【0015】
(N-1)個のシナプス部24のうちのn番目(nは、1以上、(N-1)以下の整数)のシナプス部24は、n段目のレイヤ22と、(n+1)段目のレイヤ22との間に配置される。
【0016】
n番目のシナプス部24に含まれる複数のシナプス回路40のそれぞれは、n段目のレイヤ22に含まれる複数のニューロン回路30のうちの1つのニューロン回路30から出力された信号を2値の入力信号として受け取る。n番目のシナプス部24に含まれる複数のシナプス回路40のそれぞれは、受け取った入力信号に対して、設定されたウェイト値の影響を加えた出力信号を生成する。本実施形態において、出力信号は、2値の電圧信号である。これに代えて、出力信号は、アナログ値(連続値)で表された電流であってもよいし、アナログ値(連続値)で表された電圧であってもよい。そして、n番目のシナプス部24に含まれる複数のシナプス回路40のそれぞれは、(n+1)段目のレイヤ22に含まれる複数のニューロン回路30のうちの1つのニューロン回路30に出力信号を与える。
【0017】
学習回路26は、複数のシナプス回路40のそれぞれに設定されているウェイト値を更新する。学習回路26は、複数のシナプス回路40のそれぞれに設定されているウェイト値を、スパイクタイミング依存シナプス可塑性(STDP)学習により更新する。
【0018】
このようなニューラルネットワーク装置10は、1段目のレイヤ22が外部装置または入力レイヤから1または複数の信号を受け取る。そして、ニューラルネットワーク装置10は、受け取った1または複数の信号に対してニューラルネットワークによる演算を実行した結果を表す1または複数の信号を、N段目のレイヤ22から出力する。
【0019】
図2は、複数のシナプス回路40の接続関係を示す図である。シナプス回路40は、学習回路26によりウェイト値が設定されている。
【0020】
シナプス回路40は、前段のレイヤ22に含まれる何れかのニューロン回路30である前段ニューロン回路32から、2値の入力信号を受け取る。シナプス回路40は、受け取った2値の入力信号に設定されたウェイト値の影響を加えた出力信号を出力する。例えば、
図2に示した3つのシナプス回路40のそれぞれは、学習回路26によりウェイト値(W
1,W
2,W
3)が設定されている。
【0021】
本実施形態において、シナプス回路40は、2値の入力信号を、設定されたウェイト値に応じた時間分遅延させた2値の出力信号を出力する。すなわち、本実施形態において、シナプス回路40は、前段ニューロン回路32の発火タイミングを、設定されたウェイト値に応じた時間分遅延させた出力信号を出力する。例えば、シナプス回路40は、設定されたウェイト値が大きいほど、入力信号を受け取ってから出力信号を出力するまでの遅延時間を短くする。そして、シナプス回路40は、出力信号を対応する後段ニューロン回路34に与える。
【0022】
なお、シナプス回路40は、入力信号が発火した場合に、設定されたウェイト値に応じた電流量の電流である出力信号を出力してもよい。また、シナプス回路40は、入力信号の発火時間または発火回数に、設定されたウェイト値を乗じた値に応じた電流量の電流である出力信号を出力してもよい。この場合、シナプス回路40は、設定されたウェイト値が大きいほど、出力信号の電流量を大きくする。この場合、後段ニューロン回路34は、アナログ値(連続値)で表された出力信号をシナプス回路40から受け取る。また、同様に、シナプス回路40は、電流値に代えて、電圧値で表された出力信号を出力してもよい。
【0023】
図3は、学習回路26による処理を説明するための図である。学習回路26は、複数のシナプス回路40のそれぞれに設定されているウェイト値を更新する。学習回路26は、複数のシナプス回路40のそれぞれに設定されているウェイト値を、スパイクタイミング依存シナプス可塑性(STDP)学習により更新する。
【0024】
学習回路26は、あるシナプス回路40(第1シナプス回路40-1)に設定されているウェイト値を式(1)に従い更新する。
【0025】
Wij(t+Δt)=Wij(t)+ΔWij(t)…(1)
【0026】
Δtは、単位時間を表す。tは、任意の時刻を表す。(t+Δt)は、時刻(t)から単位時間(Δt)を経過した後の時刻を表す。
【0027】
Wij(t)は、時刻(t)において、第1シナプス回路40-1に設定されているウェイト値を表す。Wij(t+tΔ)は、時刻(t+Δt)において、第1シナプス回路40-1に設定されているウェイト値を表す。
【0028】
ここで、ΔWij(t)は、式(2)のように算出される。
【0029】
ΔWij(t)=ηSTDP(xi(t)×xj(t-Δt)-xi(t-Δt)×xj(t))…(2)
【0030】
(t-Δt)は、時刻(t)から、単位時間(Δt)前の時刻を表す。ηSTDPは、所定の定数を表す。
【0031】
xi(t)は、時刻(t)において、第1シナプス回路40-1に接続された後段ニューロン回路34から出力される信号の値を表す。xj(t)は、時刻(t)において、第1シナプス回路40-1に接続された前段ニューロン回路32から出力される信号の値を表す。
【0032】
xi(t-Δt)は、時刻(t-Δt)において、第1シナプス回路40-1に接続された後段ニューロン回路34から出力される信号の値を表す。xj(t-Δt)は、時刻(t-Δt)において、第1シナプス回路40-1に接続された前段ニューロン回路32から出力される信号の値を表す。
【0033】
なお、xi(t)、xj(t)、xi(t-Δt)およびxj(t-Δt)は、0または1を表す。また、xi(t)、xj(t)、xi(t-Δt)およびxj(t-Δt)は、1の場合に、発火を表す。
【0034】
式(2)で表されるΔWij(t)は、時刻(t-Δt)において前段ニューロン回路32が発火し、単位時刻(Δt)後の時刻(t)において前段ニューロン回路32が発火した場合、ηSTDPとなり、他の場合には、0となる。
【0035】
すなわち、学習回路26は、前段ニューロン回路32から出力される信号が発火したことに応じて、後段ニューロン回路34から出力される信号が発火した場合、シナプス回路40に設定されたウェイト値を所定量増加させる。これにより、学習回路26は、複数のシナプス回路40のそれぞれに設定されるウェイト値をSTDP学習させることができる。
【0036】
さらに、学習回路26は、複数のシナプス回路40のウェイト値が大きくなりすぎて適切に推論が行えなくなることを防止するために、正規化処理を実行する。正規化処理において、学習回路26は、1つのニューロンの入力段に接続されている複数のシナプス回路40に設定されている複数のウェイト値の和を、一定値以下にするように調整する。これにより、学習回路26は、複数のウェイト値を一律に小さくして、ニューロンを適切に発火させることができる。なお、学習回路26は、関連性の強いニューロン間のシナプス回路40に設定されたウェイト値を相対的に大きくし、関連性の弱いニューロン間のシナプス回路40に設定されたウェイト値を相対的に小さくすることができれば、正規化処理に代えてまたは正規化処理に加えて、他の処理を実行してもよい。
【0037】
ニューラルネットワーク装置10は、順伝播型のネットワークに限らず、再帰型のネットワークであってもよい。すなわち、ニューラルネットワーク装置10は、複数のレイアのうちの第1レイヤから出力された信号を、第1レイヤまたは第1レイヤより前段のレイヤにフィードバックさせる再帰構造を有するリカレントニューラルネットワークであってもよい。また、ニューラルネットワーク装置10は、一部のレイヤが並列に構成されていてもよい、ネットワークの一部が分岐した構成であってもよい。
【0038】
図4は、リザーバーコンピューティングの構成を示す図である。リザーバーコンピューティングは、入力層44と、リカレントニューラルネットワークであるリザーバー層46と、出力層48とを備える。ニューラルネットワーク装置10は、このようなリザーバーコンピューティングにおける、リザーバー層46として用いられてもよい。
【0039】
図5は、シナプス回路40の構成を示す図である。シナプス回路40は、ウェイト保持回路52と、スイッチ回路54と、伝播回路56と、制御回路58とを備える。
【0040】
ウェイト保持回路52は、学習回路26により設定されたウェイト値(W)を保持する。ウェイト保持回路52は、例えばウェイト値(W)に応じて抵抗値が変化する可変抵抗器を含んでもよい。ウェイト保持回路52は、例えば、ウェイト値(W)に応じた電荷を蓄積する保持用キャパシタを含んでもよい。また、ウェイト保持回路52は、メモリ等を有し、ウェイト値(W)に応じたデジタル値を記憶してもよい。本実施形態においては、ウェイト保持回路52は、設定されているウェイト値(W)に応じたウェイト電圧(VW)を発生する。
【0041】
スイッチ回路54は、前段ニューロン回路32から出力された2値の入力信号(Sin)を受け取る。スイッチ回路54は、制御信号(Scont)に応じて、受け取った入力信号(Sin)を伝播回路56に与えるか否かを切り替える。スイッチ回路54は、制御信号(Scont)が1の場合、オン状態となり、受け取った入力信号(Sin)を伝播回路56に与える。スイッチ回路54は、制御信号(Scont)が0の場合、オフ状態となり、受け取った入力信号(Sin)を伝播回路56に与えない。
【0042】
本実施形態においては、スイッチ回路54は、スイッチング動作をするMOS-FET(Metal Oxide Semiconductor Field Effect Transistor)である。
図5の例では、スイッチ回路54は、NチャネルMOS-FETである。MOS-FETであるスイッチ回路54は、ゲートに制御回路58から制御信号(S
cont)が印加され、ドレインに前段ニューロン回路32から入力信号(S
in)が印加され、ソースが伝播回路56に接続される。
【0043】
伝播回路56は、スイッチ回路54を介して、前段ニューロン回路32から入力信号(Sin)を受け取る。そして、伝播回路56は、入力信号(Sin)に対してウェイト値(W)の影響を加えた出力信号(Sout)を後段ニューロン回路34へと供給する。例えば、伝播回路56は、入力信号(Sin)を、ウェイト値(W)に応じた時間分遅延させた出力信号(Sout)を出力する。本実施形態においては、伝播回路56は、ウェイト値(W)が大きいほど、入力信号(Sin)を受け取ってから出力信号(Sout)を出力するまでの遅延時間を短くする。
【0044】
なお、伝播回路56は、スイッチ回路54がオフ状態である場合、入力信号(Sin)を受け取らない。伝播回路56は、スイッチ回路54がオフ状態である場合、出力信号(Sout)の出力を停止する。例えば、伝播回路56は、スイッチ回路54がオフ状態である場合、ウェイト値(W)が最小値(例えば、0)である状態において出力される出力信号(Sout)を出力する。
【0045】
本実施形態において、伝播回路56は、ウェイト電流回路62と、入力回路64と、キャパシタ66と、出力増幅回路68と、出力回路70と、電荷調整回路72と、第1定電流回路74と、第2定電流回路76とを含む。
【0046】
ウェイト電流回路62は、ウェイト保持回路52に設定されたウェイト値(W)に応じた電流値のウェイト電流(IW)を流す。例えば、ウェイト電流回路62は、ウェイト値(W)に比例したウェイト電流(IW)を流す。
【0047】
ウェイト電流回路62は、入力回路64がオン状態の場合に、ノードAからウェイト電流(IW)を吸い出して、基準電位(グランド)へと流す。ウェイト電流回路62は、入力回路64がオフ状態の場合に、ウェイト電流(IW)を流さない。すなわち、ウェイト電流回路62は、ウェイト電流を0とする。
【0048】
本実施形態においては、ウェイト電流回路62は、MOS-FETである。
図5の例では、ウェイト電流回路62は、NチャネルMOS-FETである。
【0049】
MOS-FETであるウェイト電流回路62は、ゲートにウェイト電圧(VW)が印加され、ドレインがノードAに接続される。そして、MOS-FETであるウェイト電流回路62は、ウェイト電圧(VW)に応じた電流量のウェイト電流(IW)をドレイン-ソース間に流す。
【0050】
入力回路64は、前段ニューロン回路32から出力された2値の入力信号(Sin)を、スイッチ回路54を介して受け取る。入力回路64は、スイッチ回路54がオン状態の場合、前段ニューロン回路32から出力された2値の入力信号(Sin)に応じて、ウェイト電流回路62にウェイト電流(IW)を流させるか否かを切り替える。例えば、入力回路64は、スイッチ回路54がオン状態であり、且つ、入力信号(Sin)が1の場合に、ウェイト電流(IW)を流させる。例えば、入力回路64は、スイッチ回路54がオン状態であり、且つ、入力信号(Sin)が0の場合に、ウェイト電流(IW)を流させない。つまり、入力回路64は、スイッチ回路54がオン状態であり、且つ、入力信号(Sin)が0の場合に、ウェイト電流(IW)を0とする。また、入力回路64は、スイッチ回路54がオフ状態である場合には、ウェイト電流(IW)を流させない。つまり、入力回路64は、スイッチ回路54がオフ状態である場合には、入力信号(Sin)が0の場合に、ウェイト電流(IW)を0とする。
【0051】
本実施形態においては、入力回路64は、スイッチング動作をするMOS-FETである。
図5の例では、入力回路64は、NチャネルMOS-FETである。MOS-FETである入力回路64は、ゲートに入力信号(S
in)が印加され、ドレインがウェイト電流回路62のソースに接続され、ソースが基準電位(グランド)に接続される。
【0052】
そして、MOS-FETである入力回路64は、スイッチ回路54がオン状態であり、且つ、入力信号(Sin)が1の場合にオン状態となり、ウェイト電流回路62のソースをグランドに接続することにより、ウェイト電流回路62にウェイト電流(IW)を流させる。また、MOS-FETである入力回路64は、スイッチ回路54がオン状態であり、且つ、入力信号(Sin)が0の場合にオフ状態となり、ウェイト電流回路62のソースをグランドから切断することにより、ウェイト電流回路62にウェイト電流(IW)を流させない。また、MOS-FETである入力回路64は、スイッチ回路54がオフ状態である場合、ウェイト電流回路62のソースをグランドから切断することにより、ウェイト電流回路62にウェイト電流(IW)を流させない。
【0053】
キャパシタ66は、第1端子66aおよび第2端子66bを有する。キャパシタ66の第1端子66aは、定電圧が発生される電源電位(例えば、VDD)に接続される。このようなキャパシタ66は、第1端子66aに定電圧が印加される。また、キャパシタ66は、第2端子66bにキャパシタ電圧(VC)を発生する。キャパシタ電圧(VC)は、電源電位から、キャパシタ66により発生される電圧を減じた値である。キャパシタ66により発生される電圧は、蓄積した電荷量を静電容量で除算した電圧である。
【0054】
出力増幅回路68は、キャパシタ66の第2端子66bに発生するキャパシタ電圧(VC)に応じてオン状態またはオフ状態を切り替える。例えば、出力増幅回路68は、キャパシタ電圧(VC)が閾値電圧(Vt)以下である場合にオン状態となり、キャパシタ電圧(VC)が閾値電圧(Vt)より大きい場合にオフ状態となる。
【0055】
例えば、出力増幅回路68は、スイッチング動作をするMOS-FETである。
図5の例では、出力増幅回路68は、PチャネルMOS-FETである。PチャネルMOS-FETである出力増幅回路68は、ゲートにキャパシタ電圧(V
C)が印加され、ソースが電源電位に接続され、ドレインが出力回路70に接続される。そして、MOS-FETである出力増幅回路68は、キャパシタ電圧(V
C)が閾値電圧(V
t)以下である場合にオン状態となり出力電流(I
out)を出力回路70に供給する。また、MOS-FETである出力増幅回路68は、キャパシタ電圧(V
C)が閾値電圧(V
t)より大きい場合にオフ状態となり、出力電流(I
out)の出力を停止する。
【0056】
出力回路70は、キャパシタ66の第2端子66bに発生するキャパシタ電圧(VC)に応じた出力信号(Sout)を出力する。例えば、出力回路70は、キャパシタ電圧(VC)を閾値電圧(Vt)で2値化した2値の出力信号(Sout)を出力する。
【0057】
例えば、出力回路70は、出力増幅回路68から出力電流(Iout)が供給された場合に1となり、出力増幅回路68から出力電流(Iout)が供給されない場合に0となる出力信号(Sout)を出力する。すなわち、この場合、出力回路70は、キャパシタ電圧(VC)が閾値電圧(Vt)以下である場合に1となり、キャパシタ電圧(VC)が閾値電圧(Vt)より大きい場合に0となる出力信号(Sout)を出力する。
【0058】
なお、出力回路70は、アナログ値(連続値)の電流である出力信号(Sout)を出力してもよい。この場合、出力増幅回路68は、スイッチング動作をせずに、キャパシタ電圧(VC)に応じたアナログ値(連続値)の出力電流(Iout)を流す電流増幅器として機能する。そして、出力回路70は、出力電流(Iout)をそのまま出力信号(Sout)として出力する。また、出力回路70は、出力電流(Iout)に応じたアナログ値(連続値)の電圧信号を、出力信号(Sout)として出力してもよい。
【0059】
電荷調整回路72は、入力回路64によりウェイト電流(IW)が流される場合、ウェイト電流(IW)の電流値に応じた時間変化量でキャパシタ66に蓄積される電荷を減少または増加させる。例えば、電荷調整回路72は、入力回路64がオン状態の場合、キャパシタ66に蓄積される電荷を減少または増加させる。
【0060】
また、電荷調整回路72は、入力回路64によりウェイト電流(IW)が流されない場合、キャパシタ66に蓄積される電荷を一定とする。例えば、電荷調整回路72は、入力回路64がオフ状態の場合、キャパシタ66に蓄積される電荷を変化させない。
【0061】
例えば、電荷調整回路72は、ダイオード接続されたMOS-FETである。
図5の例では、電荷調整回路72は、ダイオード接続されたNチャネルMOS-FETである。NチャネルMOS-FETである電荷調整回路72は、ゲートとドレインとが接続され、ゲートにキャパシタ66の第2端子66bが接続され、ソースがノードAに接続される。そして、MOS-FETである電荷調整回路72は、ノードAにウェイト電流(I
W)が流れる場合、キャパシタ66の第2端子66bからキャパシタ電流(I
C)を吸い出してノードAへと供給する。または、MOS-FETである電荷調整回路72は、ノードAからキャパシタ電流(I
C)を吸い出してキャパシタ66の第2端子66bに供給する。
【0062】
これにより、電荷調整回路72は、入力回路64によりウェイト電流(IW)が流される場合、キャパシタ電圧(VC)を減少させ、入力回路64によりウェイト電流(IW)が流されない場合、キャパシタ電圧(VC)を一定とさせることができる。従って、電荷調整回路72は、入力回路64がオン状態の場合、つまり、入力信号(Sin)が1の場合、キャパシタ電圧(VC)を減少させることができる。また、電荷調整回路72は、入力回路64がオフ状態の場合、つまり、入力信号(Sin)が0の場合、キャパシタ電圧(VC)を一定とすることができる。
【0063】
第1定電流回路74は、入力回路64によりウェイト電流(I
W)が流される場合、予め定められた一定の第1電流(I
tau)をノードAへと供給する。例えば、第1定電流回路74は、MOS-FETである。
図5の例では、第1定電流回路74は、PチャネルMOS-FETである。PチャネルMOS-FETである第1定電流回路74は、ゲートに予め定められた一定の第1電圧(V
tau)が印加され、ソースが電源電位に接続され、ドレインが電荷調整回路72のドレインに接続される。そして、このような第1定電流回路74は、入力回路64によりウェイト電流(I
W)が流される場合、第1電流(I
tau)を電荷調整回路72を介してノードAへと供給する。
【0064】
第2定電流回路76は、入力回路64によりウェイト電流(I
W)が流される場合、予め定められた一定の第2電流(I
thr)をノードAへと供給する。例えば、第2定電流回路76は、MOS-FETである。
図5の例では、第2定電流回路76は、NチャネルMOS-FETである。NチャネルMOS-FETである第2定電流回路76は、ゲートに予め定められた一定の第2電圧(V
thr)が印加され、ドレインが電源電位に接続され、ソースがノードAに接続される。そして、このような第2定電流回路76は、入力回路64によりウェイト電流(I
W)が流される場合、第2電流(I
thr)を電荷調整回路72を介してノードAへと供給する。
【0065】
このような伝播回路56において、キャパシタ電圧(VC)は、入力信号(Sin)が0から1に変化した第1時刻(t1)から減少を開始する。そして、出力信号(Sout)は、キャパシタ電圧(VC)が閾値電圧(Vt)以下となった時刻で0から1に変化する。
【0066】
ここで、キャパシタ電圧(VC)の時間変化量は、ウェイト電流(IW)の大きさに応じて変化する。ウェイト電流(IW)は、ウェイト保持回路52により保持されているウェイト値(W)に応じた電流量である。
【0067】
従って、出力信号(Sout)は、入力信号(Sin)が0から1に変化した第1時刻から、ウェイト値(W)に応じた時間分遅延した時刻において、0から1に変化する。例えば、入力信号(Sin)が0から1に変化してから、出力信号(Sout)が0から1に変化する遅延時間は、ウェイト値(W)が大きい程、短い。従って、伝播回路56は、前段ニューロン回路32から受け取った入力信号(Sin)をウェイト値(W)に応じた時間分遅延した出力信号(Sout)を生成し、生成した出力信号(Sout)を後段ニューロン回路34へと供給することができる。
【0068】
制御回路58は、ウェイト値(W)および予め設定された基準値を受け取る。そして、制御回路58は、ウェイト値(W)が基準値以上である場合、伝播回路56による入力信号(Sin)に応じた出力信号(Sout)の後段ニューロン回路34へ出力させる。また、制御回路58は、ウェイト値(W)が基準値より小さい場合、伝播回路56から後段ニューロン回路34へ出力信号(Sout)の出力を停止させる。例えば、制御回路58は、ウェイト値(W)が基準値以上である場合、スイッチ回路54をオン状態にして、伝播回路56へと入力信号(Sin)を与えさせる。また、ウェイト値(W)が基準値より小さい場合、スイッチ回路54をオフ状態にして、伝播回路56へと入力信号(Sin)を与えないようにする。
【0069】
本実施形態においては、制御回路58は、コンパレータ等の比較回路80を含む。比較回路80は、設定されたウェイト値(W)に応じたウェイト電圧(VW)をウェイト保持回路52から受け取る。また、比較回路80は、予め設定された基準値に応じた基準値電圧(Vref)を受け取る。そして、比較回路80は、ウェイト電圧(VW)と基準値電圧(Vref)とを比較する。
【0070】
比較回路80は、ウェイト電圧(VW)が基準値電圧(Vref)以上である場合、スイッチ回路54をオン状態にして、伝播回路56へと入力信号(Sin)を与えさせる。例えば、比較回路80は、ウェイト電圧(VW)が基準値電圧(Vref)以上である場合、制御信号(Scont)を1として、MOS-FETであるスイッチ回路54をオン状態とする。また、例えば、比較回路80は、ウェイト電圧(VW)が基準値電圧(Vref)より小さい場合、制御信号(Scont)を0として、MOS-FETであるスイッチ回路54をオフ状態とする。
【0071】
図6は、制御回路58を機能させていない場合における、学習回数に対するウェイト値(W)の変化の一例を示す図である。
【0072】
学習回路26は、前段ニューロン回路32が発火したことに応じて、後段ニューロン回路34が発火する場合、発火した前段ニューロン回路32と後段ニューロン回路34との間のシナプス回路40に設定されたウェイト値(W)を大きくする。反対に、学習回路26は、前段ニューロン回路32の発火頻度が低い場合、その前段ニューロン回路32と後段ニューロン回路34との間のシナプス回路40に設定されるウェイト値(W)を小さくする。これにより、学習回路26は、STDP学習によって、関連性の強いニューロンの間のシナプスのウェイト値(W)を大きくし、関連性の弱いニューロン間のウェイト値(W)を小さくすることができる。
【0073】
ここで、前段ニューロン回路32の発火頻度が低くても、他の前段ニューロン回路32の影響により、後段ニューロン回路34が頻繁に発火する場合がある。このような場合において、制御回路58を機能させておらず、伝播回路56から後段ニューロン回路34への出力信号(S
out)の出力が停止されないと、学習回路26は、発火頻度が低い前段ニューロン回路32と後段ニューロン回路34との間のシナプス回路40に設定されるウェイト値(W)を大きくしてしまう。この場合、
図6に示すように、学習回路26は、例えば学習進むに従って小さくなったウェイト値(W)を、学習の途中段階で誤学習により増加させてしまう可能性がある。
【0074】
図7は、制御回路58を機能させた場合における、学習回数に対するウェイト値(W)の変化の一例を示す図である。これに対して、制御回路58は、ウェイト値(W)が基準値より小さい場合、伝播回路56から後段ニューロン回路34への出力を停止させる。従って、学習が進んだことによりウェイト値(W)が基準値より小さくなった場合、シナプス回路40は、前段ニューロン回路32から後段ニューロン回路34への信号の伝達を停止する。この結果、学習回路26は、そのシナプス回路40に設定されるウェイト値(W)を増加させなくなる。これにより、学習回路26は、
図7に示すように、学習が進んだことによりウェイト値(W)が基準値より小さくなった場合、そのウェイト値(W)を基準値より小さい値に固定化することができる。
【0075】
図8は、制御回路58を機能させていない場合における、学習回数に対する精度の変化の一例を示す図である。
【0076】
制御回路58を機能させておらず、伝播回路56から後段ニューロン回路34への出力信号(S
out)の出力が停止されない場合、学習回路26は、関連性の弱いニューロン間のウェイト値(W)を誤学習により大きくしてしまう可能性がある。このよう場合、ニューラルネットワーク装置10は、学習が進んだとしても、精度が高くならない。例えば、
図8の例においては、学習回数が500回付近においては、精度が0.9を超えていたのにも関わらず、学習回数が700回付近においては、精度が0.7程度に下がってしまっている。
【0077】
図9は、制御回路58を機能させた場合における、学習回数に対する精度の変化の一例を示す図である。
図9は、
図8と同一のネットワーク構成のニューラルネットワーク装置10を同一の学習方法で学習させた場合の精度の変化を示す図である。
【0078】
制御回路58を機能させた場合、関連性の弱いニューロン間のウェイト値(W)は、基準値より小さい値まで小さくされた後には、基準値以下で固定される。これにより、そのウェイト値(W)が設定されたシナプス回路40は、前段ニューロン回路32から後段ニューロン回路34への信号の伝達を停止する。この結果、学習回路26は、そのウェイト値(W)を増加させるような更新をしない。従って、学習が進むことによって生じる精度悪化要因が少なくなり、学習回路26は、学習が収束するまでの時間を短くし、学習の精度を安定化させることができる。例えば、
図9の例は、学習回数が800回付近において、
図8の例と比較して精度が改善している。
【0079】
以上のように、本実施形態に係るニューラルネットワーク装置10は、学習において、複数のシナプス回路40のそれぞれに設定されるウェイト値(W)が基準値より小さい場合、後段ニューロン回路34への出力信号の出力を停止させる。これにより、本実施形態に係るニューラルネットワーク装置10は、学習が収束するまでの時間を短くし、学習の精度を安定化させることができる。
【0080】
(変形例)
図10は、変形例に係るシナプス回路40の構成を示す図である。実施形態に係るニューラルネットワーク装置10は、
図10に示すような変形例に係るシナプス回路40を備えてもよい。なお、変形例に係るシナプス回路40は、
図5に示したシナプス回路40と略同一の構成を有するので、略同一の機能および構成を有する部材については同一の符号を付けて、詳細な説明を省略する。
【0081】
変形例に係るシナプス回路40は、変更回路84をさらに備える。変更回路84は、ウェイト保持回路52からウェイト値(W)を受け取る。変更回路84は、ウェイト値(W)と、現在の基準値とを比較し、比較結果に基づき基準値を段階的に変更する。
【0082】
具体的には、変更回路84は、ウェイト値(W)が基準値より小さい場合、予め設定された下限基準値を下限として、基準値を時間経過に従って段階的に減少させる。すなわち、変更回路84は、ウェイト値(W)が基準値より小さい場合、基準値がウェイト値(W)以上となるか、または、基準値が下限基準値に達するまで、基準値を時間経過に従って段階的に減少させる。
【0083】
さらに、変更回路84は、ウェイト値(W)が基準値以上である場合、下限基準値より大きい上限基準値を上限として、基準値を時間経過に従って段階的に増加させる。すなわち、変更回路84は、ウェイト値(W)が基準値以上である場合、基準値がウェイト値(W)より小さくなるか、または、基準値が上限基準値に達するまで、基準値を時間経過に従って段階的に増加させる。
【0084】
図11は、本実施形態における変更回路84の処理の流れを示す図である。変更回路84は、
図10に示す回路例においては、
図11に示すような流れで処理を実行する。
【0085】
まず、S11において、変更回路84は、比較回路80から出力された制御信号(Scont)が0であるか否かを判断する。比較回路80は、ウェイト電圧(VW)が基準値電圧(Vref)以上である場合、制御信号(Scont)を1とし、ウェイト電圧(VW)が基準値電圧(Vref)より小さい場合、制御信号(Scont)を0とする。従って、S11において、変更回路84は、ウェイト電圧(VW)が基準値電圧(Vref)より小さいか否かを判断することができる。
【0086】
制御信号(Scont)が0ではない場合、すなわち、ウェイト電圧(VW)が基準値電圧(Vref)以上である場合(S11のNo)、変更回路84は、処理をS12に進める。制御信号(Scont)が0である場合、すなわち、ウェイト電圧(VW)が基準値電圧(Vref)より小さい場合(S11のYes)、変更回路84は、処理をS14に進める。
【0087】
S12において、変更回路84は、基準値電圧(Vref)が上限電圧(Vmax)以上であるか否かを判断する。なお、上限電圧(Vmax)は、上限基準値に応じた電圧である。基準値電圧(Vref)が上限電圧(Vmax)以上である場合(S12のYes)、変更回路84は、処理をS16に進める。基準値電圧(Vref)が上限電圧(Vmax)より小さい場合(S12のNo)、変更回路84は、処理をS13に進める。
【0088】
S13において、変更回路84は、基準値電圧(Vref)に微小電圧(ΔVref)を加算する。微小電圧(ΔVref)は、例えば、上限電圧(Vmax)と下限電圧(Vmin)との差を、所定の整数で分割した電圧である。なお、下限電圧(Vmin)は、下限基準値に応じた電圧である。
【0089】
変更回路84は、S12およびS13の処理を実行することにより、ウェイト電圧(VW)が基準値電圧(Vref)以上である場合、上限電圧(Vmax)を上限として、基準値電圧(Vref)を段階的に増加させることができる。S13を終えると、変更回路84は、処理をS16に進める。
【0090】
S14において、変更回路84は、基準値電圧(Vref)が下限電圧(Vmin)以下であるか否かを判断する。基準値電圧(Vref)が下限電圧(Vmin)以下である場合(S14のYes)、変更回路84は、処理をS16に進める。基準値電圧(Vref)が下限電圧(Vmin)より大きい場合(S14のNo)、変更回路84は、処理をS15に進める。
【0091】
S15において、変更回路84は、基準値電圧(Vref)から微小電圧(ΔVref)を減算する。変更回路84は、S14およびS15の処理を実行することにより、ウェイト電圧(VW)が基準値電圧(Vref)より小さい場合、下限電圧(Vmin)を下限として、基準値電圧(Vref)を段階的に減少させることができる。S15を終えると、変更回路84は、処理をS16に進める。
【0092】
S16において、変更回路84は、一定時間処理を待機し、待機した後、処理をS11に戻す。これにより、変更回路84は、時間経過に従って、基準値電圧(Vref)を増加または減少させることができる。
【0093】
以上のS11からS16までの処理を繰り返して実行することにより、変更回路84は、ウェイト値(W)が基準値より小さい場合、下限基準値を下限として、基準値を時間経過に従って段階的に減少させることができる。また、変更回路84は、ウェイト値(W)が基準値以上である場合、下限基準値より大きい上限基準値を上限として、基準値を時間経過に従って段階的に増加させることができる。
【0094】
以上のような変形例に係るシナプス回路40は、ウェイト値(W)が基準値より小さくなったことによりウェイト値(W)を固定化させた後に、固定化機能を解除して、再度、ウェイト値(W)を増加可能とさせることができる。これにより、シナプス回路40は、例えば、学習のための入力情報が変更された場合等の一定の時間が経過した後に、おいて、ウェイト値(W)を適切な値に学習させることができる。例えば、下限基準値を、ウェイト値(W)がとり得る最低値とすることにより、シナプス回路40は、確実に、固定化機能を解除することができる。
【0095】
また、シナプス回路40は、固定化機能を解除した後には、時間経過に従って上限基準値に達するまで基準値を段階的に増加させるので、再度、固定化機能を有効にすることができる。このような変形例に係るニューラルネットワーク装置10は、様々な入力情報に対応させて学習をする場合等においても、学習が収束するまでの時間を短くし、学習の精度を安定化させることができる。
【0096】
なお、変形例に係る変更回路84は、以上の処理に代えて、変更回路84は、ウェイト値(W)が基準値より小さくなったタイミングから予め設定された時間を経過した後において、基準値を下限基準値に変更してもよい。さらに、変更回路84は、ウェイト値(W)が基準値以上となったタイミングから予め設定された時間を経過した後において、基準値を上限基準値に変更してもよい。
【0097】
このようにしても、変形例に係るシナプス回路40は、ウェイト値(W)が基準値より小さくなったことによりウェイト値(W)を固定化させた後に、固定化機能を解除して、再度、ウェイト値(W)を増加可能とさせることができる。さらに、変形例に係るシナプス回路40は、固定化機能を解除した後には、時間経過に従って上限基準値に達するまで基準値を増加させて、再度、固定化機能を有効にすることができる。
【0098】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0099】
10 ニューラルネットワーク装置
22 レイヤ
24 シナプス部
26 学習回路
30 ニューロン回路
32 前段ニューロン回路
34 後段ニューロン回路
40 シナプス回路
44 入力層
46 リザーバー層
48 出力層
52 ウェイト保持回路
54 スイッチ回路
56 伝播回路
58 制御回路
62 ウェイト電流回路
64 入力回路
66 キャパシタ
66a 第1端子
66b 第2端子
68 出力増幅回路
70 出力回路
72 電荷調整回路
74 第1定電流回路
76 第2定電流回路
80 比較回路
84 変換回路