(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-18
(45)【発行日】2024-01-26
(54)【発明の名称】非対称RPUデバイスによるDNNの訓練
(51)【国際特許分類】
G06N 3/08 20230101AFI20240119BHJP
G06N 3/065 20230101ALI20240119BHJP
【FI】
G06N3/08
G06N3/065
(21)【出願番号】P 2021557551
(86)(22)【出願日】2020-04-15
(86)【国際出願番号】 IB2020053538
(87)【国際公開番号】W WO2020222064
(87)【国際公開日】2020-11-05
【審査請求日】2022-09-22
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ゴクメン、タイフン
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】米国特許出願公開第2017/0091618(US,A1)
【文献】米国特許出願公開第2017/0091616(US,A1)
【文献】米国特許出願公開第2017/0061281(US,A1)
【文献】国際公開第2018/189600(WO,A1)
【文献】Tayfun Gokmen 等,Acceleration of Deep Neural Network Training with Resistive Cross-Point Devices: Design Consideratio,Frontiers in Neuroscience,2016年07月,https://www.frontiersin.org/articles/10.3389/fnins.2016.00333/full
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 - 99/00
G06G 1/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
ディープ・ニューラル・ネットワーク(DNN:deep neural network)を訓練する方法であって、
行列Aおよび行列Cの線形結合としての重み行列(W)を提供するステップであって、前記行列Aおよび前記行列Cは、伝導性列ワイヤに直交する伝導性行ワイヤをそれぞれ有する抵抗処理ユニット(RPU:resistive processing unit)デバイスの別々のクロスポイント・アレイAおよびCの記憶された伝導性値によって形成され、前記RPUデバイスは、前記伝導性行ワイヤと前記伝導性列ワイヤとの間の交差部を分離し、これにより前記RPUデバイスは前記DNNのニューロン間の重み付き接続部として機能する、ステップと、
順方向サイクルにおいて、入力ベクトルxを電圧パルスとして前記クロスポイント・アレイAおよび前記クロスポイント・アレイCの前記伝導性列ワイヤを通して伝送し、結果として生じる出力ベクトルyを、前記クロスポイント・アレイAおよび前記クロスポイント・アレイCの前記伝導性行ワイヤから出力される電流として読み出すステップと、
逆方向サイクルにおいて、前記出力ベクトルyから算出された誤差信号δを電圧パルスとして前記クロスポイント・アレイAおよび前記クロスポイント・アレイCの前記伝導性行ワイヤを通して伝送し、結果として生じる出力ベクトルzを、前記クロスポイント・アレイAおよび前記クロスポイント・アレイCの前記伝導性列ワイヤから出力される電流として読み出すステップと、
前記クロスポイント・アレイAの更新において、前記入力ベクトルxを電圧パルスとして前記クロスポイント・アレイAの前記伝導性列ワイヤを通して伝送すると同時に、前記誤差信号δを電圧パルスとして前記クロスポイント・アレイAの前記伝導性行ワイヤを通して伝送するステップと、
順方向サイクルにおいて、入力ベクトルe
iを電圧パルスとして前記クロスポイント・アレイAの前記伝導性列ワイヤを通して伝送し、結果として生じる出力ベクトルy’を前記クロスポイント・アレイAの前記伝導性行ワイヤから出力される電流として読み出すステップと、
y’を使用してf(y’)を算出するステップ
であって、|y’|>閾値Tの場合に限りf(y’)=y’であり、それ以外の場合にはf(y’)=0である、前記f(y’)を算出するステップと、
前記クロスポイント・アレイCの更新において、前記入力ベクトルe
iを電圧パルスとして前記クロスポイント・アレイCの前記伝導性列ワイヤを通して伝送すると同時に、f(y’)を電圧パルスとして前記クロスポイント・アレイCの前記伝導性行ワイヤを通して伝送するステップと
を含
み、
前記クロスポイント・アレイAの全ての前記RPUデバイスが自身の対称点に収束するまで、前記クロスポイント・アレイAの前記RPUデバイスに繰り返し電圧パルスを印加するステップと、
前記クロスポイント・アレイAの前記RPUデバイスのゼロの重みの伝導性値を参照アレイにコピーするステップとをさらに含む、方法。
【請求項2】
収束基準が満たされるまで前記方法の前記ステップを繰り返すステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記クロスポイント・アレイAおよび前記クロスポイント・アレイCからの前記出力ベクトルyをデジタル信号に変換するステップ
をさらに含む、請求項1に記載の方法。
【請求項4】
前記クロスポイント・アレイAおよび前記クロスポイント・アレイCからの前記出力ベクトルyの線形結合を算出するステップ
をさらに含む、請求項3に記載の方法。
【請求項5】
前記クロスポイント・アレイAおよび前記クロスポイント・アレイCからの前記出力ベクトルzをデジタル信号に変換するステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
前記クロスポイント・アレイAおよび前記クロスポイント・アレイCからの前記出力ベクトルzの線形結合を算出するステップ
をさらに含む、請求項5に記載の方法。
【請求項7】
前記参照アレイからの前記ゼロの重みの伝導性値によって前記クロスポイント・アレイAの出力をゼロシフトするステップ
をさらに含む、請求項
1に記載の方法。
【請求項8】
クロスポイント・アレイAの前記RPUデバイスに印加される前記繰り返し電圧パルスは、アップおよびダウン電圧パルスを含む、請求項
1に記載の方法。
【請求項9】
前記アップおよびダウン電圧パルスは、クロスポイント・アレイAの前記RPUデバイスにランダムに印加される、請求項
8に記載の方法。
【請求項10】
前記アップおよびダウン電圧パルスは、クロスポイント・アレイAの前記RPUデバイスに交互に印加される、請求項
8に記載の方法。
【請求項11】
前記入力ベクトルe
iは、ワン・ホット・エンコードされたベクトルを含む、請求項1に記載の方法。
【請求項12】
前記入力ベクトルe
iは、アダマール行列から選択される、請求項1に記載の方法。
【請求項13】
請求項1~
12のいずれかに記載の方法の全てのステップを実行するために適合された手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープ・ニューラル・ネットワーク(DNN: deep neural network)の訓練に関し、特に、非対称の抵抗処理ユニット(RPU:resistive processing unit)デバイスを有するDNNを訓練するための技術に関する。
【背景技術】
【0002】
ディープ・ニューラル・ネットワーク(DNN)は、“Resistive Processing Unit”と題するGokmenらによる米国特許出願公開第2017/0109628号(以下、「米国特許出願公開第2017/0109628号」)に記載される抵抗処理ユニット(RPU)などの抵抗デバイスのアナログ・クロスポイント・アレイに具体化されうる。米国特許出願公開第2017/0109628号に記載されるように、各RPUは、第一端子、第二端子、および活性領域を含む。活性領域の伝導率状態がRPUの重み値を識別し、RPUの重み値は第一/第二端子への信号の印加によって更新/調節されうる。
【0003】
DNNベースのモデルは、物体および音声認識ならびに自然言語処理などの多様な認知ベースのタスクに使用されている。例えば、Gokmenら、“Training Deep Convolutional Neural Networks with Resistive Cross-point Devices”、Frontiers in Neuroscience、vol.11、article 538(2017年10月)(13ページ)を参照されたい。このようなタスクを行う際に高レベルの精度を提供するためにDNN訓練が必要とされる。大規模なDNNの訓練は、非常に計算量の大きいタスクである。
【0004】
対称性は、DNN訓練の精度を達成するために重要なファクターである。対称であるためには、アナログ抵抗デバイスは、正および負の電圧パルスにさらされたときに伝導率を対称的に変化させなければならない。この対称性により、DNN訓練の間に誤差逆伝播法および確率的勾配降下法(SGD:stochastic gradient decent)が完全に実施されることが可能になる。しかし実際には、RPUデバイスは、理想的でない非線形および非対称のスイッチング特性を呈しうる。例えば、重みを上下に調節するために電圧パルスが段階的に印加されるときに、上下の調節の間に不均衡が存在することが多い。
【0005】
したがって、この非線形/非対称ハードウェア・バイアスを許容する新規なDNN訓練技術が必要である。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明は、請求項1に記載の方法、および請求項15に記載の対応するシステムを提供する。
【0007】
以下の詳細な説明および図面を参照することにより、本発明ならびに本発明のさらなる特徴および利点のより完全な理解が得られるであろう。
【図面の簡単な説明】
【0008】
【
図1】本発明の一実施形態による抵抗処理ユニット(RPU)デバイスのアナログ・クロスポイント・アレイに具体化されたディープ・ニューラル・ネットワーク(DNN)を示す図である。
【
図2A】本発明の一実施形態による、線形および対称RPUデバイスの理想的なスイッチング特性を示す図である。
【
図2B】本発明の一実施形態による、非線形および非対称RPUデバイスの理想的でないスイッチング特性を示す図である。
【
図3】本発明の一実施形態によるDNNを訓練するための例示的な方法論を示す図である。
【
図4】本発明の一実施形態による、行列Aと行列Aのゼロの重みの伝導率値が投入された参照行列とに対応する二つの相互接続されたアレイ(すなわちアレイAおよび参照アレイ)を示す図である。
【
図5】本発明の一実施形態による、yをアレイAおよびアレイCからの出力の線形結合としてアレイAおよびアレイCで別々に行われる順方向サイクルy=Wxを示す図である。
【
図6】本発明の一実施形態による、zを行列Aおよび行列Cからの出力の線形結合として行列Aおよび行列Cで別々に行われる逆方向サイクルz=W
Tδを示す図である。
【
図7】本発明の一実施形態による、順方向サイクルで伝播されるxおよび逆方向サイクルで伝播されるδにより更新されるアレイA
【0009】
【0010】
を示す図である。
【
図8】本発明の一実施形態による、行列Aで行われる順方向サイクルy’=Ae
iを示す図である。
【
図9】本発明の一実施形態による、e
iおよびf(y’)で更新される行列Cを示す図である。
【
図10】本発明の一実施形態による例示的なワン・ホット・エンコードされたベクトルを示す図である。
【
図11】本発明の一実施形態による、例示的な2次のアダマール行列を示す図である。
【
図12】本発明の一実施形態による、例示的な4次のアダマール行列を示す図である。
【
図13】本発明の実施形態による、本技術の一つ以上を実行する際に用いられうる例示的な装置を示す図である。
【発明を実施するための形態】
【0011】
本明細書に提供されるのは、非対称の抵抗処理ユニット(RPU)デバイスによるディープ・ニューラル・ネットワーク(DNN)の訓練技術である。上で強調したように、DNNはRPUのアナログ・クロスポイント・アレイに具体化されうる。例えば、
図1に示される概略図を参照されたい。
【0012】
図1に示されるように、アルゴリズム的(抽象)重み行列102の各パラメータ(重みw
ij)が、ハードウェア、すなわちRPUデバイスの物理的クロスポイント・アレイ104の一つのRPUデバイス(RPU
ij)にマッピングされる。クロスポイント・アレイ104は、一連の伝導性行ワイヤ106と、伝導性行ワイヤ106に対して直交して向けられて交差する一連の伝導性列ワイヤ108とを含む。行および列ワイヤ106および108の間の交差部は、RPUデバイスのクロスポイント・アレイ104を形成するRPU110によって分離される。米国特許出願公開第2017/0109628号に記載されるように、各RPUは、第一端末、第二端末、および活性領域を含みうる。活性領域の伝導状態がRPUの重み値を識別し、RPUの重み値は第一/第二端子への信号の印加によって更新/調節されうる。さらに、三端子(またはそれ以上の端子)のデバイスが、余分の端子を制御することにより、二端子抵抗メモリ・デバイスとして有効に働きうる。三端子RPUデバイスの説明については、例えばKimら、“Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training”、2017 IEEE 60
th International Midwest Symposium on Circuits and Systems(MWACAS)、(2017年8月)(4ページ)を参照されたい。
【0013】
各RPU(RPUij)は、クロスポイント・アレイ104内のその位置(すなわちi行およびj列)に基づいて一意に識別される。例えばクロスポイント・アレイ104の上から下へ、および左から右へ進んでいくと、第一行ワイヤ106と第一列ワイヤ108との交差部のRPUはRPU11と指定され、第一行ワイヤ106と第二列ワイヤ108との交差部のRPUはRPU12と指定され、以下同様となる。さらに、重み行列102のパラメータのクロスポイント・アレイ104のRPUへのマッピングは、同じ規則にしたがう。例えば、重み行列102の重みwi1はクロスポイント・アレイ104のRPUi1にマッピングされ、重み行列102の重みwi2はクロスポイント・アレイ104のRPUi2にマッピングされ、以下同様となる。
【0014】
クロスポイント・アレイ104のRPU110は、事実上、DNNのニューロン間の重み付き接続部として機能する。RPU110の伝導状態(例えば抵抗)は、行および列ワイヤ106および108の個々のワイヤ間に印加される電圧をそれぞれ制御することによって変更されうる。高伝導状態または低伝導状態を達成するRPUの伝導状態の交番(オルタネーション)によってデータが記憶される。RPU110の伝導状態は、電圧を印加し、ターゲットRPU110を通過する電流を測定することによって読み出される。重みを含む全ての演算は、RPU110によって完全に並行に行われる。
【0015】
機械学習および認知科学において、DNNに基づくモデルは、動物の特に脳の生体神経ネットワークに触発された統計的学習モデルのファミリーである。これらのモデルを使用して、一般に未知である多数の入力および接続部の重みに依存するシステムおよび認知機能を推定または近似しうる。DNNは、電子信号の形で互いの間で「メッセージ」を交換する模擬「ニューロン」として働く相互接続されたプロセッサ要素のいわゆる「ニューロモルフィック」システムとして具体化されることが多い。模擬ニューロンの間で電子メッセージを運ぶDNNの接続部には、所与の接続部の強さまたは弱さに対応する数値的重みが提供される。これらの数値的重みは、経験に基づいて調節および調整されて、DNNが入力に適応し、学習できるようにしうる。例えば、手書き認識のためのDNNは、入力画像のピクセルによって活性化されうる入力ニューロンのセットによって定義される。ネットワークの設計者によって決定された関数によって重み付けおよび変換された後、これらの入力ニューロンの活性化はその後、他の下流のニューロンに渡される。このプロセスは、出力ニューロンが活性化されるまで繰り返される。活性化された出力ニューロンは、どの文字が読み取られたかを判断する。
【0016】
RPU110は、特に訓練目的には理想的でない非線形および非対称のスイッチング特性を呈しうる。例えば、
図2Aおよび
図2Bを参照されたい。最初に
図2Aを参照すると、理想的なRPUデバイスのスイッチング特性が示される。
図2Aに示すように、この理想的な場合には、重みを上下に調節するために外部電圧刺激が印加されたときに応答が線形および対称である。訓練の目的上、そのような理想的なデバイスは、誤差逆伝播法および確率的勾配降下法(SGD)を完全に実施する。
【0017】
すなわち、以下でさらに詳細に説明するように、各パラメータ(重みwij)の誤差勾配が誤差逆伝播法を使用して算出される、インクリメンタルまたは確率的勾配降下法(SGD)プロセスによりDNNが訓練されうる。例えば、Rumelhartら、“Learning representations by back-propagating errors”、Nature 323、pp.533-536(1986年10月)を参照されたい。誤差逆伝播法は、収束基準が満たされるまで複数回繰り返される順方向サイクル、逆方向サイクル、および重み更新サイクルの三つのサイクルにおいて行われる。
【0018】
DNNに基づくモデルは、複数の抽象化レベルでデータの表現を学習する複数の処理層で構成される。例えば、LeCunら、“Deep Learning”、Nature 521、pp.436-444(2015年5月)を参照されたい。N個の入力ニューロンがM個の出力ニューロンに接続される単一の処理層の場合、順方向サイクルはベクトル-行列乗算(y=Wx)を計算することを含み、ここで長さNのベクトルxは入力ニューロンの活性を表し、サイズM×Nの行列Wが入力および出力ニューロンの各対間の重み値を記憶する。結果として生じる長さMのベクトルyは、各抵抗メモリ要素で非線形活性化を行うことによってさらに処理され、それから次の層に渡される。
【0019】
情報が最終出力層に到達すると、逆方向サイクルは、誤差信号を算出し、誤差信号をDNNを通して逆伝播することを含む。単一の層の逆方向サイクルは、重み行列の転置(各行および対応する列の入れ替え)に対するベクトル-行列乗算(z=WTδ)も含み、ここで長さMのベクトルδは出力ニューロンによって算出された誤差を表し、長さNのベクトルzはニューロンの非線形性の導関数を使用してさらに処理され、それから前の層に渡される。
【0020】
最後に、重み更新サイクルでは、順方向および逆方向サイクルにおいて使用される二つのベクトルの外積を行うことによって重み行列Wが更新される。この二つのベクトルの外積は、W←W+η(δxT)として表されることが多く、ここでηはグローバルな学習率である。
【0021】
この誤差逆伝播法プロセス中に重み行列Wに対して行われる全ての演算は、対応する数のM行およびN列を有するRPU110のクロスポイント・アレイ104により実施され得、ここでクロスポイント・アレイ104の記憶された伝導率値が行列Wを形成する。順方向サイクルでは、入力ベクトルxが各列ワイヤ108を通して電圧パルスとして伝送され、結果として生じるベクトルyが、行ワイヤ106から出力される電流として読み出される。同様に、逆方向サイクルへの入力として行ワイヤ106から電圧パルスが供給されると、重み行列WTの転置に対してベクトル-行列積が計算される。最後に、更新サイクルにおいて、ベクトルxおよびδを表す電圧パルスが、列ワイヤ108および行ワイヤ106から同時に供給される。この構成では、各RPU110は、対応する列ワイヤ108および行ワイヤ106から来る電圧パルスを処理することによって局所乗算および加算演算を行い、このようにしてインクリメンタルな重み更新を達成する。
【0022】
上で強調したように、対称RPU(
図2Aを参照)は誤差逆伝播法およびSGDを完全に実施する。すなわち、そのような理想的なRPUでは、w
ij←w
ij+ηΔw
ijとなり、ここでw
ijはクロスポイント・アレイ104のi行およびj列の重み値である。
【0023】
対照的に、理想的でないRPUデバイスのスイッチング特性は
図2Bに示される。
図2Bに示すように、この理想的でない場合には、外部電圧刺激が印加されたときに応答が非線形および非対称である。すなわち、重みを上下に調節するために電圧パルス(本明細書ではそれぞれ「アップ」および「ダウン」パルスと呼ばれる)が段階的に印加されたときに重み更新の量(すなわち段階の大きさ)が現在の重み値に線形に依存する。したがって、上下の調節の強さが等しい重み値が一つだけある(以下で詳述するゼロ・シフト技術からのゼロの重み値に対応する)が、残りの重み範囲は不均衡である。RPUデバイスにアップおよびダウン・パルス・シーケンスのセットが与えられると想定した場合、この不均衡は、デバイスがアップおよびダウン・パルスの強さが等しい対称点に向かって上下する傾向をもつことを意味する。このデバイス挙動は、RPUデバイスの伝導率の変化を左右するRPUデバイスの物理的性質に由来する追加のエネルギー項(内部エネルギー)に変換されうる。したがって、誤差逆伝播法に使用されるときには、これらの理想的でないスイッチング特性を備えたRPUは、理想的な場合とは非常に異なるものを実施する、すなわちw
ij←w
ij+ηΔw
ij+G(w
ij)|Δw
ij|となり、ここでG(w
ij)|Δw
ij|はRPUデバイスの非対称のスイッチング特性に起因して現れる追加のエネルギー項(内部エネルギー)を表す。
【0024】
RPU110などの抵抗メモリ・デバイスでは、各デバイスでアップおよびダウン・パルスの傾きが全く同じであるただ一つの対称点が常に存在することが分かっている。例えば、Kimらによる“Alignment Techniques to Match Symmetry Point as Zero-Weight Point in Analog Crosspoint Arrays”と題した米国特許出願第16/158,056号(以下、「米国特許出願第16/158,056号」)を参照されたい。この対称点(異なりうる)には、ゼロの重み値が割り当てられうる。
【0025】
クロスポイント・アレイ104の各RPU110の対称点(デバイスごとに変動し得る)は、重みアレイの全てのRPU110が自身の対称点に収束するまで重みアレイ(例えば行列A、以下参照)のRPU110に繰り返し(第一、第二、第三などの)アップおよびダウン電圧パルスを印加することによって決定される。例えば、伝導率範囲がGmin~Gmaxであり、一つの更新インシデントでの平均デルタGがdGavgである場合、伝導率範囲内の有効状態数は(Gmax-Gmin)/dGavgである。デバイスが極値点にあり、交互のアップ/ダウン・パルスが与えられると、中央点に到達するまでに更新#=(Gmax-Gmin)/dGavgがかかる。収束を保証するために、余分のサイクルの交互のアップ/ダウン・パルス、例えばn×(Gmax-Gmin)/dGavgを与えることができ、ここでn=1以上である。アップおよびダウン電圧パルスは、RPU110にランダムに(すなわち各パルスがランダムにアップまたはダウン・パルスのいずれかである)、交互に(すなわち前のパルスがアップ・パルスである場合には次のパルスはダウン・パルスであり、その逆も同様)などで印加されうる。米国特許出願第16/158,056号を参照されたい。
【0026】
重みアレイの全てのRPU110がいずれも自身の対称点に収束すると、(対称点での)重みアレイからの各RPU110の伝導率値が、重みアレイと相互接続された別個の参照アレイにコピーされる。重みアレイのデバイスと参照アレイとの間には一対一の相関があるため、重みアレイの一つの対応するデバイスに対して参照アレイの各デバイスで一意のゼロの重み値が確立されうる。したがって、演算中には、重みアレイのRPU110の出力は、参照アレイに記憶された対応するデバイスからのゼロの重み値によってシフトされる。例えば、重みアレイおよび参照アレイの両方に同じ信号が提供されうる。その後、重みアレイのRPU110からの出力(例えばI1、I2、I3など)が、それらの値を(ゼロの重み値に設定された)参照アレイの対応するデバイスの出力から減算することによってゼロシフトされて、ゼロシフトされた結果が達成されうる。米国特許出願第16/158,056号を参照されたい。
【0027】
ゼロシフトされた結果を達成するためのこの初期設定の後、本技術を使用してDNNが訓練される。例えば、
図3の方法論300を参照されたい。その最も一般的な形態では、本技術にしたがって使用される重み行列(W)は、二つの行列AおよびCの線形結合である、すなわちW=γA+Cであり、ここでγはスカラー係数である。初期化中には、ゼロの重み値の参照アレイ(上記を参照)を使用して、行列Aの各RPUがゼロに対応する重み値でその平衡点にあることが保証される。訓練中には、重み更新がゼロ点の周りで対称挙動を有する行列Aに蓄積され、その後行列Cに移動される。この連結システム(行列Aおよび行列Cに具体化される)は、理想的でないRPUに関連するハードウェア・バイアスを許容するようにニューラル・ネットワークの目的関数およびRPUの内部エネルギーを自己無撞着に最小化し、故に非対称デバイスを使用して単純に行われる標準のSGD技術と比較して優れた結果を与えるのが有利である。
【0028】
特に、
図3を参照すると、ステップ302で、行列Aの各RPUの対称点が決定され、対応するゼロの重みの伝導率値が参照アレイにコピーされる。上記のように、各RPUデバイスの対称点は、行列Aの全てのRPUが自身の対称点に収束するまで行列AのRPUに繰り返しアップおよびダウン電圧パルスを(例えばランダムに、交互になど)印加することによって決定されうる。行列Aおよび参照行列は、二つの相互接続されたアレイに具体化されうる。例えば、
図4を参照されたい。
【0029】
すなわち、
図4を簡単に参照すると、(重み行列Aの重み値(w
ij)が投入された)RPU404のクロスポイント・アレイ402および(参照行列の対応するゼロの重みの伝導率値(w
0’)が投入された)RPU408のクロスポイント・アレイ406が示される。
図4に示されるように、クロスポイント・アレイ402(行列A)のRPU404とクロスポイント・アレイ406(参照行列)のRPU408との間には一対一の相関があるため、重み行列Aの一つの対応するRPUに対して参照行列の各RPUで一意のゼロの重み値(w
0’)が確立されうる。以下で詳述するように、(例えば順方向および逆方向演算において)行列Aが読み出されるときには、差分モードのアレイ402(すなわちアレイA)およびアレイ406(すなわち参照アレイ)。対照的に、行列Aを更新するときには、アレイ402(すなわちアレイA)だけを更新するための演算が行われる。
【0030】
図3の方法論300を再び参照すると、ゼロの重みの伝導率値が参照アレイに記憶されると、修正されたSGDプロセスを使用してDNNの訓練が行われる。全体として、訓練プロセスの目標は、DNNの精度を最大化するための最良のパラメータ(重みw
ij)のセットを決定することである。「修正された」とは、現在のSGD訓練プロセスが上述のように順方向サイクル、逆方向サイクル、および重み更新サイクルの三つのサイクルで行われる誤差逆伝播法を使用して誤差勾配を算出するのに対し、ここでは一つの重み行列の代わりに行列AおよびCの連結システムで演算が行われることを意味する。行列A(ゼロ点の周りで対称挙動を有する、上記のステップ302を参照)に重み更新が蓄積される。その後、この蓄積された情報が行列Cに移動される。
【0031】
図3に示すように、プロセスは、重み行列(W)すなわちW=γA+Cを使用して順方向サイクルが行われることから始まり、ここでγはスカラー係数である。したがって、上で強調したように、重み行列(W)は二つの別々の行列AおよびCの線形結合である。行列Aおよび行列Cのパラメータは、(例えば本明細書においてアレイAおよびアレイCともそれぞれ呼称される)別々のクロスポイント・アレイのRPUデバイスにマッピングされる。一般に、順方向サイクルはベクトル-行列乗算(y=Wx)を計算することを含み、ここで入力ベクトルxは入力ニューロンの活性を表し、行列W(W=γA+C)は入力および出力ニューロンの各対間の重み値を記憶する。重み値WはW=γA+CであるようにAおよびCの線形結合として設定されるため、γ=0またはγ=1に設定するだけでこれらの極端な場合に到達できることが注目される。γ=1のとき、これによりW=A+Cとなり、γ=0のとき、これによりW=Cとなり、後者は行列Aが「隠れている」場合を表す。
【0032】
例示的な実施形態によれば、この順方向サイクルは、ステップ304において行列AおよびCで別々に行われ、その後ステップ306で、例えば(アナログ-デジタル変換の後に)デジタル回路を使用して線形結合が算出される。例えば、
図5を簡単に参照すると、クロスポイント・アレイ402および508の記憶された伝導率値がそれぞれ行列AおよびCを形成するRPUデバイスのクロスポイント・アレイ402および508で(ステップ304により)順方向サイクルのベクトル-行列乗算演算が実施されるのが示される。
【0033】
図5に示されるように、順方向サイクルでは、方法論300のステップ304により、入力ベクトルxが伝導性列ワイヤ506および512のそれぞれを通して電圧パルスとして伝送され、結果として生じる出力ベクトルyが、クロスポイント・アレイ402(行列A)および508(行列C)の伝導性行ワイヤ504および510からそれぞれ出力される電流として読み出される。
図5に同様に示されるように、クロスポイント・アレイ402(行列A)および508(行列C)からの(アナログ)出力ベクトルy
A=Axおよびy
C=Cxをそれぞれデジタル信号に変換するために、アナログ-デジタル変換器(ADC:analog-to-digital converter)507およびADC513が用いられる。したがって、方法論300のステップ306により、これらのデジタル化された信号の線形結合y=γy
A+y
Cが容易に決定されうる、すなわち、
y
A=Ax
y
C=Cx
y=γy
A+y
C
である。
図5に示されるように、順方向サイクルで異なるアレイによって生成されるが同じ列に対応する信号は、標準の乗算および加算演算が実施されるデジタル領域でスケーリングおよび加算される。
【0034】
上記のステップ302に記載されるように、クロスポイント・アレイ402(行列A)のRPUデバイスのゼロの重みの伝導率値は、参照アレイにコピーされた。例えば、
図4のクロスポイント・アレイ406(参照行列)を参照されたい。訓練中には、ステップ304で、RPUデバイスのスイッチング挙動のバイアスを補償するためにクロスポイント・アレイ402(行列A)のRPUデバイスの出力値をそれらの対称点に調節するために、これらのゼロの重みの伝導率値が使用される(上記を参照)。そのために、ステップ304でクロスポイント・アレイ402(行列A)に印加されるのと同じ電圧パルスが、参照アレイにも印加される。その後、クロスポイント・アレイ402(行列A)の出力ベクトルyが、参照アレイの出力ベクトルから減算される。このゼロシフト技術は、米国特許出願第16/158,056号に詳細に記載され、その内容は、本明細書に全体が記載されているかのように参照により組み込まれる。
【0035】
図3の方法論300を再び参照すると、ステップ308で、行列AおよびCで逆方向サイクルが行われる。一般に、逆方向サイクルは、誤差信号δを算出し、行列AおよびCの転置(各行および対応する列の入れ替え)に対するベクトル-行列乗算を介してその誤差信号δを行列AおよびCに逆伝播すること(z=W
Tδ)を含み、ここでベクトルδは出力ニューロンによって算出された誤差を表し、ベクトルzはニューロン非線形性の導関数を使用してさらに処理され、それから前の層に渡される。
【0036】
順方向パスと同様に、逆方向サイクルも、ステップ308で行列AおよびCで別々に行われてから、ステップ310で線形結合が算出される。例えば、
図6を簡単に参照すると、クロスポイント・アレイ402(行列A)および508(行列C)で(ステップ308により)逆方向サイクルのベクトル-行列乗算演算が実施されることが示される。
【0037】
図6に示されるように、逆方向サイクルでは、方法論300のステップ308により、誤差信号δが伝導性行ワイヤ504および510のそれぞれを通して電圧パルスとして伝送され、結果として生じる出力ベクトルzが、クロスポイント・アレイ402(行列A)および508(行列C)の伝導性列ワイヤ506および512からそれぞれ出力される電流として読み出される。逆方向サイクルへの入力として行ワイヤ504および510から電圧パルスが供給されると、行列AおよびCの転置に対してベクトル-行列積が計算される。
【0038】
図6に同様に示されるように、クロスポイント・アレイ402(行列A)および508(行列C)からの(アナログ)出力ベクトルz
A=Aδおよびz
C=Cδをそれぞれデジタル信号に変換するために、ADC507およびADC513が用いられる。したがって、方法論300のステップ310により、これらのデジタル化された信号の線形結合z=(γz
A+z
C)が容易に決定されうる、すなわち、
z
A=Aδ
z
C=Cδ
z=γz
A+z
C
である。
図6に示されるように、逆方向サイクルで異なるアレイによって生成されるが同じ行に対応する信号は、デジタル領域でスケーリングおよび合計される。
【0039】
上記のように、クロスポイント・アレイ402(行列A)のRPUデバイスのゼロの重みの伝導率値は、参照アレイにコピーされた。例えば、
図4のクロスポイント・アレイ406(参照行列)を参照されたい。訓練中には、ステップ308で、RPUデバイスのスイッチング挙動のバイアスを補償するためにクロスポイント・アレイ402(行列A)のRPUデバイスの出力値をそれらの対称点に調節するために、これらのゼロの重みの伝導率値が使用される(上記を参照)。そのために、ステップ308でクロスポイント・アレイ402(行列A)に印加されるのと同じ電圧パルスが、参照アレイにも印加される。その後、クロスポイント・アレイ402(行列A)の出力ベクトルzが、参照アレイの出力ベクトルから減算される。
【0040】
図3の方法論300を再び参照すると、ステップ312で、順方向サイクルで伝播された入力ベクトルxおよび逆方向サイクルで伝播された誤差信号δを使用して行列Aが更新される、すなわち以下の式となる。
【0041】
【0042】
上記のように、ηはグローバルな学習率である。
図7を簡単に参照すると、これらの行列Aの更新は、伝導性列ワイヤ506および伝導性行ワイヤ504からそれぞれ同時に供給される(順方向サイクルからの)ベクトルxおよび(逆方向サイクルからの)ベクトルδを表す電圧パルスを伝送することによって、クロスポイント・アレイ402(行列A)において実施されることが示される。順方向および逆方向サイクルに用いられる電圧パルスとは対照的に、更新サイクルは確率的パルスPを使用する(
図7を参照)。この構成では、クロスポイント・アレイ402の各RPUは、対応する伝導性列ワイヤ506および伝導性行ワイヤ504から来る電圧パルスを処理することによって局所乗算および加算演算を行い、このようにしてインクリメンタルな重み更新を達成する。
【0043】
任意に、以下に説明するように、行列A(ステップ314)で順方向サイクルを行い、行列C(ステップ316)を更新する前に、ステップ304~312が複数回繰り返されうる。
図3を参照されたい。例示的な実施形態によれば、ステップ304~312はn回繰り返され、ここでnは2~100およびその間の範囲である。
【0044】
次に、方法論300のステップ314で、入力ベクトルeiを使用して行列Aで順方向サイクルすなわちy’=Aeiが行われる。各時間ステップで新たな入力ベクトルeiが使用され、サブ・インデックスiはその時間インデックスを示す。
【0045】
以下で詳述するように、例示的な実施形態によれば、入力ベクトルeiは、ワン・ホット・エンコードされたベクトルである。例えば、当技術分野で知られるように、ワン・ホット・エンコードされたベクトルは、単一の高(1)ビットを有し、他の全てのビットが低(0)である組み合わせのみを有するビットの群である。説明のために単純な非限定的な例を用いると、サイズ4×4の行列を想定し、ワン・ホット・エンコードされたベクトルは、以下のベクトル[1 0 0 0]、[0 1 0 0]、[0 0 1 0]および[0 0 0 1]のうちの一つとなる。各時間ステップで新たなワン・ホット・エンコードされたベクトルが使用され、サブ・インデックスiはその時間インデックスを示す。しかし、入力ベクトルeiを選択するための他の方法も本明細書において企図されることが注目される。例えば、入力ベクトルeiは、代わりにアダマール行列、ランダム行列などの列から選択されることができる。以下を参照されたい。
【0046】
図8を簡単に参照すると、行列Aで行われるこの順方向サイクルでは、入力ベクトルe
iが伝導性列ワイヤ506のそれぞれを通して電圧パルスとして伝送され、結果として生じる出力ベクトルy’が、クロスポイント・アレイ402(行列A)の伝導性行ワイヤ504から出力される電流として読み出されることが示される。行列Aで行われるこの順方向サイクルへの入力として列ワイヤ506から電圧パルスが供給されると、ベクトル-行列積が計算される。
【0047】
上記のように、クロスポイント・アレイ402(行列A)のRPUデバイスのゼロの重みの伝導率値は、参照アレイにコピーされた。例えば、
図4のクロスポイント・アレイ406(参照行列)を参照されたい。ステップ314で、RPUデバイスのスイッチング挙動のバイアスを補償するためにクロスポイント・アレイ402(行列A)のRPUデバイスの出力値をそれらの対称点に調節するために、これらのゼロの重みの伝導率値が使用される(上記を参照)。そのために、ステップ314でクロスポイント・アレイ402(行列A)に印加されるのと同じ電圧パルスが、参照アレイにも印加される。その後、クロスポイント・アレイ402(行列A)の出力ベクトルzが、参照アレイの出力ベクトルから減算される。
【0048】
図3の方法論300を再び参照すると、ステップ315で、例えば標準のデジタル回路を使用して、ステップ314からのy’を使用して関数f(y’)が計算される。関数f(y’)は、いくつかの異なるやり方で定義されうる。例えば、ほんの一例として、一つの非限定的な例によれば、|y’|>閾値Tの場合に限りf(y’)=y’であり、それ以外の場合には|y’|<閾値Tでf(y’)=0である。この閾値は、ハードウェアに由来する読み出しノイズのオーダーでありうる。例えば、計算のアナログ性により、y’はノイズを含む様式でのみ計算されうる、すなわちy’=Ae
iは、y’=Ae
i+ノイズとしてのみ実現されうる。順方向読み出し演算のこのノイズ項は、手元のハードウェアにつき既知である。C行列のノイズを含む更新を排除するために(ステップ316を参照、後述)、順方向サイクルからの信号がノイズレベルを上回るときに行列Cに適用されるようにT≒ノイズを選択しうる。この閾値関数は、ノイズを排除する一例であるが、他にも同じ目的で使用できる関数がある。あるいは、単純にステップ314からの入力ベクトルe
iおよびy’を使用してステップ316で行列Cを更新する(以下を参照)こともできる。
【0049】
図3の方法論300を再び参照すると、ステップ316で、ステップ314からの入力ベクトルe
iおよびステップ315からのf(y’)を使用して行列Cが更新される、すなわち、
【0050】
【0051】
となり、ここでλはC行列に対する更新の強さを制御するスカラー値である。これは、C行列を更新する間に使用されるグローバルな学習率である。
図9を簡単に参照すると、これらの行列Cの更新は、伝導性列ワイヤ512および伝導性行ワイヤ510からそれぞれ同時に供給されるステップ314からのベクトルe
iおよびベクトルy’(|y’|>閾値Tの場合、他の場合は0)を表す電圧パルスを伝送することによって、クロスポイント・アレイ508(行列C)において実施されることが示される。順方向および逆方向サイクルに用いられる電圧パルスとは対照的に、更新サイクルは確率的パルスPを使用する(
図9を参照)。この構成では、クロスポイント・アレイ508の各RPUは、対応する伝導性列ワイヤ512および伝導性行ワイヤ510から来る電圧パルスを処理することによって局所乗算および加算演算を行い、このようにしてインクリメンタルな重み更新を達成する。
【0052】
その後、
図3に示すように、DNN訓練が完了するまでステップ304~316が繰り返される。例えば、例示的な実施形態によれば、ステップ304~316は、ある収束基準が満たされるまで複数回繰り返される。例えば、ほんの一例として、誤差信号のそれ以上の改善が見られないときに訓練が完了したと見なされうる。
【0053】
上で強調したように、例示的な実施形態によれば、入力ベクトルe
iは、単一の高(1)ビットを有し、他の全てのビットが低(0)である組み合わせのみを有するビットの群であるワン・ホット・エンコードされたベクトルである。例えば、
図10を参照されたい。
図10に示されるように、サイズ4×4の行列を所与とすると、ワン・ホット・エンコードされたベクトルは、以下のベクトル[1 0 0 0]、[0 1 0 0]、[0 0 1 0]、[0 0 0 1]のうちの一つとなる。各時間ステップで、その時間インデックスのサブ・インデックスiで示される新たなワン・ホット・エンコードされたベクトルが使用される。
【0054】
別の例示的な実施形態によれば、入力ベクトルe
iは、アダマール行列の列から選択される。当技術分野で知られるように、アダマール行列は、エントリが±1の正方行列である。例えば、
図11(2次のアダマール行列)および
図12(4次のアダマール行列)を参照されたい。
【0055】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品またはそのすべてでありうる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数または複数)を含みうる。
【0056】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶しうる有形のデバイスでありうる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組み合わせでありうるがこれらに限定されない。コンピュータ可読記憶媒体のさらなる具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(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)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的にエンコードされたデバイス、および以上の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの一時的信号そのものと解釈されてはならない。
【0057】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされうる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはその組み合わせを含みうる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【0058】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来手続き型プログラミング言語を含む一つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードでありうる。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行しうる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)またはワイド・エリア・ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されることができ、または(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに接続がなされうる。いくつかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラム可能ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、本発明の態様を行うためにコンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行しうる。
【0059】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図またはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施されうることが理解されよう。
【0060】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/作用を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを生成しうる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/作用の態様を実施する命令を含む製品を含むように、コンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはその組み合わせに特定の様式で機能するように指示しうるコンピュータ可読記憶媒体に記憶されてもよい。
【0061】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/作用を実施するように、コンピュータにより実施されるプロセスを生成するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてコンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせることもできる。
【0062】
図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(単数または複数)を実施するための一つ以上の実行可能命令を含むモジュール、セグメント、または命令の部分を表しうる。いくつかの代替的実施態様では、ブロックに記された機能は、図面に記された順序とは異なる順序で生じうる。例えば、連続して示される二つのブロックは、実際には、関連する機能に応じて実質的に同時に実行されてもよく、またはブロックは逆の順序で実行されうる場合もある。ブロック図もしくはフローチャートまたはその両方の各ブロック、およびブロック図もしくはフローチャートまたはその両方のブロックの組み合わせは、指定された機能または作用を行うかまたは専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する専用ハードウェア・ベースのシステムによって実施されうることにも留意されたい。
【0063】
ここで
図13を参照すると、本明細書に提示される方法論のうちの一つ以上を実施するための装置1300のブロック図が示される。ほんの一例として、装置1300は、アレイに印加される入力電圧パルスを制御するように、もしくはアレイからの出力信号を処理するように、またはその両方を行うように構成されうる。
【0064】
装置1300は、コンピュータ・システム1310および除去可能媒体1350を含む。コンピュータ・システム1310は、プロセッサ・デバイス1320、ネットワーク・インターフェース1325、メモリ1330、媒体インターフェース1335、および任意のディスプレイ1340を含む。ネットワーク・インターフェース1325は、コンピュータ・システム1310がネットワークに接続することを可能にし、媒体インターフェース1335は、コンピュータ・システム1310がハード・ドライブまたは除去可能媒体1350などの媒体と相互作用することを可能にする。
【0065】
プロセッサ・デバイス1320は、本明細書に開示される方法、ステップ、および機能を実施するように構成されうる。メモリ1330は分散メモリまたはローカル・メモリであり得、プロセッサ・デバイス1320は分散プロセッサ・デバイスまたは単一のプロセッサ・デバイスでありうる。メモリ1330は、電気、磁気もしくは光メモリ、もしくはこれらの任意の組み合わせまたは他のタイプの記憶デバイスとして実施されうる。さらに、「メモリ」という用語は、プロセッサ・デバイス1320によってアクセスされるアドレス可能空間内のアドレスから読み出されるかまたはアドレスに書き込まれることができるあらゆる情報を包含するのに十分に広く解釈されねばならない。この定義により、ネットワーク・インターフェース1325を通じてアクセス可能なネットワーク上の情報は、プロセッサ・デバイス1320がネットワークからその情報を取得しうることから、なおメモリ1330内にある。プロセッサ・デバイス1320を構成する各分散プロセッサは一般に、それ自体のアドレス可能メモリ空間を含むことに留意されたい。コンピュータ・システム1310の一部または全部が、特定用途向けまたは汎用集積回路に組み込まれうることにも留意されたい。
【0066】
任意のディスプレイ1340は、装置1300の人間のユーザと相互作用するのに適した任意のタイプのディスプレイである。一般に、ディスプレイ1340は、コンピュータ・モニタまたは他の同様のディスプレイである。