IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

特許7383528スパイキングニューラルネットワーク装置およびスパイキングニューラルネットワーク装置の学習方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-10
(45)【発行日】2023-11-20
(54)【発明の名称】スパイキングニューラルネットワーク装置およびスパイキングニューラルネットワーク装置の学習方法
(51)【国際特許分類】
   G06N 3/08 20230101AFI20231113BHJP
   G06N 3/063 20230101ALI20231113BHJP
   G06G 7/60 20060101ALI20231113BHJP
【FI】
G06N3/08
G06N3/063
G06G7/60
【請求項の数】 10
(21)【出願番号】P 2020035917
(22)【出願日】2020-03-03
(65)【公開番号】P2021140320
(43)【公開日】2021-09-16
【審査請求日】2022-02-25
【前置審査】
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】西 義史
(72)【発明者】
【氏名】野村 久美子
(72)【発明者】
【氏名】丸亀 孝生
(72)【発明者】
【氏名】水島 公一
【審査官】山本 俊介
(56)【参考文献】
【文献】国際公開第2019/125419(WO,A1)
【文献】特表2013-538396(JP,A)
【文献】特表2015-501972(JP,A)
【文献】特開平02-301880(JP,A)
【文献】中国特許出願公開第106779059(CN,A)
【文献】安達 琢ほか,メモリスタ-CMOSハイブリッド回路による非対称STDPシナプスデバイス,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2011年06月23日,Vol.111 No.106,pp.65-70
【文献】西 義史ほか,脳型ハードウエアにおけるオンライン学習に向けたシナプス重み更新規則の検討,第67回応用物理学会春季学術講演会[講演予稿集],日本,公益社団法人応用物理学会,2020年02月28日,18-021
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06G 7/60
(57)【特許請求の範囲】
【請求項1】
可変の重みを有し、第1スパイク信号が入力されたときに、前記重みに応じて強さが調整されたシナプス信号を出力するシナプス部と、
前記シナプス信号が入力され、前記シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力するニューロン部と、
前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを更新する否かを判定する判定部と、
前記重みを更新すると判定された場合に、前記重みを減衰させるための減衰動作を行うシナプス減衰部と、
前記重みを強化するための強化動作を行うシナプス強化部と、を備え、
前記判定部は、前記出力頻度が閾値以上である場合に、前記重みを更新すると判定する、
パイキングニューラルネットワーク装置。
【請求項2】
可変の重みを有し、第1スパイク信号が入力されたときに、前記重みに応じて強さが調整されたシナプス信号を出力するシナプス部と、
前記シナプス信号が入力され、前記シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力するニューロン部と、
前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを更新する否かを判定する判定部と、
前記重みを更新すると判定された場合に、前記重みを減衰させるための減衰動作を行うシナプス減衰部と、
前記重みを強化するための強化動作を行うシナプス強化部と、を備え、
前記出力頻度は、前記ニューロン部が前記第2スパイク信号を出力するごとに増加し、時間の経過に従い減衰する変数により表される、
パイキングニューラルネットワーク装置。
【請求項3】
前記シナプス減衰部は、前記重みを更新すると判定され、かつ、前記ニューロン部により前記第2スパイク信号が出力された場合に、前記減衰動作を行う、
請求項1に記載のスパイキングニューラルネットワーク装置。
【請求項4】
前記シナプス強化部は、予め定められた強化条件が満たされる場合に、前記強化動作を行う、
請求項1に記載のスパイキングニューラルネットワーク装置。
【請求項5】
前記シナプス強化部は、前記判定部により前記重みを更新すると判定され、かつ、前記強化条件が満たされる場合に、前記強化動作を行う、
請求項4に記載のスパイキングニューラルネットワーク装置。
【請求項6】
前記シナプス部は、抵抗値により前記重みの値を記憶する記憶素子と、MOSトランジスタと、を備える、
請求項1に記載のスパイキングニューラルネットワーク装置。
【請求項7】
前記記憶素子は複数の抵抗状態を持ち、複数の前記抵抗状態間の遷移は確率的である、
請求項6に記載のスパイキングニューラルネットワーク装置。
【請求項8】
可変の重みを有し、第1スパイク信号が入力されたときに、前記重みに応じて強さが調整されたシナプス信号を出力するシナプス部と、
前記シナプス信号が入力され、前記シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力するニューロン部と、
前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを更新する否かを判定する判定部と、
前記重みを更新すると判定された場合に、前記重みを減衰させるための減衰動作を行うシナプス減衰部と、
前記重みを強化するための強化動作を行うシナプス強化部と、を備え、
前記シナプス部は、抵抗値により前記重みの値を記憶する記憶素子と、MOSトランジスタと、前記MOSトランジスタと前記記憶素子とを接続するダイオードをさらに備える、
パイキングニューラルネットワーク装置。
【請求項9】
可変の重みを有し、第1スパイク信号が入力されたときに、前記重みに応じて強さが調整されたシナプス信号を出力するシナプス部と、
前記シナプス信号が入力され、前記シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力するニューロン部と、
前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを更新する否かを判定する判定部と、
前記重みを更新すると判定された場合に、前記重みを減衰させるための減衰動作を行うシナプス減衰部と、
前記重みを強化するための強化動作を行うシナプス強化部と、を備え、
前記判定部は、前記第1スパイク信号が入力される頻度は用いずに、前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを更新する否かを判定する、
パイキングニューラルネットワーク装置。
【請求項10】
スパイキングニューラルネットワーク装置の学習方法であって、
前記スパイキングニューラルネットワーク装置は、
可変の重みを有し、第1スパイク信号が入力されたときに、前記重みに応じて強さが調整されたシナプス信号を出力するシナプス部と、
前記シナプス信号が入力され、前記シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力するニューロン部と、
を備え、
前記ニューロン部による前記第2スパイク信号の出力頻度に基づいて、前記重みを減衰させる否かを判定する判定ステップと、
前記重みを減衰させると判定された場合に、前記重みを減衰させるための減衰動作を行うシナプス減衰ステップと、
前記重みを強化するための強化動作を行うシナプス強化ステップと、を含み、
前記判定ステップは、前記出力頻度が閾値以上である場合に、前記重みを更新すると判定する、
習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明実施形態は、スパイキングニューラルネットワーク装置およびスパイキングニューラルネットワーク装置の学習方法に関する。
【背景技術】
【0002】
生体の神経回路網の情報処理原理を模倣した処理を行うスパイキングニューラルネットワークと呼ばれる技術が提案されている。スパイキングニューラルネットワークでは、電圧スパイクの密度(スパイク密度)で情報が表現される。
【0003】
また、スパイキングニューラルネットワークでは、STDP(Spike Timing Dependent Plasticity)と呼ばれる原理を利用した学習が行われる場合がある。STDPは、電圧スパイクの入力と発火のタイミングに依存してシナプスの重みが変化する性質を表す。
【先行技術文献】
【非特許文献】
【0004】
【文献】S.Sidler,A.Pantazi,S.Wozniak,Y.Leblebici,and E.Eleftheriou,“Unsupervised learning using phase-change synapses and complementary patterns”,International Symposium on Artificial Neural Networks(Springer 2017),pp.281-288
【文献】Elisabeta Chicca, Fabio Stefanini, Chiara Bartolozzi, Giacomo Indiveri, “Neuromorphic Electronic Circuits for Building Autonomous Cognitive Systems,” Proceedings of the IEEE, vol. 102, no.9, September 2014, 1367-1388.
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述のように、スパイキングニューラルネットワークでは、スパイク密度で情報を表現するため、「何もない」という情報は、スパイク密度ゼロ(スパイクなし)として表現される。STDPの原理を利用した学習では、電圧スパイクの入力と発火のタイミングに依存してシナプスの重みが更新されるため、「何もない」という空白データ、つまり、スパイク密度が低い情報を学習することができない。
【0006】
本発明が解決しようとする課題は、装置の大型化や学習に必要な電力の増大を招くことなくスパイク密度が低い情報を学習することができるスパイキングニューラルネットワーク装置およびその学習方法を提供することである。
【課題を解決するための手段】
【0007】
実施形態のスパイキングニューラルネットワーク装置は、シナプス部と、ニューロン部と、判定部と、シナプス減衰部と、シナプス強化部と、を備える。シナプス部は、可変の重みを有し、第1スパイク信号が入力されたときに、重みに応じて強さが調整されたシナプス信号を出力する。ニューロン部は、シナプス信号が入力され、シナプス信号についての予め定められた発火条件が満たされると第2スパイク信号を出力する。判定部は、ニューロン部による第2スパイク信号の出力頻度に基づいて、重みを更新する否かを判定する。シナプス減衰部は、重みを更新すると判定された場合に、重みを減衰させるための減衰動作を行う。シナプス強化部は、重みを強化するための強化動作を行う。
【図面の簡単な説明】
【0008】
図1】STDPの原理を説明する概念図。
図2】シナプスの重みの強化・減衰の例を説明する図。
図3】スパイキングニューラルネットワークの学習の具体例を説明する図。
図4-1】図3に示したすべてのシナプスの重みを可視化した様子を示す図。
図4-2】図3に示したすべてのシナプスの重みを可視化した様子を示す図。
図4-3】図3に示したすべてのシナプスの重みを可視化した様子を示す図。
図5】第1実施形態に係るスパイキングニューラルネットワーク装置の構成例を示す図。
図6】スパイキングニューラルネットワーク装置の他の構成例を示す図。
図7】シナプス部およびニューロン部の機能ブロック図。
図8】ニューロン部の発火と変数Cの変化との関係の一例を示す図。
図9】第1実施形態における学習処理のフローチャート。
図10-1】MNIST手書き文字の学習結果の一例を示す図。
図10-2】MNIST手書き文字の学習結果の一例を示す図。
図10-3】MNIST手書き文字の学習結果の一例を示す図。
図11】第2実施形態に係るスパイキングニューラルネットワーク装置の構成例を示す図。
図12】スパイキングニューラルネットワーク装置の他の構成例を示す図。
図13】第2実施形態における学習処理のフローチャート。
図14-1】MNIST手書き文字の学習結果の一例を示す図。
図14-2】MNIST手書き文字の学習結果の一例を示す図。
図14-3】MNIST手書き文字の学習結果の一例を示す図。
図15】強化率と減衰率との比率に対する認識率および重みの総和の標準偏差を示す図。
図16】第3実施形態に係るスパイキングニューラルネットワーク装置の回路構成例を示す図。
図17】第3実施形態のスパイキングニューラルネットワーク装置による動作を説明するための図。
図18】第3実施形態のスパイキングニューラルネットワーク装置による動作を説明するための図。
図19】第3実施形態のスパイキングニューラルネットワーク装置による動作を説明するための図。
図20】スパイキングニューラルネットワーク装置の他の構成例を示す図。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、この発明にかかるスパイキングニューラルネットワーク装置の好適な実施形態を詳細に説明する。
【0010】
近年、GPU(Graphical Processing Unit)に代表される計算機ハードウェアの進歩に伴い、人工知能技術が急速に発展している。例えば、CNN(Convolutional Neural Network)に代表される画像認識・分類技術は、既に実社会の様々なシーンで利用されている。現在において広く利用されている人工知能技術は、生体の神経回路網の動作を単純化した数理モデルをベースとしており、GPUなどの計算機で実行するのに適している。しかし、人工知能をGPUで実行するには大きな電力が必要になる。特に、大量のデータから特徴を抽出して記憶させる学習動作には膨大な計算が必要で、そのため非常に多くの電力が必要になり、エッジでの学習動作が困難になることが予想されている。
【0011】
一方、人間の脳は、その消費エネルギーが20W程度と低いにも関わらず、膨大な量のデータを常時オンラインで学習することができる。そこで、脳の動きを電気回路で比較的忠実に再現して情報処理を行う技術が世界各国で研究されている。
【0012】
脳の神経回路網の中では、情報は電圧スパイクによる信号としてニューロン(神経細胞)からニューロンへ伝達される。ニューロンとニューロンはシナプスと呼ばれる結合部によって結合され、あるニューロンが発火して電圧スパイクが発生すると、シナプスを介して後段のニューロンに電圧スパイクが入力される。このとき、後段のニューロンに入力される電圧スパイクの強度は、シナプスの持つ結合強度(以下、「重み」と呼ぶ)によって調整される。重みが大きい場合、電圧スパイクは強度が高いまま後段のニューロンに伝達されるが、重みが小さい場合は、伝達される電圧スパイクの強度は低くなる。従って、ニューロン間のシナプスの重みが大きいほど、このニューロン間の情報的な関係性が大きいということになる。
【0013】
シナプスの重みは、後段のニューロンに電圧スパイクが入力されるタイミングとこの後段のニューロンが発火するタイミングとに依存して変化することが知られている。すなわち、あるニューロン(前段ニューロン)からシナプスを介して次のニューロン(後段ニューロン)に電圧スパイクが入力されたとする。このとき、後段ニューロンが発火すると、これら2つのニューロンが持つ情報の間には因果関係があるということになり、これら2つのニューロン間のシナプスの重みが大きくなる。逆に、後段ニューロンが発火した後に前段ニューロンから電圧スパイクが到達したとすると、これら2つのニューロンが持つ情報には因果関係がないということになり、これら2つのニューロン間のシナプスの重みが小さくなる。このように電圧スパイクの入力と発火のタイミングに依存してシナプスの重みが変化する性質をSTDP(Spike Timing Dependent Plasticity)と呼ぶ。
【0014】
このような神経回路網の情報処理原理を模倣して、情報の流れを電気回路内部のスパイク列として表現し、処理する技術をスパイキングニューラルネットワークと呼ぶ。スパイキングニューラルネットワークでは、数値的な演算を行わず、すべての情報処理を電圧スパイクの蓄積・発生および伝達によって行う。従来の人工知能では学習には膨大な計算が必要であったが、スパイキングニューラルネットワークにおいては、STDPの原理を利用することによって効率的にデータ学習ができると考えられており、盛んに研究が行われている。
【0015】
STDPは上述の通り、シナプスに接続されている前段ニューロンからシナプスを介して後段ニューロンに電圧スパイクが入力されるタイミングと後段ニューロンが発火するタイミングに依存してシナプスの重みが変化する現象であるが、前段ニューロンからの電圧スパイクの入力が前提となっている。つまり、逆に言えば、情報の入力が極端に少ないような状況では、前段ニューロンからの電圧スパイクの入力がなくなり、シナプスの重みは変化しない。このことは、次のような問題を引き起こすと考えられる。
【0016】
例えば、スパイキングニューラルネットワークで10×10ピクセルの画像パターンを入力して学習することを考える。最初に10×10ピクセルの枠内いっぱいに広がったパターンの画像(画像A)を繰り返し入力すると、STDPの原理を利用した学習によってシナプスの重みが更新され、このパターンに応じたシナプスの重み分布が得られる。次に、10×10ピクセルの枠の中心部にのみパターンが存在するような画像(画像B)を入力する。すなわち、画像Bの大部分のピクセルは空白(ブランク)であるとする。スパイキングニューラルネットワークでは、電圧スパイクの密度(スパイク密度)で情報を表現するため、ブランクはスパイク密度がゼロとして表現される。従って、このニューラルネットワークにおける大部分のシナプスには電圧スパイクが入力されないため、重みは変化しない。つまり、画像Bを何度学習しても、画像Aに対応するシナプスの重み分布が残ったままで画像Bを新たに学習することができなくなる。このように、STDPにおいては、スパイク密度が低い情報を入力すると、この情報を学習することができず、以前に学習した情報が残ってしまうという問題が発生する。
【0017】
これを回避するために、スパイキングニューラルネットワークを2セット用意し、一方には通常のデータを入力して学習させ、他方には白黒反転させたデータを入力した学習させるという方法が提案されている(例えば、非特許文献1参照)。しかし、この方法では、スパイキングニューラルネットワークを2セット用意せねばならず、必要なニューロンおよびシナプスの数が倍になるため、ハードウェアサイズが2倍の大きさになってしまう可能性がある。また、必要な電力も2倍になると考えられる。
【0018】
一方、生体における神経回路網では、ひとつのニューロンに対して入力するシナプスの重みの総和が一定に保たれる、シナプス規格化という現象が存在する。シナプス規格化では、シナプスの重みの間の相対的な大小関係は変化しないが、あるシナプスが学習によって強化されると、総和を一定に保つために他のシナプスの重みは小さくなる。このため、電圧スパイクの入力が少ないシナプスは、重みが小さくなる。生体における神経系では、この性質を利用してスパイク密度の低いブランクデータを学習している。しかしながら、シナプス規格化を行うためには、各ニューロンのシナプスの重みの総和を求め、かつ、個々のシナプスの重みをその総和で割り算するという操作が必要になるため、ハードウェア的な実装は難しいと考えられる。
【0019】
<STDPの説明>
ここではまず、スパイキングニューラルネットワークの学習原理であるSTDPについて説明する。図1は、STDPの原理を説明する概念図である。図1に示すように、ニューロンjに対して複数のシナプスs,s,・・・,s(これらを総称する場合はシナプスsと表記する)が接続されており、これら複数のシナプスs,s,・・・,sを介して電圧スパイクx,x,・・・,xがニューロンjに入力される場合を考える。複数のシナプスs,s,・・・,sの重みwjiを、それぞれwj1,wj2,・・・,wjnとする。
【0020】
ニューロンjの状態は、膜電位と呼ばれる内部変数によって表される。電圧スパイクが入力されない場合、膜電位はニューロンモデルと呼ばれる定められた規則に従って変化する。電圧スパイクがニューロンjに入力されると、膜電位は不連続的に増加する。いくつかの電圧スパイクがニューロンjに入力され、膜電位がある閾値に達すると、ニューロンjは発火して電圧スパイクを後段のニューロンに対して放出する。発火後はこのニューロンjの膜電位はある一定の値(リセット電位と呼ぶ)にリセットされる。
【0021】
ここで、時刻t preにおいて、重みwj1のシナプスsを介してニューロンjに電圧スパイクが入力され、時刻t postにおいてニューロンjが発火したとする。Δtji=t post-t preとすると、Δtji>0の場合、すなわちシナプスsを介して電圧スパイクが入力された後にニューロンjが発火した場合は、この電圧スパイクの入力とニューロンjの発火との間には因果関係があるため、シナプスsによる接続は情報処理上有用であるとみなされ、シナプスsの重みwj1は強化(増加)される。逆に、Δtji<0の場合、すなわちニューロンjが発火した後にシナプスsを介してニューロンjに電圧スパイクが到着した場合は、この電圧スパイクの入力とニューロンjの発火との間には因果関係がなく、シナプスsによる接続は情報処理上有用であるとはみなされず、シナプスsの重みwj1は減衰(減少)される。
【0022】
STDPでは、シナプスsの重みwjiの強化・減衰の程度が、ニューロンjの発火とシナプスsを介した電圧スパイクの入力との間の時間差Δtの大きさに応じて決まる。すなわち、図2に示すように、Δt>0の場合、時間差Δtが小さければ小さいほどニューロンjの発火と電圧スパイクの入力との情報的な相関が大きいため、シナプスsの重みwjiは大きく強化される。一方、Δt<0の場合、時間差Δtが小さければ小さいほどニューロンjの発火と電圧スパイクの入力との情報的な相関が小さいため、シナプスsの重みwjiは大きく減衰される。Δt>0の場合もΔt<0の場合も、Δtが大きければシナプスsの重みwjiはあまり変化しない。
【0023】
ここで、図3に示すように、28×28=784ピクセルの画像データをスパイキングニューラルネットワークに学習させることを考える。ここでは、784個の入力層のニューロンに各ピクセルからコントラストを入力する。入力層のニューロンはコントラストに応じたスパイク密度のスパイク列を発生させ、後段の処理層の400個のニューロンに電圧スパイクを送る。入力層のニューロンと処理層のニューロンはシナプスを介して接続されている。
【0024】
既に述べたように、入力層のニューロンは、対応するピクセルにおけるコントラストに応じたスパイク列を発生する。コントラストが高い(黒い)場合はスパイク列のスパイク密度が大きく、コントラストが低い(白い)場合はスパイク列のスパイク密度が小さい。入力画像の余白に対応するニューロンでは電圧スパイクは発生しない。したがって、入力画像の余白に対応するニューロンに接続されるシナプスからは、処理層のニューロンに電圧スパイクが入力されない。このため、入力画像の余白に対応するニューロンに接続されるシナプスの重みは強化も減衰もされず、初期状態のまま残ってしまう。つまり、「余白である」という情報が学習されないのである。
【0025】
図3に示したスパイキングニューラルネットワークに、MNIST手書き文字セット(0~9までの数字の手書き文字のセット)を学習させる。ここでは、シナプスの重みを離散的なバイナリ(0もしくは1)とし、シナプスを介して電圧スパイクが入力された後にニューロンが発火した場合はそのシナプスの重みを確率的に1とし、ニューロンが発火した後にシナプスを介してニューロンに電圧スパイクが到着した場合はそのシナプスの重みを確率的に0とする確率的なSTDPを用いる。ただし、電圧スパイクの入力とニューロンの発火との間の時間的相関を取り入れるため、上記確率はニューロンの発火とシナプスを介した電圧スパイクの入力との間の時間差に依存するものとする。具体的には、この時間差をΔtとするとき、シナプスを0(あるいは1)とする確率はexp(-Δt/T)に比例するものとする。ただしTは定数である。
【0026】
図4-1乃至図4-3は、図3に示した入力層の784個のニューロンと処理層の400個のニューロンとを結合するすべてのシナプス(784×400個のシナプス)の重みを可視化したものである。縦方向・横方向それぞれに√784×400=28×20=560個のピクセルが並んでおり、それぞれがシナプスの重みに対応している。シナプスの重みが0の場合は白、シナプスの重みが1の場合には色がついている。560×560個のシナプスの重みは28×28を1区画として、区画が20×20並んでいることになる。28×28の1区画は、処理層における1つのニューロンに接続する全シナプスに相当しており、この区画の28×28個のシナプスの重みの分布を示すパターンが、この処理層のニューロンが記憶する画像である。
【0027】
まず、図4-1に示すように、すべてのシナプスの重みをランダムに0もしくは1に初期化する。この状態で、図3に示したスパイキングニューラルネットワークにMNIST手書き文字セットを学習させる。60000通りの手書き文字を学習した後のシナプスの重みを図4-2に示す。図4-2では、20×20=400個のパターンが浮かび上がっているが、各パターンは28×28ピクセルで構成されている。つまり、28×28の区画ごとにパターンが浮かび上がっており、それぞれのパターンが、当該区画に対応するニューロンが記憶する画像である。
【0028】
ここで、MNIST手書き文字の余白に対応する部分は、電圧スパイクの入力がないため、初期状態のままのランダムなパターンになっている。そして、各区画の中央付近には、多くの手書き文字が重なったようなパターンが存在する。これは、例えば「0」の手書き文字を記憶した後に「1」の手書き文字を学習させても、「1」の手書き文字の余白部分には電圧スパイクの入力がないために「0」の手書き文字が残ってしまい、「0」と「1」が重なって記憶されてしまうことになり、このようなことが繰り返された結果、各ニューロンは様々な文字が重なったパターンを記憶してしまうことになるためである。
【0029】
なお、図4-2に示すシナプスの重みを使ってMNIST手書き文字の認識動作を行うと、その認識率は10%程度である。これは、0~9の手書き文字をあてずっぽうに認識しているに等しい。つまり、手書き文字をまったく認識できていないことになる。
【0030】
この問題の本質は、空白データ(画像で言えば余白部分)に対応する電圧スパイクの入力がないため、対応するシナプスの重みが変化せず、初期状態あるいは以前に記憶した情報が書き換わらない、ということである。本来、空白データに対応するところはシナプス重みが減衰されるべきである。前述の通り、生体の神経系におけるシナプス規格化を実装すれば、余白部分を学習することができる。
【0031】
図4-3は、上述の学習方法においてシナプス規格化をソフトウェア的に実装した場合の学習結果を示している。シナプス規格化により、図4-3に示すように、28×28ピクセルの各区画において、MNIST手書き文字が学習できていることが分かる。この例では手書き文字の認識率が89%に達する。しかし、シナプス規格化は28×28ピクセルの各区画におけるシナプスの重みの総和を取り、各々のシナプスの重みを総和で割り算した上でその値を再度シナプスに書き込むという手順が必要であり、ハードウェア実装には適さない。
【0032】
そこで、本実施形態では、シナプスの重みの総和を用いるのではなく、ニューロンの発火状況(発火頻度)に基づいてシナプスの重みを減衰する機構を有する新規な構成のスパイキングニューラルネットワーク装置およびその学習方法を開示する。
【0033】
<第1実施形態>
図5は、第1実施形態に係るスパイキングニューラルネットワーク装置100の構成例を示す図である。本実施形態のスパイキングニューラルネットワーク装置100は、図5に示すように、シナプス部120と、ニューロン部110と、シナプス強化部140と、シナプス減衰部150と、判定部160と、を備える。
【0034】
シナプス部120は、可変の重みを記憶する重み記憶部121を有する。シナプス部120には、スパイク信号(第1スパイク信号)が入力される。スパイク信号が入力されると、シナプス部120は、重み記憶部121が保持する重みに応じて強さが調整されたシナプス信号をニューロン部110に転送する。例えばニューロン部110に出力するシナプス信号の強度は、重み記憶部121に記憶された重みが大きければ高くなり、重みが小さければ低くなる。
【0035】
ニューロン部110は、シナプス部120から出力されたシナプス信号を受け取り、予め定められた発火条件を満たすと発火し、スパイク信号(第2スパイク信号)を出力する。例えばニューロン部110は、入力されるシナプス信号を積分し、積分値が所定の閾値を超えると発火して、後段のニューロン部に向けてスパイク信号(スパイク電圧)を放出する。
【0036】
判定部160は、シナプス部120の重みを更新するか否かを示す条件を判定する。例えば判定部160は、ニューロン部110によるスパイク信号の出力頻度(以下、発火頻度という)に基づいて重みを更新するか否かを判定し、更新すると判定した場合は、重みを更新することを示す信号をシナプス減衰部150に出力する。より具体的には、判定部160は、発火頻度が閾値以上である場合に重みを更新すると判定する。なお、以下ではシナプス部120の重みを更新することをシナプス更新という場合がある。
【0037】
シナプス減衰部150は、判定部160によりシナプス更新が可能と判定され、かつ、予め定められた減衰条件が満たされる場合に、重みを減衰させるための減衰動作を行う。重み記憶部121は、シナプス減衰部150による減衰動作に応じて重みを減衰させる。
【0038】
シナプス強化部140は、予め定められた強化条件が満たされる場合に、シナプス部120の重みを強化する強化動作を行う。例えばシナプス強化部140は、図1で説明したようなSTDPの原理に基づく重みの強化条件に従い、強化動作を行う。
【0039】
図5では1つのニューロン部110に1つのシナプス部120が接続される例を説明したが、1つのニューロン部110に複数のシナプス部が接続されてもよい。図6は、このように構成されたスパイキングニューラルネットワーク装置100bの構成例を示す図である。なお図6は、ニューロン部110に3つのシナプス部が接続される構成の例を示すが、2つ、または、4つ以上のシナプス部がニューロン部110に接続されるようにスパイキングニューラルネットワーク装置100bを構成してもよい。
【0040】
図6に示すように、スパイキングニューラルネットワーク装置100bは、シナプス部120~120と、ニューロン部110と、シナプス強化部140~140と、シナプス減衰部150と、判定部160と、を備える。
【0041】
シナプス強化部140~140は、それぞれシナプス部120~120に対応し、対応するシナプス部120~120の重み記憶部121~121の重みの強化を行う。シナプス強化部140~140の一部または全部の機能を、ある1つのシナプス強化部が備えるように構成してもよい。
【0042】
次に、シナプス部120およびニューロン部110の構成の詳細について説明する。図7は、シナプス部120およびニューロン部110の詳細な機能構成の一例を示すブロック図である。
【0043】
図7に示すように、シナプス部120は、重み記憶部121に加えて、電流発生回路122を備えている。ニューロン部110は、積分回路111と、閾値比較回路112と、スパイク生成回路113と、を備えている。
【0044】
シナプス部120に入力されるスパイク信号は、例えば電圧スパイクである。電圧スパイクは、電流発生回路122に入力される。電流発生回路122は、電圧スパイクの入力に応じて、重み記憶部121に格納されている重みの値に応じた電流を生成する。この電流をシナプス電流と呼ぶ。
【0045】
重み記憶部121は、例えば、メモリ素子を含むメモリ回路である。メモリ素子は、揮発性メモリ素子であってもよいし、不揮発メモリ素子であってもよい。揮発メモリ素子は、例えば、SRAM(Static Random-Access Memory)セル、および、DRAM(Dynamic Random-Access Memory)セル(キャパシタ)である。不揮発メモリ素子は、例えば、浮遊ゲートまたは電荷蓄積膜を備えたトランジスタ(フラッシュメモリセル)、磁気トンネル接合素子(MTJ:Magnetic Tunnel Junction、または、MRAMセル:Magnetoresistive Random-Access Memory Cell)、および、抵抗変化型メモリ素子(メモリスタ)である。
【0046】
重みの値は、メモリ回路にデジタルデータとして格納されていてもよいし、アナログデータとして格納されていてもよい。電流発生回路122は、入力される電圧スパイクに対して、重みが大きいほど大きなシナプス電流を生成する。シナプス電流は、シナプス信号に相当し、ニューロン部110に入力される。
【0047】
積分回路111は、入力されたシナプス電流を積分し、膜電位と呼ばれる電圧に変換する。膜電位の時間的変化は、積分回路111に予め設定されたニューロンモデルによって決定される。ニューロンモデルとしてはどのようなモデルを用いてもよいが、例えば、Leaky Integrate and Fire(LIF)モデルを用いることができる。
【0048】
閾値比較回路112は、積分回路111から出力される膜電位と、予め定められた閾値とを比較する。スパイク生成回路113は、膜電位が閾値を超えた場合に、電圧スパイクを生成して出力する。このようなニューロン部110における電圧スパイクの生成を発火と呼ぶ。
【0049】
次に、シナプス部120の重み(シナプス重み)の更新についてさらに説明する。
【0050】
重みの強化は、シナプスを強化するための予め定められた強化条件が満たされた場合に、重み記憶部121に格納されている重みの値を大きくすることで実行される。強化条件は、例えばSTDPのシナプス重み強化の条件である。
【0051】
一方、重みの減衰は、シナプスを減衰するための予め定められた減衰条件が満たされ、かつ、判定部160からシナプス更新が可である旨の信号が出力された場合に、重み記憶部121に格納されている重みの値を小さくすることで実行される。
【0052】
判定部160は、ニューロン部110の発火状況を監視し、ニューロン部110の発火状況に応じてシナプス更新の可否を判定し、シナプス減衰部150に減衰動作の許可を与える。例えば判定部160は、ニューロン部110の発火頻度が予め定められた閾値以上である場合に減衰動作を可能とする。
【0053】
ニューロン部110の発火頻度が閾値以上であるということは、ニューロン部110への入力されるシナプス電流の総和が一定以上の大きさを持っているということである。これは、ニューロン部110へ入力を与えるシナプス部120が保持する重み(複数のシナプス部120が接続される場合は、各シナプス部120の重みの総和)が十分に大きな値であることを意味する。
【0054】
そこで本実施形態では、発火頻度が閾値以上であるという条件下で減衰動作を許可することで、シナプス部120の重みの総和を閾値まで引き下げることを可能とする。発火頻度が小さい場合には減衰動作は行われず、強化条件に従う強化動作のみが行われる。このため、重みの総和は増加し、いずれ閾値に達する。このようにして、平均的に重みの総和を一定に保つ、シナプス規格化の実現が可能となる。
【0055】
以上の処理を数式で表現すると以下のようになる。i、jは、それぞれシナプス部120およびニューロン部110を識別する情報である。すなわち、iで識別されるシナプス部120(以下、シナプス部120iという)が、jで識別されるニューロン部110(以下、ニューロン部110jという)にスパイク信号を入力するものとする。
【0056】
シナプス部120iに格納されている重みをwijとする。ニューロン部110jの発火頻度をFとする。発火頻度の閾値をFとする。シナプス部120iに対して定められた強化条件をπij とする。ニューロン部110jに定められた減衰条件をπ とする。この場合、重みwijとの更新は、以下の(1)式で表される。Θは、引数が正の場合は1となり、負の場合は0となるステップ関数である。
【数1】
【0057】
アナログ電気回路においてΘ(F-F)を実装するためには、発火頻度Fを回路上の物理量として表現する必要がある。また、発火頻度を定義するための時間幅も考慮に入れる必要があり、設計が複雑になりうる。そこで、設計をより簡易化可能な回路として、例えば以下のような回路を用いることができる。
【0058】
まず、通常は時定数τ減衰し、ニューロン部110jが発火した時にJだけ不連続的に増加する新たな変数Cを考える。すなわち、変数Cは、以下の(2)式に従うものとする。t postは、ニューロン部110jが発火する時刻である。
【数2】
【0059】
図8は、ニューロン部110jの発火と変数Cの変化との関係の一例を示す図である。変数Cは、ニューロン部110jが発火していないときには減衰して0に近づく。一方、頻繁に発火が起これば、減衰の量よりJによる不連続増加の量が大きくなり、変数Cが増加する。従って、図8に示すように、Cがある閾値θよりも大きくなるためには、発火頻度がある閾値以上でなければならない。
【0060】
これを利用すると、重みwijの更新は、以下の(3)式で表すことができる。Δwijは、重みwijの更新量を表す。
【数3】
【0061】
このように、発火頻度は、ニューロン部110がスパイク信号を出力するごとに増加し、時間の経過に従い減衰する変数Cにより表すことができる。このような変数Cを実現するためには、例えばキャパシタを含むアナログ積分回路を用いればよい。そのような回路としては、例えば非特許文献2に記載される回路を用いることができる。
【0062】
減衰条件π は、例えば、ニューロン部110jの発火のタイミングで重みを減衰させる、という条件である。すなわち、減衰条件π は、例えば以下の(4)式で表される。なお、δは、引数が0(例えばt=t post)の場合に1となり、その他の場合に0となる関数(デルタ関数)である。
【数4】
【0063】
図5および図6のニューロン部110からシナプス減衰部150への矢印は、ニューロン部110jの発火のタイミングをシナプス減衰部150へ伝達するための信号を表す。
【0064】
次に、このように構成された第1実施形態にかかるスパイキングニューラルネットワーク装置100による学習処理について説明する。図9は、第1実施形態における学習処理の一例を示すフローチャートである。
【0065】
判定部160は、ニューロン部110からスパイク信号を入力する(ステップS101)。判定部160は、160は、入力されたスパイク信号に基づき、シナプス部120の重みを更新するか否かを判定する(ステップS102)。例えば判定部160は、ニューロン部110によるスパイク信号の発火頻度が閾値以上である場合に重みを更新すると判定する。
【0066】
重みを更新すると判定した場合(ステップS102:Yes)、判定部160は、重みの更新が可能である旨を示す信号を出力する(ステップS103)。
【0067】
信号が出力された後、および、重みを更新しないと判定された場合(ステップS102:No)、シナプス減衰部150は、重みの更新が可能である旨の信号が出力され、かつ、減衰条件が満たされるか否かを判定する(ステップS104)。
【0068】
重みの更新が可能である旨の信号が出力され、かつ、減衰条件が満たされる場合(ステップS104:Yes)、シナプス減衰部150は、シナプス部120の重みを減衰させるための減衰動作を行う(ステップS105)。
【0069】
重みの更新が可能である旨の信号が出力されていない、または、減衰条件が満たされない場合(ステップS104:No)、および、減衰動作が実行された後、シナプス強化部140は、強化条件が満たされるか否かを判定する(ステップS106)。
【0070】
強化条件が満たされる場合(ステップS106:Yes)、シナプス強化部140は、シナプス部120の重みを強化する強化動作を行う(ステップS107)。
【0071】
強化動作が実行された後、および、教科条件が満たされない場合(ステップS106:No)、学習処理が終了する。
【0072】
図10-1から図10-3は、本実施形態におけるスパイキングニューラルネットワーク装置100によるMNIST手書き文字の学習結果の一例を示す図である。用いたニューラルネットワークは図3と同様である。ここでは、シナプス部120としては重みの値が0または1のみを取るバイナリシナプスを用いている。従って、重み更新は、Δwijの大きさだけ重みを更新するのではなく、Δwijに比例した確率でwijを0から1または1から0へ変化させる処理である。シナプス強化部140はSTDPの強化条件を用い、シナプス減衰部150は上記(4)式で表される減衰条件を用いる。すなわち、Δwijは、以下の(5)式で表される。
【数5】
【0073】
ただし、ηpot、ηdep、τSTDPは定数、t preはシナプス部120iにスパイク信号が入力される時刻である。Δwijは、正の場合は時刻tにおいてシナプス部120iの重みの値が0から1に強化される確率を表し、負の場合は時刻tにおいてシナプス部120iの重みの値が1から0に減衰する確率を表している(すでに1または0である場合には値は変化しない)。
【0074】
図10-1から図10-3に示されるように、学習回数を増やしていくと当初ランダムであった重み分布は次第にパターンを形成する。60,000回学習後(図10-3)に、この重み分布を用いたニューラルネットワークにおける文字認識率は77.3%となる。図10-1から図10-3に示すように、本実施形態を適用すると、文字パターンの空白部分についても学習が可能となる。すなわち、(5)式の第二項のシナプス規格化に相当する効果が働き、空白部分に相当するシナプスの重みが減衰されて0になっている。
【0075】
なお、シナプス部120としてバイナリシナプスではなく、0から1の範囲の重みの値を取り得るシナプスを用いることもできる。この場合、例えば、重み更新は、Δwijの大きさだけ重みを更新することで実現される。
【0076】
このように、第1実施形態にかかるスパイキングニューラルネットワーク装置では、ニューロンの発火状況(発火頻度)に基づいてシナプスの重みを減衰する。例えば複数のシナプス部の重みの総和を計算する必要がないため、より簡易な構成でシナプス規格化が実現可能となる。
【0077】
(第2実施形態)
第2実施形態にかかるスパイキングニューラルネットワーク装置は、強化動作についても、シナプス更新が可能と判定された場合に実行する。
【0078】
図11は、第2実施形態に係るスパイキングニューラルネットワーク装置100-2の構成例を示す図である。本実施形態のスパイキングニューラルネットワーク装置100-2は、図11に示すように、シナプス部120と、ニューロン部110と、シナプス強化部140-2と、シナプス減衰部150と、判定部160-2を備える。
【0079】
第2実施形態では、シナプス強化部140-2および判定部160-2の機能が第1実施形態と異なっている。その他の構成および機能は、第1実施形態にかかるスパイキングニューラルネットワーク装置100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0080】
判定部160-2は、シナプス更新の可否に関する信号をシナプス減衰部150のみでなく、シナプス強化部140-2にも出力する点が、第1実施形態の判定部160と異なっている。
【0081】
シナプス強化部140-2は、判定部160-2からシナプス更新が可である旨の信号を受け取り、かつ、予め定められた強化条件が満たされる場合に、シナプス部120の重みを強化する強化動作を行う。
【0082】
第1実施形態の図6と同様に、1つのニューロン部110に複数のシナプス部が接続されてもよい。図12は、このように構成されたスパイキングニューラルネットワーク装置100-2bの構成例を示す図である。図12に示すように、スパイキングニューラルネットワーク装置100-2bは、シナプス部120~120と、ニューロン部110と、シナプス強化部140-2~140-2と、シナプス減衰部150と、判定部160-2と、を備える。
【0083】
既に述べたように、ニューラルネットワークにおける学習には、重みの総和は一定値に保たれるシナプス規格化が実現されることが望ましい。そしてシナプス規格化の実現のためには、強化動作と減衰動作のバランスが取られることが望ましい。すなわち、強化動作のみが許可されて減衰動作が許可されない、または逆に、減衰動作のみが許可されて強化動作が許可されない、という事態は避ける方が望ましい。このような事態が生じると、ある条件下では強化動作のみが起こる、または、減衰動作のみが起こる、ということが可能になり、シナプス規格化ができなくなる可能性がある。そこで、強化動作は、減衰動作と同様の条件の下で、例えば、発火頻度が閾値以上(F>F)である場合に条件の下で許可されるべきである。すなわち、重み更新は以下の(6)式のような表せることが望ましい。ここで、π はシナプス部120iにおける強化条件である。
【数6】
【0084】
第1実施形態の場合と同様に変数Cを用いた場合、(6)式は以下の(7)式のように表すことができる。
【数7】
【0085】
ところで、シナプスの重みの強化の法則としてHebb則という法則が知られている。Hebb則によれば、重みwijの増分Δwijは、シナプス部120iにおけるスパイク信号の頻度Fとニューロン部110jの発火頻度Fに比例する。すなわち、以下の(8)式がHebb則である。
【数8】
【0086】
このように、増分ΔwijはFの一次関数である。一方、Θ(F-F)をFの関数として見る場合、Θ(F-F)は、一次関数F/Fmax(FmaxはFが取りうる最大値)の粗い近似とみなすことができる。π として、π ∝δ(t-t pre)を考えると、π はFと同一視することができる。従って、(6)式の強化項(強化条件)であるπ Θ(F-F)∝δ(t-t pre)Θ(F-F)は、Hebb則の近似とみなすことができる。
【0087】
(6)式の減衰項(減衰条件)は、例えば第1実施形態と同様に(4)式で表されてもよい。この場合、重みwijの更新を表すΔwijは、以下の(9)式で表される。ただしηpot、ηdepは定数である。
【数9】
【0088】
第1実施形態と同様に、変数Cが用いられてもよい。この場合は、Δwijは、以下の(10)式で表される。
【数10】
【0089】
次に、このように構成された第2実施形態にかかるスパイキングニューラルネットワーク装置100-2による学習処理について説明する。図13は、第2実施形態における学習処理の一例を示すフローチャートである。
【0090】
本実施形態では、ステップS206の判定処理が、第1実施形態の学習処理を示す図9のステップS106と異なっている。他の各ステップ(ステップS201~ステップS205、ステップS207)は、第1実施形態にかかるスパイキングニューラルネットワーク装置100における各ステップ(ステップS101~ステップS105、ステップS107)と同様の処理なので、その説明を省略する。
【0091】
ステップS206では、シナプス強化部140-2は、重みの更新が可能である旨の信号が出力され、かつ、強化条件が満たされるか否かを判定する(ステップS206)。
【0092】
図14-1から図14-3は、本実施形態におけるスパイキングニューラルネットワーク装置100-2によるMNIST手書き文字の学習結果の一例を示す図である。用いたニューラルネットワークは図3と同様である。ここでは、シナプスとしては重みの値が0または1のみを取るバイナリシナプスを用いている。従って、重み更新は、Δwijの大きさだけ重みを更新するのではなく、Δwijに比例した確率でwijを0から1または1から0へ変化させる処理である。シナプス強化部140-2はSTDPの強化条件を用い、シナプス減衰部150は上記(10)式で表される減衰条件を用いる。
【0093】
図14-1から図14-3に示されるように、学習回数を増やしていくと当初ランダムであった重み分布は次第にパターンを形成する。60,000回学習後(図14-3)に、この重み分布を用いたニューラルネットワークにおける文字認識率は81.6%となる。図14-1から図14-3に示すように、本実施形態を適用すると、文字パターンの空白部分についても学習が可能となる。すなわち、(5)式の第二項のシナプス規格化に相当する効果が働き、空白部分に相当するシナプスの重みが減衰されて0になっている。
【0094】
シナプス規格化を効果的に実装するためには、強化動作と減衰動作のバランスが取れている必要がある。図15は、ηpot(強化率に相当)に対するηdep(減衰率に相当)の比率に対して、MNIST手書き文字学習後の認識率および重みのニューロン部110ごとの総和の標準偏差をプロットしたグラフを表す。比率が0.2~0.4付近で認識率が最大値を取るが、同じ範囲(比率0.2~0.4)で標準偏差が極小値を取る。標準偏差が極小値を取ることは、ニューロン部110に接続されているシナプス部120の重みの総和のばらつきが小さく、規格化されているということに他ならない。すなわち、強化動作と減衰動作のバランスが取れてシナプス規格化が生じると、学習による認識率が向上することが示されている。
【0095】
このように、第2実施形態にかかるスパイキングニューラルネットワーク装置では、減衰動作のみでなく強化動作についても、シナプス更新が可能と判定された場合に実行する。これにより、シナプス規格化をより効率的に実現可能となる。
【0096】
(第3実施形態)
第3実施形態では、第2実施形態を実現する回路の構成例を説明する。
【0097】
図16は、第3実施形態に係るスパイキングニューラルネットワーク装置100-3の回路構成例を示す図である。本実施形態のスパイキングニューラルネットワーク装置100-3は、図16に示すように、シナプス部120と、ニューロン部110と、強化・減衰部1500と、判定部160と、を備える。
【0098】
強化・減衰部1500は、第2実施形態のシナプス強化部140-2およびシナプス減衰部150の両方の機能を備える構成に相当する。
【0099】
シナプス部120は、MOS(Metal Oxide Semiconductor)トランジスタ1521と、メモリスタ1522と、を備えている。MOSトランジスタ1521は、電圧スパイクが入力されるとオンする。メモリスタ1522は、重み記憶部121の一例である。重み記憶部121は、メモリスタ1522などのように、情報(重みの値)を抵抗値として記憶できる二端子記憶素子として実現できる。以下では、メモリスタ1522は、低抵抗状態(SET状態)と高抵抗状態(RESET状態)の2状態を取りうる二端子記憶素子であるとして説明する。
【0100】
ニューロン部110の回路構成例は、図7と同様である。判定部160は、判定回路1560を備えている。強化・減衰部1500は、電圧発生回路1501と、電圧制御回路1502と、を備えている。
【0101】
図17図19は、このように構成されるスパイキングニューラルネットワーク装置100-3による動作を説明するための図である。
【0102】
図17に示すように、通常の状態では、メモリスタ1522の一方の端子には読み出し電圧Vreadが印加されており、電圧スパイクが入力されるとMOSトランジスタ1521がオンになる。以下ではMOSトランジスタ1521はN型として説明する。MOSトランジスタ1521がN型であるので、電圧スパイクは正の電圧である。また、読み出し電圧Vreadも正であるとする。メモリスタ1522がSET状態であれば、読み出し電圧Vreadがシナプス電流に変換されてニューロン部110(積分回路111)に流れ込む。メモリスタ1522がRESET状態であれば、シナプス電流は無視できるほど小さい。
【0103】
ニューロン部110は、積分回路111、閾値比較回路112、および、スパイク生成回路113を含む。積分回路111は、シナプス部120で生成されたシナプス電流を積分する。閾値比較回路112は、積分された値(膜電位)と閾値とを比較する。スパイク生成回路113は、膜電位が閾値を超えると発火し、電圧スパイクを出力する。
【0104】
図18に示すように、ニューロン部110が連続的に発火し、発火頻度が閾値以上になると、判定回路1560は、電圧制御回路1502にシナプス更新信号を転送する。シナプス更新信号は、重みを更新することを示す信号(シナプス更新が可である旨の信号)に相当する。
【0105】
シナプス更新信号を受信した電圧制御回路1502は、電圧発生回路1501に強化電圧VSETを出力するように信号を転送する。信号を受信した電圧発生回路1501は、強化電圧VSETを出力する。強化電圧VSETは正電圧であり、VSET>Vreadである。この状態でシナプス部120に電圧スパイクが入力されると、MOSトランジスタ1521がオンになり、メモリスタ1522の両端には強化電圧VSETが印加される。メモリスタ1522は、その抵抗状態がRESET状態であれば、強化電圧VSETによってSET状態に遷移するよう設計されている。
【0106】
既にSET状態であれば抵抗状態は変化せず、シナプス電流がニューロン部110に流れ込む。ここで、メモリスタ1522およびMOSトランジスタ1521のサイズを適切に設計し、電圧スパイクの振幅、強化電圧VSET、および、読み出し電圧Vreadを適切に設定することにより、メモリスタ1522のSET状態において、読み出し電圧Vreadおよび強化電圧VSETのいずれが印加された場合でも、MOSトランジスタ1521は飽和状態で動作するようにすることができる。この場合、シナプス電流は、MOSトランジスタ1521の飽和電流で決定される。このため、読み出し電圧Vreadおよび強化電圧VSETのいずれが印加された場合でも、同じシナプス電流が流れるようになる。すなわち、強化動作が行われる場合でも、強化動作の動作はニューロン部110の動作に影響することはない。これは、認識動作または推論動作しながら学習を行うオンライン学習において重要な性質であり、認識動作または推論動作と学習とを区別する従来のディープラーニング技術とは異なる点である。
【0107】
図19に示すように、ニューロン部110の発火頻度が一定以上になると、判定回路1560は、電圧制御回路1502にシナプス更新信号を転送する。一方、スパイク生成回路113で電圧スパイクが生成されると、電圧制御回路1502に電圧スパイクが転送される。電圧制御回路1502は、シナプス更新信号を受信し、かつ、その間に電圧スパイクを受信すると、電圧発生回路1501に減衰電圧VRESETを出力するように信号を転送する。信号を受信した電圧発生回路1501は、減衰電圧VRESETを出力する。減衰電圧VRESETは負電圧である。この状態でMOSトランジスタ1521がオフであれば、メモリスタ1522の電圧発生回路1501側の端子には減衰電圧VRESETが印加される。
【0108】
一方、MOSトランジスタ1521側の端子は、MOSトランジスタ1521のソースドレイン電極に接続されている。従って、MOSトランジスタ1521がバルク基板上に形成されている場合は、ソースドレイン電極は基板に対してn/p型のダイオードを形成する。このため、メモリスタ1522の電圧発生回路1501側に負電圧である減衰電圧VRESETを印加する場合は、MOSトランジスタ1521側の端子はダイオードを通じて接地されているとみなされる。|VRESET|を適切に設定すれば、SET状態態にあるメモリスタ1522はRESET状態へと遷移する。既にRESET状態であれば抵抗状態は変化せず、電流は流れない。
【0109】
減衰電圧VRESETの印加時に電圧スパイクが入力された場合には、MOSトランジスタ1521がオンになるが、ニューロン部110の入力部分の電位はグラウンドになっているため、メモリスタ1522に印加される電圧には影響はない。また、ニューロン部110の発火直後は不応答期間が存在するため、ニューロン動作に対する影響もない。
【0110】
なお、これまではMOSトランジスタ1521はバルク基板上に形成されているとして説明した。MOSトランジスタ1521がSOI(Silicon on Insulator))基板上に形成されている等、ソースドレイン電極がグラウンドに対してダイオードを形成していない場合は、別途、ソースドレイン電極にダイオード(MOSトランジスタ1521とメモリスタ1522とを接続するダイオード)を接続するように構成すればよい。これにより、メモリスタ1522をRESET状態へ遷移することが可能となる。
【0111】
第2実施形態の図12と同様に、1つのニューロン部110に複数のシナプス部が接続されてもよい。図20は、このように構成されたスパイキングニューラルネットワーク装置100-3bの構成例を示す図である。図20に示すスパイキングニューラルネットワーク装置100-3bは、複数のシナプス部に接続されたニューロン部110をさらに複数並列に並べるように構成した例を示す。なお図20では、複数のシナプス部とニューロン部110との組を2つ並べた例を示すが、3以上の組みを並べるように構成してもよい。
【0112】
電圧発生回路1501、電圧制御回路1502は、左側の組に含まれる強化・減衰部1500に相当する。積分回路111、閾値比較回路112、および、スパイク生成回路113は、左側の組に含まれるニューロン部110に相当する。MOSトランジスタ152111、152121、および、メモリスタ152211、152221は、左側の組に含まれる2つのシナプス部120に相当する。
【0113】
同様に、電圧発生回路1501、電圧制御回路1502は、右側の組に含まれる強化・減衰部1500に相当する。積分回路111、閾値比較回路112、および、スパイク生成回路113は、右側の組に含まれるニューロン部110に相当する。MOSトランジスタ152112、152122、および、メモリスタ152212、152222は、右側の組に含まれる2つのシナプス部120に相当する。なお各組に、3つ以上のシナプス部120が含まれてもよい。
【0114】
以上説明したとおり、第1から第3実施形態によれば、装置の大型化、および、学習に必要な電力の増大を招くことなくスパイク密度が低い情報を学習することが可能となる。
【0115】
本発明のいくつか実施形態を説明したが、これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0116】
100、100b、100-2、100-2b、100-3、100-3b スパイキングニューラルネットワーク装置
110 ニューロン部
111 積分回路
112 閾値比較回路
113 スパイク生成回路
120 シナプス部
121 重み記憶部
122 電流発生回路
140、140-2 シナプス強化部
150 シナプス減衰部
160、160-2 判定部
図1
図2
図3
図4-1】
図4-2】
図4-3】
図5
図6
図7
図8
図9
図10-1】
図10-2】
図10-3】
図11
図12
図13
図14-1】
図14-2】
図14-3】
図15
図16
図17
図18
図19
図20