JP2024502785A - 隠れ行列訓練dnnのフィルタリング - Google Patents

隠れ行列訓練dnnのフィルタリング Download PDF

Info

Publication number
JP2024502785A
JP2024502785A JP2023539103A JP2023539103A JP2024502785A JP 2024502785 A JP2024502785 A JP 2024502785A JP 2023539103 A JP2023539103 A JP 2023539103A JP 2023539103 A JP2023539103 A JP 2023539103A JP 2024502785 A JP2024502785 A JP 2024502785A
Authority
JP
Japan
Prior art keywords
matrix
weight
hidden
vector
rpu
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
Application number
JP2023539103A
Other languages
English (en)
Inventor
ゴクメン,タイフン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2024502785A publication Critical patent/JP2024502785A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

1つの観点において、DNNを訓練する方法は、重み行列Wを通じて入力ベクトルxを送信すること、そして、得られた結果の出力ベクトルyを読み取ること、エラー信号δを送信すること、行列Aの導電性の行線を通じてエラー信号δを有する入力ベクトルxを送信すること、入力ベクトルeiを送信すること、及び得られた結果の出力ベクトルy'を電流出力として読み取ることを含む。該訓練はまた、該入力ベクトルeiの転置によって乗算された該出力ベクトルy'を各H値に反復して加えることによって、RPUデバイスのH値を含む隠れ行列Hを更新することを含む。該訓練はまた、H値が閾値に達したときに、該重み行列Wの導電性の行線を通じて閾値に達した該H値の符号情報を電圧パルスとして送信すると同時に、該重み行列Wの導電性の列線を通じて該入力ベクトルeiを電圧パルスとして送信することを含む。【選択図】図1

Description

