JP2023526740A - メモリ拡張ニューラル・ネットワークにおける計算のためのクロスバー・アレイ - Google Patents
メモリ拡張ニューラル・ネットワークにおける計算のためのクロスバー・アレイ Download PDFInfo
- Publication number
- JP2023526740A JP2023526740A JP2022562398A JP2022562398A JP2023526740A JP 2023526740 A JP2023526740 A JP 2023526740A JP 2022562398 A JP2022562398 A JP 2022562398A JP 2022562398 A JP2022562398 A JP 2022562398A JP 2023526740 A JP2023526740 A JP 2023526740A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- write
- neural network
- controller
- electronic device
- 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
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/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
-
- 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
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Semiconductor Memories (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
- Image Analysis (AREA)
Abstract
ニューラル・ネットワーク・システムを動作させるためのハードウェア実装手法において、コントローラと、メモリと、コントローラをメモリに接続するインターフェースとを含むニューラル・ネットワーク・システムが提供され、コントローラは、ニューラル・ネットワークを実行するように構成された処理ユニットを備え、メモリは、電子デバイスを介して接合部で相互接続された入力線および出力線を含むクロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを備える。ニューロモーフィック・メモリ・デバイスの電子デバイスは、コントローラから受信された書き込み命令とインターフェースによって生成された書き込みベクトルとに基づいて書き込み信号を入力線に結合することによって状態を増分的に変化させるようにプログラムされる。コントローラからの読み取り命令とインターフェースによって生成された読み取りベクトルとに基づいて読み取り信号をニューロモーフィック・メモリ・デバイスの入力線のうちの1つまたは複数に結合することによって、積和演算に従ってニューロモーフィック・メモリ・デバイスからデータが取り出される。
Description
本発明は、一般に、ニューラル・ネットワーク・システムの分野に関し、より詳細には、クロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを外部メモリとして使用する、メモリ拡張ニューラル・ネットワーク・システムに関する。
機械学習は、多くの場合、人間または動物の脳内の生物学的な神経回路網からインスピレーションを得た計算モデルである人工ニューラル・ネットワーク(ANN:artificial neural network)に依存している。このようなシステムは、例を用いて漸進的かつ自律的にタスクを学習し、例えば、音声認識、テキスト処理、およびコンピュータ・ビジョンに成功裏に適用されている。
ニューラル・ネットワークには、多層パーセプトロンなどの順伝播型ニューラル・ネットワーク、深層ニューラル・ネットワーク、および畳み込みニューラル・ネットワークが含まれる。ニューラル・ネットワークは、典型的には、ソフトウェアにおいて実装される。しかしながら、ニューラル・ネットワークは、例えば抵抗型処理ユニット(クロスバー・アレイ構造)または光学ニューロモーフィック・システムとして、ハードウェアにおいても実装され得る。
ニューラル・ネットワークを実行するために様々なタイプのハードウェア・システムが使用され得る。特に有利であるのは、メモリ拡張ニューラル・ネットワーク・システムを使用することである。メモリ拡張ニューラル・ネットワークの基本的な考え方は、外部メモリを用いてニューラル・ネットワークを強化することである。メモリ拡張ニューラル・ネットワーク(MANN:memory-augmented neural network)には、ニューラル・ネットワーク・データ処理からの利点と永続ストレージからの利点とを組み合わせた強力なアーキテクチャが有効である。
本発明の一実施形態の態様は、ハードウェア実装方法およびニューラル・ネットワーク・システムを開示する。コントローラと、メモリと、コントローラをメモリに接続するインターフェースとを含むニューラル・ネットワーク・システムが提供され、コントローラは、ニューラル・ネットワークを実行するように構成された処理ユニットを備え、メモリは、電子デバイスを介して接合部で相互接続された入力線および出力線を含むクロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを備える。ニューロモーフィック・メモリ・デバイスの電子デバイスは、(i)コントローラから受信された書き込み命令と(ii)書き込み命令に従ってインターフェースによって生成された書き込みベクトルとに基づいて書き込み信号を入力線のうちの1つまたは複数に結合することによって、その電子デバイスの状態を増分的に変化させるようにプログラムされる。(i)コントローラからの読み取り命令と(ii)読み取り命令に従ってインターフェースによって生成された読み取りベクトルとに基づいて読み取り信号をニューロモーフィック・メモリ・デバイスの入力線のうちの1つまたは複数に結合することによって、積和演算に従ってニューロモーフィック・メモリ・デバイスからデータが取り出される。
本発明の実施形態は、通常のニューラル・ネットワーク・システムでは情報が内部状態でのみ記憶され得ることを認識している(例えば、ネットワークが長短期記憶(LSTM:long short-term memory)ユニットから構成される場合、情報は、ユニットの状態で記憶されなければならない)。本発明の実施形態は、こうした点には、ユニットに新しい入力が到着した場合、記憶された情報が潜在的に上書きされ、限られた時間しか保存できないという欠点があることを認識している。本発明の実施形態はさらに、メモリ拡張ニューラル・ネットワーク・システムにおけるように外部メモリを用いて同じネットワークが拡張される場合、ネットワークがこのストレージを活用し、そのストレージを使用して長期間にわたって情報を保持できることを認識している。
メモリ拡張ニューラル・ネットワークは、いくつかの利点を有する。本発明の実施形態は、ニューラル・ネットワーク・システムのための外部メモリとして、ニューロモーフィック・デバイス(例えば、クロスバー・アレイ構造)を使用する。
外部メモリを用いてニューラル・ネットワークを拡張するには、インターフェースが存在しなければならない。このインターフェースは、例えば、読み取りヘッドおよび書き込みヘッドを含み得る(複数の読み取りヘッドおよび複数の書き込みヘッドが存在する可能性がある)。これらのヘッドの目的は、外部メモリからデータを取り出し、外部メモリに情報を書き込むことである。
コントローラ(コントローラ・ネットワークとも呼ばれる)は、ニューラル・ネットワークを実行する処理ユニットを含むユニットを指す。このコントローラは、何らかの入力を受け取り何らかの出力を作成する通常のニューラル・ネットワークを実行するユニットと見なされ得る。外部メモリがない場合、これは、任意の特定のタスクを解決するために使用される標準のニューラル・ネットワークと同等である。実施形態では、コントローラは、入力データ(例えば、画像)から特徴を抽出するために使用される特徴抽出ユニット(図示せず)に結合され、これにより、抽出された特徴はコントローラに提供されて、コントローラは、(ニューラル・ネットワークが訓練目的であるか推論目的であるかにかかわらず)そのような抽出された特徴に基づいてニューラル・ネットワークを実行する。例えば、主成分分析または畳み込みニューラル・ネットワークに依存して、任意の好適な特徴抽出方式が企図され得る。必要に応じて、他の前処理エンティティが関与し得る。現在では、このような前処理エンティティは、場合によってはコントローラに統合され得る。したがって、コントローラ・ネットワークのために様々なアーキテクチャが企図され得る(例えば、コントローラは基本的に、単純な順伝播型ニューラル・ネットワークまたは複数の層を有する複雑な再帰型ニューラル・ネットワークを実行することを目的とし得る)。簡単にするために、例えば、このネットワークは、再帰型LSTMユニットの単層であると見なされ得る。
一般に、読み取りヘッドおよび書き込みヘッドの構造は、メモリ拡張ニューラル・ネットワーク・システムの選ばれたタイプに依存する。多くの変形形態が利用可能である。読み取りヘッドおよび書き込みヘッドは、例えば浅いニューラル・ネットワークによって表され得る。読み取りヘッドは、コントローラから入力を受け取る。この入力の構造も、メモリ拡張ニューラル・ネットワークのタイプに依存する。単純なシナリオでは、読み取りヘッドへの入力は、コントローラ・ネットワーク自体への入力とまったく同じである。読み取りヘッドは、この入力に基づいて読み取りベクトルwrを作成し、ベクトルwrは、外部メモリM[i,j]にアクセスするために使用される。
非常に単純な事例では、読み取りヘッドへの入力は、浅いニューラル・ネットワークを通過し、この動作の結果が読み取りベクトルwrを形成する。例えば注目メカニズムを含む、より複雑な読み取りヘッド・アーキテクチャが存在する。本質的に、読み取りベクトルは、読み取りベクトルがどのように生成されるかに関係なく、外部メモリにアクセスするために使用される。(メモリにアクセスすることによる)結果rは、コントローラ・ネットワークに返され、次いで、コントローラ・ネットワークは、結果rを使用して、最初に与えられた入力に対する出力を作成することができる。
書き込みヘッドは、読み取りヘッドと同様の方法で動作する。書き込みヘッドは、コントローラ・ネットワークから入力を受け取り、単純な事例では、この入力は、単にコントローラ・ネットワーク自体への入力である。しかしながら、読み取りヘッドとは対照的に、書き込みヘッドのタスクは、情報を読み取ることではなく、情報を外部メモリに記憶することである。本質的に、書き込みヘッドは、メモリへ書き込むために使用される書き込みベクトルwwおよびvを生成することによってこれを実現する。この場合もやはり、このようなベクトルを生成する方法の厳密な手順は、メモリ拡張ニューラル・ネットワークのタイプに固有である。単純な事例では、書き込みヘッドへの入力は2つの浅いニューラル・ネットワークを通過し、結果はwwおよびvである。次いで、
M[i,j]=M[i,j](1-ww[i]eT[j])+ww[i]vT[j]
に従って、メモリ内容が修正される。
M[i,j]=M[i,j](1-ww[i]eT[j])+ww[i]vT[j]
に従って、メモリ内容が修正される。
本発明の実施形態は、クロスバー・アレイ構造を有するとともに、メムリスティブ・デバイス、例えば相変化メモリ(PCM:phase-change memory)セルなどの電子デバイスを使用する、外部メモリに依存する。このタイプのメモリ・デバイスは、従来のメモリ(例えば、SRAMまたはDRAM)のように簡単に使用することはできない。メムリスティブ・セルがメモリへの特定の書き込み方法を優先すること、すなわち、セルに値を増分的に追加することができ、値を減算する必要がある場合はセルをゼロにリセットできることが理解され得る。この制約を説明するために、本発明の実施形態は、書き込みヘッドに対する修正を提案する。本発明の実施形態は、コントローラからの書き込み命令とそのような書き込み命令に従ってインターフェースによって生成された書き込みベクトルとに基づいて書き込み信号を外部メモリの入力線に結合することによって、外部メモリ・デバイスの電子デバイス(セル)を、その電子デバイスの状態を増分的に変化させるようにプログラムする。特定の実施形態では、書き込みヘッドは、セルの以前の状態を維持するか、またはセルの状態を完全にゼロにリセットし得る。この修正は、書き込みベクトルを取得する方法の手順を問題とはせず、したがって、様々なタイプのメモリ拡張ニューラル・ネットワークに適用され得ることに留意されたい。本発明の実施形態について、図に関連してさらに詳細に説明する。
最初に、図1~図3を参照して、受け取った入力(S10)に基づいてニューラル・ネットワーク・システム1を動作させて出力(S30)を生成するハードウェア実装方法に関係する、本発明の一実施形態の態様について説明する。この方法およびその変形形態を「本方法」と総称する。「Sij(k)」に対する言及はすべて、図3~図5のフローチャートに示された方法ステップを指す。そのような方法は、本発明の実施形態の別の態様にさらに関係するニューラル・ネットワーク・システム1に依存する。基本的に、システム1は、コントローラ10、メモリ30、およびインターフェース20を含む。このインターフェース20は、コントローラ10をメモリ30に接続する。コントローラ10は、ニューラル・ネットワークを実行するように構成された処理ユニットを備え、したがって、コントローラはコントローラ・ネットワークと見なされ得る。メモリ30は、クロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを備える。この構造は、入力線31および出力線32を含み、線31、32は、電子デバイス33(例えば、メムリスティブ・デバイス)を介して接合部で相互接続される。
ニューロモーフィック・メモリ・デバイス30の電子デバイス33は、デバイス33の状態を増分的に変化させる(S23)ようにプログラムされるS21~S23。これは、書き込み信号をクロスバー・アレイ構造30の入力線31のうちの1つまたは複数に結合することによって実現される。書き込み信号は、インターフェース20によって生成される(S22)書き込みベクトルに基づいて生成される。書き込みベクトル自体は、コントローラ10からの書き込み命令(S21)に従って生成される。
必要に応じて、電子デバイス33は、積和演算に従って、ニューロモーフィック・メモリ・デバイス30からデータを取り出すことができるS24~S26。これは、インターフェース20によって生成されたS25読み取りベクトルに基づいて、読み取り信号をニューロモーフィック・メモリ・デバイス30の入力線31のうちの1つまたは複数に結合することによって実現される。読み取りベクトル自体は、コントローラ10からの読み取り命令S24に従って生成される。
コントローラ10の処理ユニットは、ニューラル・ネットワークを実装および実行するように構成される。処理ユニットが、例えば汎用処理ユニット(例えば、標準的なコンピュータの中央処理ユニット)であるか、またはアナログ回路を備え得ることに留意されたい。処理ユニットは、特に、別のニューロモーフィック・デバイス(図示せず)を含み得る。しかしながら、図示の実施形態では、ニューロモーフィック・メモリ・デバイス30は、処理ユニットの一部を形成しない。むしろ、ニューロモーフィック・デバイス30は、コントローラ10およびコントローラ10の処理ユニットのための外部メモリとして機能するように構成される。したがって、外部メモリとして使用されるニューロモーフィック・デバイス30は、場合によってはコントローラ10(または書き込みヘッドおよび読み取りヘッド)の一部を形成し得る他のニューロモーフィック・デバイスと混同されるべきではない。
したがって、ニューラル・ネットワーク・システム1は、メモリ拡張システムと見なされることが可能であり、このメモリ拡張システムにおいて、外部メモリ30は、クロスバー・アレイ構造として具現化される。後者は、場合によっては低精度を使用し得るメムリスティブ・クロスバー構造であることが好ましい(すなわち、メモリ要素を表すために、単一のメムリスティブ要素が使用される場合がある)。
しかしながら、より一般的には、ニューロモーフィック・デバイス30の各電子デバイス33は、場合によっては1つまたは複数のメムリスティブ・デバイスを含み得る。また、当技術分野では慣例であるように、デュアル出力線(列)が含まれる場合があり、一方が正の値を記憶するためのものであり、もう一方が負の値を記憶するためのものである。PCMセル、抵抗変化型メモリ(RRAM:resistive random-access memory)、スタティック・ランダム・アクセス・メモリ(SRAM)セル、または電気化学ランダム・アクセス・メモリ(ECRAM:electro-chemical random-access memory)セルなどのいくつかのタイプのメムリスティブ・デバイスが企図され得る。他の変形形態では、フラッシュ・セルが使用され得る。
インターフェース20は、典型的には、コントローラ10をメモリ30に接続する複数の読み取り/書き込みヘッド(24/22)を含む。このようなヘッドは、様々な方法で実装され得る。本発明の別の態様を参照して後で説明するように、これらのヘッドは、特に浅いニューラル・ネットワークとして実装され得る。
本手法によれば、書き込みプロセスは、(少なくともセルをプログラムする目的で)書き込む前に外部メモリ30の内容を読み取る必要がないように、増分書き込みプロセスに単純化される。以下で説明する実施形態のように、電子デバイスの完全なメモリ・リセットのみが必要とされる場合があり、それ以外の場合は増分書き込みが実施される。すなわち、電子デバイス33をプログラムすると、結果としてデバイス33の状態が増分的に変化する(例えば、デバイス33の電気コンダクタンスが変化する)。電子デバイス33の状態は、ニューロモーフィック・デバイス30上に記憶されるデータを決定する一定の値に対応する。
本明細書で企図される増分書き込みプロセスは、特に増分プログラミング・プロセスを含み得、これにより電子デバイスのコンダクタンス状態が小さな一定のステップで増分されることに留意されたい。変形形態では、増分書き込みプロセスは反復プログラミングに依存し、これにより電子デバイスは、複数のパルスを使用して反復的な様式でプログラムされる。他の変形形態では、後で説明する実施形態のように、増分値は、そのような値を書き込む前に、追加メモリ23内に累積的に記憶される。
メモリからの読み取りは、一定時間に実行され得るベクトル行列乗算によって実現され、すなわち、場合によっては任意の動作サイクル中にデータが取り出され得る。しかしながら、実際には、読み取り動作は(コントローラで実行される一般的なアルゴリズムに従って)特定の時間にのみ実行されることになり、必ずしも各動作サイクルで実行されるとは限らない。すべての場合において、電子デバイス33の状態に対応する値によってパラメータ化される積和演算を介して、データを取り出すことができる。このようにして、ニューロモーフィック・デバイスによって形成された外部メモリ上にデータを記憶することができ、コントローラ10によって監視されるタスクを実行するS20ために必要に応じて、コントローラ10によってそのようなデータを呼び出すことができる。
読み取り/書き込みメモリ・アクセスは、コントローラ10からの入力に基づいて、それぞれの読み取り/書き込みベクトルによって決定される。このようなベクトルは、メモリ・アドレスと比較され得る。しかしながら、メモリ・アドレスは通常のハードウェア・メモリ内の特定の場所に対応するが、ここでは、読み取り/書き込みベクトルが、所与の動作、例えば読み取り動作のための積和に従って、必要な信号、およびそのような信号をどこに適用してメモリ30に書き込むかまたはメモリ30から読み取るかを決定する。読み取り/書き込み動作は各電子デバイス33に個別にアクセスすることを必要とするため、本事例においても電子デバイス33の物理アドレスが必要であることに留意されたい。クロスバー・アレイ構造30への入力は、例えば、デジタル対アナログ変換器(DAC:digital-to-analog converter)、パルス幅変調(PWM:pulse width modulation)回路35、または代替として、後で詳細に説明する時間対スパイク(time-to-spike)手法を使用して実現することができる。
本手法にはいくつかの利点がある。第1に、本明細書に開示されるようなメモリ拡張ニューラル・ネットワーク・システム1は、クロスバー構造を効率的に利用することができ、メモリ内計算能力により、メモリからの読み取り動作および書き込み動作を一定時間で実行することが可能になる。第2に、提案する手法はメムリスティブ技術に限定されず、フラッシュ・セルのような他の技術も企図され得る。第3に、提案する書き込みアクセスにより、書き込みサイクルの前に外部メモリを読み取る必要がなくなる(メモリ・セルの部分的なリセットは必要ない)。これにより、メムリスティブ・デバイス、例えばPCMデバイスなどに基づいた、知られているクロスバー構造との完全な互換性が可能になる。したがって、提案する解決策により、メモリ拡張ニューラル・ネットワークにおけるエネルギー消費を削減しながら、メモリ・アクセスを大幅に高速化することが可能になる。
増分書き込み手法にかかわらず、以下で説明する実施形態のように必要に応じて疑似導関数を利用することによって、システムの微分可能性を復元することができる。また前述のように、メモリ内容を低精度(例えば、4ビットで十分である)で表すことができる。この手法により、接合部ごとに単一の電子デバイスがあれば十分であるので、メモリの面積効率の高い実装が可能になる。しかしながら、必要に応じて接合部ごとに複数のメムリスティブ要素を使用することによって、メモリの精度を向上させることができる。
次に、こうした点のすべてについて、本発明の特定の実施形態を参照して詳細に説明する。ここで図3~図4を参照すると、電子デバイス33のプログラミングS21~S23は、電子デバイス33のうちの1つまたは複数の状態を増分的に変化させる前に消去動作(例えば、リセット)を実行する(S23)ことをさらに含み得る。消去動作は、書き込みベクトルによって決定される。本発明の実施形態において、そのような消去動作は、電子デバイス33の状態をリセットするように電子デバイス33を完全に消去することのみから構成され得る。書き込みベクトルによって決定されるように、メモリ30に書き込まれるべきデータに応じて、いくつかの電子デバイス33はそのような消去動作を経る必要がある場合がある。動作に際して、他の電子デバイス33(通常、そのようなデバイスの大部分)は、それぞれの電子デバイス33をリセットする必要なしに各書き込みサイクルにおいて増分されるのみであり得る。言い換えれば、電子デバイス33上に記憶された値の完全消去または消去なしのいずれかであり得る2値タイプの消去動作が企図される。電子デバイス上に記憶される値は、これらのデバイスの状態に対応する。セルを消去するために、リセット・パルス、例えば、PCMセルのアモルファス化パルスが適用される。例えば、値を減算する必要がある場合、電子デバイス33をゼロにリセットする必要があり得る。次に、加算項がセルに書き込まれ、この項は、最終値として計算され、すなわち初期値と減数との差に対応する。
実際、本手法は、少なくとも電子デバイス33をプログラムする目的で(すなわち、電子デバイス33に書き込むために)S21~S23、電子デバイス33のうちのいずれかの部分的な消去を防止するように設計および実行され得る。すなわち、手法は、セルへの書き込みの目的でメモリ読み取りアクセスが必要とされないことを保証するように設計され得る。しかしながら、コントローラ10によって実行される全体的なアルゴリズムが、このアルゴリズムの変動により、メモリにデータを書き込む前にメモリからデータを読み取る必要があり得ることに留意されたい。しかしながら、基本的なメモリ書き込みプロセスは、(メモリ内容を更新するために)セルに書き込む前にメモリ内容を読み取る必要がないように設計され得る。具体的には、メモリ読み取りアクセスを必要とせずに、すなわち、ニューロモーフィック・メモリ・デバイス30から最初にデータを取り出す必要なしに、インターフェース20によって書き込みベクトルが生成され得るS22。すなわち、ステップS22は、それ自体、ステップS24~S26から独立することができる。
図1~図2に見られるように、ニューラル・ネットワーク・システム1のクロスバー・アレイ構造30は、例えば、N個の入力線31およびW個の出力線32を含み得、ここで、N>1であり、W>1である。その場合、ニューロモーフィック・メモリ・デバイス30のメモリ容量は、次元N×Wのメモリ行列Mによって決定される。変形形態では、本手法が、単一の入力線または単一の出力線あるいはその両方にも適用され得ることに留意されたい。加えて、前述のように、デュアル出力線が必要になる場合がある。
実施形態において、書き込み信号は、2つのタイプの書き込みベクトルに基づく2つの動作に従って生成される。図4で想定されるように、第1の動作は、消去動作の範囲(すなわち、完全にリセットするか、まったくリセットしないか)を決定し、第2の動作は、電子デバイス33の状態を増分的に変化させるために実行される。すなわち、第1のタイプの書き込みベクトルが、所与のデバイス33に対してリセットが必要であるS231ことを意味する場合、このデバイスは、第2のタイプの書き込みベクトルに従って、その状態を増分的に変化させるS233前にリセットされるS232。それ以外で、リセットが必要ない場合、このデバイス33の状態は直接増分されるS233。言い換えれば、書き込みアクセスは、消去部分と加算部分とに分けられる。
例えば、第1の動作には、メモリ行列に2値ベクトルを乗算したものを含み得、2値ベクトルが2値消去動作の範囲(すなわち、消去なしであるか、完全消去であるか)を決定し、第2の動作は、電子デバイス33の状態を増分的に変化させるための加算項を含む。すなわち、2つのタイプのベクトルが使用され、すなわち、それらをベクトルeTおよびvTと呼び、2つのタイプのベクトルが2つの動作(動作の合計)を可能にする。
加えて、プログラムすることは、ベクトルeTの成分の値を2値化することをさらに含み得る。これは、M[i,j]=M[i,j](1-Ee’T[j])+EvT[j]と記述することができ、ここで、E∈1Nx1であり、e’[j]∈(0,1)Wx1である。e’が2値化されたベクトルを表すことに留意されたい。2値ベクトル成分e’[j]は、通常のベクトル成分e[j]を2値化することによって得ることができる。Ee’TおよびEvTという用語は、修正された書き込みキーと見なされることが可能であり、この修正された書き込みキーは、手元のアーキテクチャ(例えば、微分可能ニューラル・コンピュータ[DNC]、ニューラル・チューリング・マシン[NTM]など)に応じて様々な方法で生成され得る。
実施形態において、2値化は、ベクトルeTの成分の値をベクトル成分のシフトされた値のヘビサイド関数として計算することによって実現される。例えば、e’[j]=Θ(e[j]-0.5)を使用してもよい。変形形態では、当業者には理解され得るように、2つのヘビサイド関数またはさらには比較器回路を使用して同様の結果を実現してもよい。
本手法を直接実装すると、微分可能性を失う結果となる可能性があり、これにより(例えば、逆伝播型アルゴリズムに基づく教師あり学習への適用の場合)訓練が害を受ける可能性があることに留意されたい。それでもなお、微分可能性、したがって誤差逆伝播型アルゴリズムを復元するために、疑似導関数に頼ることができる。例えば、ヘビサイド関数の解析的近似、例えば、十分に大きい値kを用いたΘ(x)≒(1+tanh(kx))/2を使用して、導関数
を生み出すことを考慮してもよい。変形形態では、例えば、
を使用してもよい。
を生み出すことを考慮してもよい。変形形態では、例えば、
を使用してもよい。
したがって、デバイス33の状態を増分する前に消去なしまたは完全消去のいずれかが実行される、単純化された書き込み手法を含むことができる。一方、書き込む前にメモリ内容を読み取る必要はない。加えて、(疑似導関数を使用して)微分可能性を復元するために、閾値化手法を使用することができる。
前述のように、コントローラ10によって実行される一般的なアルゴリズムは、それでもやはり、(内容をデバイス30に書き込むこと以外に)デバイス30から内容を読み取る必要がある場合がある。図3に示すように、コントローラ10は、積和演算に従って、ニューロモーフィック・メモリ・デバイス30からデータを取り出す(S24)。例えば、インターフェース20は、読み取りベクトルwrを生成し(S25)、読み取りベクトルwrにメモリ行列Mを乗算する。この場合もやはり、ベクトルwrは、手元のアーキテクチャに応じて様々な方法で生成され得る読み取りキーである。各読み取り結果rは、ベクトルwrにメモリ行列Mを乗算することによって得られる。この演算は、
として記述することができる。言い換えれば、メモリへの読み取りアクセスは、ベクトル行列乗算として定式化することができ、ここで、メモリMは、次元N×Wのクロスバー・アレイによって表される。ベクトルwrは、特に、デジタル対アナログ変換器(DAC)または単純なPWM回路35を使用してクロスバー構造30に対して表され得る。さらなる変形形態では、後で説明するように、時間対スパイク(TTS)実装に頼ることができる。
として記述することができる。言い換えれば、メモリへの読み取りアクセスは、ベクトル行列乗算として定式化することができ、ここで、メモリMは、次元N×Wのクロスバー・アレイによって表される。ベクトルwrは、特に、デジタル対アナログ変換器(DAC)または単純なPWM回路35を使用してクロスバー構造30に対して表され得る。さらなる変形形態では、後で説明するように、時間対スパイク(TTS)実装に頼ることができる。
前述のように、増分書き込み手法は累積プログラミングと互換性がない。例えば、図5を参照すると、第2の動作に含まれる加算項は、前記加算項の加算値vを、外部メモリ30とは別個の追加メモリ23(図1を参照)内に累積する(S227)ことによって実行され得る。この場合もやはり、このような加算値は、第2のタイプの書き込みベクトルによって決定される。動作に際しては、所与の加算値の現在の値vを確認した後(S224)、累積された加算値vが所与の閾値vTを超えることになる場合(S225)、アルゴリズムは、この累積された加算値vに従って、所与の電子デバイス33の状態を増分的に変化させるように命令する(S226)。したがって、vの値が小さい場合、vを局所的に(追加メモリ23内に)累積し、後続のステップでのみvを適用する可能性がある。図5において想定されるように、累積プロセスは、書き込みベクトル生成(S22)の一部として実行され得る。次いで、アルゴリズムは、図4を参照して先に説明したように進行する。
変形形態では、書き込みプロセス中に、ある程度の粒度で更新も適用され得ることに留意されたい。このような更新は、固定サイズの更新のみをサポートするハードウェア・アーキテクチャ、例えばPCMデバイスなどにとって有用であり得る。その結果、理想値vとはわずかに異なる、ある一定の値
が適用される場合がある。このような事例では、差分
も追加メモリ23内に記憶する必要があり得る。このような変形形態は、PCMベースの実装などの特定のタイプのハードウェア、または固定値の増分に対応する特定の固定電力でのみパルスを適用できる任意の他のハードウェアに利益をもたらす可能性がある。
が適用される場合がある。このような事例では、差分
も追加メモリ23内に記憶する必要があり得る。このような変形形態は、PCMベースの実装などの特定のタイプのハードウェア、または固定値の増分に対応する特定の固定電力でのみパルスを適用できる任意の他のハードウェアに利益をもたらす可能性がある。
典型的な適用例では、コントローラ10の処理ユニットは、システム1に、電子デバイス33をプログラムするステップS21~S23と、ニューロモーフィック・メモリ・デバイス30からデータを取り出すステップS24~S26とをインターリーブさせるアルゴリズムを実行するS20。このアルゴリズムは、特に、ニューラル・ネットワークを訓練するために実行され得る。これにより、動作中、処理ユニットにニューラル・ネットワークを複数回実行させる。例えば、ニューロモーフィック・メモリ・デバイス30上に記憶された入力は、前記ニューラル・ネットワークを実行する前に、ニューラル・ネットワークの入力ノードに供給され得る。ニューラル・ネットワークを実行すると、出力がニューロモーフィック・メモリ・デバイス30などに記憶される。
次に図1~図2を再び参照して、ニューラル・ネットワーク・システム1自体に関係する本発明の別の態様について説明する。前に説明したように、システム1はコントローラ10を含み、コントローラ10自体は処理ユニットを含む。処理ユニットは、ニューラル・ネットワークを実行するように構成される。システム1は、ニューロモーフィック・メモリ・デバイスを含むメモリ30(すなわち、外部メモリ)をさらに含む。前述のように、メモリ30のニューロモーフィック・メモリ・デバイスは、入力線31および出力線32を含むクロスバー・アレイ構造を有する。線は、電子デバイス33を介して接合部で相互接続される。システム1は、コントローラ10をメモリ30に接続するインターフェース20をさらに含む。
システム1は、一般に、電子デバイス33を、その電子デバイス33の状態を増分的に変化させるようにプログラムするように構成される。本方法を参照して説明したように、これは、書き込み信号を入力線31のうちの1つまたは複数に結合することによって実現される。このような信号は、動作中、コントローラ10からの書き込み命令と、そのような書き込み命令に従ってインターフェース20によって生成された書き込みベクトルとに基づいて生成される。加えて、読み取り信号をニューロモーフィック・メモリ・デバイス30の入力線31のうちの1つまたは複数に結合することによって、積和演算に従ってニューロモーフィック・メモリ・デバイス30からデータが取り出される。読み取り信号は、コントローラ10からの読み取り命令と、そのような読み取り命令に従ってインターフェース20によって生成された読み取りベクトルとに基づいて生成される。
実施形態において、システム1は、電子デバイス33の状態を増分的に変化させる前に消去動作を実行するようにさらに構成される。すでに説明したように、前記消去動作は書き込みベクトルによって決定され、これにより、各消去動作は、(i)電子デバイス33のうちの1つを完全に消去すること、または(ii)この電子デバイス33をまったく消去しないことのみから構成され得る。電子デバイスを完全に消去すると、動作中に電子デバイスの状態がリセットされる。さらに、ニューラル・ネットワーク・システム1は、システムの動作中に、(少なくとも、プログラムする目的で、すなわち、そのような電子デバイス33に書き込む目的で)電子デバイス33のうちのいずれかの部分的な消去を防止するように構成され得る。
図1~図2に見られるように、クロスバー・アレイ構造は、典型的には、N個の入力線31およびW個の出力線32を含み、ここで、N>1であり、W>1であり、これにより、ニューロモーフィック・メモリ・デバイス30のメモリ容量が、次元N×Wのメモリ行列Mによって決定される。クロスバー・アレイ構造は、好ましくは、接合部ごとに単一の電子デバイスを備え、電子デバイスのそれぞれは、例えば、メムリスティブ・デバイス、すなわち、メムリスティブ・メモリ要素であり得る。実際には、メモリの内容は、限られた精度(例えば、4ビット)で表すことができ、これにより、メムリスティブ・クロスバー実装の利点を十分に活用することが可能になる。
前述のように、インターフェース20は、入力線31と出力線32と両方に接続された読み取りヘッド24、および入力線31に接続された書き込みヘッド22を含み得る。前に説明したように、読み取りヘッド24および書き込みヘッド22の様々な構造が企図され得る。
実施形態において、クロスバー・アレイ構造は、図2Bに示すように、PWM回路35をさらに備える。PWM回路は、メモリ・デバイス30への書き込みおよびメモリ・デバイス30からの読み取りに必要な信号を制御可能に生成するために使用される。読み取りヘッド24と書き込みヘッド22はどちらも、それぞれのPWM回路35を介して入力線31に接続される。変形形態では、時間対スパイク(TTS)手法を使用することができる。すなわち、信号のタイミングを利用して情報をより効率的に送信する低レイテンシTTS積分器が使用されてもよい。
それ以外の場合、読み取りヘッド24は、クロスバー構造の出力に接続されて、積和演算からの結果を読み取り、そのような結果をコントローラ10に返す。標準的な読み出し回路36を使用して、出力線32から出力電流を読み取ることができる。
興味深いことに、場合によっては、読み取りヘッド24は、浅いニューラル・ネットワーク、例えば2層ネットワークを実装するモジュールとして具現化され得る。すなわち、このネットワークは、入力ノードがコントローラ10からの出力にマッピングされる入力層と、出力ノードがクロスバー・アレイ構造の入力線31にマッピングされる出力層とを含み得る。同様に、書き込みヘッド22は、2つの浅いニューラル・ネットワークを実装するモジュールとして具現化され得る。前記ネットワークはそれぞれ、入力層であって、入力層の入力ノードがコントローラ10からの出力にマッピングされる、入力層と、出力層であって、出力層の出力ノードがクロスバー・アレイ構造30の入力線31にマッピングされる、出力層とを含む。これにより、2つのタイプの書き込みベクトルを出力することが可能になり、システム1は、この2つのタイプの書き込みベクトルに基づいて、前述の2つの動作を実行することができる。すなわち、第1のタイプの動作は、消去動作を決定し、第2のタイプの動作は、電子デバイス33の状態を増分的に変化させることを目的とする。読み取り/書き込みヘッド(24/22)はまた、それぞれがクロスバー・アレイ構造を有するニューロモーフィック・デバイスとして具現化され得ることに留意されたい。読み取り信号および書き込み信号を生成するために必要に応じて、このようなニューロモーフィック・デバイスを適切に使用して、浅いネットワークを実装することができる。
上記の実施形態は、添付の図面を参照して簡潔に説明されており、いくつかの変形形態に適応し得る。上記の特徴のいくつかの組合せが企図され得る。例えば、実施形態において、(PCMセルを有する)メムリスティブ・クロスバー構造30は、コントローラ10およびその処理ユニットのための外部メモリを実現するために最適化された読み取り/書き込みヘッド(24/22)と共に使用される。コントローラは、ニューラル・ネットワークを訓練するためであろうと、訓練済みネットワークに基づいて推論を実行するためであろうと、ニューラル・ネットワークを実行することを目的とする。したがって、そのようなニューラル・ネットワークを、メムリスティブ・デバイス33上に構築されたメモリを用いて増強することができる。メモリ内容を、低精度で、またはさらにはメムリスティブ・デバイス内に記憶されている2値を用いて表すことができる。メモリ・アレイ30の現在の内容を読み取ることなく、かつメムリスティブ・デバイス33の部分的なリセットなしにメモリ書き込みアクセスを実行するための簡略化された書き込み手法は、信頼に値する。
本手法は、例えば、(背景のセクションにおいて引用されているA.GravesおよびG.WayneらのNature2016から採用された)いわゆるコピー・リピート・タスクに適用することができる。採用されるアーキテクチャは、例えば、以下のものとすることができる。(64個のLSTMユニットの代わりに、10個のLSTMユニットを含む)再帰型コントローラ・ネットワーク10を、メモリ・サイズ16×16の外部メモリ・デバイス、ならびに4つの読み取りヘッド24および1つの書き込みヘッド22と共に使用することができる。ネットワーク構造ならびに読み取りヘッドおよび書き込みヘッド22の動作は、他の点では上記の説明文のものと同様であり得る。本発明者らが観察したように、前述の簡略化されたメモリ・アクセスがネットワークの性能に影響を与えることはなく、メモリの内容を表すために使用される制限された精度が確度の低下を引き起こすこともない。
適用例の別の例として、単純なPWM回路35を使用して、類似性測度を計算することができる。読み取り/書き込みの重みを生成するには、ドット積およびノルムを計算する、すなわち、
に従って距離を測定する必要があり得る。
に従って距離を測定する必要があり得る。
kは入力ベクトルを表し、Mはメモリを表す。このような計算は、潜在的に、PWM入力信号の1回の生成を使用して実行され得る。1を表す固定部分をkの値に対応するPWM信号に追加して、ノルム||M||1を計算する。デバイス30からの2つの読み取りアクセスが必要であり、第1のアクセスはノルム||M||1に対応し、第2のアクセスはベクトル行列乗算kMに対応する。2つの結果を別々に取得する方法の1つは、||M||1が計算された後に積分器をリセットすることである。変形形態では、積分器は継続的に動作し、入力で固定部分が処理された後、現在の値が補助メモリに記憶される。完全な入力が処理された後、||M||1とkMを取得するには、以前に記憶された値を合計結果から減算する必要がある。
クロスバー・アレイ30の行/列において入力ベクトルを提示するために、DACまたはPWM回路を使用する代わりに時間対スパイク方式を使用することができ、これにより、入力の送信に必要なエネルギーを削減できることに留意されたい。この事例においても、類似性測度を計算する手順を、潜在的に単一のクロスバー動作で実施することができる。TTS方式で基準点として送信されたパルスは、L1ノルム並列読み取りに利用することができる(入力ベクトルにはすべてのものが含まれる)。ドット積並列読み取りは、第2のパルスおよびTTS積分器方式を使用して実装され得る。TTS積分器の変調項(modulatory term)をその初期値にアクティブ化する基準信号を有する代わりに、基準信号中に電流を読み取って、||M||1を取得する。結果として、1回のTTS読み取りが、ノルムMと値kMとの両方を返す。
本発明について、限られた数の実施形態、変形形態、および添付の図面を参照して説明してきたが、本発明の範囲から逸脱することなく様々な変更を加えてもよいこと、および均等物を代用してもよいことが当業者には理解されよう。具体的には、所与の実施形態、変形形態に記載されている、または図面に示されている(デバイス様または方法様の)特徴は、本発明の範囲から逸脱することなく、別の実施形態、変形形態、または図面における別の特徴と組み合わせるか、またはそれらに置き換えることができる。したがって、上記の実施形態または変形形態のいずれかに関して記載された特徴の様々な組合せを企図することができ、これらは添付の特許請求の範囲内にとどまる。加えて、特定の状況または材料を本発明の教示に適合させるために、本発明の範囲から逸脱することなく多くの軽微な修正を行うことができる。したがって、本発明は開示された特定の実施形態に限定されず、本発明は添付の特許請求の範囲に含まれるすべての実施形態を含むことが意図される。加えて、上記で明示的に触れた以外の多くの変形形態が企図され得る。
図6は、本発明の例示的な実施形態による、ニューラル・ネットワーク・システム1の一部として含まれ得るコンピュータ・システム500の構成要素のブロック図を示す。図6は1つの実装形態の例示を提供しているにすぎず、異なる実施形態が実装され得る環境に関していかなる制限を暗示するものではないことを理解されたい。示されている環境に多くの修正を加えることができる。
コンピュータ・システム500は、キャッシュ516と、メモリ506と、永続ストレージ508と、通信ユニット510と、入力/出力(I/O)インターフェース512との間の通信を提供する通信ファブリック502を含む。通信ファブリック502は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)と、システム・メモリと、周辺デバイスと、システム内の任意の他のハードウェア構成要素との間でデータまたは制御情報あるいはその両方を渡すために設計された任意のアーキテクチャを用いて実装され得る。例えば、通信ファブリック502は、1つまたは複数のバス、またはクロスバー・スイッチを用いて実装され得る。
メモリ506および永続ストレージ508は、コンピュータ可読記憶媒体である。この実施形態では、メモリ506は、ランダム・アクセス・メモリ(RAM)を含む。一般に、メモリ506は、任意の好適な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ516は、メモリ506から、最近アクセスされたデータ、およびアクセスされたデータの近くのデータを保持することによって、コンピュータ・プロセッサ504の性能を向上させる高速メモリである。
プログラムは、キャッシュ516を介したそれぞれのコンピュータ・プロセッサ504のうちの1つまたは複数による実行のために、永続ストレージ508およびメモリ506に記憶され得る。一実施形態では、永続ストレージ508は、磁気ハード・ディスク・ドライブを含む。代替として、または磁気ハード・ディスク・ドライブに加えて、永続ストレージ508は、ソリッド・ステート・ハード・ドライブ、半導体ストレージ・デバイス、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶することが可能である任意の他のコンピュータ可読記憶媒体を含むことができる。
永続ストレージ508によって使用される媒体はまた、取り外し可能であり得る。例えば、永続ストレージ508のために取り外し可能ハード・ドライブが使用されてもよい。他の例には、永続ストレージ508の一部でもある別のコンピュータ可読記憶媒体への転送のためにドライブに挿入される光学ディスクおよび磁気ディスク、サム・ドライブ、ならびにスマート・カードが含まれる。
これらの例では、通信ユニット510は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット510は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット510は、物理的通信リンクおよび無線通信リンクのいずれかまたは両方を使用して通信を提供し得る。プログラムは、通信ユニット510を介して永続ストレージ508にダウンロードされ得る。
I/Oインターフェース512は、コンピュータ・システム500に接続され得る他のデバイスとのデータの入出力を可能にする。例えば、I/Oインターフェース512は、キーボード、キーパッド、タッチ・スクリーン、または何らかの他の好適な入力デバイス、あるいはその組合せなどの外部デバイス518への接続を提供し得る。外部デバイス518もまた、例えば、サム・ドライブ、ポータブル光学ディスクまたはポータブル磁気ディスク、およびメモリ・カードなどのポータブル・コンピュータ可読記憶媒体を含むことができる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、そのようなポータブル・コンピュータ可読記憶媒体内に記憶され得、I/Oインターフェース512を介して永続ストレージ508上にロードされ得る。I/Oインターフェース512はまた、ディスプレイ520に接続する。
ディスプレイ520は、データをユーザに表示するためのメカニズムを提供し、例えば、コンピュータ・モニタであり得る。
本明細書に記載のプログラムは、本発明の特定の実施形態においてそのプログラムが実施される用途に基づいて識別される。しかしながら、本明細書における特定のプログラム命名法は便宜のために使用されているにすぎず、したがって、本発明が、そのような命名法によって識別または暗示されるあるいはその両方である特定の用途での使用に限定されるべきではないことを理解されたい。
本発明は、任意の可能な技術的詳細の統合レベルでのシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ(R)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るか、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続され得る。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するための手段を作り出すように、コンピュータのプロセッサ、または他のプログラマブル・データ処理装置に提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、部分的にもしくは全体的に時間的に重複する方法で、同時に、実質的に同時に実行される1つのステップとして遂行され得るか、またはそれらのブロックは、時には逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または作用を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
本発明の様々な実施形態の説明を例示の目的で提示してきたが、網羅的であることも、開示された実施形態に限定されることも意図されていない。当業者には、本発明の範囲および思想から逸脱することなく多くの変更形態および変形形態が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術を超える技術的な改良を最もよく説明するように、または本明細書で開示される実施形態を当業者が理解することが可能になるように選択されたものである。
Claims (18)
- ニューラル・ネットワーク・システムを動作させるためのハードウェア実装方法であって、
コントローラと、メモリと、前記コントローラを前記メモリに接続するインターフェースとを含むニューラル・ネットワーク・システムを提供することであって、前記コントローラが、ニューラル・ネットワークを実行するように構成された処理ユニットを備え、前記メモリが、電子デバイスを介して接合部で相互接続された入力線および出力線を含むクロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを備える、前記ニューラル・ネットワーク・システムを提供することと、
(i)前記コントローラから受信された書き込み命令と(ii)前記書き込み命令に従って前記インターフェースによって生成された書き込みベクトルとに基づいて書き込み信号を前記入力線のうちの1つまたは複数に結合することによって、前記ニューロモーフィック・メモリ・デバイスの前記電子デバイスを、前記電子デバイスの状態を増分的に変化させるようにプログラムすることと、
(i)前記コントローラからの読み取り命令と(ii)前記読み取り命令に従って前記インターフェースによって生成された読み取りベクトルとに基づいて読み取り信号を前記ニューロモーフィック・メモリ・デバイスの前記入力線のうちの1つまたは複数に結合することによって、積和演算に従って前記ニューロモーフィック・メモリ・デバイスからデータを取り出すことと
を含む、ハードウェア実装方法。 - 前記電子デバイスをプログラムすることが、前記電子デバイスのうちの1つまたは複数の前記状態を増分的に変化させる前に消去動作を実行することをさらに含み、
前記消去動作が前記書き込みベクトルによって決定され、これにより前記消去動作が、前記電子デバイスのうちの前記1つまたは複数を、前記電子デバイスのそれぞれの状態をリセットするように完全に消去する、請求項1に記載の方法。 - 前記インターフェースが前記ニューロモーフィック・メモリ・デバイスからデータを取り出すことなく、前記インターフェースによって前記書き込みベクトルが生成される、請求項1に記載の方法。
- 提供される前記ニューラル・ネットワーク・システムの前記クロスバー・アレイ構造が、N個の前記入力線およびW個の前記出力線を含み、ここで、N>1であり、W>1であり、
前記ニューロモーフィック・メモリ・デバイスのメモリ容量が、次元N×Wのメモリ行列Mによって決定される、請求項2に記載の方法。 - 前記書き込み信号が、2つのタイプの書き込みベクトルに基づく2つの動作に従って生成され、前記2つの動作が、前記消去動作を決定するための第1の動作と、前記電子デバイスの状態を増分的に変化させるための第2の動作とを含む、請求項4に記載の方法。
- 前記第2の動作が、加算項を含み、
前記加算項の加算値を累積することであって、前記加算値が前記2つのタイプの書き込みベクトルのうちの第2のタイプによって決定される、前記加算値を累積すること、および
前記累積された加算値が所与の閾値を超えたことに応答して、前記累積された加算値に従って前記電子デバイスの状態を増分的に変化させること
によって実行される、請求項5に記載の方法。 - 前記電子デバイスをプログラムすることが、前記2つのタイプのベクトルのうちの一方のベクトルの成分の値を2値化することをさらに含む、請求項5に記載の方法。
- 前記値を2値化することが、前記値をベクトル成分のシフトされた値のヘビサイド関数として計算することを含む、請求項7に記載の方法。
- 前記積和演算に従って前記ニューロモーフィック・メモリ・デバイスから第2のセットのデータが取り出され、これにより、前記インターフェースによって生成された読み取りベクトルに前記メモリ行列Mが乗算される、請求項4に記載の方法。
- 前記コントローラの前記処理ユニットによってアルゴリズムを実行することをさらに含み、前記アルゴリズムが、前記システムに、(i)前記電子デバイスをプログラムするステップと、(ii)前記ニューロモーフィック・メモリ・デバイスからデータを取り出すステップとをインターリーブさせる、請求項1に記載の方法。
- ニューラル・ネットワーク・システムであって、
ニューラル・ネットワークを実行するように構成された処理ユニットを含むコントローラと、
電子デバイスを介して接合部で相互接続された入力線および出力線を含むクロスバー・アレイ構造を有するニューロモーフィック・メモリ・デバイスを備えるメモリと、
前記コントローラを前記メモリに接続するインターフェースと
を含み、
前記システムが、
(i)前記コントローラから受信された書き込み命令と(ii)前記書き込み命令に従って前記インターフェースによって生成された書き込みベクトルとに基づいて書き込み信号を前記入力線のうちの1つまたは複数に結合することによって、前記ニューロモーフィック・メモリ・デバイスの前記電子デバイスを、前記電子デバイスの状態を増分的に変化させるようにプログラムし、
(i)前記コントローラからの読み取り命令と(ii)前記読み取り命令に従って前記インターフェースによって生成された読み取りベクトルとに基づいて読み取り信号を前記ニューロモーフィック・メモリ・デバイスの前記入力線のうちの1つまたは複数に結合することによって、積和演算に従って前記ニューロモーフィック・メモリ・デバイスからデータを取り出す
ように構成される、ニューラル・ネットワーク・システム。 - 前記システムが、前記電子デバイスの前記状態を増分的に変化させる前に消去動作を実行するようにさらに構成され、
前記消去動作が、前記書き込みベクトルによって決定され、これにより前記消去動作のそれぞれが、動作に際して、(i)前記電子デバイスのうちの1つを完全に消去すること、および(ii)前記電子デバイスのうちの前記1つをまったく消去しないことからなる群から選択されたアクションのみを実行することができる、
請求項11に記載のニューラル・ネットワーク・システム。 - 前記クロスバー・アレイ構造が、N個の前記入力線およびW個の前記出力線を備え、ここで、N>1であり、W>1であり、
前記ニューロモーフィック・メモリ・デバイスのメモリ容量が、次元N×Wのメモリ行列Mによって決定される、
請求項12に記載のニューラル・ネットワーク・システム。 - 前記クロスバー・アレイ構造が、接合部ごとに単一の電子デバイスを備え、前記電子デバイスがメムリスティブ・デバイスである、請求項13に記載のニューラル・ネットワーク・システム。
- 前記インターフェースが、前記入力線および前記出力線に接続された読み取りヘッドと、前記入力線に接続された書き込みヘッドとを備える、請求項13に記載のニューラル・ネットワーク・システム。
- 前記クロスバー・アレイ構造がパルス幅変調回路をさらに備え、これにより前記読み取りヘッドと前記書き込みヘッドとの両方が、前記パルス幅変調回路のそれぞれの1つを介して前記入力線に接続される、請求項15に記載のニューラル・ネットワーク・システム。
- 前記読み取りヘッドが、2層ニューラル・ネットワークを実装するモジュールとして具現化され、前記2層ニューラル・ネットワークが、
入力層であって、前記入力層の入力ノードが前記コントローラからの出力にマッピングされる、前記入力層と、
出力層であって、前記出力層の出力ノードが前記クロスバー・アレイ構造の入力線にマッピングされる、前記出力層と
を含む、請求項15に記載のニューラル・ネットワーク・システム。 - 前記書き込みヘッドが、2つのニューラル・ネットワークを実装するモジュールとして具現化され、各ニューラル・ネットワークが、
入力層であって、前記入力層の入力ノードが前記コントローラからの出力にマッピングされる、前記入力層と、
出力層であって、前記出力層の出力ノードが、それぞれ2つのタイプの書き込みベクトルを出力するために前記クロスバー・アレイ構造の入力線にマッピングされる、前記出力層とを含み、前記2つのタイプの書き込みベクトルに基づいて、前記システムが、前記消去動作を決定する第1の動作と前記電子デバイスの状態を増分的に変化させる第2の動作とを含む2つの動作を実行するように適合される、請求項16に記載のニューラル・ネットワーク・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/862,441 US11604976B2 (en) | 2020-04-29 | 2020-04-29 | Crossbar arrays for computations in memory-augmented neural networks |
US16/862,441 | 2020-04-29 | ||
PCT/IB2021/052172 WO2021220069A2 (en) | 2020-04-29 | 2021-03-16 | Crossbar arrays for computations in memory-augmented neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023526740A true JP2023526740A (ja) | 2023-06-23 |
Family
ID=78292990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022562398A Pending JP2023526740A (ja) | 2020-04-29 | 2021-03-16 | メモリ拡張ニューラル・ネットワークにおける計算のためのクロスバー・アレイ |
Country Status (6)
Country | Link |
---|---|
US (1) | US11604976B2 (ja) |
JP (1) | JP2023526740A (ja) |
CN (1) | CN115443469A (ja) |
DE (1) | DE112021000741T5 (ja) |
GB (1) | GB2609881A (ja) |
WO (1) | WO2021220069A2 (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715655B2 (en) * | 2013-12-18 | 2017-07-25 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems |
JP6651629B2 (ja) | 2015-12-10 | 2020-02-19 | ディープマインド テクノロジーズ リミテッド | 外部メモリを用いたニューラルネットワークの拡張 |
US11501131B2 (en) | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
US11775313B2 (en) * | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
US11139048B2 (en) * | 2017-07-18 | 2021-10-05 | Analytics For Life Inc. | Discovering novel features to use in machine learning techniques, such as machine learning techniques for diagnosing medical conditions |
US10127494B1 (en) | 2017-08-02 | 2018-11-13 | Google Llc | Neural network crossbar stack |
US11222255B2 (en) | 2017-08-17 | 2022-01-11 | Samsung Electronics Co., Ltd. | Neuromorphic processing apparatus |
CN107590533B (zh) | 2017-08-29 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN109725936B (zh) * | 2017-10-30 | 2022-08-26 | 上海寒武纪信息科技有限公司 | 扩展计算指令的实现方法以及相关产品 |
EP3648012A1 (en) * | 2018-10-29 | 2020-05-06 | Mitsubishi Electric R&D Centre Europe B.V. | Multilevel activation function for deep neural networks |
KR102584868B1 (ko) * | 2020-01-06 | 2023-10-04 | 서울대학교산학협력단 | 온칩 학습이 가능한 뉴로모픽 아키텍쳐 |
-
2020
- 2020-04-29 US US16/862,441 patent/US11604976B2/en active Active
-
2021
- 2021-03-16 DE DE112021000741.6T patent/DE112021000741T5/de active Pending
- 2021-03-16 CN CN202180030200.XA patent/CN115443469A/zh active Pending
- 2021-03-16 JP JP2022562398A patent/JP2023526740A/ja active Pending
- 2021-03-16 WO PCT/IB2021/052172 patent/WO2021220069A2/en active Application Filing
- 2021-03-16 GB GB2217557.4A patent/GB2609881A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2609881A (en) | 2023-02-15 |
US20210342672A1 (en) | 2021-11-04 |
GB202217557D0 (en) | 2023-01-11 |
WO2021220069A2 (en) | 2021-11-04 |
DE112021000741T5 (de) | 2022-11-10 |
WO2021220069A3 (en) | 2022-02-24 |
CN115443469A (zh) | 2022-12-06 |
US11604976B2 (en) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11373092B2 (en) | Training of artificial neural networks | |
Ambrogio et al. | Equivalent-accuracy accelerated neural-network training using analogue memory | |
JP7427030B2 (ja) | 人工ニューラル・ネットワークのトレーニング方法、装置、プログラム | |
US11010560B2 (en) | Multi-resolution convolutional neural networks for sequence modeling | |
US11301752B2 (en) | Memory configuration for implementing a neural network | |
Yakopcic et al. | Flexible memristor based neuromorphic system for implementing multi-layer neural network algorithms | |
CN112384933A (zh) | 编码器-解码器存储器增强神经网络架构 | |
US11803737B2 (en) | Memory-augmented spiking neural network system | |
Karimzadeh et al. | Bits-net: Bit-sparse deep neural network for energy-efficient rram-based compute-in-memory | |
US11610101B2 (en) | Formation failure resilient neuromorphic device | |
WO2022240557A1 (en) | Self-learning framework of zero-shot cross-lingual transfer with uncertainty estimation | |
JP2023530816A (ja) | アナログ・アクセラレータのドリフト係数の変動を打ち消すためのドリフト正則化 | |
JP2023526740A (ja) | メモリ拡張ニューラル・ネットワークにおける計算のためのクロスバー・アレイ | |
Zhang et al. | Memristive circuit design of quantized convolutional auto-encoder | |
US11977982B2 (en) | Training of oscillatory neural networks | |
Venkataramanaiah et al. | A 28-nm 8-bit Floating-Point Tensor Core-Based Programmable CNN Training Processor With Dynamic Structured Sparsity | |
US20220188626A1 (en) | Automatic hybrid quantization for deep neural network | |
Zhang et al. | Xma2: A crossbar-aware multi-task adaption framework via 2-tier masks | |
Zhang et al. | Xma: A crossbar-aware multi-task adaption framework via shift-based mask learning method | |
US11120864B2 (en) | Capacitive processing unit | |
Zhang et al. | Statistical computing framework and demonstration for in-memory computing systems | |
CN117933326A (zh) | 基于储备池计算的图灵机架构 | |
Yang et al. | High-performance convolutional neural network emulation via FPGA-integrated memristive circuitry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230810 |