JP2023547800A - Rpuクロスバー・アレイ上の重み反復 - Google Patents
Rpuクロスバー・アレイ上の重み反復 Download PDFInfo
- Publication number
- JP2023547800A JP2023547800A JP2023522777A JP2023522777A JP2023547800A JP 2023547800 A JP2023547800 A JP 2023547800A JP 2023522777 A JP2023522777 A JP 2023522777A JP 2023522777 A JP2023522777 A JP 2023522777A JP 2023547800 A JP2023547800 A JP 2023547800A
- Authority
- JP
- Japan
- Prior art keywords
- weight
- rpu
- array
- weight matrix
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 125
- 238000013528 artificial neural network Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000012549 training Methods 0.000 claims abstract description 19
- 239000013598 vector Substances 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims 4
- 230000010076 replication Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 27
- 230000015654 memory Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000003491 array Methods 0.000 description 10
- 210000002569 neuron Anatomy 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 9
- 239000010410 layer Substances 0.000 description 8
- 239000000463 material Substances 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002708 enhancing effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 210000002364 input neuron Anatomy 0.000 description 5
- 210000004205 output neuron Anatomy 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000001994 activation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000001149 cognitive effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003920 cognitive function Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002858 neurotransmitter agent Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000003956 synaptic plasticity Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
人工ニューラル・ネットワーク訓練のための方法が提示される。方法は、抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、RPUデバイスのアレイが、重み行列を表す、格納することと、重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように重み行列を定義することと、フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、反復された重み要素からの出力された計算結果を合計すること、逆伝搬された誤差に応じて、反復された重み要素のそれぞれを更新すること、または代替として、更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、反復された重み要素のうちのただ1つを更新することによって、バックワード・パス信号の信号強度を増強するために、重み行列の長方形構成を反復または連結することによって、長方形構成からより正方形の構成に重み行列を変換することとを含む。
Description
本発明は、一般に、抵抗処理ユニット(RPU:resistive processing unit)デバイスのアナログ・クロスポイント・アレイを有する人工ニューラル・ネットワーク(ANN:artificial neural network)に関し、より詳細には、RPUクロスポイント・アレイ上の重み反復により信号強度を増強することに関する。
機械学習は、データから学習する電子システムの主要な機能を広く表現するために使用される。機械学習および認知科学では、ANNは、生物神経回路および特に脳によって着想された統計学習モデルの系統である。ANNは、多くの入力に依存し、一般に未知の、システムおよび機能を推定または概算するために使用されることが可能である。ANNは、シミュレートされた「ニューロン」として機能し、電子信号の形で互いに、メッセージを交換する、相互接続されたプロセッサ要素のいわゆる「神経形態学的」システムとして具体化されることが多い。生体ニューロン間のメッセージを運ぶシナプス神経伝達物質接続のいわゆる「可塑性」と同様に、シミュレートされたニューロン間の電子メッセージを運ぶANNにおける接続は、所与の接続の強さまたは弱さに相当する数字の重みを提供される。重みは、経験に基づいて調節および調整されることが可能であり、ANNを入力に対して適応性があり、学習する能力があるものにする。
実施形態によれば、人工ニューラル・ネットワーク(ANN)訓練のための方法が提供される。方法は、抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、RPUデバイスのアレイが、RPUデバイスの抵抗値としてm行n列のANNの重み行列Wの重み値をアレイに格納することによって、重み行列Wを表す、格納することと、重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように重み行列Wを定義することと、フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、1行毎に1つの出力を生じる反復された重み要素からの出力された計算結果を合計すること、および、逆伝搬された誤差に応じて、反復された重み要素のそれぞれを更新すること、または代替として、更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、反復された重み要素のうちのただ1つを更新することによって、バックワード・パス信号の信号強度を増強するために、重み行列Wの長方形構成を反復または連結することによって、長方形構成からほぼ正方形の構成に重み行列Wを変換することとを含む。
人工ニューラル・ネットワーク(ANN)訓練のためのコンピュータ可読プログラムを含む非一過性コンピュータ可読ストレージ媒体が提示され、コンピュータ可読プログラムは、コンピュータで実行されると、抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、RPUデバイスのアレイが、RPUデバイスの抵抗値としてm行n列のANNの重み行列Wの重み値をアレイに格納することによって、重み行列Wを表す、格納することと、重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように重み行列Wを定義することと、フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、1行毎に1つの出力を生じる反復された重み要素からの出力された計算結果を合計すること、および、逆伝搬された誤差に応じて、反復された重み要素のそれぞれを更新すること、または代替として、更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、反復された重み要素のうちのただ1つを更新することによって、バックワード・パス信号の信号強度を増強するために、重み行列Wの長方形構成を反復または連結することによって、長方形構成からほぼ正方形の構成に重み行列Wを変換することとを行うステップをコンピュータに実施させる。
人工ニューラル・ネットワーク(ANN)訓練のためのシステムが提示される。システムは、重み値を格納するための抵抗処理ユニット(RPU)デバイスのアレイであって、RPUデバイスの抵抗値としてm行n列のANNの重み行列Wの重み値をアレイに格納することによって、重み行列Wを表す、RPUデバイスのアレイと、アレイにおけるRPUデバイス間の電圧を制御するためのプロセッサであって、重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように重み行列Wを定義し、バックワード・パス信号の信号強度を増強するために、重み行列Wの長方形構成を反復または連結することによって、長方形構成からほぼ正方形の構成に重み行列Wを変換する、プロセッサとを含む。
例示的実施形態は、種々の主題を参照しながら説明されることに留意されたい。特に、いくつかの実施形態は、方法タイプの請求項を参照しながら説明され、その一方で、他の実施形態は、装置タイプの請求項を参照しながら説明されてきた。それでも、当業者は、別途通知されない限り、1つのタイプの主題に属する特徴の任意の組合せに加えて、異なる主題に関する特徴の間の、特に、方法タイプの請求項の特徴と装置タイプの請求項の特徴との間の任意の組合せも、本文書内で説明されるものと考えられることを、上記および以下の説明から推測するであろう。
これらおよび他の特徴および利点は、添付の図面と共に読まれることになる、その例証的な実施形態の以下の詳細な説明から明らかになるであろう。
本発明は、以下の図を参照しながら、好ましい実施形態の以下の説明において詳細を提供する。
図面の全体を通して、同じまたは同様の参照番号が、同じまたは同様の要素を表す。
本発明による例示的実施形態は、抵抗処理ユニット(RPU)クロスバー・アレイ上の重み反復によってバックワード・パス信号の信号強度を増強するために提供される。特に、重み行列は、RPUクロスバー・アレイの列または行あるいはその両方の反復または複製によって修正される。これは、抵抗性デバイス・アレイ上でいくつかの重み要素を反復し、デジタル周辺(digital periphery)における反復された重み要素(すなわち、行または列あるいはその両方)の結果を集積して、バックワード・パス・サイクル中の出力信号強度を増強することによって達成され、これが、精度を高め、高分解能アナログ-デジタル・コンバータ(ADC:analog-to-digital converter)の要件を下げる。その結果として、より低い精密さのADCを使用することが、アナログ・ハードウェア・チップの電力効率を向上させるのに役立ち、このことが、より良いノイズおよび境界管理を提供し、ニューラル・ネットワーク訓練性能を改善する。
クロスバー・アレイは、クロスポイント・アレイまたはクロスワイヤ・アレイとしても知られ、ANNアーキテクチャ、神経形態学的マイクロチップ、および超高密度不揮発性メモリを含む、様々な電子回路およびデバイスを形成するために使用される高密度低コスト回路アーキテクチャである。基本的なクロスバー・アレイ構成は、伝導行ワイヤのセット、および伝導行ワイヤのセットと交わるように形成された伝導列ワイヤのセットを含む。ワイヤの2つのセットの間の交点は、薄膜材料から形成され得る、いわゆるクロスポイント・デバイスによって隔てられる。
クロスポイント・デバイスは、事実上、ニューロン間のANNの重み付き接続として機能する。エネルギー効率が高いシナプス可塑性をエミュレートするために、例えば、「理想的な」伝導状態スイッチング特性を有するメモリスタのような、ナノスケール2端子素子がクロスポイント・デバイスとして使用されることが多い。理想的なメモリスタ材料の伝導状態(例えば、抵抗)は、行および列ワイヤのうちの個々のワイヤの間に印加された電圧を制御することによって変えられることが可能である。デジタル・データは、交点におけるメモリスタ材料の伝導状態を変化させて、高伝導状態または低伝導状態を実現することよって格納されることが可能である。メモリスタ材料は、さらに、材料の伝導状態を選択的にセットすることによって、2つ以上の別個の伝導状態を維持するようにプログラムされることが可能である。メモリスタ材料の伝導状態は、材料間に電圧を印加すること、および標的のクロスポイント・デバイスを通る電流を測定することによって、読み取られることが可能である。
それでも、アナログRPUアレイなどのアナログ抵抗性クロスバー・アレイによるANN訓練は、アナログ・ノイズにより、難しくなることがある。さらに、訓練プロセスは、RPUアレイのために使用されるアナログ-デジタル・コンバータ(ADC)およびデジタル-アナログ・コンバータ(DAC:digital-to-analog converter)の有界範囲によって制限される。ADCおよびDACは、RPUへのデジタル入力をアナログ信号に、およびRPUからの出力をデジタル信号に、それぞれ変換するために使用される。アナログ・ノイズは、長方形重み行列のための出力信号を増加させることを伴うノイズ管理アプローチによって低減されることが可能である。
本発明の例示的実施形態は、1つの物理的なアナログ・クロスバー・アレイ上でディープ・ニューラル・ネットワーク(DNN:deep neural network)ネットワークの重みを反復符号化して、バックワード・パス信号の出力信号を増加させることによって、アナログ・ノイズを有利に管理する方法およびシステムを開示する。本発明の例示的実施形態は、長方形重み行列をn回使用して、長方形重み行列をより正方形にし、したがって、物理的な正方形クロスバー・アレイにより良く合うものにする方法およびシステムをさらに開示する。本発明の例示的実施形態は、DNN(例えば、畳み込みニューラル・ネットワーク(CNN:convolutional neural network))ネットワーク層の重みを単一のアナログ・クロスバー・アレイ上に反復符号化し、次いで、正しいDNN/CNNネットワーク・アーキテクチャを維持するために、デジタル周辺における反復された行または列あるいはその両方の出力を合計(平均)するまたは分散させる(コピーする)方法およびシステムをさらに開示する。本発明の例示的実施形態は、DNN/CNNネットワーク層の重みを単一のアナログ・クロスバー・アレイ上に反復符号化し、次いで、正しいDNN/CNNネットワーク・アーキテクチャを維持し、反復された重みのうちの、または全ての反復された重みのうちの(例えば、ランダムに選ばれた)ただ1つを同時にまたは並行して更新するために、デジタル周辺における反復された行または列あるいはその両方の出力を合計(平均)するまたは分散させる(コピーする)方法およびシステムをさらに開示する。
したがって、例示的な方法およびシステムは、改善されたニューラル・ネットワーク訓練性能を提供する。特に、バックワード・パス信号の弱い出力信号が著しく増加され、これは、正確なADCの要件を縮小させる。その上、アナログ要素のノイズは、反復により平均され、その結果、訓練精度が改善する。
本発明は、所与の例証的なアーキテクチャに関して説明されるが、他のアーキテクチャ、構造、基板材料、ならびにプロセス特徴およびステップ/ブロックが、本発明の範囲内で多様にされることが可能であることを理解されたい。分かりやすくするために特定の特徴を全ての図に示すことができないことに留意されたい。これは、いずれかの特定の実施形態、または例証、または特許請求の範囲の範囲の限定であると解釈されることを意図するものではない。
本発明の様々な例証的実施形態が下記で説明される。明瞭さのために、実際の実装形態の全ての特徴が、本明細書で説明されるわけではない。任意のこのような実際の実施形態の開発では、1つの実装形態から別の実装形態に感化することになる、システム関連およびビジネス関連の制約の遵守など、開発者の固有のゴールを達成するために、非常に多くの実装形態固有の判定が行われなければならないことが当然認識されよう。その上、このような開発努力は、複雑で時間のかかるものになることがあるが、それでも、本発明の利益を有する当業者にとって、いつもの仕事であることが理解されよう。
図1は、本発明の実施形態による、抵抗処理ユニット(RPU)デバイスのアナログ・クロスポイント・アレイにおいて具体化された人工ニューラル・ネットワーク(ANN)を示す図である。
図1に示されているように、アルゴリズム的(抽象的な)重み行列10の各パラメータ(重みwij)が、ハードウェア上の単一のRPUデバイス(RPUij)、すなわち、RPUデバイスの物理的なクロスポイント・アレイ12にマッピングされる。クロスポイント・アレイ12は、一連の伝導行ワイヤ14と、伝導行ワイヤ14に直角に向けられ、伝導行ワイヤ14と交わる一連の伝導列ワイヤ16とを有する。伝導行ワイヤ14と列ワイヤ16の交点は、RPUデバイス18によって隔てられ、RPUデバイス18のクロスポイント・アレイ12を形成する。各RPUデバイス18は、第1の端子、第2の端子、および活性領域を含むことができる。活性領域の伝導状態は、RPUデバイス18の重み値を識別し、重み値は、第1/第2の端子への信号の印加によって、更新/調節されることが可能である。さらに、3端子(またはことによると、これ以上の端子)デバイスが、追加の端子を制御することによって、2端子抵抗メモリ・デバイスとして効果的に機能することができる。
m行n列の行列Wは、通常、M列N行を有するRPUアレイにマッピングされ、したがって、図における統合は、RPUアレイの列に沿って起こり、その一方で、合計は、Wの行に沿って数学的に起こる。したがって、RPUアレイへの数学的なWのマッピングは、実際には、転置される。その結果として、表示の容易さのために、行列Wの数学的な行は、RPUアレイの列として表示される。例えば、クロスポイント・アレイ12の最上部から最下部に、および左から右に進んで、第1の伝導行ワイヤ14と第1の伝導列ワイヤ16との交点におけるRPUデバイス18が、RPU11と表され、第1の伝導行ワイヤ14と第2の伝導列ワイヤ16との交点におけるRPUデバイス18が、RPU12と表される、などである。通常、慣例は、表示のために、RPUアレイの列と行を入れ替えることになるとはいえ、重み行列10における重みパラメータの、クロスポイント・アレイ12におけるRPUデバイス18へのマッピングは、同様の慣例に従う。例えば、重み行列10の重みwi1は、クロスポイント・アレイ12のRPU1iにマッピングされ、重み行列10の重みwi2は、クロスポイント・アレイ12のRPU2iにマッピングされる、などである。
クロスポイント・アレイ12のRPUデバイス18は、ANNにおけるニューロン間の重み付き接続として機能する。RPUデバイス18の抵抗は、個々の伝導行ワイヤ14と伝導列ワイヤ16との間に印加された電圧を制御することによって変えられることが可能である。抵抗を変えることは、例えば、高抵抗状態または低抵抗状態に基づいて、データがどのようにRPUデバイス18に格納されるかということである。RPUデバイス18の抵抗状態は、電圧を印加すること、および標的のRPUデバイス18を通る電流を測定することによって読み取られる。重みを伴う動作の全てが、RPUデバイス18によって完全に平行に実施される。
機械学習および認知科学では、ANNベースのモデルは、動物の生物神経回路および特に脳によって着想された統計学習モデルの系統である。これらのモデルは、多くの入力、および一般に未知の接続の重みに依存するシステムおよび認知機能を推定または概算するために使用されることが可能である。ANNは、電子信号(図8)の形で互いに「メッセージ」を交換するシミュレートされた「ニューロン」として機能する相互接続されたプロセッサ要素のいわゆる「神経形態学的な」システムとして具体化されることが多い。シミュレートされたニューロン間の電子メッセージを運ぶANNにおける接続は、所与の接続(図8)の強さまたは弱さに相当する数字の重みを提供される。これらの数字の重みは、経験に基づいて調節および調整されることが可能であり、ANNを入力に対して適応性があり、学習する能力があるものにする。例えば、手書き認識のためのANNは、入力画像のピクセルによって活性化されることが可能な入力ニューロンのセットで定義される。ネットワークの設計者によって決定された機能によって重みを付け、変形された後、これらの入力ニューロンの活性化は、その後、他の下流ニューロンに伝えられる。このプロセスは、出力ニューロンが活性化されるまで反復される。活性化された出力ニューロンは、どのキャラクタが読み取られたかを判定する。
ANNは、増分または確率勾配降下(SGD:stochastic gradient descent)プロセスで訓練されることが可能であり、このプロセスでは、各パラメータ(重みwij)の誤差勾配が、逆伝搬を使用して計算される。逆伝搬は、フォワード・サイクル、バックワード・サイクル、および重み更新サイクルという3つのサイクルで実施され、これらのサイクルは、収束基準が満たされるまで複数回反復される。DNNベースのモデルは、抽象化の複数のレベルでデータの表現を学習する複数の処理層を含む。N個の入力ニューロンがM個の出力ニューロンに接続される単一の処理層に対して、フォワード・サイクルは、ベクトル-行列乗算(y=Wx)を計算することを伴い、ここで、長さNのベクトルxが入力ニューロンの活動を表現し、サイズM×Nの行列Wが入力ニューロンと出力ニューロンの各ペアの間の重み値を格納する。長さMの結果として生じたベクトルyは、抵抗性記憶素子のそれぞれに対して非線形活性化を実施することによってさらに処理され、次いで、次の層に伝えられる。
情報が最終的な出力層に達すると、バックワード・パス・サイクルは、誤差信号を計算すること、およびANNを通じて誤差信号を逆伝搬させることを伴う。単一層でのバックワード・パス・サイクルは、重み行列(z=WTδ)の転置(各行と対応する列を入れ替えること)に対するベクトル-行列乗算を伴い、ここで、長さMのベクトルδが、出力ニューロンによって計算された誤差を表し、長さNのベクトルzが、ニューロン非線形性の導関数を使用してさらに処理され、次いで、前の層に伝えられる。
最後に、重み更新サイクルにおいて、重み行列Wは、フォワードおよびバックワード・パス・サイクルにおいて使用される2つのベクトルの外積を実施することによって更新される。2つのベクトルのこの外積は、しばしば、W←W+η(δxT)と表現され、ここで、ηは、全学習率(global learning rate)である。
この逆伝搬プロセス中に重み行列Wに対して実施される演算の全てが、対応する数のm行n列を有するRPUデバイス18のクロスポイント・アレイ12で実施されることが可能であり、ここで、クロスポイント・アレイ12に格納されたコンダクタンス値は、行列Wを形成する。フォワード・サイクルでは、入力ベクトルxは、伝導列ワイヤ16のそれぞれを通じて電圧パルスとして伝送され、結果として生じたベクトルyは、伝導行ワイヤ14からの電流出力として読み取られる。同様に、電圧パルスが、バックワード・パス・サイクルへの入力として伝導行ワイヤ14から供給されたとき、重み行列WTの転置に対してベクトル-行列積が計算される。最終的に、更新サイクルにおいて、ベクトルxおよびδを表す電圧パルスが、伝導列ワイヤ16および伝導行ワイヤ14から同時に供給される。したがって、各RPUデバイス18は、対応する伝導列ワイヤ16および伝導行ワイヤ14から来た電圧パルスを処理することによってローカル乗算および総和演算を実施し、したがって、増分重み更新を達成する。
RPUデバイスの抵抗値は、ANN訓練のために使用されることが可能な重み範囲を限定する限界および有限状態分解能(limited and finite state resolution)を有する有界範囲に限定される。さらに、RPUアレイ上で実施される演算は、本質的にアナログであり、したがって様々なノイズ源になりやすい。RPUアレイへの入力値が、(バックワード・パスについてのように)小さいとき、出力信号yは、ノイズで埋もれるおそれがあり、したがって正しくない結果を生じる。訓練位相では、ANN訓練は、逆伝搬を伴うSGDプロセスを伴うことがある。
CNN訓練は、バッチを使用して実施される。したがって、訓練のために使用されることになる入力データのバッチが選択される。入力マップおよび畳み込みカーネルを使用して、出力マップが生成される。出力マップの生成は、通常、「フォワード・パス」と呼ばれる。さらに、方法は、出力マップを使用して、予想されたキャラクタ認識およびCNNにどれだけ近かったかまたは遠かったかを判定することを含む。CNNを含む行列のそれぞれに対する誤差の程度が、勾配降下などを使用して判定される。相対的な誤差の判定は、「バックワード・パス」と呼ばれる。方法は、誤差を調節するために、行列を修正または更新することをさらに含む。出力誤差情報に基づいて畳み込みカーネルを調節すること、およびこれを使用して各ニューラル・ネットワーク行列に対する修正を決定することは、「更新パス」と呼ばれる。
図2は、本発明の実施形態による、RPUアレイ上での例示的なアナログ・ベクトル行列乗算を示す。
アナログ・ベクトル行列乗算100は、デジタル入力値(δ)110のセットを伴い、ここで、デジタル入力値(δ)110のそれぞれは、それぞれのアナログ信号パルス幅120で表される。アナログ信号パルス幅120は、アレイへの入力として提供され、生成された電流信号は、オペアンプ131の反転入力と、オペアンプ131の出力に(との間に)接続されたキャパシタ(Cint)132と共に、オペアンプ131を有する、演算増幅器(オペアンプ)統合回路130に入力される。オペアンプ131の非反転入力は、地面に接続される。オペアンプ131の出力は、アナログ-デジタル・コンバータ(ADC)140の入力にも接続される。ADC140は、RPUアレイ上でのアナログ・ベクトル行列乗算100の(デジタル化された)結果を表す信号ylを出力する。
完全積分時間の間、アナログ・ノイズが、オペアンプ131に集積される。入力値(δ)110が非常に小さくなると(例えば、バックワード・パスに対するように)、出力信号は、サイクル(SNR~0)の間に統合されたノイズで埋もれ、正しくない結果を生み出す。
実際のパルス持続期間は完全積分時間よりはるかに短いが、ADC140は、全サイクルがオペアンプ131からのアナログ出力を評価するのを待つ。アナログ・ノイズは、低減されることが望ましい。図3~図6は、フォワード・パス信号とバックワード・パス信号との間に対称の信号強度を提供することによってノイズを管理するための方法およびシステムを提示する。
図3は、本発明の実施形態による、RPUアレイの長方形サブ領域が使用される、フォワード・パスにおける例示的な長方形RPUアレイを示す図である。
各円202は、RPUハードウェア・システム200への別個のデジタル入力xを表している。例えば、フォワード・サイクル・パスでは、デジタル入力x(すなわち202)が、行列Wのm行に提供される。デジタル入力202は、RPUアレイ200によって受信されたとき、デジタルRPU入力x’(すなわち204)と表される。デジタルRPU入力204は、ノイズ/境界管理ユニットまたは構成要素210に送り込まれる。RPUアレイ225上で実施されるベクトル-行列乗算は、本質的にアナログであり、したがって様々なノイズ源になりやすい。したがって、ノイズ/境界管理ユニットまたは構成要素210は、ノイズ低減動作を実施する。(「DAコンバータ212」とラベルを付けられた)デジタル-アナログ・コンバータは、アナログ・パルス幅215のような、RPUアレイ225への入力としてデジタルRPU入力x′(すなわち204)を提供する。RPUアレイ225は、第1の領域230および第2の領域235を含む。第1の領域230は、使用されている長方形領域であり、その一方で、第2の領域235は、使用されていない領域である。「使用される」という用語によって、RPUがその重みに対応するコンダクタンスでロードされることが意味される。RPUアレイ230からの(アナログの)出力240は、(「ADコンバータ250」とラベルを付けられた)アナログ-デジタル・コンバータによって、デジタルRPU出力y′(すなわち260)のベクトルに変換される。デジタルRPU出力260は、別のノイズ/境界管理ユニットすなわち構成要素270に送り込まれる。さらに、ベクトル-行列乗算の結果はアナログ電圧であり、したがって結果は、回路によって課された信号限界によって有界である。したがって、ノイズ/境界管理ユニットすなわち構成要素270は、ノイズ低減動作を実施して、RPUアレイ230の出力における結果が確実に、常に受入れ可能な電圧振幅の範囲内にあるようにする。
結果として、抵抗性クロスバー素子の出力キャパシタは、(有限の出力境界bを生じる)有限のサイズであり、ゼロに近いアナログ出力信号が、有限のADC分解能により、ゼロにセットされる。したがって、RPUアレイ230のアナログ出力が非常に小さい場合、デジタル出力は、全てゼロになることがある。この効果は、ADC分解能が小さいとき、歓迎されない(例えば、出力境界bが変化しないままのとき、ADCビン・サイズが大きくなる)。この効果は、RPUアレイ230上に符号化された重み行列が、(図3に示されているような)正方形でない場合、特に歓迎されない。次いで、平均すると、フォワードおよびバックワード方向は、非常に異なる平均信号強度を有する。例えば、10クラス分類ネットワークでは、最後の完全接続層は、通常、1000×10のオーダーのサイズである。したがって、平均で、バックワード方向の信号が少なくとも
倍少なくなる。バックワード信号が非常に小さい(例えば、最小ADCビン・サイズより小さい)場合、誤差は、ゼロにセットされ、学習が失敗する。対称のRPU(例えば、ADC分解能および出力境界など、フォワードおよびバックワード方向に対して同じハードウェア・スペック)にとって、この効果は望ましくない。図4は、このような問題を軽減するための解決策を示している。
倍少なくなる。バックワード信号が非常に小さい(例えば、最小ADCビン・サイズより小さい)場合、誤差は、ゼロにセットされ、学習が失敗する。対称のRPU(例えば、ADC分解能および出力境界など、フォワードおよびバックワード方向に対して同じハードウェア・スペック)にとって、この効果は望ましくない。図4は、このような問題を軽減するための解決策を示している。
図4は、本発明の実施形態による、正方形RPUアレイ全体が使用される、フォワード・パスにおける例示的な正方形RPUアレイを示す図である。
図3と同様の要素は、明瞭さのために説明されない。RPUハードウェア・システム200’は、重み行列W(225)の長方形の構成を、ほぼまたはおよそまたは実質的に正方形の構成に変換または修正するために追加の重み要素が使用されるように、重み行列W(225)がk回複製されているという点で、RPUハードウェア・システム200(図3)とは異なる。RPUアレイ(225)は、常に物理的に正方形であることが指摘される。それでも、重み行列が長方形である場合、および重み行列の列の数がRPUアレイの入力次元に合うと想定して、物理的に正方形のRPUアレイの長方形サブ領域だけが使用されている。上述のように、「使用される」という用語によって、RPUがその重みに対応するコンダクタンスでロードされることが意味される。したがって、図3では、第2の領域235(RPUのいくつかの行または列あるいはその両方を含む)は、使用されていない。それでも、図4では、重み行列は、重み行列W(225)の長方形の構成を、実質的にまたはほぼ正方形の構成に変換または修正するために、RPU405のより多くの行または列あるいはその両方を追加することによって、サイズが増加される。複製または反復された行または列あるいはその両方405は、長方形重み行列225をより正方形にする。複製または反復された行または列あるいはその両方は、ノイズ/境界管理ユニット270の後で280と表されており、合計され(282)、したがって、1行毎に1つの出力を生じる。反復された重み280の全てまたはただ1つの反復された重み290が更新される。ただ1つが更新された場合、反復された重み290は、ランダムに選ばれることも、順次選択されることも可能である。したがって、第2の実施形態では、反復された重みのうちの全てのサブセットだけが、同時にまたは並行して更新される。
システムは、全ての重み行列の反復の数を計算することによって、およそまたは実質的に正方形の構成を実現するためにどれだけの行/列を追加すべきかを知っている。全ての重み行列の反復の数を計算することによって、システムは、行列Wの出力次元m(行の数)で行列Wの入力次元Nの数(列の数)を単純に割り、最大整数を得ることができ、例えば、r=floor(N/M)である。これは、全ての行/列がどれだけ反復されるかについての数である。例えば、M=250およびN=512の場合、r=2であり、結果として生じる重み行列は、サイズN=512であり、M=250*r=500である。この方法は、重み行列をおよそ正方形にするだけである。
したがって、図3に関して上述された問題を解決するために、行/列405が追加され、フォワード・パスとバックワード・パス両方の信号強度に対称性をもたらす。バックワード・パス信号強度は、フォワード・パス信号強度に正確にマッチする必要はないことが指摘される。それでも、入力次元がRPUアレイ・サイズと同様であると想定される場合、バックワード・パス信号強度は最大化される。これは、物理的なRPUレイアウトが実質的にまたはほぼ正方形なので、システムが、必要な行より多くの行を追加するのを防ぐはずである。
特に、正方形サイズのRPUクロスバー・アレイを想定して、例示的実施形態は、行または列あるいはその両方の複製が長方形重み行列Wをより正方形にすることを可能にする。言い換えれば、物理的に、RPUアレイは常に正方形である。それでも、図3で詳しく述べるように、RPUアレイの長方形サブ領域だけが実際に使用されている。したがって、例示的実施形態は、より多くの利用可能なクロスポイントの使用を可能にし、したがって、反復された列を一緒に追加することによって、出力/入力処理がデジタルで追加される。
例えば、Wは、サイズm×nであることが想定される。多くのDNNネットワークでは、m<<n、例えば、出力次元は入力次元よりはるかに小さい。
バックワード・パスでは、図5および図6を参照しながら、下記で詳しく説明される。
したがって、対応する新しいデルタ入力が元のデルタからコピーされる。
通常、複製の数kは、mk≒nであるように選ばれる(一方で、クロスバー・アレイの物理的なサイズ限界を超過しない)。追加として、kが、b/wmaxより小さいことが保証され、ここで、bは、出力境界(約12)であり、wmaxは、最大重み(約0.6)である。したがって、kは、mk≒nを実現するために最大化されるが、b/wmax(約20)より大きくない。
図5は、本発明の実施形態による、RPUアレイの長方形サブ領域が使用される、バックワード・パスにおける例示的な長方形RPUアレイを示す図である。
RPUハードウェア・システム500では、RPUアレイ525上で実施されるベクトル-行列乗算は、本質的にアナログであり、したがって様々なノイズ源になりやすい。したがって、ノイズ/境界管理ユニット510は、ノイズ低減動作を実施する。(「DAコンバータ512」とラベルを付けられた)デジタル-アナログ・コンバータは、アナログ・パルス幅515のような、RPUアレイ525への入力としてデジタルRPU入力x’(すなわち560、図6)を提供する。RPUアレイ525は、第1の領域530および第2の領域535を含む。第1の領域530は、使用されている長方形領域であり、その一方で、第2の領域535は、使用されていない領域である。「使用される」という用語によって、RPUがその重みに対応するコンダクタンスでロードされることが意味される。RPUアレイ530からの(アナログ)出力240は、(「ADコンバータ250」とラベルを付けられた)アナログ-デジタル・コンバータによって、デジタルRPU出力y’(すなわち260)のベクトルに変換される。デジタルRPU出力260は、別のノイズ/境界管理ユニット270に送り込まれる。さらに、ベクトル-行列乗算の結果は、アナログ電圧であり、したがって、結果は、回路によって課された信号限界によって有界である。したがって、ノイズ/境界管理ユニット270は、ノイズ低減動作を実施して、RPUアレイ530の出力における結果が確実に、受入れ可能な電圧振幅の範囲内であるようにする。デジタル出力272は、ノイズ/境界管理ユニット270から出力される。
上述のように、抵抗性クロスバー素子の出力キャパシタは、有限サイズ(有限の出力境界bになる)であり、ゼロに近いアナログ出力信号は、有限のADC分解能により、ゼロにセットされる。したがって、RPUアレイ530のアナログ出力が非常に小さい場合、デジタル出力は全てゼロになることがある。この効果は、ADC分解能が小さいとき、歓迎されない(例えば、ADCビン・サイズは、出力境界bが変化しないままであるとき、大きくなる)。この効果は、RPUアレイ530上に符号化された重み行列が、(図5に示されているような)正方形でない場合、特に歓迎されない。したがって、平均して、フォワードおよびバックワード方向は、平均信号強度が非常に異なる。バックワード信号が非常に小さい(例えば、最小のADCビン・サイズより小さい)場合、誤差がゼロにセットされ、学習が失敗する。対称のRPU(例えば、ADC分解能および出力境界など、フォワードおよびバックワード方向に対して同じハードウェア・スペック)にとって、この効果は望ましくない。図6は、このような問題を軽減するための解決策を示す。
図6は、本発明の実施形態による、正方形RPUアレイ全体が使用され、各列が正確に一度反復されるように出力次元mが入力次元の半分である、バックワード・パスにおける例示的な長方形RPUアレイを示す図である。
バックワード・サイクル・パスでは、デジタル入力x(すなわち550)は、行列W(525)のn列に提供される。RPUハードウェア・システム500’は、重み行列W(525)の長方形の構成を実質的にまたはほぼ正方形の構成に変換または修正するために追加の重み要素が使用されるように、重み行列W(525)がk回複製されているという点でRPUハードウェア・システム500(図5)とは異なる。重み行列W(525)は、常に物理的に正方形であることが指摘される。それでも、物理的に正方形のRPUアレイの長方形サブ領域だけが使用されている。上述のように、「使用される」という用語によって、RPUがその重みに対応するコンダクタンスでロードされることが意味される。したがって、図5では、(RPUのいくつかの行または列あるいはその両方を含む)第2の領域535は、使用されていない。それでも、図6では、重み行列は、重み行列W(525)の長方形の構成を実質的にまたはほぼ正方形の構成に変換または修正するために、RPU605のより多くの行または列あるいはその両方を追加することによってサイズが増加される。複製または反復された行または列あるいはその両方605は、長方形重み行列525をより正方形にする。複製または反復された行または列あるいはその両方は、ノイズ/境界管理ユニット510の前で560と表されている。
図7は、本発明の実施形態による、フォワード・パスおよびバックワード・パスにおいて使用される例示的な等式700のブロック/流れ図である。
結論として、例示的実施形態は、物理的なアナログ・クロスバー上にDNNの長方形重み行列を複製/反復/連結し、フォワード・パス中に、反復された重み要素への入力をコピーする方法およびシステムを開示する。例示的実施形態は、物理的なアナログ・クロスバー上にDNNの長方形重み行列を複製/反復/連結し、元の重み行列に対して1行毎に1つの出力を生じるように、反復された重み要素からの出力された計算結果を平均または合計する方法およびシステムをさらに開示する。例示的実施形態は、物理的なアナログ・クロスバー上にDNNの長方形重み行列を複製/反復/連結し、逆伝搬誤差に応じて、各反復された重みを更新する方法およびシステムをさらに開示する。例示的実施形態は、物理的なアナログ・クロスバー上にDNNの長方形重み行列を複製/反復/連結し、更新パス中に、1からゼロを除いて、バックワード・デルタ(またはフォワード値)の全てをセットすることによって、反復された重み要素のうちのただ1つを更新する方法またはシステムをさらに開示する。
図8は、コンピューティング・デバイス905を含むシステム900の構成要素のブロック図を描写している。図8は、1つの実装形態の例証を提供しているにすぎず、異なる実施形態が実施されることが可能な環境に関するどのような限定も示唆していないことを理解されたい。描写された環境への多くの修正が行われることが可能である。
コンピューティング・デバイス905は、通信ファブリック902を含み、通信ファブリック902は、コンピュータ・プロセッサ904、メモリ906、永続ストレージ908、通信ユニット910、および入力/出力(I/O:input/output)インターフェース912の間の通信を提供する。通信ファブリック902は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、ならびに、システム内の任意の他のハードウェア構成要素の間でデータを伝えること、または情報を制御すること、あるいはその両方を行うようにデザインされた任意のアーキテクチャで実装されることが可能である。例えば、通信ファブリック902は、1つまたは複数のバスで実装されることが可能である。
メモリ906、キャッシュ・メモリ916、および永続ストレージ908は、コンピュータ可読ストレージ媒体である。本実施形態では、メモリ906は、ランダム・アクセス・メモリ(RAM:random access memory)914を含む。一般に、メモリ906は、任意の適切な揮発性または不揮発性コンピュータ可読ストレージ媒体を含むことができる。
本発明のいくつかの実施形態では、深層学習プログラム925が含まれ、コンピューティング・デバイス905の構成要素としての神経形態学的チップ922によって動作される。他の実施形態では、深層学習プログラム925は、メモリ906の1つまたは複数のメモリを介した、それぞれのコンピュータ・プロセッサ904のうちの1つまたは複数と共に神経形態学的チップ922による実行のために、永続ストレージ908に格納される。本実施形態では、永続ストレージ908は、磁気ハードディスク・ドライブを含む。磁気ハードディスク・ドライブの代替として、またはこれに加えて、永続ストレージ908は、ソリッド・ステート・ハード・ドライブ、半導体ストレージ・デバイス、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、フラッシュ・メモリ、または、プログラム命令もしくはデジタル情報を格納できる任意の他のコンピュータ可読ストレージ媒体を含むことができる。
永続ストレージ908によって使用される媒体は、さらに、取外し可能であることが可能である。例えば、取外し可能ハード・ドライブが、永続ストレージ908のために使用されることが可能である。他の例は、光および磁気ディスク、サム・ドライブ、ならびに、永続ストレージ908の一部でもある別のコンピュータ可読ストレージ媒体への転送のためにドライブに挿入されるスマート・カードを含む。
本発明のいくつかの実施形態では、神経形態学的チップ922は、コンピューティング・デバイス905に含まれ、通信ファブリック902に接続されている。
通信ユニット910は、これらの例では、分散データ処理環境のリソースを含む他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット910は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット910は、物理通信リンクおよびワイヤレス通信リンクのどちらか一方または両方を使用した通信を提供することができる。深層学習プログラム925は、通信ユニット910を通じて永続ストレージ908にダウンロードされることが可能である。
I/Oインターフェース912は、コンピューティング・システム900に接続されることが可能な他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインターフェース912は、キーボード、キーパッド、タッチ・スクリーン、または他のいくつかの適切な入力デバイス、あるいはその組合せなど、外部デバイス918への接続を提供することができる。外部デバイス918は、さらに、例えば、サム・ドライブ、ポータブル光または磁気ディスク、およびメモリ・カードなどの、ポータブル・コンピュータ可読ストレージ媒体を含むことができる。
ディスプレイ920は、ユーザにデータを表示するためのメカニズムを提供し、例えば、コンピュータ・モニタであることが可能である。
図9は、本発明の実施形態による、RPUクロスバー・アレイ上の重み反復によって信号強度を増強するための方法の例示的ブロック/流れ図である。
ブロック1010において、物理的なアナログ・クロスバー上にDNNの長方形重み行列を複製または反復または連結する。
ブロック1020において、フォワード・パス中に、反復された重み要素への入力をコピーする。
ブロック1030において、元の重み行列に対して1行毎に1つの出力を生じる、反復された重み要素からの出力された計算結果を平均または合計する。
ブロック1040において、逆伝搬誤差に応じて、各反復された重みを更新すること、または代替として、更新パス中に、1からゼロを除いて、バックワード・デルタ(もしくはフォワード値)の全てをセットすることによって、反復された重み要素のうちのただ1つを更新することを行う。
本明細書で使用されるような「データ」、「内容」、「情報」という用語、および同様の用語は、様々な実例の実施形態に従って、キャプチャ、伝送、受信、表示、または格納、あるいはその組合せが行われることが可能なデータを指すよう、区別なく使用されることが可能である。したがって、任意のこのような用語の使用は、本開示の思想および範囲を限定するものと理解されるべきではない。さらに、コンピューティング・デバイスが、別のコンピューティング・デバイスからのデータを受信するように本明細書で説明される場合、データは、別のコンピューティング・デバイスから直接的に受信されることが可能であるか、あるいは、例えば、1つもしくは複数のサーバ、中継器、ルータ、ネットワーク・アクセス・ポイント、基地局、もしくは同様のもの、またはその組合せなど、1つまたは複数の中間コンピューティング・デバイスを介して間接的に受信されることが可能である。
ユーザとの対話を行うために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するための、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタのような、表示デバイスと、ユーザがコンピュータへの入力を行える、例えば、マウスまたはトラックボールのような、キーボードおよびポインティング・デバイスとを有するコンピュータで実施されることが可能である。同様にユーザとの対話を行うために、他の種類のデバイスが使用されることが可能であり、例えば、ユーザに対して行われるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックのような、任意の形の感覚フィードバックであることが可能であり、ユーザからの入力は、音響、会話、または触覚入力を含む任意の形で受信されることが可能である。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであることが可能である。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納できる有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せが可能であるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令を記録したパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。本明細書で使用されるようなコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、本質的に一過性の信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せのような、ネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各計算/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイスのコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む,1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであることが可能である。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、または、部分的にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして,あるいは、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されることが可能であるか、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われることが可能である。いくつかの実施形態では、例えば、プログラム可能ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路構成部分は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路構成部分を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックまたはモジュールで指定された機能/行為を実施するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または機械を生み出すための他のプログラム可能データ処理装置の少なくとも1つのプロセッサに提供されることが可能である。これらのコンピュータ可読プログラム命令は、命令を格納したコンピュータ可読ストレージ媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックまたはモジュールで指定された機能/行為の態様を実行する命令を含む製品を含むべく、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の様式で機能するように指図できるように、コンピュータ可読ストレージ媒体に格納されることも可能である。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックまたはモジュールで指定された機能/行為を実施するべく、コンピュータ実行プロセスを生み出すために、コンピュータ、他のプログラム可能装置または他のデバイスで一連の動作ブロック/ステップを実施するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされることも可能である。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。この点に関して、流れ図またはブロック図の中の各ブロックは、指定の論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは異なって発生させることができる。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されることが可能であり、またはブロックは、時には、含まれる機能に応じて、逆の順序で実行されることが可能である。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を行うか、または、専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることがさらに指摘される。
本原理の「1つの実施形態」または「実施形態」、およびその他の変形形態の本明細書における参照は、実施形態と共に説明された特定の特徴、構造、特性などが、本原理の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書の全体を通して様々な場所に現れる「1つの実施形態では」または「実施形態では」という句、および任意の他の変形形態の出現は、必ずしも同じ実施形態を全て指すわけではない。
以下の「/」、「および/または」、ならびに「のうちの少なくとも1つ」のいずれかの使用は、例えば、「A/B」、「Aおよび/またはB」、ならびに「AおよびBのうちの少なくとも1つ」のケースでは、第1のリスト化されたオプション(A)のみの選択、または第2のリスト化されたオプション(B)のみの選択、または両方のオプション(AとB)の選択を包含することを意図していることを認識されたい。さらなる例として、「A、B、および/またはC」ならびに「A、B、およびCのうちの1つ少なくとも」のケースでは、このような言い回しは、第1のリスト化されたオプション(A)のみの選択、または第2のリスト化されたオプション(B)のみの選択、または第3のリスト化されたオプション(C)のみの選択、または第1と第2のリスト化されたオプション(AとB)のみの選択、または第1と第3のリスト化されたオプション(AとC)のみの選択、または第2と第3のリスト化されたオプション(BとC)のみの選択、または3つのオプション全て(AとBとC)の選択を包含することを意図している。これは、当業者によって容易に明らかなように、リスト化された同数の項目に対して拡張されることが可能である。
RPUクロスポイント・アレイ上での重み反復により信号強度を増強するためのシステムおよび方法の好ましい実施形態が説明されてきた(これは、例証であることを意図し、限定ではない)が、上記の教示の観点から当業者によって修正および変更が行われることが可能であることが指摘される。したがって、添付の特許請求の範囲で概説されるような、本発明の範囲内の、説明された特定の実施形態において変更が行われてもよいことを理解されたい。このように、詳細と共に、特許法で特に求められる、本発明の態様を説明したが、特許証によって保護される、請求されるものおよび望まれるものは、添付の特許請求の範囲に示されている。
Claims (25)
- 人工ニューラル・ネットワーク(ANN)訓練のための方法であって、
抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、前記RPUデバイスのアレイが、前記RPUデバイスの抵抗値としてm行n列の前記ANNの重み行列Wの重み値を前記アレイに格納することによって、前記重み行列Wを表す、前記格納することと、
前記重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように前記重み行列Wを定義することと、
フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、
1行毎に1つの出力を生じる前記反復された重み要素からの出力された計算結果を合計すること、および
逆伝搬された誤差に応じて、前記反復された重み要素のそれぞれを更新すること
によって、バックワード・パス信号の信号強度を増強するために、前記重み行列Wの長方形構成を反復または連結することによって、前記長方形構成からより正方形の構成に前記重み行列Wを変換することと
を含む、方法。 - 前記重み要素が、前記重み行列Wの前記m行n列である、請求項1に記載の方法。
- 前記重み行列Wに追加された前記反復された重み要素が、フォワード・パス信号と前記バックワード・パス信号との間の対称の信号強度を提供する、請求項1に記載の方法。
- 前記フォワード・サイクル・パスにおいて、デジタルRPU入力が、前記RPUデバイスのアレイによって受信される前に、第1のノイズ/境界測定構成要素およびデジタル-アナログ・コンバータ(DAC)に送り込まれる、請求項1に記載の方法。
- 前記フォワード・サイクル・パスにおいて、前記反復された重み要素からの前記出力された計算結果が、アナログ-デジタル・コンバータ(ADC)によって処理された後に、合計される、請求項4に記載の方法。
- 人工ニューラル・ネットワーク(ANN)訓練のためのコンピュータ可読プログラムを含む非一過性コンピュータ可読ストレージ媒体であって、前記コンピュータ可読プログラムが、コンピュータで実行されると、
抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、前記RPUデバイスのアレイが、前記RPUデバイスの抵抗値としてm行n列の前記ANNの重み行列Wの重み値を前記アレイに格納することによって、前記重み行列Wを表す、前記格納することと、
前記重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように前記重み行列Wを定義することと、
フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、
1行毎に1つの出力を生じる前記反復された重み要素からの出力された計算結果を合計すること、および
逆伝搬された誤差に応じて、前記反復された重み要素のそれぞれを更新すること
によって、バックワード・パス信号の信号強度を増強するために、前記重み行列Wの長方形構成を反復または連結することによって、前記長方形構成からより正方形の構成に前記重み行列Wを変換することと
を行うステップを前記コンピュータに実施させる、非一過性コンピュータ可読ストレージ媒体。 - 前記重み要素が、前記重み行列Wの前記m行n列である、請求項8に記載の非一過性コンピュータ可読ストレージ媒体。
- 前記重み行列Wに追加された前記反復された重み要素が、フォワード・パス信号と前記バックワード・パス信号との間の対称の信号強度を提供する、請求項8に記載の非一過性コンピュータ可読ストレージ媒体。
- 前記フォワード・サイクル・パスにおいて、デジタルRPU入力が、前記RPUデバイスのアレイによって受信される前に、第1のノイズ/境界測定構成要素およびデジタル-アナログ・コンバータ(DAC)に送り込まれる、請求項8に記載の非一過性コンピュータ可読ストレージ媒体。
- 前記フォワード・サイクル・パスにおいて、前記反復された重み要素からの前記出力された計算結果が、アナログ-デジタル・コンバータ(ADC)によって処理された後に、合計される、請求項11に記載の非一過性コンピュータ可読ストレージ媒体。
- 人工ニューラル・ネットワーク(ANN)訓練のためのシステムであって、
重み値を格納するための抵抗処理ユニット(RPU)デバイスのアレイであって、前記RPUデバイスの抵抗値としてm行n列の前記ANNの重み行列Wの重み値を前記アレイに格納することによって、前記重み行列Wを表す、前記RPUデバイスのアレイと、
前記アレイにおける前記RPUデバイス間の電圧を制御するためのプロセッサであって、
前記重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように前記重み行列Wを定義すること、および
バックワード・パス信号の信号強度を増強するために、前記重み行列Wの長方形構成を反復または連結することによって、前記長方形構成からより正方形の構成に前記重み行列Wを変換すること
を行う、前記プロセッサと
を備える、システム。 - 前記信号強度が、
フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、
1行毎に1つの出力を生じる前記反復された重み要素からの出力された計算結果を合計すること、および
逆伝搬された誤差に応じて、前記反復された重み要素のそれぞれを更新すること、または代替として、更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、前記反復された重み要素のうちのただ1つを更新すること
によって、増強される、請求項15に記載のシステム。 - 前記重み行列Wに追加された前記反復された重み要素が、フォワード・パス信号と前記バックワード・パス信号との間の対称の信号強度を提供する、請求項16に記載のシステム。
- 前記フォワード・サイクル・パスにおいて、デジタルRPU入力が、前記RPUデバイスのアレイによって受信される前に、第1のノイズ/境界測定構成要素およびデジタル-アナログ・コンバータ(DAC)に送り込まれる、請求項17に記載のシステム。
- 前記フォワード・サイクル・パスにおいて、前記反復された重み要素からの前記出力された計算結果が、アナログ-デジタル・コンバータ(ADC)によって処理された後に、合計される、請求項18に記載のシステム。
- 前記更新された1つの反復された重み要素が、ランダムに選択される、請求項16に記載のシステム。
- 人工ニューラル・ネットワーク(ANN)訓練のための方法であって、
抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、前記RPUデバイスのアレイが、前記RPUデバイスの抵抗値としてm行n列の前記ANNの重み行列Wの重み値を前記アレイに格納することによって、前記重み行列Wを表す、前記格納することと、
前記重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように前記重み行列Wを定義することと、
フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、
1行毎に1つの出力を生じる前記反復された重み要素からの出力された計算結果を合計すること、および
更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、前記反復された重み要素のうちのただ1つを更新すること
によって、バックワード・パス信号の信号強度を増強するために、前記重み行列Wの長方形構成を反復または連結することによって、前記長方形構成からより正方形の構成に前記重み行列Wを変換することと
を含む、方法。 - 前記重み行列Wに追加された前記反復された重み要素が、フォワード・パス信号と前記バックワード・パス信号との間の対称の信号強度を提供する、請求項21に記載の方法。
- 前記フォワード・サイクル・パスにおいて、デジタルRPU入力が、前記RPUデバイスのアレイによって受信される前に、第1のノイズ/境界測定構成要素およびデジタル-アナログ・コンバータ(DAC)に送り込まれる、請求項21に記載の方法。
- 前記フォワード・サイクル・パスにおいて、前記反復された重み要素からの前記出力された計算結果が、アナログ-デジタル・コンバータ(ADC)によって処理された後に、合計される、請求項23に記載の方法。
- 人工ニューラル・ネットワーク(ANN)訓練のためのコンピュータ可読プログラムを含む非一過性コンピュータ可読ストレージ媒体であって、前記コンピュータ可読プログラムが、コンピュータで実行されると、
抵抗処理ユニット(RPU)デバイスのアレイに重み値を格納することであって、前記RPUデバイスのアレイが、前記RPUデバイスの抵抗値としてm行n列の前記ANNの重み行列Wの重み値を前記アレイに格納することによって、前記重み行列Wを表す、前記格納することと、
前記重み行列Wが長方形構成を有するように、入力次元より小さい出力次元を有するように前記重み行列Wを定義することと、
フォワード・サイクル・パス中に、反復された重み要素の入力をコピーすること、
1行毎に1つの出力を生じる前記反復された重み要素からの出力された計算結果を合計すること、および
更新パス中に、1からゼロまでを除く全てのフォワード値をセットすることによって、前記反復された重み要素のうちのただ1つを更新すること
によって、バックワード・パス信号の信号強度を増強するために、前記重み行列Wの長方形構成を反復または連結することによって、前記長方形構成からより正方形の構成に前記重み行列Wを変換することと
を行うステップを前記コンピュータに実施させる、非一過性コンピュータ可読ストレージ媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/086,856 | 2020-11-02 | ||
US17/086,856 US20220138579A1 (en) | 2020-11-02 | 2020-11-02 | Weight repetition on rpu crossbar arrays |
PCT/IB2021/059959 WO2022090980A1 (en) | 2020-11-02 | 2021-10-28 | Weight repetition on rpu crossbar arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023547800A true JP2023547800A (ja) | 2023-11-14 |
Family
ID=81379059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023522777A Pending JP2023547800A (ja) | 2020-11-02 | 2021-10-28 | Rpuクロスバー・アレイ上の重み反復 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220138579A1 (ja) |
JP (1) | JP2023547800A (ja) |
CN (1) | CN116391192A (ja) |
DE (1) | DE112021004941T5 (ja) |
GB (1) | GB2614687B (ja) |
WO (1) | WO2022090980A1 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102558300B1 (ko) * | 2016-06-09 | 2023-07-21 | 프로그레스, 인코포레이티드 | 신경망 및 신경망 트레이닝 방법 |
WO2018113790A1 (zh) * | 2016-12-23 | 2018-06-28 | 北京中科寒武纪科技有限公司 | 一种人工神经网络运算的装置及方法 |
US11348002B2 (en) * | 2017-10-24 | 2022-05-31 | International Business Machines Corporation | Training of artificial neural networks |
CN108053029B (zh) * | 2017-12-27 | 2021-08-27 | 上海闪易半导体有限公司 | 一种基于存储阵列的神经网络的训练方法 |
US20190251430A1 (en) * | 2018-02-13 | 2019-08-15 | International Business Machines Corporation | Mixed signal cmos rpu with digital weight storage |
US11455520B2 (en) * | 2019-06-14 | 2022-09-27 | International Business Machines Corporation | Copying weights between resistive cross-point arrays |
CN110796241B (zh) * | 2019-11-01 | 2022-06-17 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
US11586601B2 (en) * | 2020-02-05 | 2023-02-21 | Alibaba Group Holding Limited | Apparatus and method for representation of a sparse matrix in a neural network |
-
2020
- 2020-11-02 US US17/086,856 patent/US20220138579A1/en active Pending
-
2021
- 2021-10-28 JP JP2023522777A patent/JP2023547800A/ja active Pending
- 2021-10-28 WO PCT/IB2021/059959 patent/WO2022090980A1/en active Application Filing
- 2021-10-28 GB GB2306109.6A patent/GB2614687B/en active Active
- 2021-10-28 CN CN202180071597.7A patent/CN116391192A/zh active Pending
- 2021-10-28 DE DE112021004941.0T patent/DE112021004941T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2614687B (en) | 2024-02-21 |
GB2614687A (en) | 2023-07-12 |
CN116391192A (zh) | 2023-07-04 |
US20220138579A1 (en) | 2022-05-05 |
GB202306109D0 (en) | 2023-06-07 |
DE112021004941T5 (de) | 2023-07-13 |
WO2022090980A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kendall et al. | Training end-to-end analog neural networks with equilibrium propagation | |
US11348002B2 (en) | Training of artificial neural networks | |
CN107924227B (zh) | 电阻处理单元 | |
Nandakumar et al. | Mixed-precision architecture based on computational memory for training deep neural networks | |
US10755170B2 (en) | Resistive processing unit with hysteretic updates for neural network training | |
Lammie et al. | MemTorch: An open-source simulation framework for memristive deep learning systems | |
US9646243B1 (en) | Convolutional neural networks using resistive processing unit array | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
JP7422782B2 (ja) | 非対称rpuデバイスによるdnnの訓練 | |
WO2020074996A1 (en) | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays | |
JP7357080B2 (ja) | Rpuアレイのためのノイズおよび信号管理 | |
KR20230029759A (ko) | 아날로그 크로스바 어레이들을 업데이트하기 위한 희소 수정가능 비트 길이 결정 펄스 생성 | |
US20200380349A1 (en) | Auto Weight Scaling for RPUs | |
JP2023547800A (ja) | Rpuクロスバー・アレイ上の重み反復 | |
US20230097217A1 (en) | Learning static bound management parameters for analog resistive processing unit system | |
CN117136363A (zh) | 深度神经网络训练 | |
Halawani et al. | A re-configurable memristor array structure for in-memory computing applications | |
Chen et al. | A Multifault‐Tolerant Training Scheme for Nonideal Memristive Neural Networks | |
GB2587021A (en) | Physical implementation of artificial neural networks | |
AU2021296187B2 (en) | Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory | |
US20220207344A1 (en) | Filtering hidden matrix training dnn | |
US20240135166A1 (en) | Dnn training algorithm with dynamically computed zero-reference | |
WO2024083180A1 (en) | Dnn training algorithm with dynamically computed zero-reference. | |
Fahimi | Energy-Efficient Neuromorphic Computing with CMOS-Integrated Memristive Crossbars | |
WO2023180037A1 (en) | Calibrating analog resistive processing unit system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231026 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240307 |