特許第5989790号(P5989790)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許5989790ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置
<>
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000002
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000003
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000004
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000005
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000006
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000007
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000008
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000009
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000010
  • 特許5989790-ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5989790
(24)【登録日】2016年8月19日
(45)【発行日】2016年9月7日
(54)【発明の名称】ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置
(51)【国際特許分類】
   G06N 3/063 20060101AFI20160825BHJP
   G06N 3/08 20060101ALI20160825BHJP
【FI】
   G06N3/063
   G06N3/08
【請求項の数】40
【全頁数】20
(21)【出願番号】特願2014-541162(P2014-541162)
(86)(22)【出願日】2012年11月6日
(65)【公表番号】特表2015-501972(P2015-501972A)
(43)【公表日】2015年1月19日
(86)【国際出願番号】US2012063719
(87)【国際公開番号】WO2013070612
(87)【国際公開日】20130516
【審査請求日】2014年7月8日
(31)【優先権主張番号】13/292,161
(32)【優先日】2011年11月9日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100124394
【弁理士】
【氏名又は名称】佐藤 立志
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(74)【代理人】
【識別番号】100111073
【弁理士】
【氏名又は名称】堀内 美保子
(72)【発明者】
【氏名】アパリン、ブラディミル
【審査官】 多賀 実
(56)【参考文献】
【文献】 米国特許出願公開第2010/0220523(US,A1)
【文献】 特表平6−511096(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/02−3/10
G06G7/60
(57)【特許請求の範囲】
【請求項1】
メモリに情報を記憶する方法であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替えることと、
を備える方法。
【請求項2】
前記確率的方法で前記2値状態を切り替えることは、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと、
を備える、請求項1に記載の方法。
【請求項3】
前記確率は、重みの前記更新の絶対値に比例する、請求項2に記載の方法。
【請求項4】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項2に記載の方法。
【請求項5】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記方法は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えることをさらに備える、請求項1に記載の方法。
【請求項6】
前記確率は、電流の前記大きさに比例する、請求項5に記載の方法。
【請求項7】
前記メモリは、確率的不揮発性2値メモリを備える、請求項1に記載の方法。
【請求項8】
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、請求項7に記載の方法。
【請求項9】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項1に記載の方法。
【請求項10】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、請求項9に記載の方法。
【請求項11】
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第1の回路と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替えるように構成された第2の回路と、
を備える装置。
【請求項12】
前記第2の回路は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと、
を行うようにさらに構成された、請求項11に記載の装置。
【請求項13】
前記確率は、重みの前記更新の絶対値に比例する、請求項12に記載の装置。
【請求項14】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項12に記載の装置。
【請求項15】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記第2の回路は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えるようにさらに構成された、請求項11に記載の装置。
【請求項16】
前記確率は、電流の前記大きさに比例する、請求項15に記載の装置。
【請求項17】
前記メモリは、確率的不揮発性2値メモリを備える、請求項11に記載の装置。
【請求項18】
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、請求項17に記載の装置。
【請求項19】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項11に記載の装置。
【請求項20】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、請求項19に記載の装置。
【請求項21】
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替える手段と、
を備える装置。
【請求項22】
前記確率的方法で前記2値状態を切り替える前記手段は、
ある確率で、重みの前記更新に基づいてパルスを生成する手段と、
前記パルスを使用してメモリロケーションの前記2値状態を切り替える手段と、
を備える、請求項21に記載の装置。
【請求項23】
前記確率は、重みの前記更新の絶対値に比例する、請求項22に記載の装置。
【請求項24】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項22に記載の装置。
【請求項25】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記装置は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替える手段をさらに備える、請求項21に記載の装置。
【請求項26】
前記確率は、電流の前記大きさに比例する、請求項25に記載の装置。
【請求項27】
前記メモリは、確率的不揮発性2値メモリを備える、請求項21に記載の装置。
【請求項28】
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、請求項27に記載の装置。
【請求項29】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項21に記載の装置。
【請求項30】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、請求項29に記載の装置。
【請求項31】
ンピュータ可読記憶媒体であって
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態を切り替えることと、
を行うための実行可能なコードを備える、コンピュータ可読記憶媒体
【請求項32】
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと
を行うためのコードをさらに備える、請求項31に記載のコンピュータ可読記憶媒体
【請求項33】
前記確率は、重みの前記更新の絶対値に比例する、請求項32に記載のコンピュータ可読記憶媒体
【請求項34】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項32に記載のコンピュータ可読記憶媒体
【請求項35】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記コンピュータ可読記憶媒体は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えることを行うためのコードをさらに備える、請求項31に記載のコンピュータ可読記憶媒体
【請求項36】
前記確率は、電流の前記大きさに比例する、請求項35に記載のコンピュータ可読記憶媒体
【請求項37】
前記メモリは、確率的不揮発性2値メモリを備える、請求項31に記載のコンピュータ可読記憶媒体
【請求項38】
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、請求項37に記載のコンピュータ可読記憶媒体
【請求項39】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項31に記載のコンピュータ可読記憶媒体
【請求項40】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、請求項39に記載のコンピュータ可読記憶媒体
【発明の詳細な説明】
【技術分野】
【0001】
本開示のいくつかの態様は、一般に、ニューラルシステム工学に関し、より詳細には、ニューラルネットワークのシナプス重みに関する情報を記憶するために確率的方法でメモリを利用するための方法および装置に関する。
【背景技術】
【0002】
ニューラルネットワークは何十万ものシナプスを有することができ、シナプスの重みがネットワークトレーニング中に学習され得る。トレーニングの過程で、重みは、一般に、ランダム値で初期化され、小さい増分で変更される。しばしば、シナプス重みは、マルチビットまたはマルチレベルメモリに記憶される。しかしながら、多くの場合、重みは、2つの値のうちの1つに安定し得る(重みの双峰分布(bimodal distribution))。したがって、最終2値重みを記憶するためにマルチビットメモリを使用することは、記憶リソースの浪費であり得る。さらに、ネットワークトレーニングまたはネットワーク動作中にマルチビットシナプスメモリをアドレス指定することは、速度のボトルネックになり得る。
【発明の概要】
【0003】
[0003]本開示のいくつかの態様は、メモリに情報を記憶する方法を提供する。本方法は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態を切り替えることとを含む。
【0004】
[0004]本開示のいくつかの態様は、メモリに情報を記憶するための装置を提供する。本装置は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第1の回路と、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態を切り替えるように構成された第2の回路とを含む。
【0005】
[0005]本開示のいくつかの態様は、メモリに情報を記憶するための装置を提供する。本装置は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態を切り替える手段とを含む。
【0006】
[0006]本開示のいくつかの態様は、メモリに情報を記憶するためのコンピュータプログラム製品を提供する。本コンピュータプログラム製品は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態を切り替えることとを行うためのコードを備えるコンピュータ可読媒体を含む。
【0007】
[0007]本開示の上述の特徴を詳細に理解することができるように、添付の図面にその一部を示す態様を参照することによって、上記で簡単に要約したより具体的な説明が得られ得る。ただし、その説明は他の等しく有効な態様に通じ得るので、添付の図面は、本開示のいくつかの典型的な態様のみを示し、したがって、本開示の範囲を限定するものと見なすべきではないことに留意されたい。
【図面の簡単な説明】
【0008】
図1】本開示のいくつかの態様による、ニューラルシステムの例示的な処理ユニットを示す図。
図2】本開示のいくつかの態様による、確率的方法で情報を記憶するためにメモリを利用する一例を示す図。
図3】本開示のいくつかの態様による、スピントルクトランスファー(STT:spin-torque transfer)メモリの一例を示す図。
図4A】本開示のいくつかの態様による、STTメモリの確率的切替えに関係する例示的なグラフを示す図。
図4B】本開示のいくつかの態様による、STTメモリの確率的切替えに関係する例示的なグラフを示す図。
図5】本開示の特定の態様による、確率的方法でメモリを使用するための例示的な動作を示す図。
図5A図5に示す動作を実行することが可能な例示的な構成要素を示す図。
図6】本開示のいくつかの態様による、汎用プロセッサを利用した確率的メモリ使用の例示的なソフトウェア実装形態を示す図。
図7】本開示のいくつかの態様による、重みメモリが個々の分散処理ユニットとインターフェースされる確率的メモリ使用の例示的な実装形態を示す図。
図8】本開示のいくつかの態様による、分散重みメモリと分散処理ユニットとに基づく確率的メモリ使用の例示的な実装形態を示す図。
【発明を実施するための形態】
【0009】
[0017]添付の図面を参照しながら本開示の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する本開示のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載の本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する本開示のいずれの態様も、請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
【0010】
[0018]「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用する。本明細書で「例示的」として説明するいかなる態様も、必ずしも他の態様よりも好適または有利であると解釈すべきではない。
【0011】
[0019]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々な技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、そのうちのいくつかを例として図および好ましい態様についての以下の説明で示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【0012】
例示的なニューラルシステム
[0020]図1に、本開示のいくつかの態様による、計算ネットワーク(たとえば、ニューラルシステムまたはニューラルネットワーク)の処理ユニット(たとえば、ニューロン)102の一例100を示す。ニューロン102は、ニューラルシステムの外部にある信号、または同じニューラルシステムの他のニューロンによって生成された信号、またはその両方であり得る、複数の入力信号1041〜104N(x1〜xN)を受信し得る。入力信号は、電流または電圧、実数値または複素数値であり得る。入力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。これらの入力信号は、調整可能なシナプス重み1061〜106N(w1〜wN)に従って信号をスケーリングするシナプス結合を通してニューロン102に伝えられ得、Nはニューロン102の入力接続の総数であり得る。
【0013】
[0021]ニューロン102は、スケーリングされた入力信号を合成(combine)し、合成された、スケーリングされた入力を使用して、出力信号108(すなわち、信号y)を生成し得る。出力信号108は、電流または電圧、実数値または複素数値であり得る。出力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。出力信号108は、次いで、同じニューラルシステムの他のニューロンへの入力信号として、または同じニューロン102への入力信号として、またはニューラルシステムの出力として伝達され得る。
【0014】
[0022]処理ユニット(ニューロン)102は電気回路によってエミュレートされ得、それの入力および出力接続は、シナプス回路をもつワイヤによってエミュレートされ得る。処理ユニット102、それの入力および出力接続はまた、ソフトウェアコードによってエミュレートされ得る。処理ユニット102はまた、電気回路によってエミュレートされ得るが、それの入力および出力接続はソフトウェアコードによってエミュレートされ得る。本開示の一態様では、計算ネットワーク中の処理ユニット102はアナログ電気回路を備え得る。別の態様では、処理ユニット102はデジタル電気回路を備え得る。さらに別の態様では、処理ユニット102は、アナログ構成要素とデジタル構成要素の両方をもつ混合信号電気回路を備え得る。計算ネットワークは、上述の形態のいずれかにおける処理ユニットを備え得る。そのような処理ユニットを使用した計算ネットワーク(ニューラルシステムまたはニューラルネットワーク)は、画像およびパターン認識、機械学習、モータ制御など、広い範囲の適用例において利用され得る。
【0015】
[0023]ニューラルネットワークのトレーニングの過程で、シナプス重み(たとえば、図1からの重み1061〜106N)は、ランダム値で初期化され、学習ルール(たとえば、スパイクタイミング依存可塑性(STDP:spike-timing-dependent plasticity)学習ルール、Hebbルール、Ojaルール、Bienenstock−Copper−Munro(BCM)ルールなど)に従って小さい増分で変更され得る。頻繁に、重みは、2つの値のうちの1つに安定し得る(すなわち、重みの双峰分布)。本開示のいくつかの態様は、これを利用して、シナプス重み当たりのビット数を低減し、シナプス重みを記憶するメモリから/への読取りおよび書込みの速度を増加させ、メモリの電力消費量を低減する。
【0016】
[0024]一態様では、マルチビットメモリは、シナプス重みを記憶するために採用され得る。この種類のメモリは、所与の容量のメモリに記憶されるシナプス重みの数を低減し得る。しかしながら、重み当たりにいくつかのビットの読取りまたは書込みを行う必要があり得るので、シナプス重みの読取りおよび書込みはより遅くなり得る。
【0017】
[0025]別の態様では、(たとえば、メモリスタ(memristor)に基づく)アナログマルチレベルメモリは、シナプス重みを記憶するために利用され得る。ただし、この種類のメモリに関するいくつかの問題がある。第1に、アナログメモリは精巧な書込みを必要とし得、すなわち、パルスの大きさ(magnitude)と持続時間との正確な制御が必要とされ得る。第2に、メモリの読取りも精巧である必要があり得、たとえば、メモリから読み取られるときの記憶された値のデジタル化が必要とされ得る。第3に、アナログマルチレベルメモリの効率的なクローニングは可能でないことがある。第4に、アナログメモリは、しばしば、保持力および信頼性が低いことがある。
【0018】
確率的方法でメモリを利用する方法
[0026]シナプス重み当たりのビット数を低減し、重みを記憶するメモリの電力消費量を低減するために、本開示では、確率的方法でメモリを利用する方法を提案する。本開示のいくつかの態様によれば、シナプス重み(たとえば、図1からの重み1061〜106N)は、メモリロケーションの2値状態として表され得る(すなわち、0および1のみがメモリロケーションに記憶され得る)。
【0019】
[0027]ニューラルネットワークのトレーニング中に、ニューラルネットワーク中の複数のシナプスの各シナプスについての重みの更新が、重み学習ルール(たとえば、STDPルール、Hebbルール、Ojaルール、またはBCMルール)に従って計算され得る。次いで、複数のシナプスに関連するメモリロケーションの2値状態は、重み更新に基づいて確率的方法で切り替えられ得る。多くのトレーニングイベントの後に、各重みが2つの状態(0または1)のうちの1つである確率は、この重みの総更新に比例し得る、すなわち、最終重みに比例し得る。
【0020】
[0028]実験データは、生物シナプスが重みの双峰分布を有する傾向があり得ることを示すので、2進値でシナプス重みを表すことが可能であることに留意されたい。さらに、2値シナプスは1ビットメモリに記憶され、より多くのシナプスを所与の容量メモリに記憶することが可能になり得る。確率的方法でのシナプス重みの記憶は、シナプストレーニングイベントの時間平均化を可能にし得、すなわち、トレーニングされたメモリ状態は、複数のトレーニングイベントの累積影響を示し得る。
【0021】
[0029]図2に、本開示のいくつかの態様による、確率的方法で情報(たとえば、シナプス重み)を記憶するためにメモリを利用する一例200を示す。図2に示すように、重み更新モジュール202は、特定の学習ルールに従ってトレーニングされているニューラルネットワークのシナプスに関連する重みの更新204を計算するように構成され得る。
【0022】
[0030]本開示の一態様では、インターフェースモジュール206は、ある確率で、重みの更新204に基づいて信号208(たとえば、パルス)を生成するように構成され得る。たとえば、パルス(正または負のパルス)の符号は、重み更新204の符号に対応し得る。特定の重みを表すメモリ210内のメモリロケーションの2値状態は、パルス208に基づいて切り替えられ得る(すなわち、0から1に、またはその逆に変更され得る)。一態様では、切替え方向は、パルス208の符号に基づき得る。ニューラルネットワークのシナプス重みを記憶するメモリ210は、メモリロケーション中に2進値をもつ完全に確定的なメモリを備え得、記憶された2進値は確率的方法で取得されることに留意されたい。
【0023】
[0031]この手法を適用することによって、メモリ210のサイズが小さくなり得(たとえば、シナプス重み当たり1ビット)、それにより、メモリ電力消費量も低減し得る。さらに、各シナプス重みを1ビットの数で表すことができるので、メモリ内容のローディングおよび記憶の速度は高速であり得る。
【0024】
[0032]本開示の別の態様では、シナプス重みを記憶するメモリ210は、確率的不揮発性2値メモリを備え得る。たとえば、確率的不揮発性2値メモリは、磁気トンネル接合(MTJ:magnetic tunnel junction)デバイスまたはスピントルクトランスファー(STT:spin torque transfer)デバイスに基づき得る。これらのデバイスは2値抵抗(binary resistive)スイッチとして働くことができ、1つの状態から別の状態への2値抵抗スイッチの切替えは、図3に示すように、書込み電流/電圧の大きさ(magnitude)と持続時間(duration)との関数である確率をもつ確率的イベントである。例302、304では、通過電流306は、磁化の方向を切り替えるために使用され得る。図3に示すように、磁化の方向が並列状態(parallel state)である(すなわち、低抵抗のために電流306が(複数の)強磁性層中を容易に流れ得る)場合、2進数の0がSTTメモリのロケーションに記憶され得る。一方、磁化の方向が逆並列状態(anti-parallel state)である(すなわち、高抵抗により電流306が(複数の)強磁性層中を流れるのに一定の困難を伴い得る)場合、2進数の1がメモリロケーションに記憶され得る。
【0025】
[0033]いくつかの態様によれば、STTメモリは、2:1の高抵抗/低抵抗比(たとえば、4KΩ/2KΩ)を達成し得る。さらに、STTメモリは、優れた保持力(たとえば、10年よりも長い)および信頼性を与え得るが、電力消費量は極めて低いことがある。ただし、2値状態間の切替えは、ランダム熱効果(random thermal effects)により確率的である。
【0026】
[0034]STTメモリロケーションにおける2値コンテンツの切替えの確率は、書込み電流の大きさ(たとえば、0.1〜10mAの範囲の大きさ)、または書込み時間(たとえば、1〜100ns)のうちの少なくとも1つに依存し得ることに留意されたい。図4A中のグラフ402に示すように、書込み電流(たとえば、図3からの電流306)が第1のしきい値(たとえば、図4Aに示すしきい値ILH)よりも大きくなると、MTJ抵抗は(たとえば、値404から値406に)実質的に増加し得、対応するメモリロケーションの値は2進数の1に切り替わり得る。さらに、書込み電流が第2のしきい値(たとえば、図4Aからのしきい値IHL)より小さくなると、MTL抵抗は、低くなり得(たとえば、値408から値410まで減少し得)、対応するメモリロケーションの値は2進数の0に切り替わり得る。
【0027】
[0035]図4Bに、電流(パルス)振幅と書込み時間とに応じたSTTメモリ中の切替え確率のグラフ412を示す。より長い書込み時間が、より低い電流大きさに対して同じ切替え確率を与え得る(たとえば、100nsの書込み時間のための切替え確率プロット414対3nsの書込み時間のための切替え確率プロット416対1nsの書込み時間のための切替え確率プロット418)ことが、グラフ412から観察され得る。
【0028】
[0036]再び図2を参照すると、モジュール202は、選定された学習ルール(たとえば、レートベース学習ルールまたはSTDPルール)に従って各重みについてシナプス重み更新204を計算するように構成され得る。本開示の一態様では、重み更新204の絶対値は、(たとえば、インターフェースモジュール206によって)STTメモリデバイス210中を流れる書込み電流212の大きさIwriteを決定し得る。重み更新の符号は、電流212の方向を決定し得る。
【0029】
[0037]本開示の一態様では、新しいシナプス重みは、Iwriteが重み更新204に比例することを使用してSTTメモリ210に書き込まれ得る。正のIwriteは、ある確率で0(シナプス重みの最小値)から1(シナプス重みの最大値)にメモリロケーションの2進値を切り替え得る。一方、負のIwriteは、ある確率で1(シナプス重みの最大値)から0(シナプス重みの最小値)にメモリロケーションの2進値を切り替え得る。
【0030】
[0038]上述の手法は、シナプス当たりのメモリのサイズを極めて小さくすること(たとえば、シナプス当たりにただ1つのMTJまたはSTT)を達成し得る。これはまた、シナプス重みメモリの電力消費量を低減するのに役立ち得る。さらに、メモリ動作が非常に単純であり得、たとえば、2値状態間の切替えが、ある大きさおよび方向の書込み電流だけで達成され得る。
【0031】
[0039]図5に、本開示の特定の態様による、情報を記憶するために確率的方法でメモリを利用するための例示的な動作500を示す。502において、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算し得る。504において、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの2値状態が、確率的方法で切り替えられ得る。一態様では、ニューラルネットワークは、スパイキング(spiking)ニューラルネットワークを備え得る。別の態様では、ニューラルネットワークは、レートベースニューラルネットワークを備え得る。
【0032】
[0040]本開示の一態様では、確率的方法で2値状態を切り替えることは、ある確率で、重みの更新に基づいてパルスを生成することと、パルスを使用してメモリロケーションの2値状態を切り替えることとを備え得る。たとえば、確率は、重みの更新の絶対値に比例し得、切替えの方向は、重みの更新の符号に基づき得る。
【0033】
[0041]本開示の別の態様では、重みの更新の絶対値は、メモリロケーション中を流れる電流の大きさを決定し得、重みの更新の符号は、メモリロケーション中を流れる電流の方向を決定し得る。メモリロケーションの2値状態は、電流の方向に基づいて、ある確率で切り替えられ得る。たとえば、確率は、電流の大きさに比例し得る。
【0034】
[0042]一態様では、メモリは確率的不揮発性2値メモリを備え得る。さらに、確率的不揮発性2値メモリはSTTメモリを備え得る。
【0035】
[0043]本開示のいくつかの態様によれば、上述の学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備え得る。たとえば、スパイキングおよびレートベースニューラルネットワークの重み学習ルールは、STDPルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備え得る。
【0036】
[0044]図6に、本開示のいくつかの態様による、汎用プロセッサ602を利用した前述の確率的メモリ使用の例示的なソフトウェア実装形態600を示す。汎用プロセッサ602において実行される確率的メモリ使用に関係する命令がプログラムメモリ606からロードされ得る間、計算ネットワーク(ニューラルネットワーク)の各処理ユニット(ニューロン)に関連する既存の重みがメモリブロック604に記憶され得る。本開示のいくつかの態様によれば、ロードされた命令は、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するためのコードを備え得る。さらに、ロードされた命令は、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリブロック604内のロケーションの2値状態を切り替えるためのコードを備え得る。
【0037】
[0045]図7に、本開示のいくつかの態様による、重みメモリ702が、計算ネットワーク(ニューラルネットワーク)の個々の(分散)処理ユニット(ニューロン)706をもつ相互接続ネットワーク704を介してインターフェースされる、上述の確率的メモリ使用の例示的な実装形態700を示す。処理ユニット706に関連する少なくとも1つの既存の重みが、その処理ユニット706に相互接続ネットワーク704の(1つまたは複数の)接続を介してメモリ702からロードされ得る。処理ユニット706は、その処理ユニット(ニューロン)706に関連するニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成され得る。さらに、処理ユニット706は、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ702内のロケーションの2値状態を切り替えるように構成され得る。
【0038】
[0046]図8に、本開示のいくつかの態様による、分散重みメモリ802と分散処理ユニット804とに基づく上述の確率的メモリ使用の例示的な実装形態800を示す。図8に示すように、1つの重みメモリバンク802は、計算ネットワーク(ニューラルネットワーク)の1つの処理ユニット(ニューロン)804と直接インターフェースされ得、そのメモリバンク802は、その処理ユニット804に関連する少なくとも1つの既存の重みを記憶し得る。処理ユニット804は、その処理ユニット(ニューロン)804に関連するニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成され得る。さらに、処理ユニット804は、シナプスの各々について確率的方法で、重みの更新に基づいて、その特定の処理ユニット(ニューロン)804に関連するメモリバンク802内のそのシナプスのためのメモリロケーションの2値状態を切り替えるように構成され得る。
【0039】
[0047]本明細書の実施形態はスパイキングニューラルネットワークについて示すが、限定はしないが、レートベースニューラルネットワークを含む他のニューラルネットワークタイプへのこれらの概念の使用も本開示の範囲内にある。
【0040】
[0048]上記で説明した方法の様々な動作は、対応する機能を実行することが可能な任意の好適な手段によって実行され得る。それらの手段は、限定はしないが、回路、特定用途向け集積回路(ASIC)、またはプロセッサを含む、様々な(1つまたは複数の)ハードウェアおよび/またはソフトウェア構成要素および/またはモジュールを含み得る。概して、図に示す動作がある場合、それらの動作は、同様の番号をもつ対応するカウンターパートのミーンズプラスファンクション構成要素を有し得る。たとえば、図5に示す動作500は、図5Aに示す構成要素500Aに対応する。
【0041】
[0049]本明細書で使用する「決定」という用語は、様々なアクションを包含する。たとえば、「決定」は、計算、算出、処理、導出、調査、探索(たとえば、テーブル、データベースまたは別のデータ構造での探索)、確認などを含み得る。また、「決定」は、受信(たとえば、情報を受信すること)、アクセス(たとえば、メモリ中のデータにアクセスすること)などを含み得る。また、「決定」は、解決、選択、選定、確立などを含み得る。
【0042】
[0050]本明細書で使用する、項目のリスト「のうちの少なくとも1つ」を指す句は、個々のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a−b、a−c、b−c、およびa−b−cをカバーするものとする。
【0043】
[0051]上記で説明した方法の様々な動作は、(1つまたは複数の)様々なハードウェアおよび/またはソフトウェア構成要素、回路、および/または(1つまたは複数の)モジュールなど、それらの動作を実行することが可能な任意の好適な手段によって実行され得る。一般に、図に示すどの動作も、その動作を実行することが可能な対応する機能的手段によって実行され得る。
【0044】
[0052]本開示に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)または他のプログラマブル論理デバイス(PLD)、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【0045】
[0053]本開示に関連して説明した方法またはアルゴリズムのステップは、ハードウェアで直接実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、当技術分野で知られている任意の形式の記憶媒体中に常駐し得る。使用され得る記憶媒体のいくつかの例には、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROMなどがある。ソフトウェアモジュールは、単一の命令、または多数の命令を備え得、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散され得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、その記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。
【0046】
[0054]本明細書で開示した方法は、説明した方法を達成するための1つまたは複数のステップまたはアクションを備える。本方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は特許請求の範囲から逸脱することなく変更され得る。
【0047】
[0055]説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線(IR)、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体(たとえば、有形媒体)を備え得る。さらに、他の態様の場合、コンピュータ可読媒体は一時的コンピュータ可読媒体(たとえば、信号)を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0048】
[0056]したがって、いくつかの態様は、本明細書で提示する動作を実行するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明する動作を実行するために1つまたは複数のプロセッサによって実行可能である命令をその上に記憶した(および/または符号化した)コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
【0049】
[0057]ソフトウェアまたは命令はまた、伝送媒体を介して送信され得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、送信媒体の定義に含まれる。
【0050】
[0058]さらに、本明細書で説明した方法および技法を実行するためのモジュールおよび/または他の適切な手段は、適用可能な場合にユーザ端末および/または基地局によってダウンロードおよび/または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明した方法を実行するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明した様々な方法は、ユーザ端末および/または基地局が記憶手段をデバイスに結合するかまたは与えると様々な方法を得ることができるように、記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)によって提供され得る。さらに、本明細書で説明する方法および技法をデバイスに与えるための任意の他の好適な技法が利用され得る。
【0051】
[0059]特許請求の範囲は、上記に示した正確な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
【0052】
[0060]上記は本開示の態様を対象とするが、本開示の他の態様およびさらなる態様は、それらの基本的範囲から逸脱することなく考案され得、それらの範囲は以下の特許請求の範囲によって判断される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
メモリに情報を記憶する方法であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替えることと、
を備える方法。
[C2]
前記確率的方法で前記2値状態を切り替えることは、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと、
を備える、C1に記載の方法。
[C3]
前記確率は、重みの前記更新の絶対値に比例する、C2に記載の方法。
[C4]
前記切り替えることの方向は、重みの前記更新の符号に基づく、C2に記載の方法。
[C5]
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記方法は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えることをさらに備える、C1に記載の方法。
[C6]
前記確率は、電流の前記大きさに比例する、C5に記載の方法。
[C7]
前記メモリは、確率的不揮発性2値メモリを備える、C1に記載の方法。
[C8]
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、C7に記載の方法。
[C9]
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、C1に記載の方法。
[C10]
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、C9に記載の方法。
[C11]
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第1の回路と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替えるように構成された第2の回路と、
を備える装置。
[C12]
前記第2の回路は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと、
を行うようにさらに構成された、C11に記載の装置。
[C13]
前記確率は、重みの前記更新の絶対値に比例する、C12に記載の装置。
[C14]
前記切り替えることの方向は、重みの前記更新の符号に基づく、C12に記載の装置。
[C15]
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記第2の回路は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えるようにさらに構成された、C11に記載の装置。
[C16]
前記確率は、電流の前記大きさに比例する、C15に記載の装置。
[C17]
前記メモリは、確率的不揮発性2値メモリを備える、C11に記載の装置。
[C18]
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、C17に記載の装置。
[C19]
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、C11に記載の装置。
[C20]
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、C19に記載の装置。
[C21]
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替える手段と、
を備える装置。
[C22]
前記確率的方法で前記2値状態を切り替える前記手段は、
ある確率で、重みの前記更新に基づいてパルスを生成する手段と、
前記パルスを使用してメモリロケーションの前記2値状態を切り替える手段と、
を備える、C21に記載の装置。
[C23]
前記確率は、重みの前記更新の絶対値に比例する、C22に記載の装置。
[C24]
前記切り替えることの方向は、重みの前記更新の符号に基づく、C22に記載の装置。
[C25]
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記装置は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替える手段をさらに備える、C21に記載の装置。
[C26]
前記確率は、電流の前記大きさに比例する、C25に記載の装置。
[C27]
前記メモリは、確率的不揮発性2値メモリを備える、C21に記載の装置。
[C28]
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、C27に記載の装置。
[C29]
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、C21に記載の装置。
[C30]
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、C29に記載の装置。
[C31]
メモリに情報を記憶するためのコンピュータプログラム製品であって、コンピュータ可読媒体は、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの2値状態を切り替えることと、
を行うためのコードを備える、コンピュータプログラム製品。
[C32]
前記コンピュータ可読媒体は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記2値状態を切り替えることと
を行うためのコードをさらに備える、C31に記載のコンピュータプログラム製品。
[C33]
前記確率は、重みの前記更新の絶対値に比例する、C32に記載のコンピュータプログラム製品。
[C34]
前記切り替えることの方向は、重みの前記更新の符号に基づく、C32に記載のコンピュータプログラム製品。
[C35]
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記コンピュータ可読媒体は、
前記方向に基づいて、ある確率でメモリロケーションの前記2値状態を切り替えることを行うためのコードをさらに備える、C31に記載のコンピュータプログラム製品。
[C36]
前記確率は、電流の前記大きさに比例する、C35に記載のコンピュータプログラム製品。
[C37]
前記メモリは、確率的不揮発性2値メモリを備える、C31に記載のコンピュータプログラム製品。
[C38]
前記確率的不揮発性2値メモリは、スピントルクトランスファー(STT)メモリを備える、C37に記載のコンピュータプログラム製品。
[C39]
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、C31に記載のコンピュータプログラム製品。
[C40]
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性(STDP)ルール、Hebbルール、Ojaルール、またはBienenstock−Cooper−Munro(BCM)ルールのうちの少なくとも1つを備える、C39に記載のコンピュータプログラム製品。
図1
図2
図3
図4A
図4B
図5
図5A
図6
図7
図8