本発明は、一般的に深層ニューラルネットワーク(DNN:deep neural network)訓練に関し、より特には、抵抗処理ユニット(RPU:resistive processing unit)デバイスからの信号をフィルタリングしてノイズを低減する技術に関する。
深層ニューラルネットワーク(DNN)は、抵抗デバイス、例えば抵抗処理ユニット(RPU)、のアナログクロスポイントアレイにおいて具現化されることができる。RPUデバイスは一般的に、第1の端子、第2の端子、及びアクティブ領域を備えている。該アクティブ領域のコンダクタンス状態は、RPUの重み値を識別し、それは、第1の端子/第2の端子への信号の印加によって更新/調整されることができる。
DNNベースのモデルは、様々な異なる認知ベースのタスク、例えば、物体認識及び音声認識、並びに自然言語処理、の為に使用されてきている。そのようなタスクを実行する場合に精度の高いレベルを提供する為には、DNNの訓練が必要である。大規模なDNNの訓練は、大量の計算を必要とするタスクである。DNN訓練の一般的な方法、例えば、バックプロパゲーション及び確率的勾配降下法(SGD:stochastic gradient decent)等、のほとんどは、正確に動作する為にRPUが「対称的」(symmetric)であることを必要とする。対称的なアナログ抵抗デバイスは、正負の電圧パルスに付される場合に、コンダクタンスを対称的に変化させる。しかしながら、実際には、RPUデバイスは非線形で且つ非対称なスイッチング特性を示す場合がある。例えば、電圧パルスが印加されて、重みを上下に調整する場合に、しばしば、アップの調整とダウンの調整との間に不均衡が生じる。
本発明は、深層ニューラルネットワーク(DNN)を訓練する為の技術を提供する。該方法は、重み行列Wの導電性の列線を通じて入力ベクトルxを電圧パルスとして送信すること、そして、得られた結果の出力ベクトルyを該重み行列Wの導電性の行線から電流出力として読み取ることを含む。該RPUデバイスが該DNNにおけるニューロン間の重み付けされた接続として機能するように、該重み行列Wは、該導電性の列線と該導電性の行線との間の交差を分離する抵抗処理ユニット(RPU)デバイスを備えうる。該訓練は、該導電性の行線を通じて、出力ベクトルyから計算されたエラー信号δを電圧パルスとして送信すること、及び該導電性の列線からの電流出力として、得られた結果の出力ベクトルzを読み取ることを更に含みうる。該訓練は、行列Aの導電性の行線を通じてエラー信号δと同時に、該行列Aの導電性の列線を通じて該入力ベクトルxを電圧パルスとして送信することを更に含みうる。該訓練は、クロスポイントアレイAの該導電性の列線を通じて入力ベクトルeiを電圧パルスとして送信すること、そして、得られた結果の出力ベクトルy'を該クロスポイントアレイAの該導電性の列線から電流出力として読み取ることを更に含みうる。該訓練は、該入力ベクトルeiの転置によって乗算された該出力ベクトルy'を各H値であるHijに反復して加えることによって、各RPUについてのH値を有する隠れ行列Hを更新することを更に含みうる。該訓練は、H値が閾値に達したときに、該重み行列Wの導電性の行線を通じて閾値に達した該H値の符号情報を電圧パルスとして送信すると同時に、該重み行列Wの導電性の列線を通じて該入力ベクトルeiを電圧パルスとして送信することを更に含みうる。
本発明の1つの実施態様はまた、深層ニューラルネットワーク(DNN)を備えている。該DNNは、導電性の行線と導電性の列線との間の交点を分離する抵抗処理ユニット(RPU)デバイスを含む行列Aを含み、ここで、該RPUデバイスは、該DNNにおけるニューロン間の重み付けされた接続の為の処理された勾配を含む。該DNNはまた、導電性の行線と導電性の列線との間の交点を分離するRPUデバイスからなる重み行列Wを含み得、ここで、該RPUデバイスは、該DNNにおけるニューロン間の重み付けされた接続を含む。該DNNは、該重み行列Wにおける各RPUデバイスについてのH値を含む隠れ行列Hを更に含みうる。少なくとも1つのH値が閾値を超えるまで、該H値が該行列Aから値を反復して加えうる。
本発明のより完全な理解、並びに本発明の更なる特徴及び利点は、以下の詳細な説明及び図面を参照することによって得られるであろう。
ここで、本発明の1つの実施態様は、添付の図面を参照して例示の為にのみ説明されるであろう。
図1は、本発明の1つの実施態様に従う抵抗処理ユニット(RPU)デバイスのアナログクロスポイントアレイにおいて具現化される深層ニューラルネットワーク(DNN)を説明する為の図である。 図2Aは、本発明の1つの実施態様に従う、線形且つ対称なRPUデバイスの理想的なスイッチング特性を示す図である。 図2Bは、本発明の1つの実施態様に従う、非線形且つ非対称なRPUデバイスの非理想的なスイッチング特性を示す図である。 図3は、本発明の1つの実施態様に従う、DNNを訓練する為の例示的な方法論を示す図である。 図4は、本発明の1つの実施態様に従う、行列Wに対応する2つの相互接続されたアレイ(すなわち、アレイW及び参照アレイ)を示す図であり、該参照アレイは、行列Wのゼロ重み値に対応するコンダクタンス値が入力されている。 図5は、本発明の1つの実施態様に従って行われるフォワードサイクルy=Wxを示す図である。 図6は、本発明の1つの実施態様に従って行われるバックワードサイクルz=WTδを示す図である。 図7は、本発明の1つの実施態様に従う、該フォワードサイクルにおいて伝播されるχ及び該バックワードサイクルにおいて伝播されるδを用いてアレイAが更新されることを示す図である。 図8は、本発明の1つの実施態様に従う、重み行列で実行されるフォワードサイクルy'=Aeiを示す図である。 図9は、隠れ行列Hが行列Aのフォワードサイクルにおいて計算された値で更新されることを示す図である。 図10は、本発明の1つの実施態様に従う、隠れ行列H 902が重み行列W 1010に選択的に施与されることを示す概略図である。 図11は、本発明の1つの実施態様に従う、例示的なワンホットエンコードされたベクトル(one hot encoded vector)を示す図である。 図12は、本発明の1つの実施態様に従う、次数2の例示的なハダマード行列(Hadamard matrix)を示す図である。 図13は、本発明の1つの実施態様に従う、次数4の例示的なハダマード行列を示す図である。 図14は、本発明の1つの実施態様に従う、1以上の本技術を実施する際に使用されることができる例示的な装置を示す図である。
非対称抵抗処理ユニット(RPU)デバイスを用いた深層ニューラルネットワーク(DNN)訓練技術が本明細書において提供される。上記で強調したように、DNNは、RPUのアナログクロスポイントアレイで具現化することができる。例えば、図1において示されている概略図を参照されたい。
図1において示されているように、アルゴリズム(抽象)重み行列102の各パラメータ(重みwij)は、ハードウェア上の単一のRPUデバイス(RPUij)、すなわち、RPUデバイスの物理クロスポイントアレイ104、上にマッピングされる。クロスポイントアレイ104は、一連の導電性の行線106と、該導電性の行線106に直交し且つ交差するように配向された一連の導電性の列線108とを備えている。行線106と列線108との間の該交点は、RPUデバイスのクロスポイントアレイ104を形成するRPU 110によって分離されている。各RPUは、第1の端子、第2の端子、及びアクティブ領域を備えていることができる。該アクティブ領域の導通状態は、RPUの重み値を識別し、それは、第1の端子/第2の端子への信号の印加によって更新/調整されることができる。更に、3つの端子(又はそれ以上の端子)のデバイスは、余分な端子を制御することにより、2つの端子の抵抗メモリデバイスとして有効に機能することができる。
各RPU(RPUij)は、クロスポイントアレイ104の(すなわち、i番目の行及びj番目の列)におけるその位置に基づいて一意に識別される。例えば、クロスポイントアレイ104の上から下へ、及び左から右へ作業すると、第1の行線106と第1の列線108との該交点でのRPUはRPU11として指定され、及び第1の行線106と第2の列線108との該交点でのRPUはRPU12として指定される、等である。更に、重み行列102の該パラメータとクロスポイントアレイ104の該RPUとのマッピングは、同じ慣例に従う。例えば、重み行列102の重みwi1はクロスポイントアレイ104のRPUi1にマッピングされ、重み行列102の重みwi2はクロスポイントアレイ104のRPUi2に対応付けられる、等である。
クロスポイントアレイ104のRPU 110は実質的に、該DNNにおけるニューロン間の重み付けされた接続として機能する。RPU 110の導通状態(例えば、抵抗)は、行線106及び列線108の個々の線間に夫々印加される電圧を制御することによって変更されることができる。データは、RPUの導通状態を変化させることによって記憶される。RPU 110の導通状態は、電圧を印加し、そして、対象のRPU 110を通過する電流を測定することによって読み取られる。重みが関与する全ての操作は、RPU 110によって完全に並列に実行される。
機械学習及び認知科学において、DNNベースのモデルは、動物、特に脳、の生物学的な神経ネットワークによって触発された統計的学習モデルのファミリーである。これらのモデルは、多くの入力と一般的に未知の接続の重みとに依存するところのシステム及び認知機能を推定又は近似する為に使用されうる。DNNはしばしば、電子信号の形式で互いに「メッセージ」を交換するところのシミュレートされた「ニューロン」として機能する相互に接続されたプロセッサ要素の所謂「ニューロモーフィック」(neuromorphic)システムとして具現化される。シミュレートされたニューロン間で電子メッセージを伝達するところのDNNにおける接続には、所与の接続の強さ又は弱さに対応する数値的な重みが備えられている。これらの数値的な重みは経験に基づいて調整且つチューニングされる(adjusted and tuned)ことができ、DNNは入力に適応し、及び学習することができる。例えば、手書き文字認識の為のDNNは、入力画像のピクセルによって活性化されうる入力ニューロンの1組によって定義される。ネットワークの設計者によって決められた関数によって重み付けされ、そして変換された後に、これらの入力ニューロンの活性化は、他の下流ニューロンへと渡される。このプロセスは、出力ニューロンが活性化されるまで繰り返される。該活性化された出力ニューロンは、どの文字が読まれたかを決定する。
図2Aは、本発明の1つの実施態様に従う線形且つ対称であるところのRPUデバイスの理想的なスイッチング特性を説明する図である。図2Aにおいて示されているように、理想的なRPUは、外部電圧刺激に対して線形的且つ対称的に応答する。訓練目的の為に、そのような理想的なデバイスは、バックプロパゲーション及び確率的勾配降下法(SGD)のDNN訓練プロセスを完全に実装する。バックプロパゲーションとは、3つのサイクル、すなわち、フォワードサイクル、バックワードサイクル、重み更新サイクル、を、収束基準が満たされるまで複数回繰り返す学習プロセスである。確率的勾配降下法(SGD)は、バックプロパゲーションを用いて、各パラメータ(重みwij)のエラー勾配を計算する。
バックプロパゲーションを行う為に、DNNベースのモデルは、複数の抽象レベルを有するデータの表現を学習する複数の処理層で構成される。N個の入力ニューロンがM個の出力ニューロンに接続されている単一の処理層の場合、フォワードサイクルは、ベクトル-行列乗算(vector-matrix multiplication)(y=Wx)を計算し、ここで、長さNのベクトルxは入力ニューロンの活動を表し、及びサイズM×Nの行列Wは入力ニューロンと出力ニューロンの各対の間の重み値を記憶する。得られた結果の長さMのベクトルyは更に、抵抗メモリ素子の各々において非線形活性化を行うことによって処理され、そして次に、次の層へ渡される。
情報が最終出力層に一旦到達すると、バックワードサイクルはエラー信号を計算し、そして、該DNNを通じてエラー信号をバックプロパゲーションすることを含む。単層におけるバックワードサイクルはまた、重み行列(z=WTδ)の転置(各行と対応する列とを入れ替える)におけるベクトル-行列乗算を含み、ここで、長さMのベクトルδは出力ニューロンによって計算されたエラーを表し、及び長さNのベクトルzは、ニューロンの非線形性の微分を使用して更に処理され、そして次に、前の層に渡し戻される。
最後に、重み更新サイクルにおいて、フォワードサイクルとバックワードサイクルとで使用される2つのベクトルの外積を実行することによって、重み行列Wが更新される。この2つのベクトルの外積はしばしば、以下の式W←W+η(δχT)として表され、ここで、ηはグローバルな学習率である。
このバックプロパゲーションプロセスの間に重み行列Wにおいて実行される全ての演算は、対応する数のM行及びN列を有するRPU 110のクロスポイントアレイ104で実装されることができ、ここで、クロスポイントアレイ104内の該記憶されたコンダクタンス値は行列Wを形成する。フォワードサイクルにおいて、入力ベクトルxが電圧パルスとして列線108の各々を通じて送信され、そして、得られた結果のベクトルyは行線106から電流出力として読み取られる。同様に、バックワードサイクルへの入力として行線106から電圧パルスが供給されるときに、ベクトル-行列積(vector-matrix product)が、重み行列WTの転置で計算される。最後に、該更新サイクルにおいて、ベクトルx及びδを表す電圧パルスが列線108及び行線106から同時に供給される。この構成において、各RPU 110は、対応する列線108及び行線106から来る電圧パルスを処理することによって、局所的な乗算及び和算演算を実行し、従って、重みの増分更新を達成する。
上記で強調されているように、対称型RPU(図2Aを参照されたい)は、バックプロパゲーション及びSGDを完全に実装する。すなわち、そのような理想的なRPUは、wij←wij+ηΔwijであり、ここで、wijは、クロスポイントアレイ104のi番目の行及びj番目の列の重み値である。
対照的に、図2Bは、本発明の1つの実施態様に従う、非線形且つ非対称であるRPUデバイスの非理想的スイッチング特性を示す図である。図2Bにおいて示されているように、現実のRPUは、外部電圧刺激に対して非線形且つ非対称的に応答することができる。すなわち、重みを上に又は下に調整する為に電圧パルスを印加する場合(本明細書において夫々「アップ」パルス及び「ダウン」パルスとして言及される)、重み更新量(すなわち、工程の大きさ)は、現在の重み値に線形に依存する。従って、該上下の調整が強さにおいて等しいが、それ以外の重み範囲の残りの部分についてはバランスが悪い単一の重み値(以下において詳細に説明されるゼロシフト技術からのゼロ重み値に対応する)しか存在しない。RPUデバイスにアップパルス及びダウンパルスのシーケンスの1組が与えられると仮定すると、この不均衡は、アップパルス及びダウンパルスの強さが等しい対称点に向かって該デバイスが上方向に又は下方向に行く傾向を有することを意味する。このデバイスの挙動は、RPUデバイスにおけるコンダクタンス変化を支配するRPUデバイスの物理に由来するところの追加のエネルギー項(内部エネルギー)へと変換することができる。従って、バックプロパゲーションの為に使用される場合に、非理想的なスイッチング特性を有するこれらのRPUは、理想的なケースとは全く異なるものを実装する、すなわち、
抵抗メモリデバイス、例えばRPU 110、では、各デバイスのアップパルスの傾きとダウンパルスの傾きとが全く同じである単一の対称点が常に存在することが判明している。この対称点(それは、個々のRPU毎に異なることができる)には、重み値0が割り当てられることができる。
クロスポイントアレイ104内の各RPU 110についての対称点は、重みアレイ内のRPU 110の全てがそれ自体の対称点に収束するまで、重みアレイ内のRPU 110に繰り返し(第1、第2、第3等)のアップ電圧パルス及びダウン電圧パルスを印加することによって決定される。例えば、該コンダクタンス範囲がGminからGmaxであり、及び1回の更新インシデント(update incident)での平均デルタGがdGavgである場合、コンダクタンス範囲における有効な状態数は(Gmax-Gmin)/dGavgである。該デバイスが極点にあり、及び交互のアップパルス/ダウンパルス(up/dn pulses)が与えられる場合に、中心点に達するまでの更新回数#=(Gmax-Gmin)/dGavgがかかる。集束を確実にする為には、例えば交互のアップパルス/ダウンパルスの追加のサイクル、すなわち、n×(Gmax-Gmin)/dGavg(ここで、n=1以上である)を与えることができる。該アップ電圧パルス及びダウン電圧パルスは、RPU 110にランダムに(すなわち、各パルスはランダムにアップパルス又はダウンパルスのいずれか)、交互の様式(すなわち、先行パルスがアップパルスである場合に、次のパルスはダウンパルスであり、逆も同様である)で、等で適用されることができる。
該重みアレイ内の全てのRPU 110の全てがそれ自体の対称点に一旦収束すると、(対称点での)該重みアレイからの各RPU 110についてのコンダクタンス値が、該重みアレイと相互接続されている別の参照アレイにコピーされる。該重みアレイにおける対応する1つのデバイスの為に参照アレイにおける各デバイスにおいて固有のゼロ重み値が確立されることができるように、1対1の相関関係が該重みアレイにおけるデバイスと該参照アレイにおけるデバイスとの間に存在する。従って、動作の間、該重みアレイ内のRPU 110の出力は、参照アレイ内に記憶された対応するデバイスからのゼロ重み値によってシフトされる。例えば、同じ信号が重みアレイと参照アレイとの両方に提供されることができる。次に、該重みアレイ内のRPU 110からの出力(例えば、I1、I2、I3等)が、該参照アレイ内の対応するデバイスの出力(ゼロ重み値に設定される)からそれらの値を引くことによってゼロシフトされて、ゼロシフトされた結果を達成することができる。
ゼロシフトされた結果を達成する為のこの初期設定の後、本技術は該DNNを訓練する為に使用される。図3は、本発明の1つの実施態様に従う、DNNを訓練する為の例示的な方法300を示す図である。訓練の間、重み更新は、最初に行列A上に蓄積される。行列Aは、ゼロ点の周りに対称的な挙動を有するRPUの行及び列で構成されるハードウェアコンポーネントである。次に、行列Aからの重み更新は、重み行列Wに選択的に移動される。該重み行列Wはまた、RPUの行及び列で構成されるハードウェアコンポーネントである。学習プロセスが、DNNの精度を最大化するパラメータの1組(重みwij)を繰り返し決定する。初期化の間、該ゼロ重み値を持つ参照アレイにより、重み行列A内の各RPUがゼロに対応する値についての平衡点にあることが保証される。一方、行列Wは、DNNの訓練に適用される一般的なプラクティスを用いて、ランダムに分散された値に初期化される。隠れ行列H(一般的にはデジタルで保存されるが、或る実施態様はアナログの隠れ行列Hを使用する)は、ゼロに初期化される。訓練の間、該重み更新は、行列Aにおいて行われる。次に、行列Aによって処理された情報は、隠れ行列H(ローパスフィルタ(low pass filter)を効果的に実行する別個の行列)内に蓄積される。次に、更新閾値に達した隠れ行列Hの値が、重み行列Wに適用される。更新閾値は、行列Aのハードウェア内で生じるノイズを効果的に最小化する。有利なことに、この重み行列Wはニューラルネットワークの目的関数を最小化し、及び行列Aが、目的関数の勾配を処理し、次に、Wにフィードバックする前に、デジタルローパスフィルタを通過する為に使用される。それ故に、非理想的なRPUに関連付けられたハードウェアの偏り及びノイズは許容され(又は、隠れ行列Hによって吸収され)、従って、標準的なSGD技術又は非対称デバイスを使用する他の訓練技術に比べて、少ない状態数の場合でさえもテストエラーが少なくなる。
方法300は、行列A、隠れ行列H、及び重み行列Wを初期化することによって開始する(ブロック302)。行列Aを初期化することは例えば、行列A内の各RPUの対称点を決定し、そして、対応するコンダクタンス値を参照アレイに記憶することを含む。上記で提供されているように、各RPUデバイスについての対称点は、RPUの全てがそれ自体の対称点に収束するまで、RPUに繰り返しアップ電圧パルス及びダウン電圧パルス(例えば、ランダム、交互等)を適用することによって決定されることができる。アレイA及び参照アレイは、2つの相互接続されたアレイにおいて具現化されることができ、及びそれらの組み合わせが行列Aを形成する。物理的なコンダクタンスは負の量にはなり得ない故に、アレイAにおけるコンダクタンス値と参照アレイにおけるコンダクタンス値との差が、行列Aについての論理値を形成する。しかしながら、該参照アレイは最初のプログラミング工程の後に一定に保たれ、そして、行列Aが更新されるときに、更新されるのはアレイAである為に、行列AとアレイAとを交換可能な様式で参照する。しかしながら、行列Aにおいて行われるベクトル-行列乗算の演算の場合に、アレイA及び参照アレイの差分読み取り値が常に使用される。同じ方法論と動作原理が行列W及びアレイWについても適用される。
図4は、本発明の1つの実施態様に従う、行列Aと該行列Aのゼロ重みコンダクタンス値が入力された参照アレイとに対応する2つの相互接続されたアレイ(すなわち、物理アレイ及び参照アレイ)を示す図である。RPU 404のクロスポイントアレイ402(行列Aの重み値(wij)が入力されている)及びRPU 408のクロスポイントアレイ406(参照行列の対応するゼロ重みコンダクタンス値(w0′)が入力されている)が示されている。固有のゼロ重み値(w0′)が、行列Aにおける1つの対応するRPUの場合に、該参照行列における各RPU内に確立されることができる。隠れ行列Hの初期化は、該行列内に記憶された現在の値をゼロにすること、又は接続されたコンピューティングデバイス上のデジタル記憶領域を割り当てることを含む。重み行列Wの初期化は、重み行列Wの訓練プロセスが開始されうるように、重み行列Wにランダム値をロードすることを含む。
ゼロ重みコンダクタンス値が参照アレイに一旦記憶されると、該DNNの訓練が実行される。3つのサイクル(すなわち、フォワードサイクル、バックワードサイクル、及び重み更新サイクル)においてバックプロパゲーションを使用してエラー勾配を計算するだけでなく、ここでは、そのH値の反復組み合わせが閾値よりも大きく成長した後にのみ該重み値を更新する隠れ行列Hによって演算がフィルタリングされる。
方法300は、重み行列Wを用いてフォワードサイクルを実行すること(ブロック304)を含む。図5は、本発明の1つの実施態様に従って行われるフォワードサイクルを示す図である。該フォワードサイクル、入力ベクトルxが入力ニューロンの活動を表し、及び重み行列Wが入力ニューロンと出力ニューロンとの各対の間の重み値を記憶するベクトル-行列乗算(y=Wx)を計算することを含む。図5は、フォワードサイクルのベクトル-行列乗算演算がRPUデバイスのクロスポイントアレイ502において実装されることを示し、ここで、クロスポイントアレイ502内に記憶されたコンダクタンス値が行列を形成する。
入力ベクトルxは、導電性の列線512の各々を通じて電圧パルスとして送信され、そして、得られた結果の出力ベクトルyが、クロスポイントアレイ502の導電性の行線510からの電流出力として読み取られる。アナログ-デジタル変換器(ADC:analog-to-digital converter)513が、クロスポイントアレイ502からのアナログ出力ベクトル516をデジタル信号に変換する為に使用される。参照行列406からコピーされたゼロ重みコンダクタンス値は、クロスポイントアレイ502内のRPUデバイスの出力値をそれらの対称点に相対的にシフトして、それらのスイッチング挙動におけるバイアスを考慮し、そして、負の論理行列値をエンコードする為に用いられる。その為に、クロスポイントアレイ502に印加される電圧パルスはまた、参照アレイに印加される。次に、クロスポイントアレイ502の出力ベクトルyは、該参照アレイの出力ベクトルから差し引かれる。
方法300はまた、重み行列Wにおいてバックワードサイクルを実行することを含む(ブロック306)。図6は、本発明の1つの実施態様に従って行われるバックワードサイクルを示す図である。一般的に、該バックワードサイクルは、エラー信号δを計算すること、及び重み行列Wの転置におけるベクトル-行列乗算(すなわち、z=WTδ)を介してそのエラー信号δをバックプロパゲーションすることを含み、ここで、ベクトルδは出力ニューロンによって計算されたエラーを表し、及びベクトルzは、ニューロン非線形の微分を使用して更に処理され、そして次に、前の層に渡し戻される。
図6は、バックワードサイクルのベクトル-行列乗算演算がクロスポイントアレイ502において実装されることを示す。エラー信号δは、導電性の行線510の各々を通じて電圧パルスとして送信され、そして、得られた結果の出力ベクトルzは、クロスポイントアレイ502の導電性の列線512からの電流出力として読み取られる。電圧パルスがバックワードサイクルの入力として行線510から供給される場合に、ベクトル-行列積が重み行列Wの転置において計算される。
図6においてまた示されているように、ADC 513は、クロスポイントアレイ502からの(アナログ)出力ベクトル518をデジタル信号に変換する為に使用される。上述されたフォワードサイクルと同様に、ゼロ重みコンダクタンス値が、クロスポイントアレイ502内のRPUデバイスの出力値をそれらの対称点に相対的にシフトして、それらのスイッチング挙動におけるバイアスを考慮し、そして、負の論理行列値をエンコードする。その為に、クロスポイントアレイ502に印加される電圧パルスはまた、参照アレイに印加される。次に、クロスポイントアレイ502の出力ベクトルzは、該参照アレイの出力ベクトルから差し引かれる。
方法300はまた、入力ベクトルx及びδで行列Aを更新することを含む(ブロック308)。図7は、本発明の実施態様に従って、フォワードサイクルにおいてプロパゲーションされるx及びバックワードサイクルにおいてプロパゲーションされるδで更新されるアレイA 502を示す図である。該更新は、導電性の列線506及び導電性の行線504から夫々同時に供給される(フォワードサイクルからの)ベクトルx及び(バックワードサイクルからの)ベクトルδを表す電圧パルスを送信することによってクロスポイントアレイ502内に実装される。この構成において、クロスポイントアレイ502における各RPUは、対応する導電性の列線506及び導電性の行線504から来る電圧パルスを処理することによって局所的な乗算及び和算演算を実行し、このようにして、重みの増分更新を達成する。フォワードサイクル(ブロック304)、バックワードサイクル(ブロック306)、及び該フォワードサイクル及び該バックワードサイクルからの入力ベクトルでの行列Aの更新(ブロック308)は、行列Aの該更新された値を改善する為に何度も繰り返されうる。
方法300はまた、入力ベクトルei(すなわち、y'=Aei)を使用して、行列Aにおいてフォワードサイクルを実行することを含む(ブロック310)。各時間工程において、新しい入力ベクトルeiが使用され、及びサブインデックスiはその時間インデックスを示す。以下で詳細に説明されているように、例示的な実施態様に従うと、入力ベクトルeiは、ワンホットエンコードされたベクトルである。例えば、当技術分野において知られているように、ワンホットエンコードされたベクトルは、単一のハイ(1)ビットと他の全てのビットがロー(0)であるビットの組み合わせのみを有するビット群である。説明の目的の為に簡単な非限定的な例を使用する為にサイズ4×4の行列Aを仮定すると、該ワンホットエンコードされたベクトルは、以下のベクトルのうちの1つであろう:[1 0 0 0]、[0 1 0 0]、[0 0 1 0]、[0 0 0 1]。各時間工程で、新しいワンホットエンコードされたベクトルが使用され、そして、サブインデックスiはその時間インデックスを示す。しかしながら、本明細書において入力ベクトルeiを選択する為の他の方法が企図されていることは注目すべきことである。例えば、入力ベクトルeiが、ハダマード行列、ランダム行列等の列から代わりに選択されることができることは注目すべきことである。
図8は、本発明の実施態様に従う行列Aにおいて実行されるフォワードサイクルy’=Aeiを示す図である。入力ベクトルeiは、導電性の列線512の各々を通じて電圧パルスとして送信され、そして、得られた結果の出力ベクトルy’は、クロスポイントアレイ502の導電性の行線510からの電流出力として読み取られる。電圧パルスがこのフォワードサイクルへの入力として列線512から供給されるときに、ベクトル-行列積が計算される。
方法300は、出力ベクトルy'及び入力ベクトルeiを使用して隠れ行列Hを更新すること(ブロック312)を含む。図9は、隠れ行列H 902が、行列A 904のフォワードサイクルにおいて計算された値で更新されることを示す図である。隠れ行列H 902は、ほとんどの場合、行列A内の各RPU 908(すなわち、Aijに位置する各RPU)についてのH値906(すなわち、Hij)を記憶するデジタル行列(行列A及び重み行列Wのような物理デバイスにおいてでなく)である。フォワードサイクルが実行されると、出力ベクトルy'ei Tが生成され、そして、隠れ行列Hはその値を各H値906に加える。従って、該出力ベクトルが読み出されるたびに、隠れ行列H 902は変化する。低いノイズレベルを有するRPUの場合、H値906は安定して成長する。該値の成長は、出力ベクトルy'ei Tの値に依存して、正の方向又は負の方向でありうる。出力ベクトルy'ei Tが有意なノイズを含む場合、或る反復の場合に正であり、及び別の反復の場合に負である可能性がある。この正及び負の出力ベクトルy'ei Tの値の組み合わせは、H値906がよりゆっくりと且つより一貫性を持って成長するであろうことを意味する。
H値906が成長するにつれて、方法300は、H値906が閾値より大きくなったかどうかを追跡すること(ブロック314)を含む。特定の位置でのH値906(すなわち、Hij)が閾値よりも大きくない場合(ブロック314「いいえ」)、方法300は、フォワードサイクルを実行すること(ブロック304)から隠れ行列Hを更新すること(ブロック312)までを繰り返す。H値906が閾値より大きい場合(ブロック314「はい」)、方法300は、入力ベクトルeiを重み行列Wに送信することに進むが、特定のRPUの場合にのみ送信する(ブロック316)。上述されているように、H値906の成長は正の方向又は負の方向であり得、従って、閾値がまた正の値又は負の値である。
図10は、本発明の実施態様に従う、隠れ行列H 902が重み行列W 1010に選択的に適用し直されることの概略図である。図10は、閾値超に達した第1のH値1012及び第2のH値1014が重み行列W 1010に送信されることを示す。第1のH値1012は正の閾値に達し、それ故に、正の閾値が送信される:入力ベクトル1016におけるその行の場合「1」である。第2のH値1014は負の閾値に達し、それ故に負の閾値が送信される:入力ベクトル1016におけるその行の場合「-1」である。入力ベクトル1016における残りの行は、それらの値(すなわち、H値906)が該閾値よりも大きくなっていない故に、ゼロを有する。該閾値は、隠れ行列Hに加えられるy'ei Tよりもはるかに大きい場合がある。例えば、該閾値は、y'ei Tの予想強度の10倍又は100倍でありうる。これらの高い閾値は、重み行列Wで実行される更新の頻度を減らす。しかしながら、該隠れ行列Hによって実行されるフィルタリング機能は、ニューラルネットワークの目的関数のエラーを減少させる。これらの更新は、多くのデータ例を処理した後にのみ生成され、それ故に、更新における信頼度をまた増加させる。この手法は、限られた数の状態のみを有するノイズの多いRPUデバイスでニューラルネットワークを訓練することを可能にする。H値が重み行列Wに適用された後、H値906はゼロにリセットされ、そして、方法300の反復が継続される。
重み行列Wがei 1018で更新された後、方法300は、訓練が完了したかどうかを決定することによって継続する。該訓練が完了していない場合、例えばある収束基準が満たされていない場合には(ブロック318「いいえ」)、方法300は、フォワードサイクルy=Wxを実行することによって再び開始工程から反復する。例えば、例示に過ぎないが、エラー信号のこれ以上の改善が見られない場合には、該訓練は完了したとみなされることができる。該訓練が完了する場合には(ブロック318「はい」)、方法300は終了する。
上記で強調されているように、例示的な実施態様に従うと、入力ベクトルeiはワンホットエンコードされたベクトルであり、該ワンホットエンコードされたベクトルは、単一のハイ(1)ビットと他の全てのビットがロー(0)であるビットの組み合わせのみを有するビット群である(例えば、図11を参照されたい)。図11において示されているように、サイズ4×4の行列が与えられた場合、ワンホットエンコードされたベクトルは、以下のベクトルのうちのいずれか1つであろう:[1 0 0 0]、[0 1 0 0]、[0 0 1 0]、[0 0 0 1]。各時間工程で、新しいワンホットエンコードされたベクトルが使用され、そして、サブインデックスiは、その時間インデックスによって示される。別の例示的な実施態様に従うと、入力ベクトルeiは、ハダマード行列の列から選択される。当該技術分野において知られているように、ハダマード行列は、エントリ±1を有する正方行列である(例えば、図12(次数2のハダマード行列)及び図13(次数4のハダマード行列)を参照されたい)。
本発明は、システム、方法、若しくはコンピュータプログラム製品又はそれらの組み合わせを包含しうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為の複数のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を備えうる。
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記憶されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
本発明の観点は、本発明の1つの実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
ここで図14を参照すると、本明細書に提示された方法論の1以上を実装する為の装置1400のブロック図が示されている。例示に過ぎないが、装置1400は、アレイに印加される入力電圧パルスを制御するように、若しくは該アレイからの出力信号を処理するように、又は該アレイに印加される入力電圧パルスを制御し且つ該アレイからの出力信号を処理するように構成されることができる。
装置1400は、コンピュータシステム1410及びリムーバブルメディア1450を備えている。コンピュータシステム1410は、プロセッサデバイス1420、ネットワークインタフェース1425、メモリ1430、メディアインタフェース1435、及び任意のディスプレイ1440を備えている。ネットワークインタフェース1425は、コンピュータシステム1410がネットワークに接続することを可能にし、メディアインタフェース1435は、コンピュータシステム1410がメディア、例えば、ハードドライブ又はリムーバブルメディア1450、と対話することを可能にする。
プロセッサデバイス1420は、本明細書に開示されている方法、工程及び機能を実装するように構成されることができる。メモリ1430は、分散型又はローカル型であることができ、及びプロセッサデバイス1420は、分散型又は単一型であることができる。メモリ1430は、電気メモリ、磁気メモリ、光学メモリ、又はこれら若しくは他のタイプの記憶デバイスの任意の組み合わせとして実装されうる。その上、語「メモリ」は、プロセッサデバイス1420によってアクセスされるアドレス可能空間内のアドレスから読み取ることができ、又は該アドレスに書き込むことができる任意の情報を包含するように十分に広く解釈されるべきである。この定義において、ネットワークインタフェース1425を通じてアクセス可能なネットワーク上の情報は、プロセッサデバイス1420が該ネットワークから情報を取得することができるので、依然としてメモリ1430内にある。プロセッサデバイス1420を構成する各分散型プロセッサは一般的に、それ自体のアドレス可能なメモリ空間を含むことに留意されたい。コンピュータシステム1410の一部又は全部が特定用途向け又は一般用途向け集積回路に組み込まれることができることにまた留意されたい。
任意のディスプレイ1440は、装置1400のヒトのユーザと対話する為に適した任意のタイプのディスプレイである。一般的に、ディスプレイ1440は、コンピュータモニタ又は他の同様のディスプレイである。
本明細書において、本発明の例示的な実施態様が説明されてきたが、本発明はそれらの正確な実施態様に限定されるものでなく、本発明の範囲を逸脱すること無しに、当業者によって他の様々な変更及び修正が可能でありうることを理解されたい。

Claims (25)

  1. 深層ニューラルネットワーク(DNN)を訓練する方法であって、
    行列Aの各要素についての状態を初期化すること;
    前記行列Aの各要素を更新して、重みの増分更新を決定すること;
    隠れ行列の要素を記憶すること、ここで、前記隠れ行列の各要素は、前記行列Aの複数の前記要素のうちの1つについての前記重みの増分更新の合計に対応する;
    前記隠れ行列の対応する要素が閾値状態に達したことに基づいて、重み行列の対応する要素を更新すること
    を含む、前記方法。
  2. 前記行列Aの各要素を更新することが、導電性の行線を通じてエラー信号δを送信すること、及び導電性の列線からの電流出力として、得られた結果の出力ベクトルzを読み取ることを含む、請求項1に記載の方法。
  3. 前記重みの増分更新が、前記行列Aにおいて演算された出力ベクトルと入力ベクトルとの行列乗算を含む、請求項1に記載の方法。
  4. 前記重み行列を更新することが、前記隠れ行列の前記要素が閾値状態に達したときに、前記重み行列の導電性の行線を通じて前記閾値状態に達した前記隠れ行列の前記要素の符号情報を電圧パルスとして送信すると同時に、前記重み行列の導電性の列線を通じて電圧パルスを送信することを含む、請求項1に記載の方法。
  5. 前記閾値状態が、前記重みの増分更新の平均の10倍を含む、請求項1に記載の方法。
  6. 前記重み行列の対応する要素が更新されたときに、前記隠れ行列の前記対応する要素をゼロにリセットすることを含む、請求項1に記載の方法。
  7. 深層ニューラルネットワークを訓練する為の、コンピュータに実装された方法であって、
    隠れ行列の対応する要素中の行列Aの対応する要素から取得される重みの増分更新の合計を追跡すること;
    重みの増分更新の前記合計が、前記隠れ行列の前記対応する要素のうちの1つについて閾値に達したときに、重み行列の対応する要素についての更新をトリガーすること
    を含む、前記方法。
  8. 前記重みの増分更新が、前記行列Aの前記対応する要素において演算された出力ベクトルと入力ベクトルの行列乗算を含む、請求項7に記載の方法。
  9. 前記合計が正又は負の値を含み、前記更新が、前記合計の前記符号に対応する符号情報を含む、請求項7に記載の方法。
  10. 前記合計がデジタル的に追跡される、請求項7に記載の方法。
  11. 深層ニューラルネットワーク(DNN)であって、
    導電性の行線と導電性の列線との間の交点を分離する抵抗処理ユニット(RPU)デバイスを含む行列A、ここで、前記RPUデバイスが、前記DNNにおけるニューロン間の重み付けされた接続の為の処理された勾配を含む;
    導電性の行線と導電性の列線との間の交点を分離するRPUデバイスを含む重み行列、ここで、前記RPUデバイスが、前記DNNにおけるニューロン間の重み付けされた接続を含む;及び、
    前記重み行列Wにおける各RPUデバイスについてのH値を含む隠れ行列、ここで、少なくとも1つのH値が閾値を超えるまで、前記H値が前記行列Aから値を反復して加える、
    を備えている、前記DNN。
  12. クロスポイントアレイと相互接続され、前記クロスポイントアレイ内の前記RPUデバイスのゼロ重みコンダクタンス値を記憶する参照アレイを備えている、請求項11に記載のDNN。
  13. 前記隠れ行列Hが、前記重み行列Wにおいて各RPUデバイスについてのデジタル的に記憶された値を含む、請求項11に記載のDNN。
  14. コンピュータプログラム製品であって、該コンピュータプログラム製品が、
    1以上のコンピュータ可読記憶媒体、及び該1以上のコンピュータ可読記憶媒体上に集合的に記憶された複数のプログラム命令を備えており、
    前記複数のプログラム命令が、
    行列Aの各要素についての状態を初期化すること;
    前記行列Aの各要素を更新して、重みの増分更新を決定すること;
    隠れ行列の要素を記憶すること、ここで、前記隠れ行列の各要素は、前記行列Aの複数の前記要素のうちの1つについての前記重みの増分更新の合計に対応する;
    前記隠れ行列の対応する要素が閾値状態に達したことに基づいて、重み行列の対応する要素を更新すること
    の為の命令を備えている、前記コンピュータプログラム製品。
  15. 前記行列Aの各要素を更新する為の命令が、導電性の行線を通じてエラー信号δを送信する為の及び導電性の列線からの電流出力として、得られた結果の出力ベクトルzを読み取る為の命令を含む、請求項14に記載のコンピュータプログラム製品。
  16. 前記重みの増分更新が、前記行列Aにおいて演算された出力ベクトルと入力ベクトルとの行列乗算を含む、請求項14に記載のコンピュータプログラム製品。
  17. 前記重み行列を更新する為の命令が、前記隠れ行列の前記要素が閾値状態に達したときに、前記重み行列の導電性の行線を通じて前記閾値状態に達した前記隠れ行列の前記要素の符号情報を電圧パルスとして送信すると同時に、前記重み行列の導電性の列線を通じて電圧パルスを送信する為の命令を含む、請求項14に記載のコンピュータプログラム製品。
  18. 前記閾値状態が、前記重みの増分更新の平均の10倍を含む、請求項14に記載のコンピュータプログラム製品。
  19. 前記重み行列の対応する要素が更新されたときに、前記隠れ行列の前記対応する要素をゼロにリセットすることを含む、請求項14に記載のコンピュータプログラム製品。
  20. 深層ニューラルネットワーク(DNN)を訓練する為の、コンピュータに実装された方法であって、
    行列Aの導電性の列線を通じて入力ベクトルeiを電圧パルスとして送信すること、そして、得られた結果の出力ベクトルy'を前記行列Aの導電性の行線から電流出力として読み取ること、ここで、前記行列Aは、前記導電性の列線と前記導電性の行線との間の交差を分離する抵抗処理ユニット(RPU)を備えている、
    前記入力ベクトルeiの転置によって乗算された前記出力ベクトルy'を各H値に反復して加えることによって、隠れ行列のH値を更新すること、ここで、前記隠れ行列は、各RPUについてのH値を含む;及び、
    H値が閾値に達したときに、重み行列Wの導電性の行線を通じて閾値に達した前記H値の符号情報を電圧パルスとして送信すると同時に、前記重み行列Wの導電性の列線を通じて前記入力ベクトルeiを電圧パルスとして送信すること
    を含む、前記方法。
  21. 前記入力ベクトル及び前記エラー信号が、前記重み行列において操作されるフォワードサイクル及びバックワードサイクルから導出される、請求項20に記載の方法。
  22. 前記重み行列Wの導電性の列線を通じて入力ベクトルxを電圧パルスとして送信し、そして、得られた結果の出力ベクトルyを前記重み行列Wの導電性の行線から電流出力として読み取ること、ここで、前記重み行列Wは、該重み行列Wの前記導電性の列線と該重み行列Wの前記導電性の行線との間の交差を分離する抵抗処理ユニット(RPU)デバイスを備えている;及び、
    前記入力ベクトルeiを送信する前に、前記出力ベクトルyから計算されたエラー信号δを前記導電性の行線を通じて電圧パルスとして送信し、そして、得られた結果の出力ベクトルzを前記導電性の列線からの電流出力として読み取ることによって、行列Aを更新すること
    を含む、請求項20に記載の方法。
  23. 前記入力ベクトルeiが、ワンホットエンコードされたベクトルを含む、請求項20に記載の方法。
  24. 前記入力ベクトルeiが、ハダマード行列から選択される、請求項20に記載の方法。
  25. 前記H値がデジタルで記憶される、請求項20に記載の方法。
JP2023539103A 2020-12-26 2021-11-26 隠れ行列訓練dnnのフィルタリング Pending JP2024502785A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/134,377 US20220207344A1 (en) 2020-12-26 2020-12-26 Filtering hidden matrix training dnn
US17/134,377 2020-12-26
PCT/IB2021/061007 WO2022136977A1 (en) 2020-12-26 2021-11-26 Filtering hidden matrix training dnn

Publications (1)

Publication Number Publication Date
JP2024502785A true JP2024502785A (ja) 2024-01-23

Family

ID=82119277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023539103A Pending JP2024502785A (ja) 2020-12-26 2021-11-26 隠れ行列訓練dnnのフィルタリング

Country Status (6)

Country Link
US (1) US20220207344A1 (ja)
JP (1) JP2024502785A (ja)
CN (1) CN116615733A (ja)
DE (1) DE112021006672T5 (ja)
GB (1) GB2621692A (ja)
WO (1) WO2022136977A1 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263521B2 (en) * 2016-08-30 2022-03-01 International Business Machines Corporation Voltage control of learning rate for RPU devices for deep neural network training
KR102194280B1 (ko) * 2016-09-28 2020-12-22 주식회사 케이티 Dnn의 분산 훈련 시스템 및 분산 훈련 방법
US10755170B2 (en) * 2017-03-01 2020-08-25 International Business Machines Corporation Resistive processing unit with hysteretic updates for neural network training
CN107688850B (zh) * 2017-08-08 2021-04-13 赛灵思公司 一种深度神经网络压缩方法
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
US11562249B2 (en) * 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices
CN110309856A (zh) * 2019-05-30 2019-10-08 华为技术有限公司 图像分类方法、神经网络的训练方法及装置

Also Published As

Publication number Publication date
CN116615733A (zh) 2023-08-18
GB2621692A (en) 2024-02-21
DE112021006672T5 (de) 2023-10-19
US20220207344A1 (en) 2022-06-30
WO2022136977A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
JP7422782B2 (ja) 非対称rpuデバイスによるdnnの訓練
US11188825B2 (en) Mixed-precision deep-learning with multi-memristive devices
US20170061281A1 (en) Deep neural network training with native devices
KR20170041724A (ko) 비동기 펄스 변조를 이용한 인공 뉴런들 및 스파이킹 뉴런들
JP2019046072A (ja) ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム
US20200117699A1 (en) Alignment Techniques to Match Symmetry Point as Zero-Weight Point in Analog Crosspoint Arrays
US11263516B2 (en) Neural network based acoustic models for speech recognition by grouping context-dependent targets
KR20230029759A (ko) 아날로그 크로스바 어레이들을 업데이트하기 위한 희소 수정가능 비트 길이 결정 펄스 생성
JP7357080B2 (ja) Rpuアレイのためのノイズおよび信号管理
JP2024514063A (ja) ディープ・ニューラル・ネットワーク・トレーニング
US11556770B2 (en) Auto weight scaling for RPUs
JP2024502785A (ja) 隠れ行列訓練dnnのフィルタリング
US11443171B2 (en) Pulse generation for updating crossbar arrays
US20200151569A1 (en) Warping sequence data for learning in neural networks
US20240135166A1 (en) Dnn training algorithm with dynamically computed zero-reference
JP2023547800A (ja) Rpuクロスバー・アレイ上の重み反復
Probst A neural implementation of probabilistic inference in binary probability spaces

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230703

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230512

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230711

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240516