(57)【要約】  アナログ・クロスポイント・アレイにおいて対称点をゼロ重み点として一致させるためのアライメント方法、およびベクトル行列であって、アナログ・アレイ・ベースのベクトル行列乗算は、導電行配線のセット、および導電行配線のセットと交差する導電列配線のセット、ならびに導電列配線のセットと導電行配線のセットとの交差点における最適化可能なクロスポイント・デバイスを有するクロスバー・アレイを各々含む、基準アレイに接続された重みアレイを含む。また、重みアレイ内のクロスポイント・デバイスの全てがそれらの独自の対称点に収束するまで、繰り返し電圧パルスを重みアレイ内のクロスポイント・デバイスに印加することと、重みアレイからのクロスポイント・デバイスごとのコンダクタンス値を基準アレイにコピーすることを含む。
2022502760.tif 000002
【特許請求の範囲】
【請求項１】
アナログ・アレイ・ベースのベクトル行列であって、
導電行配線のセット、および導電行配線の前記セットと交差する導電列配線のセット、ならびに導電列配線の前記セットと導電行配線の前記セットとの交差点における最適化可能なクロスポイント・デバイスを有するクロスバー・アレイを各々含む、基準アレイに接続された重みアレイを備える、ベクトル行列。
【請求項２】
前記重みアレイ内の前記クロスポイント・デバイスの全てがそれらの独自の対称点にある、請求項１に記載のベクトル行列。
【請求項３】
前記重みアレイからのクロスポイント・デバイスごとのコンダクタンス値が前記基準アレイにコピーされる、請求項２に記載のベクトル行列。
【請求項４】
前記クロスポイント・デバイスが抵抗型処理ユニット（ＲＰＵ）を含む、請求項１に記載のベクトル行列。
【請求項５】
前記重みアレイ内の導電行配線の前記セットに接続された第１の電圧パルス発生器と、
前記重みアレイ内の導電列配線の前記セットに接続された第２の電圧パルス発生器と、
をさらに備える、請求項１に記載のベクトル行列。
【請求項６】
電流積分器を介して前記重みアレイ内の導電列配線の前記セットに接続されたアナログ−デジタル変換器（ＡＤＣ）をさらに備える、請求項１に記載のベクトル行列。
【請求項７】
アナログ・アレイ・ベースのベクトル行列演算のための方法であって、
導電行配線のセット、および導電行配線の前記セットと交差する導電列配線のセット、ならびに導電列配線の前記セットと導電行配線の前記セットとの交差点におけるクロスポイント・デバイスを有するクロスバー・アレイを各々含む、基準アレイに接続された重みアレイを準備するステップと、
前記重みアレイ内の前記クロスポイント・デバイスの全てがそれらの独自の対称点に収束するまで、繰り返し電圧パルスを前記重みアレイ内の前記クロスポイント・デバイスに印加するステップと、
前記重みアレイからのクロスポイント・デバイスごとのコンダクタンス値を前記基準アレイにコピーするステップと、
を含む方法。
【請求項８】
前記重みアレイ内の前記クロスポイント・デバイスに印加される前記電圧パルスがアップおよびダウン電圧パルスを含む、請求項７に記載の方法。
【請求項９】
前記アップおよびダウン電圧パルスが前記重みアレイ内の前記クロスポイント・デバイスにランダムに印加される、請求項８に記載の方法。
【請求項１０】
前記アップおよびダウン電圧パルスが前記重みアレイ内の前記クロスポイント・デバイスに交互の様態で印加される、請求項８に記載の方法。
【請求項１１】
前記基準アレイにコピーされる前記コンダクタンス値がゼロ重み値を含む、請求項７に記載の方法。
【請求項１２】
前記重みアレイの出力を前記基準アレイからのゼロ重み値によってゼロ点移動させるステップをさらに含む、請求項７に記載の方法。
【請求項１３】
同じ信号を前記重みアレイおよび前記基準アレイの両方に印加するステップと、
前記重みアレイの前記出力を前記基準アレイの出力から減算するステップと、
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記クロスポイント・デバイスがＲＰＵを含む、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はニューロモーフィック・コンピューティングに関し、より詳細には、ニューラル・ネットワーク性能を改善するべくアナログ・クロスポイント・アレイにおいて対称点をゼロ重み点として一致させるためのアライメント技法に関する。
【背景技術】
【０００２】
ニューラル・ネットワークは、Ｇｏｋｍｅｎらによる米国特許出願公開第２０１７／０１０９６２８号（「Ｇｏｋｍｅｎ」）に記載される抵抗型処理ユニット（ｒｅｓｉｓｔｉｖｅ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＲＰＵ）などの抵抗型デバイスのアナログ・クロスポイント・アレイの形で具体化され得る。同出願において記載されるように、各ＲＰＵは、第１の端子、第２の端子、および活性領域を含む。活性領域の導通状態がＲＰＵの重み値を識別し、重み値は第１／第２の端子への信号の印加によって更新／調整することができる。
【０００３】
しかしながら、このような抵抗型デバイスは不均衡になり得ることが見出されている。すなわち、電圧パルスが、重みを上方または下方に調整するために段階的に印加されるとき、重み更新の量（すなわち、刻みのサイズ）は現在の重み値に線形従属する。それゆえ、上方および下方調整の間の不均衡が存在し、これに対応する必要がある。
【０００４】
したがって、ニューラル・ネットワーク性能を向上させるべく重み更新不均衡のための移動を用いたアナログ・クロスポイント・アレイを動作させるための改善された技法が望まれるであろう。
【発明の概要】
【０００５】
本発明は、ニューラル・ネットワーク性能を改善するためのアナログ・クロスポイント・アレイにおけるゼロ点移動技法を提供する。本発明の一態様では、アナログ・アレイ・ベースのベクトル行列乗算が提供される。アナログ・アレイ・ベースのベクトル行列乗算は、導電行配線のセット、および導電行配線のセットと交差する導電列配線のセット、ならびに導電列配線のセットと導電行配線のセットとの交差点における最適化可能なクロスポイント・デバイスを有するクロスバー・アレイを各々含む、基準アレイに接続された重みアレイを含む。
【０００６】
本発明の別の態様では、アナログ・アレイ・ベースのベクトル行列演算のための方法が提供される。本方法は、導電行配線のセット、および導電行配線のセットと交差する導電列配線のセット、ならびに導電列配線のセットと導電行配線のセットとの交差点におけるクロスポイント・デバイスを有するクロスバー・アレイを各々含む、基準アレイに接続された重みアレイを準備することと、重みアレイ内のクロスポイント・デバイスの全てがそれらの独自の対称点に収束するまで、繰り返し電圧パルスを重みアレイ内のクロスポイント・デバイスに印加することと、重みアレイからのクロスポイント・デバイスごとのコンダクタンス値を基準アレイにコピーすることと、を含む。
【０００７】
本発明のより完全な理解、ならびに本発明のさらなる特徴および利点が、以下の詳細な説明および図面を参照することによって得られる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る、導電行配線のセット、および導電行配線のセットと交差するように形成された導電列配線のセット、ならびに配線の２つのセットの間の交差点における抵抗型デバイスを有するクロスバー・アレイを示す図である。
【図２】本発明の一実施形態に係る、抵抗型デバイスがどのように不均衡になり得るのかを示す図である。
【図３】本発明の一実施形態に係る、均衡しているが、対称でない、アップおよびダウン・パルスへのデバイス応答を示す図である。
【図４】本発明の一実施形態に係る、アップおよびダウン・パルスの勾配が全く同じである単一の対称点を示す図である。
【図５】本発明の一実施形態に係る、対称点が、コンダクタンス範囲の中央に存在する代わりに、一方の側に偏っている場合を示す図である。
【図６】本発明の一実施形態に係る、均衡したデバイスを達成するために基準アレイから基準ゼロ重み値を減算することによって不均衡が修正された様子を示す図である。
【図７】本発明の一実施形態に係る、ニューラル・ネットワーク演算などのアナログ・アレイ・ベースのベクトル行列演算のための、対称点をゼロ重み点として調整するための例示的な方法論を示す図である。
【図８】本発明の一実施形態に係る、電流を差分的に読み出すことによって、正、負、および０の値である重み値を表すために２つのアレイ（重みアレイおよび基準アレイ）を用いる行列の例示的なアナログ・アレイ表現、ならびに繰り返し電圧パルスが、重みアレイ内のクロスポイント・デバイスに、それらが全てそれらの独自の対称点に収束するまで印加された様子を示す図である。
【図９】本発明の一実施形態に係る、重みアレイからのクロスポイント・デバイスごとのコンダクタンス値が基準アレイにコピーされた様子を示す図である。
【図１０】本発明の一実施形態に係る、同一のパルスを２つのアレイ内の対応する行に印加し、電流を読み取ることによる差分的読み取りを示す図である。
【図１１】本発明の一実施形態に係る、本技法のうちの１つまたは複数を実施するために採用され得る例示的な装置を示す図である。
【発明を実施するための形態】
【０００９】
機械学習および認知科学において、人工ニューラル・ネットワーク（ａｒｔｉｆｉｃｉａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ、ＡＮＮ）は、動物、および特に、脳の生物学的ニューラル・ネットワークから発想を得た統計的学習モデル群である。ＡＮＮは、概して未知である結合の多数の入力および重みに依存するシステムおよび認知機能を推定または近似するために用いられ得る。
【００１０】
ＡＮＮは、しばしば、「メッセージ」を電子信号の形態で互いの間で交換する模擬「ニューロン」の役割を果たす相互結合されたプロセッサ要素のいわゆる「ニューロモーフィック」システムとして具体化される。生物学的ニューロンの間でメッセージを伝えるシナプス神経伝達物質結合のいわゆる「可塑性」と同様に、模擬ニューロンの間で電子メッセージを伝えるＡＮＮ内の結合には、所与の結合の強さまたは弱さに対応する数値重みが与えられる。重みは経験に基づいて調整および調節することができ、ＡＮＮを入力に対して適応可能にし、それに学習能力を持たせる。例えば、手書き認識用のＡＮＮは、入力画像のピクセルによって活性化され得る入力ニューロンのセットによって規定される。ネットワークの設計者によって決定された関数によって重み付けされ、変換された後に、次に、これらの入力ニューロンの活性化は、「隠れ」ニューロンとしばしば称される、他の下流のニューロンに伝えられる。このプロセスが、出力ニューロンが活性化されるまで繰り返される。活性化された出力ニューロンが、どの文字が読まれたのかを決定する。
【００１１】
０および１を操作する伝統的なデジタル・モデルを利用する代わりに、ＡＮＮは、推定または近似されているコア・システム機能の実質的に機能的等価物である処理要素間の結合を作り出す。例えば、ＩＢＭ（Ｒ）のＳｙＮａｐｓｅコンピュータ・チップは、哺乳類の脳と同様の形態、機能、およびアーキテクチャをもたらそうと試みる電子ニューロモーフィック機械の中心構成要素である。ＩＢＭ  ＳｙＮａｐｓｅコンピュータ・チップは従来のコンピュータ・チップと同じ基本トランジスタ構成要素を用いるが、そのトランジスタは、ニューロンおよびそれらのシナプス結合の挙動を模倣するように構成されている。ＩＢＭ  ＳｙＮａｐｓｅコンピュータ・チップは、生物学的ニューロン間のシナプス通信と同様の電気的スパイクを用いて互いに通信する１００万個あまりの模擬「ニューロン」のネットワークを用いて情報を処理する。ＩＢＭ  ＳｙＮａｐｓｅアーキテクチャは、メモリ（すなわち、模擬「シナプス」）を読み取り、単純な演算を実行するプロセッサ（すなわち、模擬「ニューロン」）の構成を含む。通例、異なるコア内に配置されている、これらのプロセッサの間の通信はオンチップ・ネットワーク・ルータによって実行される。
【００１２】
図１に示されるように、ニューラル・ネットワークは、導電行配線１０４のセット（行）、および導電行配線のセットと交差するように形成された導電列配線１０６のセット（列）を含むクロスバー・アレイ１０２の形で具体化され得る。配線の２つのセットの間の交差点は、Ｇｏｋｍｅｎにおいて説明される抵抗型処理ユニット（ＲＰＵ）などの、抵抗型デバイス１０８（本明細書においてクロスポイント・デバイスとも称される）によって分離されている。Ｇｏｋｍｅｎにおいて説明されるように、各ＲＰＵは、第１の端子、第２の端子、および活性領域を含むことができる。活性領域の導通状態がＲＰＵの重み値を識別し、重み値は第１／第２の端子への信号の印加によって更新／調整することができる。さらに、３端子（またはさらに、より多くの端子の）デバイスは、余分の端子を制御することによって実効的に２端子抵抗型メモリ・デバイスとして機能することができる。３端子ＲＰＵデバイスの説明については、例えば、Ｋｉｍら、「Ａｎａｌｏｇ  ＣＭＯＳ−ｂａｓｅｄ  Ｒｅｓｉｓｔｉｖｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ｆｏｒ  Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  Ｔｒａｉｎｉｎｇ」、２０１７  ＩＥＥＥ  ６０ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｉｄｗｅｓｔ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ（ＭＷＡＣＡＳ）、（２０１７年８月）（４頁）を参照されたい。
【００１３】
クロスポイント・デバイスは、実質上、ニューロン間のＡＮＮの重み付けされた結合として機能する。「理想的」導通状態切り替え特性を有するメモリスタなどの、ナノスケール２端子デバイスが、高いエネルギー効率によってシナプス可塑性をエミュレートするためにクロスポイント・デバイスとしてしばしば用いられる。理想的メモリスタ材料の導通状態（例えば、抵抗）は、行および列配線の個々の配線の間に印加される電圧を制御することによって変更することができる。デジタル・データは、高導通状態または低導通状態を達成するための交差点におけるメモリスタ材料の導通状態の変更によって記憶される。メモリスタ材料はまた、材料の導通状態を選択的に設定することによって２つ以上の別個の導通状態を維持するようにプログラムすることができる。メモリスタ材料の導通状態は、電圧を材料にわたって印加し、標的クロスポイント・デバイスを通過する電流を測定することによって読み取られる。
【００１４】
図１に示されるように、電圧パルス発生器１１０は、列への対応する量の電流（Ｉ１、Ｉ２、Ｉ３、Ｉ４）を誘導することによって個々のクロスポイント・デバイスの重み値を読み取るための各行への電圧パルスを発生する。電圧は振幅変調またはパルス幅変調信号であり得る。これは、本明細書において、異なるコンダクタンスを有するクロスポイント・デバイスの「重み行列」と称されるものを発生する。この重み行列からの出力ベクトルは、電流積分器１１２およびアナログ−デジタル変換器（ａｎａｌｏｇ−ｔｏ−ｄｉｇｉｔａｌ  ｃｏｎｖｅｒｔｅｒ、ＡＤＣ）１１４を介して読み取ることができる各列から出力される電流信号（Ｉ１、Ｉ２等）である。重み行列からの出力電流はベクトル行列乗算を達成する。以下において詳細に説明されるように、重み要素の全てがそれらの独自の対称点にプログラムされると、次に、重みをコピーするために電流読み取り値を基準アレイの電流読み取り値と比較することができる。例示的な一実施形態によれば、この行列は、例えば、Ｇｏｋｍｅｎにおいて説明されるように、リピータによって接続された構成単位に分割されたネットワークにおいて用いられる。別の例示的な実施形態では、電圧パルス発生器１１０は、重みアレイからの出力信号Ｉ１、Ｉ２等を同じく処理することができる、以下において図１１の説明に従って説明されるものなどのコンピュータ・ベースの装置によって直接制御される。抵抗型メモリ・デバイスのこのクロスポイント・アレイは、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）／グラフィック処理装置（ｇｒａｐｈｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＧＰＵ）と比べて大きな加速を伴って逆伝搬アルゴリズムを並列に実行することができる。
【００１５】
以上において強調されたように、抵抗変化型メモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＲＡＭ）およびメモリスタなどのＲＰＵアーキテクチャにおけるクロスポイント要素のための候補と考えられる実際的な抵抗型メモリ・デバイスは、抵抗状態、ひいては重み値が更新／プログラムされる際に非線形になり得ることが見出された。例えば、重み（ｗ）をアップ（Ｕｐ）およびダウン（Ｄｎ）電圧パルスの数（ｎ）の関数として示す図２を参照されたい。図２に示されるように、電圧パルスが、重み（抵抗）を上方または下方に調整するために段階的に印加されるとき、重み更新の量（すなわち、刻みのサイズ）は現在の重み値に線形従属する。具体的には、アップ（Ｕｐ）パルスを参照すると、これらのパルスが段階的に印加されるにつれて、重み（ｗ）値は増大するが、最終的にはプロットの上部において飽和する。この同じ飽和挙動がダウン（Ｄｎ）パルスにもプロットの下部の付近で生じる。それゆえ、調整刻み（アップまたはダウン）のサイズは現在の重み値に応じて異なる。図３に、これらの段階的なアップ／ダウン・パルスの対応する勾配が示されている。図３に示されるように、アップおよびダウン・パルスへのデバイス応答は均衡しているが、対称ではない。
【００１６】
ＲＲＡＭなどのデバイスでは、クロスポイント・デバイスごとのアップおよびダウン・パルスの勾配が全く同じである１つの単一の対称点４０２が常に存在することが本明細書において見出された。図４を参照されたい。すなわち、クロスポイント・デバイスごとに、アップ／ダウン刻みのサイズは不均衡であるが（図２および図３参照）、勾配が同じである対称点（図４参照）が１つだけ存在する。また、ＵｐおよびＤｎの場合のａｂｓ（勾配）が異なる不均衡な場合を示す図５も参照されたい。したがって、対称点は、中央に存在する代わりに、一方の側に偏っている。
【００１７】
所与の抵抗型メモリ・デバイスのための、重み（ｗ）値が０である、すなわち、ｗ＝０である点は基準抵抗値によって決定され、これは人為的なものである。例えば、所与の抵抗型メモリ・デバイスがそのコンダクタンスＧを０Ｏｈｍ−１から１Ｏｈｍ−１まで変化させることができる場合には、基準抵抗型メモリ・デバイスを０．５Ｏｈｍ−１においてセット・アップするのが一般的である。なぜなら、それが所与の抵抗型メモリ・デバイスのコンダクタンス範囲の中心点であるからである。所与の抵抗型メモリが均衡している場合には、これは、（重みアレイ・デバイスにおける０．５Ｏｈｍ−１−基準デバイスにおける０．５Ｏｈｍ−１＝０であるため）０．５Ｏｈｍ−１をｗ＝０の点にすることになり、対称点がＧ＝０．５Ｏｈｍ−１にあるため、したがって、ｗ＝０である。しかし、実際的なデバイスでは、およびまた、デバイスごとのばらつきのゆえに、基準デバイスの全てを中心点においてセット・アップすることは有効でない。したがって、有利に、本技法は、アレイ内の全てのデバイスを自動的に補償する。
【００１８】
均衡したデバイスにおける対称点でさえも、それが、基準デバイスがどのようにセット・アップされるのかによって決定されるため、非ゼロの重み値であり得ることに注目すべきである。例えば、重み要素における（１，１）にあるデバイス、および基準要素における（１，１）にある対応するデバイスが常に一緒に読み取られる場合、ならびにそれらが同じコンダクタンスのものであるときには、重みは０である。
【００１９】
クロスポイント・デバイスのための上方および下方勾配の間の不均衡は、以下の更新均衡因子（ｂａｌａｎｃｅ  ｆａｃｔｏｒ、ＢＦ）を用いて定量化することができる：
【数１】
2022502760.tif 000003
均衡因子（ＢＦ）が０でない場合には、基準アレイ・コンダクタンスをコンダクタンス範囲の中心点においてセット・アップするための方略はもはや最善の解決策でなくなり、対称点はｗ！＝０の点に配置されることになる。非ゼロの対称点のデバイスはネットワーク性能に影響を及ぼすことになる。クロスポイント・デバイスのためのＢＦは、実際には、まれにしかコンダクタンス範囲の中心にないため、これは問題になり得る。
【００２０】
有利に、本技法によれば、対称点が見出されると、それらは、ニューラル・ネットワーク性能の精度を大いに改善するためにクロスポイント・デバイスごとのゼロ重みが一致させられるメトリックとして用いられることになる。例えば、図６を参照されたい。図６に示されるように、左側に示される不均衡なデバイスでは、（上方／下方）勾配の相違により、対称点が０にない。不均衡の非ゼロのＢＦに起因して、対称点はもはやコンダクタンス範囲の中心に配置されなくなる。本技法は、デバイスの対称点におけるコンダクタンス値を見出し、それを基準アレイ内の対応するデバイスにコピーする。
【００２１】
次に、ニューラル・ネットワーク演算などのアナログ・アレイ・ベースのベクトル行列演算用の、対称点をゼロ重み点として調整するための図７の方法論７００を参照して、本技法の例示的な一実施形態が説明される。以下においてさらに詳細に説明されるように、方法論７００は、一方のアレイは重みアレイであり、他方は基準アレイである、２つの相互接続されたアレイを用いて実施される。各（重み／基準）アレイは、導電行配線のセット（行）、および導電行配線のセットと交差するように形成された導電列配線のセット（列）を含むクロスバー・アレイを含む。配線の２つのセットの間の交差点は抵抗型クロスポイント・デバイス（例えば、ＲＰＵ）によって分離されている。とりわけ、各（重み／基準）アレイ内のデバイスの重みを最適化することができ、これにより、以下において説明されるように、重みアレイから得られた重み値が基準アレイに取り込まれることを可能にする。さらに、基準アレイ内の各デバイスにおいて、重みアレイ内の１つの対応するデバイスのために独自のゼロ重み値を確立することができるように、重みアレイおよび基準アレイ内のデバイスの間の１対１の相互関係が存在する。
【００２２】
ステップ７０２において、重みアレイ内のクロスポイント・デバイスの全てがそれらの独自の対称点に収束するまで、繰り返しの（第１、第２、第３等の）アップおよびダウン電圧パルスが重みアレイ内のクロスポイント・デバイスに印加される。例えば、コンダクタンス範囲がＧｍｉｎ〜Ｇｍａｘであり、１つの更新インシデントにおける平均デルタＧがｄＧａｖｇである場合には、コンダクタンス範囲内の実効的状態数は（Ｇｍａｘ−Ｇｍｉｎ）／ｄＧａｖｇである。デバイスが極値点にあり、交互のｕｐ／ｄｎパルスが与えられた場合、それは、中心点に達するための更新数＝（Ｇｍａｘ−Ｇｍｉｎ）／ｄＧａｖｇを要することになる。収束を確実にするために、交互のｕｐ／ｄｎパルスの余分のサイクル、例えば、ｎ  ｘ  （Ｇｍａｘ−Ｇｍｉｎ）／ｄＧａｖｇを与えることができる。ここで、ｎ＝１以上である。
【００２３】
以上において強調されたように、これらのアップ／ダウン電圧パルス（すなわち、パルス発生器からのもの）はクロスポイント・デバイスの抵抗を増大／減少させ、個々のクロスポイント・デバイスの重み値を更新／調整するために電圧パルスを各行に発生することによって印加される。例示的な一実施形態では、アップおよびダウン電圧パルスは重みアレイ内のクロスポイント・デバイスの各々にランダムな様態で繰り返し印加される。例えば、重みアレイ内の所与のクロスポイント・デバイスに印加される第１の電圧パルスは、ランダムに、アップ・パルスまたはダウン・パルスのいずれかであり、重みアレイ内の同じクロスポイント・デバイスに印加される第２の電圧パルスもまた、ランダムに、アップ・パルスまたはダウン・パルスのいずれかである、などとなる。別の例示的な実施形態では、アップおよびダウン電圧パルスは重みアレイ内のクロスポイント・デバイスの各々に交互の様態で繰り返し印加される。例えば、重みアレイ内の所与のクロスポイント・デバイスに印加される第１の電圧パルスがアップ・パルスである場合には、重みアレイ内の同じクロスポイント・デバイスに印加される第２の電圧パルスはダウン・パルスである。同じクロスポイント・デバイスに印加される第３の電圧パルスはアップ・パルス、などとなるであろう。第１の電圧パルスがダウン・パルスであった場合には、同じパターン、すなわち、ダウン／アップ／ダウン等が印加されるであろう。
【００２４】
重みアレイ内のクロスポイント・デバイスの全てが全てそれらの独自の対称点に収束すると、ステップ７０４において、（対称点における）重みアレイからのクロスポイント・デバイスごとのコンダクタンス値が基準アレイにコピーされる。基準アレイにコピーされたこれらのコンダクタンス値は、（上述されたように）重みアレイ内の各デバイスにおける独自の不均衡特性を補償する、重みアレイ内の各々の対応するデバイス用の基準アレイ内のゼロ重み点（Ｉｒｅｆ）を設定する。基準アレイは印加の間にプログラムされないことが注目に値する。基準アレイは、対称点の値を重みアレイからコピーすることによって初期化されるが、コピーが終了されると、プログラム基準アレイはプログラムされない。重みアレイのみがニューラル・ネットワーク・トレーニングの間にプログラムされる。
【００２５】
動作時には、ステップ７０６において、重みアレイ内のクロスポイント・デバイスの出力が、基準アレイ内に記憶された対応するデバイスからのゼロ重み値だけ移動させられる。すなわち、動作時には、同じ信号を重みアレイおよび基準アレイの両方に提供することができる。次に、重みアレイ内のクロスポイント・デバイスからの出力（例えば、Ｉ１、Ｉ２、Ｉ３等）を、それらの値を、（ゼロ重み値に設定された）基準アレイ内の対応するクロスポイント・デバイスの出力から減算し、ゼロ点移動された結果を達成することによって、ゼロ点移動することができる。
【００２６】
方法論７００のステップが、図８〜図１０に示される例を参照してさらに説明される。図８に示されるように、プロセスは、電流を差分的に読み出すことによって、正、負、および０の値である重み値を表すために２つのアレイ（重みアレイおよび基準アレイ）を有するアナログ・アレイ・ベースのベクトル行列を用いて実施される。各（重み／基準）アレイは、導電行配線８０６ａ、ｂのセット（行）、および導電行配線のセットと交差するように形成された導電列配線８０８ａ、ｂのセット（列）を含むクロスバー・アレイ８０２／８０４を含む。配線の２つのセットの間の交差点は抵抗型クロスポイント・デバイス８１０ａ、ｂ（例えば、ＲＰＵ）によって分離されている。それゆえ、以上において与えられたように、各（重み／基準）アレイ内のデバイス８１０ａ、ｂの重みを最適化することができる。図８に示されるように、基準アレイ内の各デバイス８１０ｂにおいて、重みアレイ内の１つの対応するデバイス８１０ａのために独自のゼロ重み値を確立することができるように、重みアレイおよび基準アレイ内のデバイス８１０ａ、ｂの間の１対１の相互関係が存在する。
【００２７】
重みアレイ内のクロスポイント・デバイスの全てがそれらの独自の対称点に収束するまで、繰り返しの（第１、第２、第３等の）アップおよびダウン電圧パルスが重みアレイ内のクロスポイント・デバイスに（例えば、マルチチャネル・パルス発生器８１２および８１４を介して）印加される。以上において与えられたように、これらのアップ／ダウン電圧パルスは、ランダムな様態で、または交互の様態で、あるいはその両方で印加することができる。
【００２８】
図９に示されるように、重みアレイ内のクロスポイント・デバイスの全てが全てそれらの独自の対称点に収束すると、（対称点における）重みアレイからのクロスポイント・デバイス８１０ａごとのコンダクタンス値が基準アレイにコピーされる。上述されたように、基準アレイにコピーされたこれらのコンダクタンス値は、重みアレイ内の各デバイス８１０ａにおける独自の不均衡特性を補償する、重みアレイ内の各々の対応するデバイスのための、アレイの対を用いて電流が読み取られる際のゼロ重み点を設定する。図１０に示されるように、動作時には、同一のパルスを２つのアレイ内の対応する行に印加し、電流を読み取ることによって、すなわち、減算、Ｉ１−Ｉｒｅｆによって、差分的読み取りが実行される。
【００２９】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体（または媒体群）を含むこともできる。
【００３０】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上述のものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、穿孔カード、またはその上に命令が記録された溝内の隆起構造などの、機械的に符号化されたデバイス、ならびに上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波または他の自由伝搬する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいは配線を通して伝送される電気信号などの、それ自体が一過性信号であると解釈されるべきでない。
【００３１】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組み合わせを経由して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含むこともできる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースがネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【００３２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、もしくは同様のものなどの、オブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの、従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで書かれた、ソース・コードまたはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は完全にユーザのコンピュータ上で実行するか、独立型ソフトウェア・パッケージとして一部ユーザのコンピュータ上で実行するか、一部ユーザのコンピュータ上で、且つ一部リモート・コンピュータ上で実行するか、または完全にリモート・コンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、あるいは外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを利用してインターネットを通じて）行われ得る。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【００３３】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【００３４】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであり得る。これらのコンピュータ可読プログラム命令はまた、内部に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組み合わせを特定の方式で機能するように指示するものであり得る。
【００３５】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するように、コンピュータによって実行されるプロセスを作り出すように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、一連の動作ステップを、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行させるものであり得る。
【００３６】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図における各ブロックは、指定されたロジック機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。いくつかの代替的な実装形態では、ブロック内に記された機能は、図面に記された順序とは異なる順序で行われてもよい。例えば、連続して示された２つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時として、関わる機能に依存して、逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは動作を実行するか、あるいは専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【００３７】
次に図１１を参照すると、本明細書において提示される方法論のうちの１つまたは複数を実施するための装置１１００のブロック図が示されている。単なる一例として、装置１１００は、電圧パルス発生器１１０、８１２、８１４等を介してアレイに印加される電圧パルスを制御すること、またはアレイからの出力信号Ｉ１、Ｉ２等を処理すること、あるいはその両方を行うように構成することができる。
【００３８】
装置１１００はコンピュータ・システム１１１０および着脱式媒体１１５０を含む。コンピュータ・システム１１１０は、プロセッサ・デバイス１１２０、ネットワーク・インターフェース１１２５、メモリ１１３０、媒体インターフェース１１３５、および任意選択的なディスプレイ１１４０を含む。ネットワーク・インターフェース１１２５は、コンピュータ・システム１１１０がネットワークに接続することを可能にし、その一方で、媒体インターフェース１１３５は、コンピュータ・システム１１１０が、ハード・ドライブまたは着脱式媒体１１５０などの、媒体と対話することを可能にする。
【００３９】
プロセッサ・デバイス１１２０は、本明細書において開示される方法、ステップ、および機能を実施するように構成することができる。メモリ１１３０は分散しているか、または局所的であり得、プロセッサ・デバイス１１２０は分散しているか、または単独であり得るであろう。メモリ１１３０は、電気的メモリ、磁気メモリ、または光メモリ、あるいはこれらまたはその他の種類の記憶デバイスの任意の組み合わせとして実装することができるであろう。さらに、用語「メモリ」は、プロセッサ・デバイス１１２０によってアクセスされるアドレス指定可能空間内のアドレスから読み出されるか、またはそこへ書き込まれ得るあらゆる情報を包含するよう十分に広義に解釈されるべきである。この定義によれば、ネットワーク・インターフェース１１２５を通じてアクセス可能な、ネットワーク上の情報は、プロセッサ・デバイス１１２０が情報をネットワークから取得することができるため、依然としてメモリ１１３０内にある。プロセッサ・デバイス１１２０を構成する各々の分散型プロセッサは、概して、その独自のアドレス指定可能なメモリ空間を包含することに留意されたい。また、コンピュータ・システム１１１０の一部または全ては特定用途向けまたは汎用集積回路内に組み込むことができることにも留意されたい。
【００４０】
任意選択的なディスプレイ１１４０は、装置１１００の人間のユーザと対話するのに適した任意の種類のディスプレイである。概して、ディスプレイ１１４０は、コンピュータ・モニタまたは他の同様のディスプレイである。
【００４１】
本発明の例示的な実施形態が本明細書において説明されたが、本発明はそれらの正確な実施形態に限定されず、様々な他の変更および修正が、当業者によって本発明の範囲から逸脱することなくなされ得ることを理解されたい。
【図１】
2022502760.tif 000004
【図２】
2022502760.tif 000005
【図３】
2022502760.tif 000006
【図４】
2022502760.tif 000007
【図５】
2022502760.tif 000008
【図６】
2022502760.tif 000009
【図７】
2022502760.tif 000010
【図８】
2022502760.tif 000011
【図９】
2022502760.tif 000012
【図１０】
2022502760.tif 000013
【図１１】
2022502760.tif 000014
【国際調査報告】
2022502760.tif 000015
2022502760.tif 000016