(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】ニューラルネットワーク装置及び学習方法
(51)【国際特許分類】
G06N 3/08 20230101AFI20240219BHJP
G06N 3/049 20230101ALI20240219BHJP
G06N 3/0495 20230101ALI20240219BHJP
G06N 3/063 20230101ALI20240219BHJP
【FI】
G06N3/08
G06N3/049
G06N3/0495
G06N3/063
(21)【出願番号】P 2021001704
(22)【出願日】2021-01-07
【審査請求日】2023-02-02
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】西 義史
(72)【発明者】
【氏名】野村 久美子
(72)【発明者】
【氏名】丸亀 孝生
(72)【発明者】
【氏名】水島 公一
【審査官】渡辺 一帆
(56)【参考文献】
【文献】米国特許出願公開第2019/0318239(US,A1)
【文献】特開2017-049945(JP,A)
【文献】特表2018-524698(JP,A)
【文献】国際公開第2018/186390(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
ニューロンと、
スパイク信号を重みに応じてシナプス電流に変換する変換部と、
前記変換されたシナプス電流を前記ニューロンに伝達する伝達部と、
前記重みの状態遷移を決定する制御部と、
前記決定された状態遷移に応じて、前記重みを離散的な状態として保持する保持部と、
を備え、
前記保持部は、前記制御部から入力される信号をもとに確率的に動作して前記重みの状態を遷移させる動作部を有し、
前記動作部の動作の累積確率は、信号入力回数に対してS字状に変化する
ことを特徴とするニューラルネットワーク装置。
【請求項2】
前記動作部の動作の累積確率は、信号入力回数に対してS字に沿いながら曲線的に変化する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項3】
前記動作部の動作の累積確率は、信号入力回数に対してS字に沿いながら折れ線的に変化する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項4】
前記動作部の動作の累積確率は、信号入力回数に対してガンマ分布に従って変化する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項5】
前記動作部の動作の累積確率は、信号入力回数に対してワイブル分布に従って変化する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項6】
前記動作部は、多段接続される複数のスイッチ素子を有し、
前記スイッチ素子は、離散的な複数の状態を持ち、信号入力によって状態が確率的に前記複数の状態の間で遷移する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項7】
前記動作部は、
乱数を発生する発生部と、
カウンタと、
前記発生部が接続された第1の入力ノードと入力信号を受ける第2の入力ノードと前記カウンタに接続された出力ノードとを有し、論理積を演算する演算回路と、
を有する
ことを特徴とする請求項1に記載のニューラルネットワーク装置。
【請求項8】
前記スイッチ素子は、離散的な複数の抵抗状態を持ち、信号入力によって抵抗状態が確率的に前記複数の抵抗状態の間で遷移する抵抗変化素子である
ことを特徴とする請求項6に記載のニューラルネットワーク装置。
【請求項9】
前記スイッチ素子は、入力信号によって状態が確率的にOFF状態からON状態に変化するバイナリ型の素子である
ことを特徴とする請求項6に記載のニューラルネットワーク装置。
【請求項10】
前記スイッチ素子は、入力信号によって状態が確率的に3以上の状態の間で段階的に変化する多値型の素子である
ことを特徴とする請求項6に記載のニューラルネットワーク装置。
【請求項11】
前記カウンタは、カウント数が2以上の整数である所定数に達するまではゼロを出力し、カウント数が前記所定数に達すると1を出力する
ことを特徴とする請求項7に記載のニューラルネットワーク装置。
【請求項12】
ニューロンとスパイク信号を重みに応じてシナプス電流に変換する変換部と前記変換されたシナプス電流を前記ニューロンに伝達する伝達部と前記重みを離散的な状態として保持する保持部とを有するニューラルネットワーク装置における前記重みの状態遷移を決定する決定ステップと、
前記決定された状態遷移に応じて信号を前記保持部へ入力し、前記保持部で保持される重みの状態を確率的に遷移させる遷移ステップと、
を含み、
前記遷移ステップにおける前記重みの状態の遷移の累積確率は、信号入力回数に対してS字状に変化する
ことを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、ニューラルネットワーク装置及び学習方法に関する。
【背景技術】
【0002】
STDP(Spike Timing Dependent Plasticity)の原理を利用するニューラルネットワーク装置では、シナプス重みが、一般的には連続値で表現され、学習において、STDPによって決定された量で変化する。
【先行技術文献】
【非特許文献】
【0003】
【文献】Youngjin Park, Woochul Choi, & Se-Bum Paik,“Symmetry of learning rate in synaptic plasticity modulates formatiON OFFlexible and stable memories”,Scientific Reports, 18 Jul 2017, 7(1):5671,pp.1-12
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワーク装置は、シナプス重みを離散値で扱うために、STDPによって「重みの変化量」を決定するのではなく、「重みの変化確率」を決定し、その確率に従って重み値を0から1あるいは1から0へ変化させる学習(確率的STDP)を行うことがある。このとき、ニューラルネットワーク装置における確率的STDP学習による学習内容について、記憶保持特性を向上することが望まれる。
【0005】
本発明が解決しようとする課題は、記憶保持特性を容易に向上できるニューラルネットワーク装置及び学習方法を提供することである。
【課題を解決するための手段】
【0006】
実施形態のニューラルネットワーク装置は、ニューロンと変換部と伝達部と制御部と保持部とを有する。変換部は、スパイク信号を重みに応じてシナプス電流に変換する。伝達部は、変換されたシナプス電流をニューロンに伝達する。制御部は、重みの状態遷移を決定する。保持部は、決定された状態遷移に応じて、重みを離散的な状態として保持する。保持部は、動作部を有する。動作部は、制御部から入力される信号をもとに確率的に動作して重みの状態を遷移させる。動作部の動作の累積確率は、信号入力回数に対してS字状に変化する。
【図面の簡単な説明】
【0007】
【
図1】確率的STDP(Spike Timing Dependent Plasticity)を示す図。
【
図2】ニューラルネットワーク装置による学習を示す図。
【
図3】学習後の追加学習回数と忘却数との関係を示す図。
【
図5A】指数関数型の動作の累積確率分布を示す図。
【
図5B】S字関数型の動作の累積確率分布を示す図。
【
図5C】S字関数型の動作の累積確率分布を示す図。
【
図5D】S字関数型の動作の累積確率分布を示す図。
【
図6】第1の実施形態にかかるニューラルネットワーク装置のブロック図。
【
図10】ガンマ分布型の動作の累積確率分布を示す図。
【
図13】ニューラルネットワーク装置による推論を示す図。
【
図14】ニューラルネットワーク装置による推論を示す図。
【
図15A】ニューラルネットワーク装置による学習を示す図。
【
図15B】ニューラルネットワーク装置による学習を示す図。
【
図15C】ニューラルネットワーク装置による学習を示す図。
【
図15D】ニューラルネットワーク装置による推論を示す図。
【
図16】第2の実施形態にかかるニューラルネットワーク装置の回路図。
【
図17】ワイブル分布型の動作の累積確率分布を示す図。
【
図18】第3の実施形態にかかるニューラルネットワーク装置の回路図。
【
図19A】ニューラルネットワーク装置による推論を示す図。
【
図19B】ニューラルネットワーク装置による推論を示す図。
【
図20A】ニューラルネットワーク装置による学習を示す図。
【
図20B】ニューラルネットワーク装置による学習を示す図。
【
図20C】ニューラルネットワーク装置による学習を示す図。
【
図20D】ニューラルネットワーク装置による推論を示す図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかるニューラルネットワーク装置の実施形態を詳細に説明する。
【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】
この問題を回避するためには、シナプス重みを離散値で扱う方が望ましい。最も簡単な離散的シナプス重みはバイナリ型シナプス重みである。すなわち、重みの値として0と1のみが許容されるシナプスである。バイナリ型シナプス重みを採用すると、重みの変化量としては1のみになってしまうため、STDPではスパイクタイミングの持つ因果関係の情報をうまく表現できず、そのまま適用したのではうまく学習することが出来ない。そこで、STDPによって「重みの変化量」を決定するのではなく、「重みの変化確率」を決定し、その確率に従って重み値を0から1あるいは1から0へ変化させる確率的STDPを用いることで学習を行うことが出来る(
図1)。
【0017】
確率的STDPは、しかしながら、以下に述べるような問題がある。例として
図2のように、28×28=784ピクセルの画像データをスパイキングニューラルネットワークに学習させることを考える。ここでは、784個の入力層のニューロンに各ピクセルからコントラストを入力する。入力層のニューロンはコントラストに応じたスパイク密度のスパイク列を発生させ、後段の処理層の400個のニューロンに電圧スパイクを送る。入力層のニューロンと処理層のニューロンはシナプスを介して接続されている。シナプスは、入力スパイクおよびニューロン発火のタイミングによるSTDPによってシナプス重みが変化する。ニューロン間にはお互いを抑制する相互作用がはたらいており、複数のニューロンが同時に発火しないような仕組みになっている。
【0018】
図3は、一般的な連続的な重みを用いたSTDP(以下、連続的STDP)と確率的STDPの記憶保持特性を比較したものである。すなわち、まずMNIST手書き文字10,000パターンを学習させた後、さらに追加学習を行い、追加学習の回数に対して10,000回の時点で記憶していたパターンを失ったニューロン数を表している。
図3から分かるように、確率的STDPでは連続的STDPに比べて記憶パターンを失ったニューロン数が多く、記憶保持特性が劣化していることが分かる。STDPによる学習は、大量のデータを一気に学習するバッチ学習ではなく、データが入力するたびに学習を繰り返していくいわゆるオンライン学習に用いることが望ましいが、記憶保持特性が悪いと記憶が新しいデータによって容易に書き換えられてしまい、過去に学習した結果を忘れてしまうという問題が生じる。
【0019】
バイナリシナプスによるSTDP学習は、更新幅を遷移確率で読み替えることで実現できるが、確率的STDPでは、追加学習を行うとニューロンの記憶パターンが新しい学習パターンによって容易に上書きされてしまい、記憶保持特性が劣化するという問題があった。ここでは、過去の記憶パターンを保持しつつ確率的STDP学習可能なバイナリシナプス型脳型ハードウェアを提供する。
【0020】
上述のように、バイナリ型シナプス重みを持つニューラルネットワークにおいて確率的STDPを用いて学習する場合、学習内容の記憶保持特性が劣化してしまうという問題がある。
【0021】
(第1の実施形態)
そこで、第1の実施形態では、バイナリ型シナプス重みを持つニューラルネットワークにおいて、シナプス遷移の累積確率がS字関数型の挙動を示す確率的動作部を用いることで、確率的STDP学習による学習内容の記憶保持特性の改善を図る。
【0022】
ここではまず、確率的STDPによるバイナリ重みの変化について詳しく考察する。シナプスの重みwは0もしくは1の値を取るものとする。以下では議論を簡単にするため、
図4に示すような簡易型の確率的STDPを用いる。すなわち、スパイクがシナプスに入力される時刻t
preと接続するニューロンが発火する時刻t
postの時間差Δt=t
pre-t
postについて、0<Δt<Tの時には重みw=0のシナプスが確率pでw=1に遷移し、それ以外の場合には重みw=1のシナプスが確率qでw=0に遷移するものとする。以下では、w=0から1へ遷移させるための動作を(実際に遷移してもしなくても)強化と呼び、w=1から0へ遷移させるための動作を(実際に遷移してもしなくても)減衰と呼ぶ。
【0023】
シナプス重みがw=0の時にN回の強化動作が連続して起こった時、実際にシナプス状態がw=1に遷移している確率は
P(w=1)=1-(1-p)N・・・(式1)
で表される。従って、w=0のシナプス重み状態にN回の強化動作が連続して起こった後のwの期待値は
<w>=1-(1-p)N・・・(式2)
となる。
【0024】
同様に、シナプス重みがw=1の時にN回の減衰動作が起こるものとすると、実際にシナプスがw=0に遷移している確率は
P(w=0)=1-(1-q)N・・・(式3)
で表される。従って、w=1のシナプス重み状態にN回の減衰動作が連続して起こった後のwの期待値は
<w>=(1-q)N・・・(式4)
で表される。
【0025】
確率的STDPでは、確率源が指数関数型の特性を示すことがある。この確率的STDPでは、強化動作に対する式2の期待値をグラフで表すと
図5Aに実線で示す分布になり、減衰動作に対する式4の期待値をグラフで表すと
図5Aに一点鎖線で示す分布になる。いずれの場合も指数関数的に変化するため、重みの期待値<w>は強化あるいは減衰動作回数Nが小さい時に大きく変化し、Nが大きくなるに従って飽和していく。すなわち、統計的に見れば、シナプス状態の変化は最初の数回の動作による影響が大きいということが分かる。記憶保持特性の観点では、最初の数回の動作が既に形成しているシナプスの記憶を破壊し、新しい記憶を上書きしているということになる。指数関数型の確率的STDPの学習では、重みの遷移のほとんどが初期段階のうちに起こり、既存の記憶が消えやすい傾向にある。
【0026】
それに対して、以下に説明するように、重みの期待値<w>が動作回数Nに対してS字関数型の特性を持つ確率源を用いることで、強化・減衰動作の初期段階が期待値に与える影響を小さくできる。
【0027】
確率源は、強化・減衰動作に対する累積確率が動作回数Nに対してS字状に変化するように構成される。ここでS字状に変化するとは、次のような変化をいう。例えば、期待値が、動作回数Nの少ないうちは緩やかに立ち上がり、やがて、動作回数Nが大きくなるにしたがって、急激に期待値が大きくなり、その後、期待値が大きくなるペースが再び緩やかになるような変化をいう。あるいは、例えば、期待値の1次関数が、動作回数Nが大きくなるにしたがって上に凸状となるような変化をいう。すなわち、確率源の動作の累積確率分布をS字関数化し、重みの遷移の立ち上がりを緩やかにすることで、既存の記憶を保護できるようにする。例えば、確率源は、強化動作に対する期待値が、
図5Bに実線で示すように、動作回数Nに対してS字に沿いながら曲線的に変化し、減衰動作に対する期待値が、
図5Bに一点鎖線で示すように、動作回数Nに対して逆S字に沿いながら曲線的に変化してもよい。あるいは、確率源は、強化動作に対する期待値が、
図5Cに実線で示すように、動作回数Nに対してS字に沿いながら多段階で折れ線的に変化し、減衰動作に対する期待値が、
図5Cに一点鎖線で示すように、動作回数Nに対して逆S字に沿いながら多段階で折れ線的に変化してもよい。あるいは、確率源は、強化動作に対する期待値が、
図5Dに実線で示すように、動作回数Nに対してS字に沿いながら2段階で折れ線的に変化し、減衰動作に対する期待値が、
図5Dに一点鎖線で示すように、動作回数Nに対して逆S字に沿いながら2段階で折れ線的に変化してもよい。以下では、主として、確率源が
図5Bに示す累積確率分布を示す場合について例示するが、本実施形態の考え方は、確率源が
図5C又は
図5Dに示す累積確率分布を示す場合についても同様に適用され得る。
【0028】
ニューラルネットワーク装置1は、
図6に示すように構成され得る。ニューラルネットワーク装置1は、ニューロン6、スパイク入力部4、シナプス回路部5、重み状態保持部3、重み制御部2を有する。
図6では、図示の簡略化のため、1つのニューロン及び1つのシナプス回路について例示するが、ニューラルネットワーク装置1は、複数のニューロンおよび複数のシナプスを有する(
図2参照)。
【0029】
スパイク入力部4は、スパイク信号を重みに応じてシナプス電流に変換する。シナプス回路部5は、シナプス電流をニューロンに伝達する。重み状態保持部3は、シナプス重みを離散的な状態として保持する。重み制御部2は、重み状態の状態遷移を決定する。重み状態保持部3は、確率的動作部31を有する。確率的動作部31は、重み制御部2から入力される信号をもとに確率的に動作して重み状態を遷移させる。確率的動作部31は、確率的動作部31に同一信号を繰り返し入力した時に、信号入力回数に対する累積動作確率がS字関数型となるように構成される。
【0030】
重み制御部2は、例えばSTDPによって重み更新を行う場合、入力スパイクとニューロンの発火のタイミングをモニターし、そのタイミング差に応じて重み状態を更新するための信号を確率的動作部31に与える。確率的動作部31は、上に述べたように、重み制御部2から同一の信号を繰り返し受けた時にその累積動作確率がS字関数型となるように設計される。以下、試行回数に対して累積確率がS字関数型となるような確率分布を実現する手法の一例について説明する。1回の操作に対して確率pでOFF状態からON状態に遷移するスイッチを考える。OFF状態にあるスイッチをN回操作した後にスイッチがON状態にある確率は
1-(1-p)N=1-exp(-λN)・・・(式5)
で与えられる。但しλ=-ln(1-p)とする。確率的にOFF状態からON状態へ遷移するスイッチ素子としては、例えば抵抗変化素子を用いることが出来る。
【0031】
抵抗変化素子は、金属酸化物やイオン伝導体の薄膜を上下電極で挟んだ二端子素子で、上下電極に電圧を印加することで内部の酸素空孔ないしはイオンが動いて内部に伝導パスが生成・消滅し、抵抗が変化する。金属酸化物は例えばタンタル酸化物、チタン酸化物、ハフニウム酸化物、タングステン酸化物、マグネシウム酸化物、アルミニウム酸化物等がある。イオン伝導体は例えばゲルマニウム硫化物、ゲルマニウムセレン化物、硫化銀、硫化銅等がある。ここでは、抵抗変化素子は金属酸化物で構成されているものとし、内部の酸素空孔によって抵抗が変化するものとする。
【0032】
以下では、抵抗変化素子は、高抵抗状態(HRS:Highレベル Resistance State)と低抵抗状態(LRS:Lowレベル Resistance State)の2状態を取るものとする。HRSは伝導パスが消滅した状態であり、LRSは伝導パスが形成された状態である。HRSにある抵抗変化素子に電圧を印加すると、上述の通り、内部の酸素空孔が電界によって移動し、伝導パスを形成してLRSへ遷移する。これをSETと呼ぶ。SET動作は、HRSからLRSへの遷移であり、スイッチ素子のON動作に相当する。
【0033】
なお、抵抗変化素子がバイポーラ型である場合、RESET動作では、抵抗変化素子にSET動作時と逆極性で電圧が印加され、SET動作時と逆方向に電流が流され、抵抗変化素子がLRSからHRSへ遷移する。RESET動作は、スイッチ素子のOFF動作に相当する。
【0034】
図7は、タンタル酸化物(TaO
x)薄膜で作成した抵抗変化素子のHRS状態に電圧を印加した時の電流の変化を示す。
図7では、縦軸がSET動作時を正とした場合の電流・電圧の値を示し、横軸が時間を示す。
【0035】
電圧印加の時点t1では電流はほとんど流れず、素子がHRSにあることが分かる。電圧印加から時間t
SETが経過すると、時点t2でSETが起こり、電流が急激に増加して素子がLRSに遷移する様子が見て取れる。時点t1~t2の時間がt
SETになる。電圧印加からSETが起こるまでの時間t
SETは一定ではなく、試行ごとに大きくばらつく。これは、伝導パスの形成が内部の酸素空孔の分布状態に大きく依存するためであると考えられる。
図8は、TaO
x薄膜の抵抗変化素子について、同一の素子でt
SETを繰り返し測定した時のt
SET分布を示している。
図8では、縦軸が-ln(1-F)を対数で示し、横軸がt
SETを対数で示す。Fは累積頻度であり、t
SETは
図7に示すような電圧印加からSETするまでの時間である。
図8から分かるように、-ln(1-F)とt
SETの両対数プロットで傾き1の直線となることから、これらの間には
【数1】
という関係があることが分かる。ここでTは定数である。従って、時間幅t
pulseの電圧パルスによってSETを行うことを考えると、そのSET確率pは
【数2】
で与えられる。パルス電圧をN回印加するということは、時間幅Nt
pulseの電圧を印加することに他ならない。従って、N回の電圧パルス印加後のSET確率は
【数3】
となる。これは式5と全く同型である。すなわち、抵抗変化素子はHRSをOFF状態、LRSをON状態と考えれば、電圧パルス印加によってOFF状態からON状態へ確率的に変化する確率的なスイッチ素子とみなすことが出来る。
【0036】
この確率的なスイッチ素子がk段に連なった多段スイッチを考える。すなわち、全部でk個のスイッチ素子があり、i番目のスイッチ素子はi-1番目のスイッチ素子がON状態の場合に確率的に動作するものとする。但し1番目のスイッチ素子は無条件で確率的に動作する。最初はk個すべてのスイッチ素子がOFF状態であるとする。1回の試行でスイッチ素子に対してON状態へ遷移する操作を行う。
【0037】
このような多段スイッチMSは、複数の抵抗変化素子RE-1~RE-3を用いて
図9A~
図9Dのように構成することができる。
図9A~
図9Dでは、例として、k=3に対応する構成が例示されている。
【0038】
多段スイッチMSは、複数の抵抗変化素子RE-1~RE-3、複数のセレクタSL-1,SL-2、複数のセレクタSL0-1,SL0-2、及び複数の抵抗素子Rを有する。多段スイッチMSの出力ノードには、セレクタSL1が接続される。
【0039】
抵抗変化素子RE-1は、一端で重み制御部2から入力される信号を受け、他端がセレクタSL-1に接続されている。セレクタSL-1は、入力ノードが抵抗変化素子RE-1に接続され、第1の出力ノードが抵抗変化素子RE-2及びセレクタSL0-1に接続され、第2の出力ノードがグランド電位に接続されている。セレクタSL0-1は、入力ノードがセレクタSL-1及び抵抗変化素子RE-2に接続され、第1の出力ノードが抵抗素子Rを介してグランド電位に接続され、他端が所定の電源電位に接続される。抵抗変化素子RE-2は、一端がセレクタSL-1に接続され、他端がセレクタSL-2に接続されている。セレクタSL-2は、入力ノードが抵抗変化素子RE-2に接続され、第1の出力ノードが抵抗変化素子RE-3及びセレクタSL0-2に接続され、第2の出力ノードがグランド電位に接続されている。セレクタSL0-2は、入力ノードがセレクタSL-2及び抵抗変化素子RE-3に接続され、第1の出力ノードが抵抗素子Rを介してグランド電位に接続され、第2の出力ノードが所定の電源電位に接続される。抵抗変化素子RE-3は、一端がセレクタSL-2に接続され、他端がセレクタSL1に接続されている。セレクタSL1は、入力ノードが抵抗変化素子RE-3に接続され、第1の出力ノードが後段に接続され、第2の出力ノードがグランド電位に接続されている。
【0040】
学習時に、セレクタSL-1,SL-2はそれぞれ第1の出力ノードを選択し、セレクタSL1は第2の出力ノードを選択し、セレクタSL0―1,SL0-2はそれぞれ第1の出力ノードを選択する。
【0041】
各抵抗変化素子REについて、OFF状態(HRS)の時の抵抗値をROFF、ON状態(LRS)の時の抵抗値をRONとする。抵抗変化素子REと抵抗変化素子REとの間のノードはセレクタSL0及び抵抗素子Rを介して接地されているとする。ここで、抵抗素子Rの抵抗値をRとするとき
ROFF≫R≫RON・・・(式9)
とする。
【0042】
まず、すべての抵抗変化素子RE-1~RE-3がOFF状態にあるとし、抵抗変化素子RE-1の一端に重み制御部2から確率的SETパルスが印加される。抵抗変化素子RE-1の他端はセレクタSL-1,SL0-1及び抵抗Rを介して接地されているため、式9の条件により、抵抗変化素子RE-1にパルスによる電圧が印加される。断続的にSETパルスを印加し続けると、抵抗変化素子RE-1は式8に従って確率的にON状態に遷移する。
【0043】
図9Bに示すように、抵抗変化素子RE-1がON状態になると、SETパルスは抵抗変化素子RE-1を通り抜けて抵抗変化素子RE-2に到達し、式9の条件により、抵抗変化素子RE-2にパルスによる電圧が印加される。ここに断続的に確率的SETパルスを電圧パルスとして印加し続けると、今度は抵抗変化素子RE-2が式8に従って確率的にON状態に遷移する。
【0044】
図9Cに示すように、抵抗変化素子RE-2がON状態になると、SETパルスは抵抗変化素子RE-1および抵抗変化素子RE-2を通り抜け、やはり式9の条件により、抵抗変化素子RE-3に電圧が印加される。ここに断続的にSETパルスを印加し続けると、やはり式8に従って抵抗変化素子RE-3が確率的にON状態に遷移し、
図9Dに示すように、多段スイッチMS全体がON状態となる。
【0045】
なお、多段スイッチMS全体がOFF状態の時にSETパルスを印加し、抵抗変化素子RE-1がON状態に遷移した場合、このSETパルスは抵抗変化素子RE-2にも印加されることになるため、1回のSETパルスで抵抗変化素子RE-1と抵抗変化素子RE-2の両方がON状態に遷移することもありうる。同様に考えれば1回のSETパルスによってすべての抵抗変化素子RE-1~RE-3がON状態に遷移することもありうる。
【0046】
式5のNを確率変数とみなすと、この式は指数分布の累積確率分布関数である。実際、N-1回の試行後にOFF状態であったスイッチ素子がN回目の試行でON状態へ遷移する場合、この確率はp(1-p)
N-1で与えられるが、p≪1の条件下でλ=-ln(1-p)≒pであることから、
p(1-p)
N-1≒λexp[-λ(N-1)]・・・(式10)
となる。Nを連続的な確率変数とみなせば、式10は指数分布の確率密度関数に他ならない。さて、1個目のスイッチ素子がONになるまでの試行回数をN
1,1個目のスイッチ素子がONになってから2個目のスイッチ素子がONになるまでの試行回数をN
2,…,i-1番目のスイッチ素子がONになってからi番目のスイッチ素子がONになるまでの試行回数をN
i,…とし(i-1番目とi番目が同時にONになる場合はN
i=0とする)、すべての試行回数の総和をN=N
1+N
2+…+N
kとする。各N
iは指数分布に従う確率変数とみなすことが出来るので、その和であるNはガンマ分布
【数4】
に従う確率変数となる。従って、N回の試行後にこのk段のスイッチ素子がすべてONになっている確率Pk(N)は
【数5】
となる。式12は第一種不完全ガンマ関数γを用いて
【数6】
と近似することができる。これはガンマ分布の累積分布関数に他ならない。
【0047】
式12においてp=0.2,k=2,3,4とした場合のPk(N)を
図10に示す。kが大きくなると、試行回数Nが小さい時の確率が低く抑えられ、
図5BのようなS字関数型の累積確率分布が実現できることが分かる。すなわち、確率的な動作を多段に重ねればS字関数を実現できるため、確率的なスイッチ素子がk段に連なった多段スイッチを構成すれば、その多段スイッチがS字関数型の挙動を示すと考えられる。
【0048】
図9Aでは、k=3段のスイッチ素子が連なった多段スイッチMSを用いた構成が例示されている。この多段スイッチMSを用いて、確率的STDPでMNIST手書き文字10,000パターンを学習させた後、さらに追加学習を行った。追加学習の回数に対して10,000回の時点で記憶していたパターンを失ったニューロン数を忘却数としてプロットしたものを、S字関数型の確率的STDP学習(ガンマ分布型の確率的STDP学習)として、
図11に示す。ガンマ分布型の確率的STDPは、S字関数型の確率的STDPの一例である。
【0049】
本実施形態によるS字関数型の確率的STDPでは、任意の追加学習回数に対して、
図11に実線の白抜き矢印で示すように、指数関数型の確率的STDPに対して忘却数が大幅に減少する。それに加えて、本実施形態によるS字関数型の確率的STDPでは、
図11に点線の白抜き矢印で示すように、連続的STDP学習に対しても優位性が見られる結果となっている。本実施形態によるS字関数型の確率的STDP学習によれば、指数関数型の確率的STDP学習及び連続的STDP学習に比べて、ネットワークの記憶保持特性を改善できる。
【0050】
ニューラルネットワーク装置1の具体的な回路例を
図12に示す。ニューラルネットワーク装置1は、
図9A~
図9Dで示した抵抗変化素子REが多段接続された多段スイッチMSを確率的シナプスとして用いて構成される。
図12では、図示の簡略化のため、1つのニューロン及び1つのシナプス回路について例示するが、ニューラルネットワーク装置1は、複数のニューロンおよび複数のシナプスを有する(
図2参照)。
【0051】
図12に示すニューラルネットワーク装置1では、多段スイッチMS-1,MS-2を上下2組で用いてそれぞれが中央のSRAMセル36へ接続されている。ニューラルネットワーク装置1において、重み状態保持部3は、確率的動作部31、セレクタSL1-1、セレクタSL1-2、整流素子34、整流素子35、SRAMセル36を有する。確率的動作部31は、複数の多段スイッチMS-1,MS-2を有する。複数の多段スイッチMS-1,MS-2は、重み制御部2とSRAMセル36との間に並列に配される。重み制御部2とSRAMセル36との間には、多段スイッチMS-1、セレクタSL1-1、整流素子34の直列接続と、多段スイッチMS-2、セレクタSL1-2、整流素子35の直列接続とが、並列に接続されている。各多段スイッチMS-1,MS-2は、
図9Aに示す多段スイッチMSと同様である。
【0052】
スパイク入力部4には、前段ニューロン6の発火によるスパイク信号が電圧パルスで入力されてシナプス電流を流すことが可能なトランジスタM1が設けられている。SRAMセル36の出力に接続されたトランジスタM2は、シナプス回路部5及びトランジスタM1の間に配され、トランジスタM1に直列に接続されている。従って、SRAMセル36の出力がHighレベルの場合には、トランジスタM2が開くため、トランジスタM1へのスパイク信号入力に応じてシナプス電流が流れるが、SRAMセル36の出力がLowレベルの場合には、トランジスタM2が閉じるため、トランジスタM1へスパイク信号入力があったとしてもSRAMセル36に接続するトランジスタがOFF状態のため、シナプス電流が流れない。
【0053】
すなわち、
図13に示すように、SRAMセル36の出力ノード36cがHighレベルの状態はスパイク信号入力をシナプス電流に変換する重みw=1の状態に相当し、
図14に示すように、SRAMセル36の出力ノード36cがLowレベル状態はスパイク信号入力をシナプス電流に変換しない重みw=0の状態に相当しており、重み値が0と1を取るバイナリシナプスが実現されている。
【0054】
なお、多段スイッチMS-1,MS-2とSRAMセル36との接続部に、多段スイッチMS-1,MS-2からSRAMセル36へ向かう方向に整流する整流素子(例えば、ダイオード)34,35を設ける。これにより、SRAMセル36の状態が多段スイッチMS-1,MS-2の動作に影響を及ぼすことを回避することができる。
【0055】
図12の回路について、推論時の接続を
図13、
図14に示す。
図13では、上段の多段スイッチMS-1はON(すべての抵抗変化素子REがON)であり、下段の多段スイッチMS-2はOFF(いずれかの抵抗変化素子REがOFF)の場合を示している。ここで、前段ニューロンが発火すると、トランジスタM1だけでなく上段の多段スイッチMS-1と下段の多段スイッチMS-2のそれぞれにスパイク信号が電圧パルスで入力される。上段の多段スイッチMS-1に入力された電圧パルスは多段スイッチMS-1内部のON状態の抵抗変化素子REを通ってSRAMセル36に入力される。一方、下段の多段スイッチMS-2に入力された電圧パルスは、途中のOFF状態の抵抗変化素子REに遮断されてSRAMセル36に到達しない。従って、
図13のSRAMセル36は上部がHighレベル、下部がLowレベルの状態となる。つまり、SRAMセル36の出力ノード36cがHighレベルであり、推論に用いられる重みw=1の状態である。
【0056】
一方、
図14では、上段の多段スイッチMS-1はOFFであり、下段の多段スイッチMS-2はONである。ここで前段ニューロン6が発火するとトランジスタM1だけでなく上段の多段スイッチMS-1と下段の多段スイッチMS-2のそれぞれに電圧パルスがスパイク信号として入力される。下段の多段スイッチMS-2に入力された電圧パルスは多段スイッチMS-2内部のON状態の抵抗変化素子REを通ってSRAMセル36に入力される。一方、上段の多段スイッチMS-1に入力された電圧パルスは、途中のOFF状態の抵抗変化素子REに遮断されてSRAMセル36に到達しない。従って、
図14のSRAMセル36は上部がHighレベル、下部がLowレベルの状態となる。つまり、SRAMセル36の出力ノード36cがHighレベルの状態であり、推論に用いられる重みw=0の状態である。
【0057】
なお、上記の説明から分かる通り、
図13、
図14では一度SRAMセル36の状態が決まると、抵抗変化素子REのON/OFFコンフィギュレーションが変化しない限り、SRAMセル36の状態は保持される。つまり、重みwは変化しない。重みwを変化させるためには、つまり学習を行うためには、抵抗変化素子REのON/OFFコンフィギュレーションを変化させる必要がある。
【0058】
学習について、
図15A~
図15Dを用いて説明する。
図15Aは、上段の多段スイッチMS-1がOFF,下段の多段スイッチMS-2がONでSRAMセル36がLowレベルを出力するw=0状態を示す。
図15Dは、抵抗変化素子のコンフィギュレーションを変化させて上段の多段スイッチMS-1をON,下段の多段スイッチMS-2をOFFにしてSRAMセル36がHighレベルを出力するw=1状態を示す。
図15Aに示す重みw=0の状態から
図15Dに示す重みw=1の状態へ状態を変化させる手法を説明する。
【0059】
回路中のセレクタSL,SL0,SL1を
図15Aに示すように接続する。すなわち、上段の多段スイッチMS-1の抵抗変化素子RE-1,RE-2の一端は抵抗Rを介して接地され、抵抗変化素子RE-3の一端はSRAMセル36に接続せずに接地する。下段の多段スイッチMS-2の抵抗変化素子RE-1,RE-2の一端は接続せず、RESET操作が可能なように電圧源に接続する。上段の多段スイッチMS-1(OFF状態)には、抵抗変化素子RE-1に確率的SETパルスを印加する。同時に、下段の多段スイッチMS-1(ON状態)のそれぞれの抵抗変化素子RE-1~RE-3には非確率的にOFFさせるための非確率的RESET電圧を印加する。電圧の大きさおよび印加時間を適切に設計することにより、抵抗変化素子REを非確率的にOFF(RESET)させることは容易である。
【0060】
この一連の動作を繰り返すと、上段の多段スイッチMS-1の抵抗変化素子RE-1は確率的にON状態へ変化する(
図15B)。下段の多段スイッチMS-2の抵抗変化素子RE-1~RE-3は、1回の操作で非確率的にOFFするが、OFF状態の抵抗変化素子RE-1~RE-3にRESET電圧印加を繰り返してもそれ以上は変化しない。さらに繰り返すと、上段の多段スイッチMS-1の抵抗変化素子RE-1~RE-3はすべてON状態になる(
図15C)。ここで、
図15Dに示すように、セレクタSL1を切り替えて推論を開始すると、上で説明した原理によってSRAMセル36はLowレベルからHighレベルに変化し、シナプス重みw=1の状態が実現する。なお、
図15Bの中間的な状態であっても、SRAMセル36はLowレベル状態を保持しているため、
図15Bの状態のままでもトランジスタM1(
図12参照)にスパイク入力することで推論を行うことは可能である。この場合、上段の多段スイッチMS-1及び下段の多段スイッチMS-2は両方ともOFFの抵抗変化素子REを含むため、推論の電圧パルスはSRAMセル36には到達しない。このため、SRAMセル36はLowレベル状態のままとなり、w=0として推論が行われる。
【0061】
全く同様にして、上段の多段スイッチMS-1がON,下段の多段スイッチMS-2がOFFでSRAMセル36がHighレベルを出力するw=1状態から、抵抗変化素子REのコンフィギュレーションを変化させて上段の多段スイッチMS-1をOFF,下段の多段スイッチMS-2をONにしてSRAMセル36がLowレベルを出力するw=0状態へ状態を変化させることができる。説明は省略する。
【0062】
以上のように、本実施形態では、バイナリ型シナプス重みを持つニューラルネットワーク装置1において、シナプス遷移の累積確率がS字関数型の挙動を示す確率的動作部31を用いる。例えば、確率的動作部31は、多段接続される複数の確率的スイッチ素子を有し、その動作の累積確率が信号入力回数に対してS字状に変化する。これにより、信号入力回数に対する重みの遷移の立ち上がりを緩やかにでき、既存の記憶を保護できるので、確率的STDP学習における学習内容の記憶保持特性を改善できる。したがって、確率的STDP学習の効率を向上できる。例えば、S字関数型の確率的STDP学習では、指数関数型の確率的STDP学習に比べて、MNIST手書き文字における文字認識率を向上できる。
【0063】
なお、スイッチ素子は、離散的な複数の状態を持ち、信号入力によって状態が確率的に複数の状態の間で遷移する素子であればよく、バイナリ型の素子に限定されない。スイッチ素子は、入力信号によって状態が確率的に3以上の状態の間で段階的に変化する多値型の素子であってもよい。
【0064】
(第2の実施形態)
次に、第2の実施形態にかかるニューラルネットワーク装置について説明する。以下では、第1の実施形態と異なる点を中心に説明する。
【0065】
第1の実施形態では、確率的スイッチが多段に直列接続された多段スイッチによりS字関数型の確率的な動作を実現しているが、第2の実施形態では、乱数発生器から確率的に発生する所定値をカウントする確率的カウンタによりS字関数型の確率的な動作を実現する。
【0066】
図16に示すニューラルネットワーク装置201は、重み制御部2、重み状態保持部3に代えて重み制御部202、重み状態保持部203を有する。重み状態保持部203は、確率的動作部31に代えて確率的動作部231を有し、セレクタSL1-1,SL1-2を有しない。
【0067】
確率的動作部231は、複数の確率的カウンタCU-1,CU-2を有する。複数の確率的カウンタCU-1,CU-2は、重み制御部202とSRAMセル36との間に並列に配される。重み制御部202とSRAMセル36との間には、確率的カウンタCU-1、整流素子34の直列接続と、確率的カウンタCU-2、整流素子35の直列接続とが、並列に接続されている。各確率的カウンタCU-1,CU-2は、乱数発生器RG、AND回路AG、カウンタCNを有する。AND回路AGは、第1の入力ノードが乱数発生器RGに接続され、第2の入力ノードが重み制御部202に接続され、出力ノードがカウンタCNに接続される。カウンタCNは、データ入力ノードがAND回路AGに接続され、リセット入力ノードが重み制御部202に接続され、出力ノードが整流素子34又は35に接続される。
【0068】
ニューラルネットワーク装置201では、確率的カウンタCUが上下の2段用意される。上段の確率的カウンタCU-1及び下段の確率的カウンタCU-2は、それぞれ、重み制御部202からのデジタル信号と乱数発生器RGからのデジタル信号とがAND回路AGを通じてカウンタCNに入力される。上段の確率的カウンタCU-1の出力がSRAMセル36の上部の入力ノード36aに接続され、下段の確率的カウンタCU-2の出力がSRAMセル36の下部の入力ノード36bに接続される。カウンタCNは重み制御部202からリセット信号をリセット入力ノードで受け取ることが出来る。
【0069】
シナプス重みがw=0の場合にw=1へ強化することを考える。最初はw=0であるので、SRAMセル36の出力はLowレベルとなっている。重み制御部202から、上段の確率的カウンタCU-1にデジタル信号が入力されると同時に下段の確率的カウンタCU-2にリセット信号が入力される。上段の確率的カウンタCU-1におけるAND回路AGは重み制御部202からのデジタル信号と乱数発生器RGからの乱数信号とが共にHighレベルの場合に、AND回路AGは、Highレベルを出力し、それ以外の場合に、AND回路AGは、Lowレベルを出力する。乱数発生器RGを適切に設定することにより、重み制御部202からデジタル信号が入力されたときにAND回路AGがHighレベルを出力する確率を任意の値に設定することが出来る。ここではその確率をpとする。
【0070】
カウンタCNは、リセットが解除されるとカウント動作が可能な状態になり、次にリセットが行われるまでカウント値を保持する。AND回路AGがHighレベルを出力すると、カウンタCNのカウント値がひとつ大きくなる。すなわち、重み制御部202からデジタル信号が入力されると、確率pでカウンタCNのカウント値がひとつ大きくなるのである。カウンタCNは、リセットされると、カウント値を初期値に戻す。
【0071】
カウンタCNは、そのカウント値が予め設定した所定値kに達するまではLowレベル(又はゼロ)を出力する。カウンタCNは、そのカウント値が予め設定した所定値kに達すると、Highレベル(又は1)を出力する。カウンタCNからSRAMセル36へHighレベルのデジタル信号が入力されると、SRAMセル36の状態が変化する。今の場合、上段の確率的カウンタCU-1からHighレベルが出力されるので、SRAMセル36の上部がHighレベル,下部がLowレベルの状態となり、SRAMセル36からHighレベルが出力される。するとM2トランジスタが開いてスパイク入力部4にシナプス電流が流れることができるようになる。これはw=1の状態である。シナプス重みがw=1から0に減衰する場合も全く同様である。
【0072】
重み制御部202からデジタル信号が入力される回数Nに対するカウンタCNのカウント値がkになる確率は、式12あるいは式13で表すことができる。すなわちカウンタCNのカウント値がkになるための重み制御部202からのデジタル信号の入力回数Nはガンマ分布に従うため、その累積確率は
図10のようなS字関数となるため、
図16で示した回路によって本実施形態を実施することができる。
【0073】
以上のように、第2の実施形態では、ニューラルネットワーク装置201において、乱数発生器RGから確率的に発生する所定値をカウントする確率的カウンタCUによりS字関数型の確率的な動作を実現する。例えば、確率的動作部231は、確率的なカウント動作を行う確率的カウンタCUを有し、その動作の累積確率が信号入力回数に対してS字状に変化する。これにより、重みの遷移の立ち上がりを緩やかにでき、既存の記憶を保護できるので、確率的STDP学習における学習内容の記憶保持特性を改善できる。
【0074】
(第3の実施形態)
次に、第3の実施形態にかかるニューラルネットワーク装置について説明する。以下では、第1の実施形態及び第2の実施形態と異なる点を中心に説明する。
【0075】
第1および第2の実施形態では、S字関数を実現する手段としてガンマ分布を用いたが、S字関数が実現できるのであればガンマ分布に限定することはない。ガンマ分布以外の例として、ワイブル分布を用いることが出来る。ワイブル分布では、試行回数Nに対して事象が起きる累積確率Fは
【数7】
と表すことができる。
図17にβ=2の場合の一例を示す。累積確率F(N)がNに対してS字関数を描いていることが分かる。これまではLRSとHRSの2状態を取る抵抗変化素子のSET確率が指数分布に従うとして議論してきたが、例えばタンタル酸化物による抵抗変化素子の場合、電圧の設定により、β=2のワイブル分布に従うということが知られている。
【0076】
そこで、
図18に示すように、β=2のワイブル分布に従う抵抗変化素子(ワイブル抵抗変化素子)WREを用いて本実施形態によるニューラルネットワーク装置301を構成することが可能である。ニューラルネットワーク装置301は、重み状態保持部3(
図12参照)に代えて重み状態保持部303を有する。重み状態保持部303は、確率的動作部31(
図12参照)に代えて確率的動作部331を有する。確率的動作部331は、複数のスイッチSW-1,SW-2を有する。複数のスイッチSW-1,SW-2は、重み制御部2とSRAMセル36との間に並列に配される。重み制御部2とSRAMセル36との間には、スイッチSW-1、セレクタSL1-1、整流素子34の直列接続と、スイッチSW-2、セレクタSL1-2、整流素子35の直列接続とが、並列に接続されている。各スイッチSW-1,SW-2は、ワイブル抵抗変化素子WREを有する。SRAMセル36の状態がワイブル抵抗変化素子WREの動作に影響を与えないよう、ワイブル抵抗変化素子WREとSRAMセル36の間には整流素子(例えば、ダイオード)34,35を設けると良い点は第1の実施形態と同様である。
【0077】
なお、
図18では、ワイブル抵抗変化素子WREがβ=2のワイブル分布に従って変化するように構成される場合を例示するが、ワイブル抵抗変化素子WREがβ>1のワイブル分布に従って変化するように構成されれば、同様の効果を実現し得る。
【0078】
図19A及び
図19Bは推論時の動作を示している。
図19Aに示す重みw=1の状態では、上段のスイッチSW-1のワイブル抵抗変化素子WREはON状態(LRS)、下段のスイッチSW-2のワイブル抵抗変化素子WREはOFF状態(HRS)である。スパイク入力部4へのスパイク信号入力と同時に、上段のスイッチSW-1のワイブル抵抗変化素子WREと下段のスイッチSW-2のワイブル抵抗変化素子WREとに、それぞれスパイク信号が電圧パルスで入力される。下段のスイッチSW-2のワイブル抵抗変化素子WREはOFF状態であるので電圧パルスを遮断するが、上段のスイッチSW-1のワイブル抵抗変化素子WREはON状態であるので、電圧パルスはワイブル抵抗変化素子WREを通過してSRAMセル36に達する。すると、SRAMセル36は上部がHighレベル状態、下部がLowレベル状態の状態になる。すなわち、SRAMセル36の出力ノード36cがHighレベルであり、トランジスタM2がオンしてシナプス電流が流れる。
【0079】
図19Bに示す重みw=0の状態では、上段のスイッチSW-1のワイブル抵抗変化素子WREはOFF状態(HRS)、下段のスイッチSW-2のワイブル抵抗変化素子WREはON状態(LRS)である。スパイク入力部4へのスパイク信号入力と同時に、上段のスイッチSW-1のワイブル抵抗変化素子WREと下段のスイッチSW-2のワイブル抵抗変化素子WREとに、それぞれスパイク信号が電圧パルスで入力される。上段のスイッチSW-1のワイブル抵抗変化素子WREはOFF状態であるので電圧パルスを遮断するが、下段のスイッチSW-2のワイブル抵抗変化素子WREはON状態であるので、電圧パルスはワイブル抵抗変化素子WREを通過してSRAMセル36に達する。すると、SRAMセル36は下部がHighレベル状態、上部がLowレベル状態の状態になる。すなわち、SRAMセル36の出力ノード36cがLowレベルであり、トランジスタM2がオフしてシナプス電流が流れない。
【0080】
学習について、
図20A~
図20Dを用いて説明する。
図20Aは、上段のスイッチSW-1のワイブル抵抗変化素子WREがOFFであり、下段のスイッチSW-2のワイブル抵抗変化素子WREがONであり、SRAMセル36がLowレベルを出力するw=0の状態を示す。
図20Dは、ワイブル抵抗変化素子WREを変化させて上段のスイッチSW-1のワイブル抵抗変化素子WREをONにし、下段のスイッチSW-2のワイブル抵抗変化素子WREをOFFにして、SRAMセル36がHighレベルを出力するw=1の状態を示す。
図20Aに示す重みw=0の状態から
図20Dに示す重みw=1の状態へ状態を変化させる手法を説明する。
【0081】
回路中のセレクタSL1を
図20Aに示すように接続する。すなわち、上段のスイッチSW-1のワイブル抵抗変化素子WREの一端と下段のスイッチSW-2のワイブル抵抗変化素子WREの一端とは、それぞれ、接地する。重み制御部2により、上段のスイッチSW-1のワイブル抵抗変化素子WRE(OFF状態)に確率的SETパルスを印加し、下段のスイッチSW-2のワイブル抵抗変化素子WRE(ON状態)には非確率的RESETパルスを印加する。RESETパルスの電圧振幅の大きさや印加時間を適切に設定することで、ワイブル抵抗変化素子WREを非確率的にRESETさせることが可能である。
【0082】
上段のスイッチSW-1のワイブル抵抗素子WREは確率的に動作するので、必ずしもON状態には変化しないが、この動作を繰り返すことで、
図20A~
図20Cに示すように、上段のスイッチSW-1のワイブル抵抗素子WREがON状態である確率がS字関数的に増加する。この動作の繰り返しにより、
図20A~
図20Cに示すように、下段のスイッチSW-2のワイブル抵抗変化素子WREにRESETパルスが繰り返し印加されるが、既にOFF状態であるワイブル抵抗変化素子WREにRESETパルスを印加してもそれ以上変化はしない。こうして、最終的に、
図20Cに示すように、上段のスイッチSW-1のワイブル抵抗変化素子WREがON状態になり、下段のスイッチSW-2のワイブル抵抗変化素子WREがOFF状態となる。ここに、
図20Dに示すように、セレクタSL1を切り替えて、推論を行うためのスパイク信号が電圧パルスで上段のスイッチSW-1及び下段のスイッチSW-2にそれぞれ印加されると、SRAMセル36の上部がHighレベル,下部がLowレベルとなり、SRAMセル36からスパイク入力部4にHighレベルが出力され、シナプス電流が流れるようになり、重みw=1の状態が実現される(
図19A参照)。全く同様にして、重みw=1の状態からw=0状態へ変化させることも可能である。詳細説明は省略する。
【0083】
図21は、ワイブル抵抗変化素子WREを用いて、確率的STDPでMNIST手書き文字10,000パターンを学習させた後、さらに追加学習を行った。追加学習の回数に対して10,000回の時点で記憶していたパターンを失ったニューロン数を忘却数としてプロットしたものを、S字関数型の確率的STDP学習(ワイブル分布型の確率的DTDP学習)として、
図21に示す。ワイブル分布型の確率的DTDPは、S字関数型の確率的STDPの一例である。
【0084】
本実施形態によるS字関数型の確率的STDPでは、任意の追加学習回数に対して、
図21に実線の白抜き矢印で示すように、指数関数型の確率的STDPに対して忘却数が大幅に減少する。それに加えて、本実施形態によるS字関数型の確率的STDPでは、
図21に点線の白抜き矢印で示すように、連続的STDP学習に対しても優位性が見られる結果となっている。本実施形態によるS字関数型の確率的STDP学習によれば、指数関数型の確率的STDP学習及び連続的STDP学習に比べて、重み状態保持部303の記憶保持特性を改善できる。
【0085】
以上のように、本実施形態では、バイナリ型シナプス重みを持つニューラルネットワーク装置301において、シナプス遷移の累積確率がS字関数型の挙動を示す確率的動作部331を用いる。例えば、確率的動作部331は、確率的スイッチ素子を有し、その動作の累積確率が信号入力回数に対してβ>1のワイブル分布に従って変化する。これにより、信号入力回数に対する重みの遷移の立ち上がりを緩やかにでき、既存の記憶を保護できるので、確率的STDP学習における学習内容の記憶保持特性を改善できる。したがって、確率的STDP学習の効率を向上できる。例えば、S字関数型の確率的STDP学習では、指数関数型の確率的STDP学習に比べて、MNIST手書き文字における文字認識率を向上できる。
【0086】
本発明のいくつか実施形態を説明したが、これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0087】
1,201,301 ニューラルネットワーク装置
2,202 重み制御部
3,203,303 重み状態保持部
4 スパイク入力部
5 シナプス回路部
6 ニューロン
31,231,331 確率的動作部
AG AND回路
CN カウンタ
CU,CU-1,CU-2 確率的カウンタ
MS,MS-1,MS-2 多段スイッチ素子
RE,RE-1~RE-3 抵抗変化素子
SW,SW-1,SW-2 スイッチ素子
WRE ワイブル抵抗変化素子