(57)【特許請求の範囲】
【請求項１】
メモリに情報を記憶する方法であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替えることと、
を備える方法。
【請求項２】
前記確率的方法で前記２値状態を切り替えることは、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと、
を備える、請求項１に記載の方法。
【請求項３】
前記確率は、重みの前記更新の絶対値に比例する、請求項２に記載の方法。
【請求項４】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項２に記載の方法。
【請求項５】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記方法は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えることをさらに備える、請求項１に記載の方法。
【請求項６】
前記確率は、電流の前記大きさに比例する、請求項５に記載の方法。
【請求項７】
前記メモリは、確率的不揮発性２値メモリを備える、請求項１に記載の方法。
【請求項８】
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、請求項７に記載の方法。
【請求項９】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項１に記載の方法。
【請求項１０】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、請求項９に記載の方法。
【請求項１１】
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第１の回路と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替えるように構成された第２の回路と、
を備える装置。
【請求項１２】
前記第２の回路は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと、
を行うようにさらに構成された、請求項１１に記載の装置。
【請求項１３】
前記確率は、重みの前記更新の絶対値に比例する、請求項１２に記載の装置。
【請求項１４】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項１２に記載の装置。
【請求項１５】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記第２の回路は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えるようにさらに構成された、請求項１１に記載の装置。
【請求項１６】
前記確率は、電流の前記大きさに比例する、請求項１５に記載の装置。
【請求項１７】
前記メモリは、確率的不揮発性２値メモリを備える、請求項１１に記載の装置。
【請求項１８】
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、請求項１７に記載の装置。
【請求項１９】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項１１に記載の装置。
【請求項２０】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、請求項１９に記載の装置。
【請求項２１】
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替える手段と、
を備える装置。
【請求項２２】
前記確率的方法で前記２値状態を切り替える前記手段は、
ある確率で、重みの前記更新に基づいてパルスを生成する手段と、
前記パルスを使用してメモリロケーションの前記２値状態を切り替える手段と、
を備える、請求項２１に記載の装置。
【請求項２３】
前記確率は、重みの前記更新の絶対値に比例する、請求項２２に記載の装置。
【請求項２４】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項２２に記載の装置。
【請求項２５】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記装置は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替える手段をさらに備える、請求項２１に記載の装置。
【請求項２６】
前記確率は、電流の前記大きさに比例する、請求項２５に記載の装置。
【請求項２７】
前記メモリは、確率的不揮発性２値メモリを備える、請求項２１に記載の装置。
【請求項２８】
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、請求項２７に記載の装置。
【請求項２９】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項２１に記載の装置。
【請求項３０】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、請求項２９に記載の装置。
【請求項３１】
コンピュータ可読記憶媒体であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態を切り替えることと、
を行うための実行可能なコードを備える、コンピュータ可読記憶媒体。
【請求項３２】
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと
を行うためのコードをさらに備える、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記確率は、重みの前記更新の絶対値に比例する、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記切り替えることの方向は、重みの前記更新の符号に基づく、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３５】
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記コンピュータ可読記憶媒体は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えることを行うためのコードをさらに備える、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記確率は、電流の前記大きさに比例する、請求項３５に記載のコンピュータ可読記憶媒体。
【請求項３７】
前記メモリは、確率的不揮発性２値メモリを備える、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、請求項３７に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項４０】
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、請求項３９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示のいくつかの態様は、一般に、ニューラルシステム工学に関し、より詳細には、ニューラルネットワークのシナプス重みに関する情報を記憶するために確率的方法でメモリを利用するための方法および装置に関する。
【背景技術】
【０００２】
ニューラルネットワークは何十万ものシナプスを有することができ、シナプスの重みがネットワークトレーニング中に学習され得る。トレーニングの過程で、重みは、一般に、ランダム値で初期化され、小さい増分で変更される。しばしば、シナプス重みは、マルチビットまたはマルチレベルメモリに記憶される。しかしながら、多くの場合、重みは、２つの値のうちの１つに安定し得る（重みの双峰分布（bimodal distribution））。したがって、最終２値重みを記憶するためにマルチビットメモリを使用することは、記憶リソースの浪費であり得る。さらに、ネットワークトレーニングまたはネットワーク動作中にマルチビットシナプスメモリをアドレス指定することは、速度のボトルネックになり得る。
【発明の概要】
【０００３】
[0003]本開示のいくつかの態様は、メモリに情報を記憶する方法を提供する。本方法は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態を切り替えることとを含む。
【０００４】
[0004]本開示のいくつかの態様は、メモリに情報を記憶するための装置を提供する。本装置は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第１の回路と、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態を切り替えるように構成された第２の回路とを含む。
【０００５】
[0005]本開示のいくつかの態様は、メモリに情報を記憶するための装置を提供する。本装置は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態を切り替える手段とを含む。
【０００６】
[0006]本開示のいくつかの態様は、メモリに情報を記憶するためのコンピュータプログラム製品を提供する。本コンピュータプログラム製品は、概して、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態を切り替えることとを行うためのコードを備えるコンピュータ可読媒体を含む。
【０００７】
[0007]本開示の上述の特徴を詳細に理解することができるように、添付の図面にその一部を示す態様を参照することによって、上記で簡単に要約したより具体的な説明が得られ得る。ただし、その説明は他の等しく有効な態様に通じ得るので、添付の図面は、本開示のいくつかの典型的な態様のみを示し、したがって、本開示の範囲を限定するものと見なすべきではないことに留意されたい。
【図面の簡単な説明】
【０００８】
【図１】本開示のいくつかの態様による、ニューラルシステムの例示的な処理ユニットを示す図。
【図２】本開示のいくつかの態様による、確率的方法で情報を記憶するためにメモリを利用する一例を示す図。
【図３】本開示のいくつかの態様による、スピントルクトランスファー（ＳＴＴ：spin-torque transfer）メモリの一例を示す図。
【図４Ａ】本開示のいくつかの態様による、ＳＴＴメモリの確率的切替えに関係する例示的なグラフを示す図。
【図４Ｂ】本開示のいくつかの態様による、ＳＴＴメモリの確率的切替えに関係する例示的なグラフを示す図。
【図５】本開示の特定の態様による、確率的方法でメモリを使用するための例示的な動作を示す図。
【図５Ａ】図５に示す動作を実行することが可能な例示的な構成要素を示す図。
【図６】本開示のいくつかの態様による、汎用プロセッサを利用した確率的メモリ使用の例示的なソフトウェア実装形態を示す図。
【図７】本開示のいくつかの態様による、重みメモリが個々の分散処理ユニットとインターフェースされる確率的メモリ使用の例示的な実装形態を示す図。
【図８】本開示のいくつかの態様による、分散重みメモリと分散処理ユニットとに基づく確率的メモリ使用の例示的な実装形態を示す図。
【発明を実施するための形態】
【０００９】
[0017]添付の図面を参照しながら本開示の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する本開示のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載の本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する本開示のいずれの態様も、請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００１０】
[0018]「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用する。本明細書で「例示的」として説明するいかなる態様も、必ずしも他の態様よりも好適または有利であると解釈すべきではない。
【００１１】
[0019]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々な技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、そのうちのいくつかを例として図および好ましい態様についての以下の説明で示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００１２】
例示的なニューラルシステム
[0020]図１に、本開示のいくつかの態様による、計算ネットワーク（たとえば、ニューラルシステムまたはニューラルネットワーク）の処理ユニット（たとえば、ニューロン）１０２の一例１００を示す。ニューロン１０２は、ニューラルシステムの外部にある信号、または同じニューラルシステムの他のニューロンによって生成された信号、またはその両方であり得る、複数の入力信号１０４1〜１０４N（ｘ1〜ｘN）を受信し得る。入力信号は、電流または電圧、実数値または複素数値であり得る。入力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。これらの入力信号は、調整可能なシナプス重み１０６1〜１０６N（ｗ1〜ｗN）に従って信号をスケーリングするシナプス結合を通してニューロン１０２に伝えられ得、Ｎはニューロン１０２の入力接続の総数であり得る。
【００１３】
[0021]ニューロン１０２は、スケーリングされた入力信号を合成（combine）し、合成された、スケーリングされた入力を使用して、出力信号１０８（すなわち、信号ｙ）を生成し得る。出力信号１０８は、電流または電圧、実数値または複素数値であり得る。出力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。出力信号１０８は、次いで、同じニューラルシステムの他のニューロンへの入力信号として、または同じニューロン１０２への入力信号として、またはニューラルシステムの出力として伝達され得る。
【００１４】
[0022]処理ユニット（ニューロン）１０２は電気回路によってエミュレートされ得、それの入力および出力接続は、シナプス回路をもつワイヤによってエミュレートされ得る。処理ユニット１０２、それの入力および出力接続はまた、ソフトウェアコードによってエミュレートされ得る。処理ユニット１０２はまた、電気回路によってエミュレートされ得るが、それの入力および出力接続はソフトウェアコードによってエミュレートされ得る。本開示の一態様では、計算ネットワーク中の処理ユニット１０２はアナログ電気回路を備え得る。別の態様では、処理ユニット１０２はデジタル電気回路を備え得る。さらに別の態様では、処理ユニット１０２は、アナログ構成要素とデジタル構成要素の両方をもつ混合信号電気回路を備え得る。計算ネットワークは、上述の形態のいずれかにおける処理ユニットを備え得る。そのような処理ユニットを使用した計算ネットワーク（ニューラルシステムまたはニューラルネットワーク）は、画像およびパターン認識、機械学習、モータ制御など、広い範囲の適用例において利用され得る。
【００１５】
[0023]ニューラルネットワークのトレーニングの過程で、シナプス重み（たとえば、図１からの重み１０６1〜１０６N）は、ランダム値で初期化され、学習ルール（たとえば、スパイクタイミング依存可塑性（ＳＴＤＰ：spike-timing-dependent plasticity）学習ルール、Ｈｅｂｂルール、Ｏｊａルール、Ｂｉｅｎｅｎｓｔｏｃｋ−Ｃｏｐｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールなど）に従って小さい増分で変更され得る。頻繁に、重みは、２つの値のうちの１つに安定し得る（すなわち、重みの双峰分布）。本開示のいくつかの態様は、これを利用して、シナプス重み当たりのビット数を低減し、シナプス重みを記憶するメモリから／への読取りおよび書込みの速度を増加させ、メモリの電力消費量を低減する。
【００１６】
[0024]一態様では、マルチビットメモリは、シナプス重みを記憶するために採用され得る。この種類のメモリは、所与の容量のメモリに記憶されるシナプス重みの数を低減し得る。しかしながら、重み当たりにいくつかのビットの読取りまたは書込みを行う必要があり得るので、シナプス重みの読取りおよび書込みはより遅くなり得る。
【００１７】
[0025]別の態様では、（たとえば、メモリスタ（memristor）に基づく）アナログマルチレベルメモリは、シナプス重みを記憶するために利用され得る。ただし、この種類のメモリに関するいくつかの問題がある。第１に、アナログメモリは精巧な書込みを必要とし得、すなわち、パルスの大きさ（magnitude）と持続時間との正確な制御が必要とされ得る。第２に、メモリの読取りも精巧である必要があり得、たとえば、メモリから読み取られるときの記憶された値のデジタル化が必要とされ得る。第３に、アナログマルチレベルメモリの効率的なクローニングは可能でないことがある。第４に、アナログメモリは、しばしば、保持力および信頼性が低いことがある。
【００１８】
確率的方法でメモリを利用する方法
[0026]シナプス重み当たりのビット数を低減し、重みを記憶するメモリの電力消費量を低減するために、本開示では、確率的方法でメモリを利用する方法を提案する。本開示のいくつかの態様によれば、シナプス重み（たとえば、図１からの重み１０６1〜１０６N）は、メモリロケーションの２値状態として表され得る（すなわち、０および１のみがメモリロケーションに記憶され得る）。
【００１９】
[0027]ニューラルネットワークのトレーニング中に、ニューラルネットワーク中の複数のシナプスの各シナプスについての重みの更新が、重み学習ルール（たとえば、ＳＴＤＰルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢＣＭルール）に従って計算され得る。次いで、複数のシナプスに関連するメモリロケーションの２値状態は、重み更新に基づいて確率的方法で切り替えられ得る。多くのトレーニングイベントの後に、各重みが２つの状態（０または１）のうちの１つである確率は、この重みの総更新に比例し得る、すなわち、最終重みに比例し得る。
【００２０】
[0028]実験データは、生物シナプスが重みの双峰分布を有する傾向があり得ることを示すので、２進値でシナプス重みを表すことが可能であることに留意されたい。さらに、２値シナプスは１ビットメモリに記憶され、より多くのシナプスを所与の容量メモリに記憶することが可能になり得る。確率的方法でのシナプス重みの記憶は、シナプストレーニングイベントの時間平均化を可能にし得、すなわち、トレーニングされたメモリ状態は、複数のトレーニングイベントの累積影響を示し得る。
【００２１】
[0029]図２に、本開示のいくつかの態様による、確率的方法で情報（たとえば、シナプス重み）を記憶するためにメモリを利用する一例２００を示す。図２に示すように、重み更新モジュール２０２は、特定の学習ルールに従ってトレーニングされているニューラルネットワークのシナプスに関連する重みの更新２０４を計算するように構成され得る。
【００２２】
[0030]本開示の一態様では、インターフェースモジュール２０６は、ある確率で、重みの更新２０４に基づいて信号２０８（たとえば、パルス）を生成するように構成され得る。たとえば、パルス（正または負のパルス）の符号は、重み更新２０４の符号に対応し得る。特定の重みを表すメモリ２１０内のメモリロケーションの２値状態は、パルス２０８に基づいて切り替えられ得る（すなわち、０から１に、またはその逆に変更され得る）。一態様では、切替え方向は、パルス２０８の符号に基づき得る。ニューラルネットワークのシナプス重みを記憶するメモリ２１０は、メモリロケーション中に２進値をもつ完全に確定的なメモリを備え得、記憶された２進値は確率的方法で取得されることに留意されたい。
【００２３】
[0031]この手法を適用することによって、メモリ２１０のサイズが小さくなり得（たとえば、シナプス重み当たり１ビット）、それにより、メモリ電力消費量も低減し得る。さらに、各シナプス重みを１ビットの数で表すことができるので、メモリ内容のローディングおよび記憶の速度は高速であり得る。
【００２４】
[0032]本開示の別の態様では、シナプス重みを記憶するメモリ２１０は、確率的不揮発性２値メモリを備え得る。たとえば、確率的不揮発性２値メモリは、磁気トンネル接合（ＭＴＪ：magnetic tunnel junction）デバイスまたはスピントルクトランスファー（ＳＴＴ：spin torque transfer）デバイスに基づき得る。これらのデバイスは２値抵抗(binary resistive)スイッチとして働くことができ、１つの状態から別の状態への２値抵抗スイッチの切替えは、図３に示すように、書込み電流／電圧の大きさ(magnitude)と持続時間(duration)との関数である確率をもつ確率的イベントである。例３０２、３０４では、通過電流３０６は、磁化の方向を切り替えるために使用され得る。図３に示すように、磁化の方向が並列状態（parallel state）である（すなわち、低抵抗のために電流３０６が（複数の）強磁性層中を容易に流れ得る）場合、２進数の０がＳＴＴメモリのロケーションに記憶され得る。一方、磁化の方向が逆並列状態（anti-parallel state）である（すなわち、高抵抗により電流３０６が（複数の）強磁性層中を流れるのに一定の困難を伴い得る）場合、２進数の１がメモリロケーションに記憶され得る。
【００２５】
[0033]いくつかの態様によれば、ＳＴＴメモリは、２：１の高抵抗／低抵抗比（たとえば、４ＫΩ／２ＫΩ）を達成し得る。さらに、ＳＴＴメモリは、優れた保持力（たとえば、１０年よりも長い）および信頼性を与え得るが、電力消費量は極めて低いことがある。ただし、２値状態間の切替えは、ランダム熱効果（random thermal effects）により確率的である。
【００２６】
[0034]ＳＴＴメモリロケーションにおける２値コンテンツの切替えの確率は、書込み電流の大きさ（たとえば、０．１〜１０ｍＡの範囲の大きさ）、または書込み時間（たとえば、１〜１００ｎｓ）のうちの少なくとも１つに依存し得ることに留意されたい。図４Ａ中のグラフ４０２に示すように、書込み電流（たとえば、図３からの電流３０６）が第１のしきい値（たとえば、図４Ａに示すしきい値ＩLH）よりも大きくなると、ＭＴＪ抵抗は（たとえば、値４０４から値４０６に）実質的に増加し得、対応するメモリロケーションの値は２進数の１に切り替わり得る。さらに、書込み電流が第２のしきい値（たとえば、図４Ａからのしきい値ＩHL）より小さくなると、ＭＴＬ抵抗は、低くなり得（たとえば、値４０８から値４１０まで減少し得）、対応するメモリロケーションの値は２進数の０に切り替わり得る。
【００２７】
[0035]図４Ｂに、電流（パルス）振幅と書込み時間とに応じたＳＴＴメモリ中の切替え確率のグラフ４１２を示す。より長い書込み時間が、より低い電流大きさに対して同じ切替え確率を与え得る（たとえば、１００ｎｓの書込み時間のための切替え確率プロット４１４対３ｎｓの書込み時間のための切替え確率プロット４１６対１ｎｓの書込み時間のための切替え確率プロット４１８）ことが、グラフ４１２から観察され得る。
【００２８】
[0036]再び図２を参照すると、モジュール２０２は、選定された学習ルール（たとえば、レートベース学習ルールまたはＳＴＤＰルール）に従って各重みについてシナプス重み更新２０４を計算するように構成され得る。本開示の一態様では、重み更新２０４の絶対値は、（たとえば、インターフェースモジュール２０６によって）ＳＴＴメモリデバイス２１０中を流れる書込み電流２１２の大きさＩwriteを決定し得る。重み更新の符号は、電流２１２の方向を決定し得る。
【００２９】
[0037]本開示の一態様では、新しいシナプス重みは、Ｉwriteが重み更新２０４に比例することを使用してＳＴＴメモリ２１０に書き込まれ得る。正のＩwriteは、ある確率で０（シナプス重みの最小値）から１（シナプス重みの最大値）にメモリロケーションの２進値を切り替え得る。一方、負のＩwriteは、ある確率で１（シナプス重みの最大値）から０（シナプス重みの最小値）にメモリロケーションの２進値を切り替え得る。
【００３０】
[0038]上述の手法は、シナプス当たりのメモリのサイズを極めて小さくすること（たとえば、シナプス当たりにただ１つのＭＴＪまたはＳＴＴ）を達成し得る。これはまた、シナプス重みメモリの電力消費量を低減するのに役立ち得る。さらに、メモリ動作が非常に単純であり得、たとえば、２値状態間の切替えが、ある大きさおよび方向の書込み電流だけで達成され得る。
【００３１】
[0039]図５に、本開示の特定の態様による、情報を記憶するために確率的方法でメモリを利用するための例示的な動作５００を示す。５０２において、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算し得る。５０４において、重みの更新に基づいてそのシナプスに関連するメモリ内のロケーションの２値状態が、確率的方法で切り替えられ得る。一態様では、ニューラルネットワークは、スパイキング（spiking）ニューラルネットワークを備え得る。別の態様では、ニューラルネットワークは、レートベースニューラルネットワークを備え得る。
【００３２】
[0040]本開示の一態様では、確率的方法で２値状態を切り替えることは、ある確率で、重みの更新に基づいてパルスを生成することと、パルスを使用してメモリロケーションの２値状態を切り替えることとを備え得る。たとえば、確率は、重みの更新の絶対値に比例し得、切替えの方向は、重みの更新の符号に基づき得る。
【００３３】
[0041]本開示の別の態様では、重みの更新の絶対値は、メモリロケーション中を流れる電流の大きさを決定し得、重みの更新の符号は、メモリロケーション中を流れる電流の方向を決定し得る。メモリロケーションの２値状態は、電流の方向に基づいて、ある確率で切り替えられ得る。たとえば、確率は、電流の大きさに比例し得る。
【００３４】
[0042]一態様では、メモリは確率的不揮発性２値メモリを備え得る。さらに、確率的不揮発性２値メモリはＳＴＴメモリを備え得る。
【００３５】
[0043]本開示のいくつかの態様によれば、上述の学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備え得る。たとえば、スパイキングおよびレートベースニューラルネットワークの重み学習ルールは、ＳＴＤＰルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備え得る。
【００３６】
[0044]図６に、本開示のいくつかの態様による、汎用プロセッサ６０２を利用した前述の確率的メモリ使用の例示的なソフトウェア実装形態６００を示す。汎用プロセッサ６０２において実行される確率的メモリ使用に関係する命令がプログラムメモリ６０６からロードされ得る間、計算ネットワーク（ニューラルネットワーク）の各処理ユニット（ニューロン）に関連する既存の重みがメモリブロック６０４に記憶され得る。本開示のいくつかの態様によれば、ロードされた命令は、ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するためのコードを備え得る。さらに、ロードされた命令は、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリブロック６０４内のロケーションの２値状態を切り替えるためのコードを備え得る。
【００３７】
[0045]図７に、本開示のいくつかの態様による、重みメモリ７０２が、計算ネットワーク（ニューラルネットワーク）の個々の（分散）処理ユニット（ニューロン）７０６をもつ相互接続ネットワーク７０４を介してインターフェースされる、上述の確率的メモリ使用の例示的な実装形態７００を示す。処理ユニット７０６に関連する少なくとも１つの既存の重みが、その処理ユニット７０６に相互接続ネットワーク７０４の（１つまたは複数の）接続を介してメモリ７０２からロードされ得る。処理ユニット７０６は、その処理ユニット（ニューロン）７０６に関連するニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成され得る。さらに、処理ユニット７０６は、シナプスの各々について確率的方法で、重みの更新に基づいてそのシナプスに関連するメモリ７０２内のロケーションの２値状態を切り替えるように構成され得る。
【００３８】
[0046]図８に、本開示のいくつかの態様による、分散重みメモリ８０２と分散処理ユニット８０４とに基づく上述の確率的メモリ使用の例示的な実装形態８００を示す。図８に示すように、１つの重みメモリバンク８０２は、計算ネットワーク（ニューラルネットワーク）の１つの処理ユニット（ニューロン）８０４と直接インターフェースされ得、そのメモリバンク８０２は、その処理ユニット８０４に関連する少なくとも１つの既存の重みを記憶し得る。処理ユニット８０４は、その処理ユニット（ニューロン）８０４に関連するニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成され得る。さらに、処理ユニット８０４は、シナプスの各々について確率的方法で、重みの更新に基づいて、その特定の処理ユニット（ニューロン）８０４に関連するメモリバンク８０２内のそのシナプスのためのメモリロケーションの２値状態を切り替えるように構成され得る。
【００３９】
[0047]本明細書の実施形態はスパイキングニューラルネットワークについて示すが、限定はしないが、レートベースニューラルネットワークを含む他のニューラルネットワークタイプへのこれらの概念の使用も本開示の範囲内にある。
【００４０】
[0048]上記で説明した方法の様々な動作は、対応する機能を実行することが可能な任意の好適な手段によって実行され得る。それらの手段は、限定はしないが、回路、特定用途向け集積回路（ＡＳＩＣ）、またはプロセッサを含む、様々な（１つまたは複数の）ハードウェアおよび／またはソフトウェア構成要素および／またはモジュールを含み得る。概して、図に示す動作がある場合、それらの動作は、同様の番号をもつ対応するカウンターパートのミーンズプラスファンクション構成要素を有し得る。たとえば、図５に示す動作５００は、図５Ａに示す構成要素５００Ａに対応する。
【００４１】
[0049]本明細書で使用する「決定」という用語は、様々なアクションを包含する。たとえば、「決定」は、計算、算出、処理、導出、調査、探索（たとえば、テーブル、データベースまたは別のデータ構造での探索）、確認などを含み得る。また、「決定」は、受信（たとえば、情報を受信すること）、アクセス（たとえば、メモリ中のデータにアクセスすること）などを含み得る。また、「決定」は、解決、選択、選定、確立などを含み得る。
【００４２】
[0050]本明細書で使用する、項目のリスト「のうちの少なくとも１つ」を指す句は、個々のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「ａ、ｂ、またはｃのうちの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、およびａ−ｂ−ｃをカバーするものとする。
【００４３】
[0051]上記で説明した方法の様々な動作は、（１つまたは複数の）様々なハードウェアおよび／またはソフトウェア構成要素、回路、および／または（１つまたは複数の）モジュールなど、それらの動作を実行することが可能な任意の好適な手段によって実行され得る。一般に、図に示すどの動作も、その動作を実行することが可能な対応する機能的手段によって実行され得る。
【００４４】
[0052]本開示に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ信号（ＦＰＧＡ）または他のプログラマブル論理デバイス（ＰＬＤ）、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００４５】
[0053]本開示に関連して説明した方法またはアルゴリズムのステップは、ハードウェアで直接実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、当技術分野で知られている任意の形式の記憶媒体中に常駐し得る。使用され得る記憶媒体のいくつかの例には、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭなどがある。ソフトウェアモジュールは、単一の命令、または多数の命令を備え得、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散され得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、その記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。
【００４６】
[0054]本明細書で開示した方法は、説明した方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび／またはアクションの順序および／または使用は特許請求の範囲から逸脱することなく変更され得る。
【００４７】
[0055]説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線（ＩＲ）、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ-ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体（たとえば、有形媒体）を備え得る。さらに、他の態様の場合、コンピュータ可読媒体は一時的コンピュータ可読媒体（たとえば、信号）を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００４８】
[0056]したがって、いくつかの態様は、本明細書で提示する動作を実行するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明する動作を実行するために１つまたは複数のプロセッサによって実行可能である命令をその上に記憶した（および／または符号化した）コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
【００４９】
[0057]ソフトウェアまたは命令はまた、伝送媒体を介して送信され得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、送信媒体の定義に含まれる。
【００５０】
[0058]さらに、本明細書で説明した方法および技法を実行するためのモジュールおよび／または他の適切な手段は、適用可能な場合にユーザ端末および／または基地局によってダウンロードおよび／または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明した方法を実行するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明した様々な方法は、ユーザ端末および／または基地局が記憶手段をデバイスに結合するかまたは与えると様々な方法を得ることができるように、記憶手段（たとえば、ＲＡＭ、ＲＯＭ、コンパクトディスク（ＣＤ）またはフロッピーディスクなどの物理記憶媒体など）によって提供され得る。さらに、本明細書で説明する方法および技法をデバイスに与えるための任意の他の好適な技法が利用され得る。
【００５１】
[0059]特許請求の範囲は、上記に示した正確な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
【００５２】
[0060]上記は本開示の態様を対象とするが、本開示の他の態様およびさらなる態様は、それらの基本的範囲から逸脱することなく考案され得、それらの範囲は以下の特許請求の範囲によって判断される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
メモリに情報を記憶する方法であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替えることと、
を備える方法。
［Ｃ２］
前記確率的方法で前記２値状態を切り替えることは、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと、
を備える、Ｃ１に記載の方法。
［Ｃ３］
前記確率は、重みの前記更新の絶対値に比例する、Ｃ２に記載の方法。
［Ｃ４］
前記切り替えることの方向は、重みの前記更新の符号に基づく、Ｃ２に記載の方法。
［Ｃ５］
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記方法は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えることをさらに備える、Ｃ１に記載の方法。
［Ｃ６］
前記確率は、電流の前記大きさに比例する、Ｃ５に記載の方法。
［Ｃ７］
前記メモリは、確率的不揮発性２値メモリを備える、Ｃ１に記載の方法。
［Ｃ８］
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、Ｃ７に記載の方法。
［Ｃ９］
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、Ｃ１に記載の方法。
［Ｃ１０］
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、Ｃ９に記載の方法。
［Ｃ１１］
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算するように構成された第１の回路と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替えるように構成された第２の回路と、
を備える装置。
［Ｃ１２］
前記第２の回路は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと、
を行うようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１３］
前記確率は、重みの前記更新の絶対値に比例する、Ｃ１２に記載の装置。
［Ｃ１４］
前記切り替えることの方向は、重みの前記更新の符号に基づく、Ｃ１２に記載の装置。
［Ｃ１５］
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記第２の回路は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えるようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１６］
前記確率は、電流の前記大きさに比例する、Ｃ１５に記載の装置。
［Ｃ１７］
前記メモリは、確率的不揮発性２値メモリを備える、Ｃ１１に記載の装置。
［Ｃ１８］
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、Ｃ１７に記載の装置。
［Ｃ１９］
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、Ｃ１１に記載の装置。
［Ｃ２０］
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、Ｃ１９に記載の装置。
［Ｃ２１］
メモリに情報を記憶する装置であって、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算する手段と、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替える手段と、
を備える装置。
［Ｃ２２］
前記確率的方法で前記２値状態を切り替える前記手段は、
ある確率で、重みの前記更新に基づいてパルスを生成する手段と、
前記パルスを使用してメモリロケーションの前記２値状態を切り替える手段と、
を備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記確率は、重みの前記更新の絶対値に比例する、Ｃ２２に記載の装置。
［Ｃ２４］
前記切り替えることの方向は、重みの前記更新の符号に基づく、Ｃ２２に記載の装置。
［Ｃ２５］
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記装置は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替える手段をさらに備える、Ｃ２１に記載の装置。
［Ｃ２６］
前記確率は、電流の前記大きさに比例する、Ｃ２５に記載の装置。
［Ｃ２７］
前記メモリは、確率的不揮発性２値メモリを備える、Ｃ２１に記載の装置。
［Ｃ２８］
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、Ｃ２７に記載の装置。
［Ｃ２９］
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、Ｃ２１に記載の装置。
［Ｃ３０］
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、Ｃ２９に記載の装置。
［Ｃ３１］
メモリに情報を記憶するためのコンピュータプログラム製品であって、コンピュータ可読媒体は、
ニューラルネットワーク中の複数のシナプスの各シナプスについて、学習ルールに従ってそのシナプスの重みの更新を計算することと、
前記シナプスの各々について確率的方法で、重みの前記更新に基づいてそのシナプスに関連する前記メモリ内のロケーションの２値状態を切り替えることと、
を行うためのコードを備える、コンピュータプログラム製品。
［Ｃ３２］
前記コンピュータ可読媒体は、
ある確率で、重みの前記更新に基づいてパルスを生成することと、
前記パルスを使用してメモリロケーションの前記２値状態を切り替えることと
を行うためのコードをさらに備える、Ｃ３１に記載のコンピュータプログラム製品。
［Ｃ３３］
前記確率は、重みの前記更新の絶対値に比例する、Ｃ３２に記載のコンピュータプログラム製品。
［Ｃ３４］
前記切り替えることの方向は、重みの前記更新の符号に基づく、Ｃ３２に記載のコンピュータプログラム製品。
［Ｃ３５］
重みの前記更新の絶対値は、前記メモリロケーション中を流れる電流の大きさを決定し、
重みの前記更新の符号は、前記メモリロケーション中を流れる前記電流の方向を決定し、前記コンピュータ可読媒体は、
前記方向に基づいて、ある確率でメモリロケーションの前記２値状態を切り替えることを行うためのコードをさらに備える、Ｃ３１に記載のコンピュータプログラム製品。
［Ｃ３６］
前記確率は、電流の前記大きさに比例する、Ｃ３５に記載のコンピュータプログラム製品。
［Ｃ３７］
前記メモリは、確率的不揮発性２値メモリを備える、Ｃ３１に記載のコンピュータプログラム製品。
［Ｃ３８］
前記確率的不揮発性２値メモリは、スピントルクトランスファー（ＳＴＴ）メモリを備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ３９］
前記学習ルールは、スパイキングおよびレートベースニューラルネットワークの重み学習ルールを備える、Ｃ３１に記載のコンピュータプログラム製品。
［Ｃ４０］
スパイキングおよびレートベースニューラルネットワークの前記重み学習ルールは、スパイクタイミング依存可塑性（ＳＴＤＰ）ルール、Ｈｅｂｂルール、Ｏｊａルール、またはＢｉｅｎｅｎｓｔｏｃｋ−Ｃｏｏｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルールのうちの少なくとも１つを備える、Ｃ３９に記載のコンピュータプログラム製品。
【図１】
0005989790.tif 000002
【図２】
0005989790.tif 000003
【図３】
0005989790.tif 000004
【図４Ａ】
0005989790.tif 000005
【図４Ｂ】
0005989790.tif 000006
【図５】
0005989790.tif 000007
【図５Ａ】
0005989790.tif 000008
【図６】
0005989790.tif 000009
【図７】
0005989790.tif 000010
【図８】
0005989790.tif 000011