(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-24
(45)【発行日】2024-08-01
(54)【発明の名称】機械学習デバイス、及びその制御方法
(51)【国際特許分類】
G06N 3/065 20230101AFI20240725BHJP
【FI】
G06N3/065
(21)【出願番号】P 2020563869
(86)(22)【出願日】2019-12-25
(86)【国際出願番号】 JP2019050971
(87)【国際公開番号】W WO2020141597
(87)【国際公開日】2020-07-09
【審査請求日】2022-11-22
(31)【優先権主張番号】P 2019000307
(32)【優先日】2019-01-04
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度、国立研究開発法人新エネルギー・産業技術総合開発機構、「IoT推進のための横断技術開発プロジェクト/超高速・低消費電力ビッグデータ処理を実現・利活用する脳型推論集積システムの研究開発」産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】598121341
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】金 成主
(72)【発明者】
【氏名】青野 真士
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2018-166194(JP,A)
【文献】特表2018-521400(JP,A)
【文献】国際公開第2018/235449(WO,A1)
【文献】特開2003-163332(JP,A)
【文献】国際公開第2018/081600(WO,A1)
【文献】石坂 守, 新谷道広, 井上美智子,重み推定によるメモリスタニューラルネットワークの信頼性向上の試み,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2018年11月28日,Vol.118, No.334,pp.83-88,ISSN 0913-5685
【文献】岡田 将,杉戸泰雅,疋田 亘,浅井哲也,桑原裕司,赤井 恵,PEDOT:PSSワイヤーを利用したオートエンコーダシステムの作製,2018年 第65回応用物理学会春季学術講演会[講演予稿集],日本,公益社団法人応用物理学会,2018年03月05日,11-240(18a-F104-12),ISBN:978-4-86348-661-4
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/065
G06N 3/063
G11C 13/00
(57)【特許請求の範囲】
【請求項1】
入力層と隠れ層と出力層とを含むニューラルネットワークの層間の結合重みの情報を抵抗変化型メモリ素子により保持する機械学習デバイスであって、
複数のデータ要素を含む入力データを受け入れ、前記ニューラルネットワークの前記結合重みの情報を用いて、複数のデータ要素を含む出力データを演算する演算手段と、
学習中は、前記出力データのうち、目的の値に達していないデータ要素の演算に係る前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、
出力データを目的の値に近接させる電気的信号を印加する学習処理を実行する学習手段と、
を含む機械学習デバイス。
【請求項2】
請求項1記載の機械学習デバイスであって、
前記学習手段は、前記学習処理では、前記出力データのi番目(iは自然数)のデータ要素の値の目的の値を、前記入力データの、対応するi番目のデータ要素の値として、前記出力データのうち、当該目的の値に達していないデータ要素の演算に係る前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、前記目的の値に近接させる電気的信号を印加する機械学習デバイス。
【請求項3】
請求項1または2に記載の機械学習デバイスであって、
前記学習手段は、前記学習処理では、前記出力データのi番目のデータ要素の値の目的の値を、前記入力データの、対応するi番目のデータ要素の値として、
前記入力データのj番目(jは、i≠jなる自然数)の値が予め定めた条件を満足する値となっているときに、前記出力データのうち、当該目的の値に達していないデータ要素の演算に係る前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、前記目的の値に近接させる電気的信号を印加する機械学習デバイス。
【請求項4】
請求項1または2に記載の機械学習デバイスであって、
前記学習手段は、前記学習処理では、前記出力データのi番目のデータ要素の値の目的の値を、前記入力データの、対応するi番目のデータ要素の値として、
前記隠れ層のj(jは自然数)番目の要素が予め定めた値となっているときに、前記出力データのうち、当該目的の値に達していないデータ要素の演算に係り、前記j番目の隠れ層に関わる前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、前記目的の値に近接させる電気的信号を印加する機械学習デバイス。
【請求項5】
請求項1から4のいずれか一項に記載の機械学習デバイスであって、
前記入力層と隠れ層と出力層とにおける各データ要素の値はバイナリ値である機械学習デバイス。
【請求項6】
請求項1から4のいずれか一項に記載の機械学習デバイスであって、
前記入力層と隠れ層と出力層とにおける各データ要素の値は離散的に定められたいずれかの値である機械学習デバイス。
【請求項7】
請求項1から6のいずれか一項に記載の機械学習デバイスであって、
前記抵抗変化型メモリ素子の結合重みのそれぞれを保持する各セルは、
上部電極と下部電極との間に、抵抗変化層を配してなり、前記上部電極と下部電極との間に印加する電気的信号により前記抵抗変化層内でフィラメントを成長または減衰させて、コンダクタンスを変化させるセルであり、このセルは、前記抵抗変化層内で前記電気的信号が所定の状態にある間を定常状態として、前記フィラメントの減衰を規制する疑似電極が少なくとも一つ有して、前記定常状態では互いにコンダクタンスの異なる、Gk(k=0,1,…)の複数の状態のいずれかをとり、状態を変化させる電気的信号が印加されている間、変化状態となって、
前記フィラメントを成長または減衰させて前記定常状態にて取り得る状態の間で変化
させ、当該
状態を変化させる電気的信号の印加が終了した時点から
前記フィラメントが、前記下部電極または前記疑似電極のいずれかまで減衰して前記互いにコンダクタンスの異なる、Gk(k=0,1,…)の複数の状態のいずれかに遷移する抵抗変化型メモリ素子であり、
前記学習手段は、複数の入力データを入力データセットとして受け入れて、当該入力データセットに含まれる入力データを順次用いて前記学習処理を実行し、当該学習処理の間に前記学習手段が目的の値に近接させる電気的信号を印加するときには、当該電気的信号の印加を予め定めた時間だけ続けて印加し、
前記学習手段は、一つの入力データセットに含まれる入力データを用いた学習処理を、予め定めた回数だけ繰り返し行う機械学習デバイス。
【請求項8】
請求項7記載の機械学習デバイスであって、
前記抵抗変化型メモリ素子のセルの各々は、互いに実質的に平行に配された上部電極と下部電極との間に、抵抗変化層を配してなり、前記抵抗変化層内には、フィラメントの減衰を規制する平板状の疑似電極が少なくとも一つ、前記上部電極または下部電極に実質的に平行に配されてなる機械学習デバイス。
【請求項9】
請求項8に記載の機械学習デバイスであって、
前記抵抗変化型メモリ素子のセルは二次元的な仮想的なXY平面に配列され、各セルの前記上部電極は前記XY平面を張るX軸またはY軸のいずれか一方の方向に隣接するセルの上部電極に互いに接続されてなり、
前記セルの前記下部電極は、前記XY平面を張るX軸またはY軸のいずれか他方の方向に隣接するセルの下部電極に互いに接続されてなる機械学習デバイス。
【請求項10】
入力層と隠れ層と出力層とを含むニューラルネットワークの層間の結合重みの情報を抵抗変化型メモリ素子により保持する機械学習デバイスの制御方法であって、
演算手段が、複数のデータ要素を含む入力データを受け入れ、前記ニューラルネットワークの前記結合重みの情報を用いて、複数のデータ要素を含む出力データを演算する工程と、
学習手段が、学習中は、前記出力データのうち、目的の値に達していないデータ要素の演算に係る前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、
出力データを目的の値に近接させる電気的信号を印加する学習処理を実行する工程と、
を含む機械学習デバイスの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習デバイス及びその制御方法に関する。
【背景技術】
【0002】
近年、ニューラルネットワーク等の機械学習装置が広く開発され、組合せ最適化問題および意思決定問題等の最適化問題の解の探索をはじめ、機械制御等の分野に至るまで、種々の応用研究も行われている。
【0003】
一例として特許文献1には、最適解探索問題の解を量子ドットからなるナノスケールの回路を利用して探索する量子ドットによる解探索システムが開示されている。また、特許文献2には、フィードバック制御を行って高速かつ効率的に充足可能性問題(Satisfiability Problem, SAT)を解くことが可能な解探索システムが開示されている。
【0004】
また一方、ニューラルネットワークに対する応用を念頭に、抵抗変化型メモリ素子の研究を行っている例もある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2013-242477号公報
【文献】特開2014-85733号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来例の技術では、ニューラルネットワークの各層の結合重みの学習過程は、いわゆるバックプロパゲーションの処理により行われるため、演算が比較的複雑なものとなり、GPU(Graphics Processing Unit)等、ベクトルや行列演算に適したハードウェアを用いているのが現状である。このために現実には、ニューラルネットワークの応用可能な現場は制限されており、学習処理のためのハードウェアを設置できる場所か、当該ハードウェアとの間で通信が可能な場所でなければならない。
【0007】
本発明は上記実情に鑑みて為されたもので、学習処理の負荷を軽減して小規模なハードウェアによる学習を可能とし、ニューラルネットワークの利用場面を拡大できる機械学習デバイス、及びその制御方法を提供することを、その目的の一つとする。
【課題を解決するための手段】
【0008】
上記従来例の問題点を解決する本発明の一態様は、入力層と隠れ層と出力層とを含むニューラルネットワークの層間の結合重みの情報を抵抗変化型メモリ素子により保持する機械学習デバイスであって、複数のデータ要素を含む入力データを受け入れ、前記ニューラルネットワークの前記結合重みの情報を用いて、複数のデータ要素を含む出力データを演算する演算手段と、学習中は、前記出力データのうち、目的の値に達していないデータ要素の演算に係る前記結合重みの情報を保持する抵抗変化型メモリ素子に対し、目的の値に近接させる電気的信号を印加する学習処理を実行する学習手段と、を含むこととしたものである。
【発明の効果】
【0009】
本発明によれば、基本的に、目的の値に達しているか否かという判断で学習処理を行うため、その負荷を軽減して小規模なハードウェアによる学習を可能とし、ニューラルネットワークの利用場面を拡大できる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態に係る機械学習デバイスの例を表す構成ブロック図である。
【
図2】本発明の実施の形態に係る機械学習デバイスにおいて利用されるニューラルネットワークの構造例を表す説明図である。
【
図3】本発明の実施の形態に係る機械学習デバイスが用いる抵抗変化型のメモリ素子の構成の概要例を表す説明図である。
【
図4】本発明の実施の形態に係る機械学習デバイスが用いる抵抗変化型のメモリ素子におけるコンダクタンスの時間変化の例を表す説明図である。
【
図5】本発明の実施の形態に係る機械学習デバイスに入力される学習用のデータセットの例を表す説明図である。
【
図6】本発明の実施の形態に係る機械学習デバイスの機械学習の際の処理例を表すフローチャート図である。
【
図7】本発明の実施の形態に係る機械学習デバイスにおける機械学習処理の内容例を表すフローチャート図である。
【
図8】本発明の実施の形態に係る機械学習デバイスにおける抵抗変化型のメモリ素子の利用例を表す説明図である。
【
図9】本発明の実施の形態に係る機械学習デバイスにおける抵抗変化型のメモリ素子の別の例を表す概略説明図である。
【
図10】本発明の実施の形態に係る機械学習デバイスにおける抵抗変化型のメモリ素子の別の例を表すもう一つの概略説明図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態に係る機械学習デバイスについて、図面を参照しながら説明する。本実施の形態の機械学習デバイスは、
図1に例示するように、記憶部11と、情報入力部12と、学習処理部13と、出力部14とを含んで構成されている。
【0012】
記憶部11は、抵抗変化型メモリ11mを含んで構成され、ニューラルネットワークの情報として、ニューラルネットワークの結合重みの情報を保持する。
【0013】
本実施の形態の例のニューラルネットワークは、
図2にその概要を例示するように、入力層と、1層の隠れ層と、出力層とを含む。入力層と出力層とはいずれもN個(Nは2以上の自然数)のノードI1,I2,…IN、O1,O2,…ONを備え、隠れ層はNより少ない数のノードH1,H2…,HMを備えている。また、入力層のj番目のノードIjと隠れ層のi番目のノードHiとの間の結合重みをWi,jとする。また隠れ層のi番目のノードHiと、出力層のj番目のノードOjとの間の結合重みを、Wj,iとする。
【0014】
つまり、入力層のj番目のノードIjと隠れ層のi番目のノードHiとの間の結合重みWをW=[Wi,j]と行列で表現すると、隠れ層のi番目のノードHiと、出力層のj番目のノードOjとの間の結合重みは行列Wの転置行列WTとなっている。
【0015】
また、このニューラルネットワークの結合重みの情報を保持する、本実施の形態の抵抗変化型メモリ11mは、
図3にその概略構成を示すように、複数の下部電極ライン111と、複数の上部電極ライン112と、抵抗変化層113とを含んで構成される。なお、
図3では、図示の都合上、抵抗変化層113をその概略の外形として示し、内部を透過して示している。
【0016】
ここで複数の下部電極ライン111は、平面内(この平面の法線方向をZ軸とする)に互いに平行に(以下、この下部電極ライン111の長手方向をX軸方向とする)所定の間隔をおいて配されている。また複数の上部電極ライン112は、下部電極ライン111が配されている面と実質的に平行な(交わらない)面内に、互いに平行に、所定の間隔をおいて配される。この上部電極ライン112の長手方向はX軸に対して交わる方向となっており、ここでは一例としてX軸に直交するY軸方向に上部電極ライン112の長手方向が配されて、いわゆるクロスバー構造をなしているものとする。
【0017】
ここで下部電極ライン111が配される面と、上部電極ライン112が配される面との間隔は50nm程度以下、好ましくは10nm以下となっている。また各電極ラインは金属材料で構成され、例えば、Pt、Cu,Au,Ti、Ag等が好適に使用される。
【0018】
また少なくとも、上部電極ライン112と下部電極ライン111とが平面視で交差している箇所(個々の抵抗変化型メモリ素子を構成し、メモリセルとなる箇所、
図3中では破線で示す)においては下部電極ライン111と上部電極ライン112との間に、抵抗変化層113が配される。この抵抗変化層113は、印加電圧によって抵抗値を変化させる(従ってそのコンダクタンスも変化する)材料を含んでなる。このような材料としては固体電解質として、例えばAg,Cu,Li,Na,Mg,Fe,Ni,Ta,Zrなどといった金属の硫化物材料(Ag
2S,Cu
2S等)や、酸化物材料(Ta
2O
5,ZrO
2)、あるいは上記金属のイオン(1価のAg,Cu,Li,Na,Mgの各イオンや、2価のFe,Niのイオン等)を含むポリエチレンオキシドなどの高分子系材料がある。
【0019】
上部電極ライン112と下部電極ライン111とが平面視で交差している箇所は、メモリセルとなり、このメモリセルにおいて上部電極ライン112と下部電極ライン111との間に印加する電圧を制御することで、当該メモリセルが保持する値(以下、保持値と呼ぶ。この保持値は実数値となる。以下の説明では保持可能な最大の保持値を「1」、最小の保持値を「0」と規格化したものとして説明する)を変化させ(データの書き込みを行い)、あるいはその保持値を維持させる。
【0020】
このため本実施の形態では、メモリセルにおいて上部電極ライン112と下部電極ライン111との間に印加する電圧が所定の電位差Vthを下回るように印加電圧を制御すると(
図4では時刻0において制御を行うと)、
図4(a)に示すように、保持値に相当するコンダクタンスは時間経過とともに成長に比べると迅速に減衰して「0」に近づき、当初の保持値が「1」であったときでも、上記電圧が上記電位差Vthを下回ることとなってから時刻Trが経過したときには記憶している保持値は「0」となる。
【0021】
また印加する電圧Vが所定の電位差Vthを超えて、このVthから所定の範囲(Vth<V<Vth′)であるよう制御すると、電圧Vを印加する前の保持値が維持される。さらに印加する電圧Vを、この所定の電位差Vthから上記所定の範囲を超え、V0+ΔV以上となる(V0+ΔV>Vth′)よう制御すると、
図4(b)に例示するように、保持値であるコンダクタンスは時間経過とともに指数関数的に最大値に近づき、当初の保持値が「0」であっても、上記電圧が上記電位差V0+ΔV以上となってから時間Tsが経過したときには、保持値は「1」となる。
【0022】
このように印加電圧に応じてコンダクタンスが変化する現象は、上部電極ライン112と下部電極ライン111との間にある抵抗変化層において、上部電極ライン112と下部電極ライン111との間に上記V0+ΔV以上の電圧が印加されると、下部電極ライン111側から金属が析出して金属フィラメントとして成長して抵抗変化層の抵抗値が減少し(コンダクタンスは上昇し)、一方、上部電極ライン112と下部電極ライン111との間の電位差がVthを下回ると金属フィラメントが再度イオン化して抵抗変化層の抵抗値が上昇する(コンダクタンスは低下する)ことから生じると考えられる。
【0023】
なお、抵抗変化層の材質によっては、金属フィラメントが抵抗変化層の下部電極ライン111側の端から上部電極ライン112側の端まで成長すると、上部電極ライン112と下部電極ライン111との間の電位差がVthを下回っても金属フィラメントの再イオン化が生じず、抵抗変化層の抵抗値が維持されるものがある。この場合は、再イオン化のために、保持値を「0」とするべく、一時的にリセット電圧(例えば-(V0+ΔV))を印加して再イオン化を促す。
【0024】
この記憶部11の抵抗変化型メモリ11mには、各メモリセルを選択する選択ラインが別途設けられていてもよい。またこのような抵抗変化型メモリ11mに対してデータを書き込み・読み出しを行う方法は広く知られているので、ここでは簡単のために、その説明を省略する。
【0025】
なお、この例に係る抵抗変化型メモリ11mに対する印加電圧は、1mVから高々1Vほどであり、一般的には10~500mV程度であるため、その消費電力は比較的低く抑えられている。また上述のような、いわゆるクロスバー型の構造を有する抵抗変化型メモリは、広く知られている微細加工技術を用いて製造できる。
【0026】
また本実施の形態の一例では、一対のメモリセルにより、一つの結合重みの情報が保持されるものとする。すなわち、本実施の形態の例では、一つの結合重みの情報Wi,jは、正の結合重みWi,j,+と負の結合重みWi,j,-との2つの値の差Wi,j=(Wi,j,+)-(Wi,j,-)として表され、一つのメモリセルは、いずれかの結合重みの情報に係る、正の結合重みまたは負の結合重みの一方の値を保持値として保持する。これにより抵抗変化型メモリの各メモリセルにおいて保持値を二値化して用いる場合であっても、正の値と負の値とを含む多値の表現が可能となる。
【0027】
もっとも、本実施の形態はこの例に限られるものではなく、第1の電極ライン、第1の抵抗変化層、第2の電極ライン、第2の抵抗変化層、第3の電極ラインをこの順に積層したものを用いてもよい。この例の抵抗変化型メモリ11mを用いると、第1の電極ラインと第2の電極ラインとの間に電圧を印加するか、あるいは第2の電極ラインと第3の電極ラインとの間に電圧を印加するかにより、第2の電極ラインを挟んで、第1の電極ラインと第3の電極ラインのうち一方の電極ライン側に新たな金属フィラメントが成長し、他方の金属フィラメントは収縮する、いわゆる綱引き型の動作をする原子スイッチとなる。この綱引き型の原子スイッチを用いる場合、第1の抵抗変化層の抵抗値と、第2の抵抗変化層の抵抗値とによりそれぞれ正の結合重みWi,j,+と負の結合重みWi,j,-との2つの値を表し、その差Wi,j=(Wi,j,+)-(Wi,j,-)として結合重みの情報Wi,jを表すこととしてもよい。
【0028】
情報入力部12は、ニューラルネットワークに対して入力する入力データを生成する。具体的に本実施の形態では、ニューラルネットワークへの入力データ及びニューラルネットワークの出力データはいずれもベクトルデータであり、入力層及び出力層の各ノードに対応する、複数のデータ要素を含んでいる。
【0029】
そこで情報入力部12は、例えば画像データを学習あるいは推論させる場合、入力データとしては、当該2値の画像データの画素の画素値を所定の順序(ラスタスキャン順でよい)で配列して、複数のデータ要素を含むベクトルデータとする。
【0030】
学習処理部13は、論理回路等により構成され、学習時(学習を行うか推論を行うかは外部から指示されるものとする)に、情報入力部12から入力される情報を用いて、記憶部11に格納したニューラルネットの結合重みの情報を更新する。なお、本実施の形態のここでの例では、抵抗変化型メモリ11mの各メモリセルには、定常的に電圧V0が印加されているものとする。ここでの例では、この電圧V0は、メモリセルが保持している値を維持させるのに十分な電圧(Vth≦V0≦Vth′)であるものとする。
【0031】
なお、この定常的に印加する電圧V0は、常に一定でなくてもよく、メモリセルごとに、当該メモリセルに電圧を印加する時点での金属フィラメントの成長の状態(すなわち当該メモリセルの抵抗値)に応じて変化するよう制御されてもよい。具体的には、メモリセルの抵抗値が小さいほど(金属フィラメントが成長しているほど)、V0の値を小さくすると、単位時間あたりの金属フィラメントの成長の度合いを、その時点での成長の状態によらず、実質的に均一にできる。
【0032】
本実施の形態において、この結合重みの情報の更新は次のようにして行われる。学習処理部13は、当初、結合重みの情報を予め定めた方法で初期化する。この初期化の方法はXavierの方法など、広く知られた種々の方法を採用できるので、ここでの詳しい説明は省略する。
【0033】
そして学習処理部13は、学習用に用意されたデータセットに含まれる、複数の入力データを逐次的に情報入力部12から受け入れ、それぞれの入力データを、記憶部11に格納したニューラルネットワークに入力したときの、当該ニューラルネットワークの出力データを演算する。
【0034】
具体的に、ここでは入力データ及び出力データはいずれも、各データ要素が「0」または「1」となるバイナリ(2値)である(各ノードの値Ij,Ojが、Ij,Oj∈{0,1}である)とする。このとき学習処理部13は、隠れ層の各ノードHiの値を、記憶部11が保持する保持値に基づいて得られるWi,jを用いて、
Hi=f(Σj Wi,j・Ij+b)
として演算する。ここでΣjは、jについて総和することを意味し、bは予め定められたバイアス値(スカラー値)である。また、関数f(X)は、X>0のとき「1」となり、そうでない場合は「0」となる二値化の関数である(以下の説明において同じ)。
【0035】
学習処理部13は、さらに、出力層の各ノードOjの値を、記憶部11が保持する保持値に基づいて得られるWi,jを用いて、
Oj=f(Σi Wj,i・Hi+b)
として演算する。ここでΣiは、iについて総和することを意味する。その他の部分は隠れ層のノードの演算に用いたものと同様である(バイアスの値は隠れ層を演算する際の値と同じであっても、異なっていてもよい)。
【0036】
次に学習処理部13は、出力データのデータ要素のうち、目的の値(教師データの対応するデータ要素の値)に達していないデータ要素の演算に係る結合重みの情報を保持する抵抗変化型メモリ11mのメモリセルに対して、目的の値に近接させる電気的信号を印加するよう制御して、メモリセルの保持値を更新する。本実施の形態の一例では、ニューラルネットワークはオートエンコーダであり、この場合、入力データが教師データとなるので、出力データの各データ要素の目的の値は、入力データの対応するデータ要素の値となる。
【0037】
具体的にこの学習処理部13は、出力データのj番目のデータ要素の値(ノードOjの値)が、入力データにおいて対応するj番目のデータ要素の値(ノードIjの値)と等しくないとき(Oj≠Ijのとき)に、隠れ層の各ノードHi(i=1,2,…)を順次参照し、隠れ層のi番目のノードの値が「1」(Hi=1)であるときに、次の動作を行う。
【0038】
学習処理部13は、Oj≠Ijであるとき、Hi=1であるならば、さらに、Ij=0であるか否かを調べ、Ij=0であれば、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔT(以下、ΔT>Ts、かつΔT>Trとする)だけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位のパルス状の電圧を印加するよう制御する。このとき、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、予め定めた時間ΔTだけVthを下回るよう制御する。
【0039】
また、学習処理部13は、Oj≠Ijであるとき、Hi=1であり、さらに、Ij=1であるならば、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位のパルス状の電圧を印加するよう制御する。このとき、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、ΔTの時間だけ、Vthを下回るよう制御する。
【0040】
さらに学習処理部13は、Oj=Ijであるか、またはHi=0であるならば各メモリセルに印加する電圧を制御しない(Wi,j,+、及びWi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧をV0に維持する)。
【0041】
ここで隠れ層、出力層の各ノードの値の演算は、論理回路と加算器、並びにコンパレータ回路を用いて実現できる(関数fは値「0」と比較するコンパレータ回路で実現できる)。また学習の処理についても、各ノードの値の比較は、いずれもAND回路等を用いて行うことができ、条件分岐はAND回路またはOR回路で実現でき、さらに電圧制御は、一般的な電圧制御回路によって実現できる。つまり、この学習処理部13は、必ずしもプログラム実行モジュールであるプロセッサ等を必要としない、比較的簡便な回路によって実現できる。また、プログラム実行モジュールを用いる場合も、比較的簡単な、比較及び条件分岐によって処理が実現できるため、そのプログラムも簡便で処理負荷の低いものとなっている。このように本実施の形態によれば、小規模なハードウェアによる学習を可能とし、ニューラルネットワークの利用場面を拡大できる。
【0042】
出力部14は、論理回路等により構成され、推論時に、情報入力部12から入力される情報と、記憶部11に格納したニューラルネットワークの結合重みの情報とを用いて、推論を行う。
【0043】
具体的に、この出力部14は、まず隠れ層の各ノードHiの値を、記憶部11が保持する保持値に基づいて得られるWi,jを用いて、
Hi=f(Σj Wi,j・Ij+b)
として演算する。そして出力部14は、さらに、出力層の各ノードOjの値を、記憶部11が保持する保持値に基づいて得られるWi,jを用いて、
Oj=f(Σi Wj,i・Hi+b)
として演算する。これらの演算は、学習処理部13において出力データを得る際の演算と同様であるので、繰り返しての説明を省略する。
【0044】
出力部14は、ここで得られた出力層の各ノードの値から、出力データを生成して推論の結果として出力する。例えば推論の結果として画像データを得る場合、出力データの各データ要素の値を所定のサイズ(入力データが画像データの場合、同じサイズでよい)の平面的画像データの各画素値として、所定の順序(ラスタスキャン順でよい)で配列して画像データとする。
【0045】
[動作]
本発明の実施の形態に係る機械学習デバイスは、基本的に上記の構成を有し、次のように動作する。以下の例では、
図5に例示するようなグレイスケール画像データを学習する例について述べる。
【0046】
本実施の形態の機械学習デバイスの学習処理部13は、学習処理の開始指示(初期化して開始する指示)を受けて、
図6(a)に例示する処理を開始する。学習処理部13は、まず
図2に例示したニューラルネットワークの結合重みを初期化する(S1)。
【0047】
具体的には、学習処理部13は、予め定めた方法で、結合重みの情報を表す、Wi,j(i=1,2,…N、j=1,2,…M、ただしNは入力層と出力層とのノードの数、Mは隠れ層のノードの数)のそれぞれの初期値を決定し、これらのうち「0」とすると決定した結合重みを保持する記憶部11のメモリセル(結合重みWi,j,+,Wi,j,-のそれぞれの値を保持するメモリセル)には保持値が「0」となるのに十分な時間だけ電位V0を下回る電圧が印加されるよう制御する。これにより対応するメモリセルにおいて金属フィラメントがイオン化した状態となって(あるいはその状態を維持することとなって)、これらのメモリセルの保持値が「0」に設定される。
【0048】
また学習処理部13は、初期値を決定した結合重みのうち、「1」とすると決定した結合重みの、正の値Wi,j,+を保持する記憶部11のメモリセルにはV0+ΔVを超える電圧が印加され、負の値Wi,j,-を保持する記憶部11のメモリセルには電位V0を下回る電圧が印加されるよう制御する。なお、この電圧の印加時間は、少なくとも正の値Wi,j,+を保持するメモリセルの保持値が「1」となるのに十分な時間としておく。このようにすると、正の値Wi,j,+を保持する記憶部11のメモリセルでは金属フィラメントが成長し、当該メモリセルの保持値が「1」まで増大する。また、負の値Wi,j,-を保持する記憶部11のメモリセルでは金属フィラメントがイオン化した状態となって(あるいはその状態を維持することとなって)、このメモリセルの保持値が「0」まで減少する。これにより結合重みWi,jが、Wi,j=(Wi,j,+)-(Wi,j,-)=1と設定される。
【0049】
さらに学習処理部13は、初期値を決定した結合重みのうち、「-1」とすると決定した結合重みの、正の値Wi,j,+を保持する記憶部11のメモリセルには電位V0を下回る電圧が印加され、負の値Wi,j,-を保持する記憶部11のメモリセルにはV0+ΔVを超える電圧が印加されるよう制御する。ここでも、この電圧の印加時間は、少なくとも負の値Wi,j,-を保持するメモリセルの保持値が「1」となるのに十分な時間としておく。このようにすると、正の値Wi,j,+を保持する記憶部11のメモリセルでは金属フィラメントがイオン化した状態となって(あるいはその状態を維持することとなって)、このメモリセルの保持値が「0」まで減少する。また負の値Wi,j,-を保持する記憶部11のメモリセルでは金属フィラメントが成長して、当該メモリセルの保持値が「1」まで増大する。これにより、Wi,jが、Wi,j=(Wi,j,+)-(Wi,j,-)=-1と設定される。
【0050】
次に学習処理部13は、
図7に示す機械学習処理を開始する(S2)。この機械学習処理により学習を行わせるときには、ニューラルネットワークに対して入力する入力データとして、
図5に例示したようなグレイスケール画像データを複数用意してデータセットとする。情報入力部12は、用意されたデータセットに含まれるグレイスケール画像データの各々について、その各画素の画素値をラスタスキャン順に配列したベクトルデータIj(j=1,2,…N)を生成する。
【0051】
学習処理部13は、
図7に例示するように、情報入力部12が各グレイスケール画像データについて生成したベクトルデータを受け入れ、それを逐次的に選択する(S11)。学習処理部13は、選択したベクトルデータをニューラルネットワークに入力し、ニューラルネットワークの出力データを演算する(S12)。
【0052】
具体的に学習処理部13は、記憶部11に含まれる各メモリセルの保持値である結合重みWi,j,+及びWi,j,-を参照し、結合重みの情報Wi,j=(Wi,j,+)-(Wi,j,-)を得る。そして、隠れ層の各ノードHiの値を、
Hi=f(Σj Wi,j・Ij+b)
として演算する。そして学習処理部13はさらに、出力層の各ノードOjの値を、
Oj=f(Σi Wj,i・Hi+b)
として演算する。ここでWj,iは、Wi,jを要素とする行列[Wi,j]の転置行列[Wi,j]Tのj行i列目の要素である。
【0053】
この間、記憶部11に保持されている結合重みの情報はそのまま保持する。学習処理部13は、演算で求めた出力データの各データ要素Oj(j=1,2,…N)を参照し、対応する入力データのデータ要素Ijと異なる値となっている(Oj≠Ijである)出力データのデータ要素Ojを抽出する(S13)。
【0054】
学習処理部13は、隠れ層の各ノードHi(i=1,2,…M)を順次参照し(S14)、隠れ層のi番目のノードHiの値が「1」であるか否かを調べる(S15)。ここで、Hiの値が「1」であれば(S15:Yes)、処理S13で抽出したデータ要素Ojのそれぞれについて(S16)、当該データ要素Ojに対応する入力データのデータ要素Ijが「0」であるか否かを調べ(S17)、Ij=0であれば(S17:Yes)、Wi,j,+の値を増大させるよう制御し、Wi,j,-の値を減少させるよう制御する。つまり、Oj≠Ijかつ、Hi=「1」、かつIj=「0」ならば、学習処理部13は、結合重みWi,jを増大させる(S18)。
【0055】
また学習処理部13は、処理S17において、Ij=「1」であれば(S17:No)、Wi,j,-の値を増大させるよう制御し、Wi,j,+の値を減少させるよう制御する。つまり、Oj≠Ijかつ、Hi=「1」、かつIj=「1」ならば、学習処理部13は、結合重みWi,jを減少させる(S19)。
【0056】
この処理S18,S19においてWi,j,+や、Wi,j,-の値を増大させる制御は、当該増大させようとする値を保持値として保持するメモリセルに対して印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔV>Vth′の電位の電圧を印加するよう制御することによって行われる。
【0057】
また処理S18,S19においてWi,j,+や、Wi,j,-の値を減少させるよう制御させる際には、当該減少させようとする値を保持値として保持するメモリセルに対して印加する電圧を、予め定めた時間ΔTmだけ、電位差Vthを下回る電圧とする。
【0058】
ここで保持値を増大させるための時間ΔTpと保持値を減少させるための時間ΔTmは互いに異なっていてもよい。これらの時間ΔTp,ΔTmは、例えばそれぞれ、保持値を「1」,「0」とするのに十分な時間としてもよい。またこれらの時間ΔTp,ΔTmは、保持値をそれぞれ「0」から所定の値だけ増大または「1」から所定の値だけ減少させるのに十分な時間だけとしてもよい。
【0059】
学習処理部13は、処理S17,S18またはS19の処理を、処理S13で抽出したデータ要素Ojの数だけ繰り返し、さらに処理S15以降の処理を、隠れ層のノードの数だけ繰り返す。なお、学習処理部13は、処理S15において、Hiの値が「0」であれば(S15:No)、処理S16からS19までの処理を行わずに、繰り返しの処理を続ける(次の隠れ層のノードについて処理S15以下の処理を実行する)。
【0060】
学習処理部13は、処理S11に戻って、次に入力するべきベクトルデータがあれば、当該ベクトルデータについて処理S12以下の処理を繰り返して実行する。また、次に入力するべきベクトルデータがなければ(受け入れたすべてのベクトルデータについて処理を終了したならば)、
図7の機械学習処理を終了する。
【0061】
この
図6(a),
図7に例示した学習処理部13の処理は、マイクロコンピュータ等を用いても実現できる。この場合も、マイクロコンピュータが行う処理としては、バイナリの比較処理と繰り返しの処理、そして電圧制御の処理のみとなっているので、処理負荷は一般的なバックプロパゲーションの処理を行う場合に比べて軽減されている。
【0062】
また、この学習処理部13は、既に述べたように、論理回路を用いたハードウェアとしても実現できる。この場合、処理S14,S16に例示するような逐次的な選択動作を実現する方法としては、例えばマルチプレクサ及びクロック回路等の回路を用いる方法など、種々の広く知られた方法を採用できる。
【0063】
[学習処理の他の例]
なお、ここでは学習処理の方法として、入力層、出力層の各ノードの値と、隠れ層の各ノードの値とを参照することとしていたが、本実施の形態はこれに限られず、より簡便に、隠れ層のノードの値を参照することなく、入力層と出力層の各ノードの値のみを参照して学習処理を行ってもよい。
【0064】
すなわち本実施の形態のもう一つの例に係る学習処理部13は、出力データのうち、目的の値に達していないデータ要素の演算に係る結合重みの情報を保持する抵抗変化型メモリ11mのメモリセルに対して、目的の値に近接させる電気的信号を印加するよう制御する点で既に説明した例と同じ動作を行うが、具体的な処理の内容が異なる。
【0065】
すなわち、この学習処理部13は、出力データのj番目のデータ要素の値(ノードOjの値)が、入力データにおいて対応するj番目のデータ要素の値(ノードIjの値)と等しくないとき(Oj≠Ijのとき)に、入力層の各ノードIi(i=1,2,…N、ただしi≠j)を順次参照し、隠れ層のi番目(iはjとは異なる)のノードの値が「1」(Ii=1)であるときに、次の動作を行う。
【0066】
学習処理部13は、Oj≠Ijであるとき、Ii=1(j≠i)であるならば、さらに、Oj=0であるか否かを調べる。ここでOj=0であれば、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する。このとき、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、予め定めた時間ΔTmに亘り、Vthを下回るよう制御する。
【0067】
また、学習処理部13は、Oj≠Ijであるとき、Oi=1(j≠i)であり、さらに、Oj=1であるならば、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する。このとき、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、ΔTmの時間だけVthを下回るよう制御する。
【0068】
さらに学習処理部13は、Oj=Ijであるか、またはIi=0であるならば各メモリセルに印加する電圧を制御しない(Wi,j,+、及びWi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧をV0に維持する)。
【0069】
この例の学習の処理においても、各ノードの値の比較は、いずれもAND回路等を用いて行うことができ、条件分岐はAND回路またはOR回路で実現でき、さらに電圧制御は、一般的な電圧制御回路によって実現できる。つまり、この学習処理部13は、必ずしもプログラム実行モジュールであるプロセッサ等を必要としない、比較的簡便な回路によって実現できる。また、プログラム実行モジュールを用いる場合も、比較的簡単な、比較及び条件分岐によって処理が実現できるため、そのプログラムも簡便で処理負荷の低いものとなっている。このように本実施の形態によれば、小規模なハードウェアによる学習を可能とし、ニューラルネットワークの利用場面を拡大できる。
【0070】
[減衰を利用する例]
また、本実施の形態では、記憶部11の抵抗変化型メモリ11mのメモリセルに定常的に印加する電位V0を電位Vthから所定の電位Vmだけ下回る値に設定して、時間的にフィラメントを減衰させて用いてもよい。このようにすると、学習内容を時間経過とともに減衰させるメモリとして用いることが可能となり、自然な忘却処理が実現できる。ここで所定の電位Vmの値を制御することで、忘却の速度も制御できる(Vmを小さくすると減衰が起こりにくいため忘却速度は遅くなり、大きくすると減衰が迅速に進むため忘却速度が速まる)。
【0071】
さらに、このように金属フィラメントの減衰による忘却処理を用いる場合は、学習処理部13は、一つのデータセットを用いた学習処理を複数回繰り返して行ってもよい。すなわち、本実施の形態の一例では、学習処理部13は、
図6(b)に例示するように、
図2に例示したニューラルネットワークの結合重みを初期化(S1)した後、ループを開始し(S3)、
図7に示した機械学習処理を実行する(S2)。そして
図7の機械学習処理が終了するごとに、ループの終了条件を満足したか(例えば予め定めた繰り返し回数だけ機械学習処理を実行したか)否かを調べ(S4)、予め定めた繰り返し回数の機械学習処理を行っていないなど、ループの終了条件を満足していない場合には、処理S2に戻って処理を繰り返す。また、予め定めた繰り返し回数の機械学習処理が行われたなど、ループの終了条件が満足されているならば、機械学習に係る処理を終了する。この場合に、処理S2の機械学習処理では、繰り返しの各回ごとに同じデータセットを利用した機械学習処理を行う。
【0072】
また、この場合の機械学習処理(処理S2)では、各メモリセルが保持する値の更新(メモリセルに印加する電圧の制御)を行う時間の間隔が、メモリセルに対して定常的に印加する電圧V0を印加したときに当該メモリセルのコンダクタンスが最大の状態から最小の状態まで減衰するのに要する時間Trより短い時間となるように上記電位Vmを設定するか、学習の処理を行うようにしてもよい。
【0073】
このようにすると、メモリセルの金属フィラメントが減衰しきらずに残存している状況で次の学習が行われるため、
図8に例示するように、例えば当初「1」の値を保持しているメモリセル(金属フィラメントが十分成長して、コンダクタンスが十分大きいメモリセル)において、次の入力データに対する学習処理で、値の更新が行われたときに記憶内容が維持されることとなると、電圧V0が印加されて、徐々にコンダクタンスが減衰する(A)。
【0074】
そしてさらに次の入力データに対する学習処理で、このメモリセルに対して保持値の更新が行われたときに、保持値が増大するように、このメモリセルの金属フィラメントを成長させるだけの電圧V0+ΔVがΔTpの時間だけ印加されると、減衰中の状態(保持値を表すコンダクタンスが「0」となっていない状態)で再度、ΔTpの時間だけ金属フィラメントが成長して保持値が増大する(B)。
【0075】
このように本実施の形態のこの例(減衰を利用する例)では、確率的にメモリセルの状態が制御されてニューラルネットワークの結合重みの情報が更新されることとなり、入力データにノイズが含まれている場合に過学習してしまうことなどを防止できる。
【0076】
[多値メモリの例]
また本実施の形態のここまでの説明では、記憶部11の抵抗変化型メモリ11mが保持する保持値は電圧を印加しない状態では、「0」または「1」に維持されるものとしたが、本実施の形態で用いる記憶部11を実現する抵抗変化型メモリは、この例の抵抗変化型メモリに限られない。
【0077】
本実施の形態のもう一つの例に係る機械学習デバイスの記憶部11を実現する抵抗変化型メモリ11mは、
図9にその構造を例示するように、下部電極ライン111と、上部電極ライン112との間にある抵抗変化層113内に、下部電極ライン111及び上部電極ライン112に対してそれぞれ平行に配された(従って互いに平行に配された状態にある)複数の抵抗保持層114a,b,…nを備える。なお、下部電極ライン111と上部電極ライン112とはそれぞれ複数本ずつ平行して互いに異なる面内(この面の法線方向をZ軸とする)に配され、下部電極ライン111と上部電極ライン112とのそれぞれの長手方向の角度は平面視では交差するように配される。具体的には下部電極ライン111の長手方向はX軸方向に配され、上部電極ライン112の長手方向はX軸方向に対して直交するY軸方向に配されるものとする(つまりここでもクロスバー構造を有する)。
【0078】
本実施の形態の一例では、この抵抗保持層114は、抵抗変化層113内に析出する金属フィラメントの金属と同じ素材の金属を用いて形成するものとする。この抵抗保持層114が本発明の疑似電極に相当する。またこの抵抗保持層114は平面視では、ひとつのメモリセルに含まれる抵抗変化層113に内包される程度の大きさを有するものとする(
図10)。
【0079】
このように抵抗保持層114を備えたメモリセルにおいて上部電極ライン112と下部電極ライン111との間に印加する電圧を制御すると、当該メモリセルが保持する値が次のように変化する。なお、以下の例において、下部電極ライン111に最も近い側にある抵抗保持層114aを、第1の抵抗保持層114aと呼び、以下下部電極ライン111に近い順に、各抵抗保持層114b,c…nを、第2の抵抗保持層114b,第3の抵抗保持層114c…と呼ぶ。
【0080】
このメモリセルにおいて当初、金属フィラメントが抵抗変化層113の下部電極ライン111側の端(以下、下端と呼ぶ)から第kの抵抗保持層114kまで成長した状態にあるとするとき、上部電極ライン112と下部電極ライン111との間に印加する電圧が所定の電位差Vthを下回るよう制御すると、
図4(a)に示した例と同様、コンダクタンスは時間経過とともに成長に比べると迅速に減衰して、所定の時間(時間Tr)が経過した後、下端から金属フィラメントが第(k-1)番目の抵抗保持層114(k-1)まで成長した状態となる。この状態でさらに上部電極ライン112と下部電極ライン111との間に印加する電圧が所定の電位差Vthを下回るよう制御すると、コンダクタンスは時間経過とともにさらに減衰して、さらに所定の時間(時間Tr)が経過した後には、下端から金属フィラメントが第(k-2)番目の抵抗保持層114(k-2)まで成長した状態となる。以下、上記印加する電圧が所定の電位差Vthを下回るよう制御している間、次々とコンダクタンスが減少していく。このような印加電圧の制御を以下では「減衰制御」と呼ぶ。
【0081】
また、このメモリセルにおいて、上部電極ライン112と下部電極ライン111との間に印加する電圧がこの所定の電位Vthから所定の範囲(Vthを超え、Vth+Vth′までの範囲とする)となるよう制御すると、金属フィラメントは成長も減衰もせず、その時点で金属フィラメントが抵抗変化層113の下部電極ライン111側の端(以下、下端と呼ぶ)から第kの抵抗保持層114kまで成長した状態にあったときには、その状態が維持される。この印加電圧の制御を、以下では「維持制御」と呼ぶ
【0082】
なお、抵抗変化層の材質によっては、金属フィラメントがいずれかの抵抗保持層114まで成長した状態にあるときには、上部電極ライン112と下部電極ライン111との間の電位差がVthを下回るよう制御されても、下端からその時点で金属フィラメントが接触している抵抗保持層114(直近の下部電極ライン111に近い側の抵抗保持層)まで成長した状態が維持される。つまり、抵抗保持層114により、金属フィラメントの減衰が規制される。この場合に、記憶している値を「0」に近接させる際には、減衰制御を行う前に、印加電圧を、一時的にリセット電圧(例えば-(V0+ΔV))とするよう制御してもよい。なお、学習処理を行っている間は、リセット電圧の印加を行わないこととしてもよい。
【0083】
また金属フィラメントが抵抗変化層113の下部電極ライン111側の端(以下、下端と呼ぶ)から第kの抵抗保持層114kまで成長した状態にあるときに、上部電極ライン112と下部電極ライン111との間に印加する電圧Vが所定の電位差Vthを超えて、V0+ΔV以上となる(V0+ΔV>Vth′)よう制御すると、
図4(b)に例示したように、コンダクタンスは時間経過とともに指数関数的に増大して、所定の時間(時間Ts)が経過した後、金属フィラメントが、下端から次の(上部電極ライン112に近い側の)第(k+1)番目の抵抗保持層114(k+1)まで成長した状態となる。
【0084】
この状態でさらに上部電極ライン112と下部電極ライン111との間に印加する電圧がV0+ΔV以上となるよう制御し続けると、コンダクタンスは時間経過とともにさらに指数関数的に増大して、また所定の時間(時間Ts)が経過した後には、下端から金属フィラメントが第(k+2)番目の抵抗保持層114(k+2)まで成長した状態となる。以下、上記印加する電圧がV0+ΔV以上であるよう制御されている間、次々とコンダクタンスが増大していく。この印加電圧の制御を、以下では「成長制御」と呼ぶ。
【0085】
そしてこの例では、金属フィラメントが下端からどの抵抗保持層114a,b,…n(あるいは抵抗変化層113の上部電極ライン112側端部、以下「上端」という)まで成長しているかに対応する状態Gk(k=1,2,…)により、抵抗変化層113のコンダクタンスが、複数の状態Gkに対応する複数段階の保持値(コンダクタンス)のいずれかとなり、この段階のいずれかであれば、電圧を印加しない状態でも保持値であるコンダクタンスは維持される。
【0086】
つまり、この抵抗変化層113を含むメモリセルは、電圧を印加しない状態で、単体で多値の情報を保持可能となる。なお、ここでの例でも最大のコンダクタンスの値を表す保持値を「1」、最小のコンダクタンスの値を表す保持値を「0」と規格化したものとして説明する。
【0087】
このような多値の情報を保持可能な抵抗変化型メモリ11mを用いる場合、学習処理部13は次のように動作する。
【0088】
この例における学習処理部13は、学習用に用意された複数の入力データを逐次的に情報入力部12から受け入れて、それぞれの入力データを、記憶部11に格納したニューラルネットワークに入力したときの、当該ニューラルネットワークの出力データを演算する。
【0089】
この例においても入力データ及び出力データはいずれも、各データ要素が「0」または「1」となるバイナリ(2値)であるものとする(各ノードの値Ij,Ojが、Ij,Oj∈{0,1}である)とする。このとき学習処理部13は、隠れ層の各ノードHiの値を、
Hi=f(Σj Wi,j・Ij+b)
として演算する。ここでΣjは、jについて総和することを意味し、bは予め定められたバイアス値(スカラー値)である。また、関数f(X)は、既に述べた通り、X>0のとき「1」となり、そうでない場合は「0」となる二値化の関数である。
【0090】
またこの例においても、一つの結合重みの情報Wi,jあたり一対のメモリセルを用い、各メモリセルがそれぞれ正の結合重みWi,j,+または負の結合重みWi,j,-の値を保持するものとする。そして結合重みの情報Wi,jは、これら2つの値の差Wi,j=(Wi,j,+)-(Wi,j,-)として表すものとする。本実施の形態のここでの例では、抵抗変化型メモリの各メモリセルにおいて多値の情報(0,G,2G,…nGのいずれかの値、ここでnは正の整数)が保持されているため、-nGから+nGまでの間の多値の表現が可能となる(ただし-1≦-nG<0<nG≦1)。
【0091】
学習処理部13は、さらに、出力層の各ノードOjの値を、
Oj=f(Σi Wj,i・Hi+b)
として演算する。ここでΣiは、iについて総和することを意味する。その他の部分は隠れ層のノードの演算に用いたものと同様である(バイアスの値は隠れ層を演算する際の値と同じであっても、異なっていてもよい)。
【0092】
次に学習処理部13は、出力データのうち、目的の値に達していないデータ要素の演算に係る結合重みの情報を保持する抵抗変化型メモリ11mのメモリセルに対して、目的の値に近接させる電気的信号を印加するよう制御する。ここでニューラルネットワークがオートエンコーダであるとすると、出力データの各データ要素の目的の値は、入力データの対応するデータ要素の値となる。
【0093】
この学習処理部13は、出力データのj番目のデータ要素の値(ノードOjの値)が、入力データにおいて対応するj番目のデータ要素の値(ノードIjの値)と等しくないとき(Oj≠Ijのとき)に、隠れ層の各ノードHi(i=1,2,…)を順次参照し、隠れ層のi番目のノードの値が「1」(Hi=1)であるときに、次の動作を行う。
【0094】
学習処理部13は、Oj≠Ijであるとき、Hi=1であるならば、さらに、Ij=0であるか否かを調べ、Ij=0であれば、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTp(以下、ΔT>Ts、かつΔT>Trとする)だけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する(成長制御)。このとき学習処理部13は、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTmだけ、Vthを下回るよう制御する(減衰制御)。ここでΔTp,ΔTmは、既に説明した例と同様に定められる(以下同様)。
【0095】
また学習処理部13は、Oj≠Ijであるとき、Hi=1であり、さらに、Ij=1であるならば、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する(成長制御)。このとき学習処理部13は、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、ΔTmの時間だけ、Vthを下回るよう制御する(減衰制御)。
【0096】
さらに学習処理部13は、Oj=Ijであるか、またはHi=0であるならば各メモリセルに印加する電圧を変化させないよう制御する(Wi,j,+、及びWi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧をV0に維持する:維持制御)。
【0097】
またここでの例でも、学習処理部13が入力層、出力層の各ノードの値と、隠れ層の各ノードの値とを参照する代わりに、より簡便に、隠れ層のノードの値を参照することなく、入力層と出力層の各ノードの値のみを参照して学習処理を行ってもよい。
【0098】
多値の結合重みの情報を保持するメモリセルを用いた場合の、この例に係る学習処理部13は、それぞれの入力データを、記憶部11に格納したニューラルネットワークに入力したときの、当該ニューラルネットワークの出力データを演算する処理までは上述と同様に動作する。
【0099】
そして学習処理部13は、出力データのj番目のデータ要素の値(ノードOjの値)が、入力データにおいて対応するj番目のデータ要素の値(ノードIjの値)と等しくないとき(Oj≠Ijのとき)に、入力層の各ノードIi(i=1,2,…N、ただしi≠j)を順次参照し、隠れ層のi番目(iはjとは異なる)のノードの値が「1」(Ii=1)であるときに、次の動作を行う。
【0100】
学習処理部13は、Oj≠Ijであるとき、Ii=1(j≠i)であるならば、さらに、Oj=0であるか否かを調べる。ここでOj=0であれば、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する(成長制御)。このとき、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、予め定めた時間ΔTmに亘り、Vthを下回るよう制御する(減衰制御)。
【0101】
また、学習処理部13は、Oj≠Ijであるとき、Oi=1(j≠i)であり、さらに、Oj=1であるならば、Wi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧を、予め定めた時間ΔTpだけ、定常的に印加されている電圧V0からΔVだけ上昇させ、当該メモリセルにV0+ΔVの電位の電圧を印加するよう制御する(成長制御)。このとき、Wi,j,+の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧は、ΔTmの時間だけVthを下回るよう制御する(減衰制御)。
【0102】
さらに学習処理部13は、Oj=Ijであるか、またはIi=0であるならば各メモリセルに印加する電圧を変化させないよう制御する(Wi,j,+、及びWi,j,-の値を保持する抵抗変化型メモリ11mのメモリセルに印加する電圧をV0に維持する:維持制御)。
【0103】
これらの例の学習の処理においても、各ノードの値の比較は、いずれもAND回路等を用いて行うことができ、条件分岐はAND回路またはOR回路で実現でき、さらに電圧制御は、一般的な電圧制御回路によって実現できる。つまり、この学習処理部13は、必ずしもプログラム実行モジュールであるプロセッサ等を必要としない、比較的簡便な回路によって実現できる。また、プログラム実行モジュールを用いる場合も、比較的簡単な、比較及び条件分岐によって処理が実現できるため、そのプログラムも簡便で処理負荷の低いものとなっている。このように本実施の形態によれば、小規模なハードウェアによる学習を可能とし、ニューラルネットワークの利用場面を拡大できる。
【0104】
[繰り返し学習]
さらに、このように多値の情報を保持可能な抵抗変化型メモリ11mを用いる場合も、維持制御の際の電位V0をVthから所定の電位Vmだけ下回る値に設定して、時間的にフィラメントを減衰させて用いてもよい。このようにすると、学習内容が時間経過とともに減衰して、自然な忘却処理が実現できる。
【0105】
さらに、このように金属フィラメントの減衰による忘却処理を用いる場合も、
図6(b)に例示したように、学習処理部13が一つのデータセットを用いた学習処理を複数回繰り返して行ってもよい。
【0106】
また、この場合の機械学習処理(
図6の処理S2,
図7の処理)でも、各メモリセルが保持する値の更新(メモリセルに印加する電圧の制御)を行う時間の間隔が、メモリセルに対して定常的に印加する電圧V0を印加したときに当該メモリセルのコンダクタンスが最大の状態から最小の状態まで減衰するのに要する時間Trより短い時間となるように上記電位Vmを設定するか、学習の処理を行うようにしてもよい。
【0107】
[収束を学習の終了条件とする場合]
ここまでの説明において、同じデータセットを用いて繰り返して機械学習を行うときに、当該繰り返しを終了する条件は、繰り返し回数によって定めるものとしていたが、本実施の形態はこれに限られない。
【0108】
例えば機械学習処理(
図6の処理S2,
図7の処理)を行う際に、値を変更したメモリセルの数をカウントし、このカウント値が予め定めた閾値を下回ったときに、学習の内容が収束したものとして、機械学習処理の繰り返しを終了してもよい。
【0109】
[チップ化]
また本実施の形態の機械学習デバイスは、記憶部11と、情報入力部12と、学習処理部13と、出力部14とを一つのチップとしてパッケージしたものとしてもよい。学習処理部13が既に述べたように、論理回路等、比較的簡易な回路で構成されるため、これらを一つのチップとしてパッケージしても回路が大規模化することがない。
【0110】
[推論動作]
次に、以上のように機械学習を行った機械学習デバイスを用いて推論処理(例えば画像データの想起処理)を行う方法について説明する。この例では、推論のもととなる入力データを受け入れた機械学習デバイスの情報入力部12が、当該入力データに基づいて、記憶部11が結合重みの情報を保持するニューラルネットワークへ入力するためのベクトルデータを生成する。
【0111】
そして出力部14が記憶部11に保持されている結合重みWi,j,+及びWi,j,-とを用い、結合重みの情報Wi,j=(Wi,j,+)-(Wi,j,-)を得る。出力部14は、情報入力部12が生成したベクトルデータIj(j=1,2,…N)を用い、
隠れ層の各ノードHiの値を、
Hi=f(Σj Wi,j・Ij+b)
として演算する。そして出力部14はさらに、出力層の各ノードOjの値を、
Oj=f(Σi Wj,i・Hi+b)
として演算する。ここでWj,iは、入力層のj番目のノードIjと隠れ層のi番目のノードHiとの間の結合重みWをW=[Wi,j]と行列で表現したときの、隠れ層のi番目のノードHiと、出力層のj番目のノードOjとの間の結合重みである行列Wの転置行列WTのj行i列目の要素である。
【0112】
すなわち、出力部14は、学習処理部13が出力層の各ノードの値を生成するのと同じ方法で推論処理を行う。そして出力部14は、当該出力層の各ノードの値を配列したベクトルデータを推論の結果として出力する。