(57)【特許請求の範囲】
【請求項１】
システム入力のシーケンスを処理してシステム出力のシーケンスを生成するための拡張ニューラルネットワークシステムであって、前記拡張ニューラルネットワークシステムは、
ニューラルネットワークであって、前記ニューラルネットワークは、ニューラルネットワーク入力のシーケンスを受信し、各ニューラルネットワーク入力を処理して前記ニューラルネットワーク入力からニューラルネットワーク出力を生成するように構成され、前記ニューラルネットワーク出力は、
システム出力要素部と、
読み込み要素部と、
書き込みキーと、
書き込みベクトルと
を含む、ニューラルネットワークと、
外部メモリと、
メモリインターフェースサブシステムであって、前記メモリインターフェースサブシステムは、前記ニューラルネットワーク出力の各々について、
前記システム出力のシーケンスのうちのシステム出力として前記システム出力要素部から導出された出力を提供するステップと、
前記書き込みキーから前記外部メモリ内の複数のロケーションの各々についてのそれぞれのコンテンツベース重みを決定するステップと、
前記外部メモリ内の前記複数のロケーションの各々が前記ロケーションに記憶されているデータの修正のためにどれくらい利用可能であるかに基づいて前記外部メモリ内の前記複数のロケーションの各々についてのそれぞれの配置重みを決定するステップと、
前記ロケーションについての前記それぞれのコンテンツベース重みおよび前記ロケーションについての前記それぞれの配置重みから前記外部メモリ内の前記複数のロケーションの各々についてのそれぞれの最終的な書き込み重みを決定するステップと、
前記最終的な書き込み重みに従って前記外部メモリに前記書き込みベクトルによって定義されるデータを書き込むステップと、
前記読み込み要素部から前記外部メモリ内の前記複数のロケーションの各々についての読み込み重みの1つまたは複数のセットを決定するステップと、
読み込み重みの前記セットに従って前記外部メモリからデータを読み込むステップと、
前記外部メモリから読み込まれた前記データを前記システム入力のシーケンスのうちの次のシステム入力と統合して、前記ニューラルネットワーク入力のシーケンスのうちの次のニューラルネットワーク入力を生成するステップと
を含む動作を行うように構成される、メモリインターフェースサブシステムと
を含む、拡張ニューラルネットワークシステム。
【請求項２】
前記外部メモリ内の前記複数のロケーションの各々についてのそれぞれの配置重みを決定するステップは、
前記ロケーションの利用可能部分が使用されている度合いを表す前記ロケーションの各々についてのそれぞれの使用状況値を決定するステップと、
前記使用状況値に従って前記ロケーションを順序付けるステップと、
前記順序付けおよび前記使用状況値に基づいて前記ロケーションの各々についての前記それぞれの配置重みを決定するステップと
を含む、請求項1に記載の拡張ニューラルネットワークシステム。
【請求項３】
前記ロケーションの各々についての前記それぞれの使用状況値を決定するステップは、
前回のニューラルネットワーク出力についての前記ロケーションへの書き込みに使用された前回の最終的な書き込み重みに基づいて前記ロケーションについての前回の使用状況値を増大するステップを含む、請求項2に記載の拡張ニューラルネットワークシステム。
【請求項４】
前記ニューラルネットワーク出力は、前記外部メモリへの書き込み時に前記複数のロケーションの各々を開放することができる範囲を定義する、開放ゲートのセットを含み、前記ロケーションの各々についての前記それぞれの使用状況値を決定するステップは、
前記ロケーションを開放することができる前記範囲に基づいて前記ロケーションについての前記増大された前回の使用状況値を修正して、前記ロケーションについての前記それぞれの使用状況値を生成するステップを含む、請求項3に記載の拡張ニューラルネットワークシステム。
【請求項５】
前記使用状況値に従って前記ロケーションを順序付けるステップは、使用状況の昇順で前記ロケーションを順序付けるステップを含む、請求項2から4のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項６】
前記ロケーションの各々についての前記それぞれの配置重みを決定するステップは、
1から前記ロケーションについての前記使用状況値を引くことによって、前記ロケーションについての初期配置重みを決定するステップと、
前記順序付け内の他の位置における他のロケーションについての前記使用状況値に基づいて前記初期配置重みを修正するステップと
を含む、請求項5に記載の拡張ニューラルネットワークシステム。
【請求項７】
前記ニューラルネットワーク出力は、
前記コンテンツベース重みと前記配置重みとの間の補間を規定する、配置ゲートと、
前記外部メモリへの前記書き込みの書き込み強度を規定する、書き込みゲートと
を含み、前記複数のロケーションの各々についてのそれぞれの最終的な書き込み重みを決定するステップは、
前記配置ゲートに従って前記ロケーションについての前記コンテンツベース重みと前記ロケーションについての前記配置重みとの間を補間するステップと、
前記書き込みゲートに従って前記補間の結果をゲーティングして、前記ロケーションについての前記最終的な書き込み重みを決定するステップと
を含む、請求項1から6のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項８】
前記ニューラルネットワーク出力は、削除ベクトルをさらに含み、前記動作は、前記ニューラルネットワーク出力の各々について、
前記最終的な書き込み重みおよび前記削除ベクトルに従って前記外部メモリから削除するステップをさらに含む、請求項1から7のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項９】
システム入力のシーケンスを処理してシステム出力のシーケンスを生成するための拡張ニューラルネットワークシステムであって、前記拡張ニューラルネットワークシステムは、
ニューラルネットワークであって、前記ニューラルネットワークは、ニューラルネットワーク入力のシーケンスを受信し、各ニューラルネットワーク入力を処理して前記ニューラルネットワーク入力からニューラルネットワーク出力を生成するように構成され、前記ニューラルネットワーク出力は、
システム出力要素部と、
書き込み要素部と、
1つまたは複数の読み込みヘッドの各々についてのそれぞれの読み込みキーと、
書き込みベクトルと
を含む、ニューラルネットワークと、
外部メモリと、
メモリインターフェースサブシステムであって、前記メモリインターフェースサブシステムは、前記ニューラルネットワーク出力の各々について、
前記システム出力のシーケンスのうちのシステム出力として前記システム出力要素部から導出された出力を提供するステップと、
前記ニューラルネットワーク出力の前記書き込み要素部から前記外部メモリ内の複数のロケーションの各々についてのそれぞれの書き込み重みを決定するステップと、
前記それぞれの書き込み重みに従って前記外部メモリに前記書き込みベクトルによって定義されるデータを書き込むステップと、
1つまたは複数の読み込みヘッドの各々について、
前記読み込みヘッドについての前記読み込みキーから前記外部メモリ内の前記複数のロケーションの各々についてのそれぞれのコンテンツベース読み込み重みを決定するステップと、
前記メモリインターフェースサブシステムによって行われた前回の書き込み動作の重みから前記外部メモリ内の前記複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップと、
前記1つまたは複数の履歴重みおよび前記コンテンツベース読み込み重みから前記複数のロケーションの各々についてのそれぞれの最終的な読み込み重みを決定するステップと、
前記最終的な読み込み重みに従って前記外部メモリからデータを読み込むステップと、
前記外部メモリから読み込まれた前記データを前記システム入力のシーケンスのうちの次のシステム入力と統合して、前記ニューラルネットワーク入力のシーケンスのうちの次のニューラルネットワーク入力を生成するステップと
を含む動作を行うように構成される、メモリインターフェースサブシステムと
を含む、拡張ニューラルネットワークシステム。
【請求項１０】
前記動作は、前記ニューラルネットワーク出力の各々について、
前記外部メモリ内の前記複数のロケーションの各々についての削除重みの1つまたは複数のセットを決定するステップと、
削除重みの前記セットに従って前記外部メモリからデータを削除するステップと
をさらに含む、請求項9に記載の拡張ニューラルネットワークシステム。
【請求項１１】
前記ニューラルネットワーク出力は、前記1つまたは複数の履歴重みと前記コンテンツベース読み込み重みとの間の補間を規定する、各読み込みヘッドについてのそれぞれの読み込みモードベクトルを含み、前記1つまたは複数の履歴重みおよび前記コンテンツベース読み込み重みから前記複数のロケーションの各々についてのそれぞれの最終的な読み込み重みを決定するステップは、
前記読み込みモードベクトルに従って前記ロケーションについての前記1つまたは複数の履歴重みと前記ロケーションについての前記コンテンツベース読み込み重みとの間を補間するステップを含む、請求項9または10のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項１２】
前記動作は、
前記メモリインターフェースサブシステムによって前記外部メモリに対して行われた前回の書き込み動作についての書き込み重みの履歴を追跡するテンポラルリンク行列を保持するステップをさらに含む、請求項9から11のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項１３】
前記動作は、前記ニューラルネットワーク出力の各々について、
前記ニューラルネットワーク出力についての前記書き込み重みに基づいて前記テンポラルリンク行列を更新するステップをさらに含む、請求項12に記載の拡張ニューラルネットワークシステム。
【請求項１４】
前記外部メモリ内の前記複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップは、
前記更新されたテンポラルリンク行列から前記複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップを含む、請求項13に記載の拡張ニューラルネットワークシステム。
【請求項１５】
前記更新されたテンポラルリンク行列から前記複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップは、
前記更新されたテンポラルリンク行列と前回のニューラルネットワーク出力についての前記読み込みヘッドについての前記最終的な読み込み重みから導出されたベクトルとの間の行列乗算を行うステップを含む、請求項14に記載の拡張ニューラルネットワークシステム。
【請求項１６】
前記外部メモリ内の前記複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップは、
前記更新されたテンポラルリンク行列の転置から前記複数のロケーションの各々についてのそれぞれの前方履歴重みを決定するステップを含む、請求項13または14に記載の拡張ニューラルネットワークシステム。
【請求項１７】
前記更新されたテンポラルリンク行列から前記複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップは、
前記更新されたテンポラルリンク行列の前記転置と前回のニューラルネットワーク出力についての前記読み込みヘッドについての前記最終的な読み込み重みから導出されたベクトルとの間の行列乗算を行うステップを含む、請求項16に記載の拡張ニューラルネットワークシステム。
【請求項１８】
前記テンポラルリンク行列を更新するステップは、
前記ロケーションが書き込まれる最終ロケーションであった度合いを表す前記複数のロケーションの各々についてのそれぞれの先行度重みを決定するステップと、
前記複数のロケーションの各々についての前記先行度重みおよび前記ニューラルネットワーク出力についての前記書き込み重みを使用して前記テンポラルリンク行列を更新するステップと
を含む、請求項13から17のいずれか一項に記載の拡張ニューラルネットワークシステム。
【請求項１９】
1つまたは複数のコンピュータ記憶媒体に符号化されたコンピュータプログラムであって、前記コンピュータプログラムは、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の拡張ニューラルネットワークシステムを実施させる命令を含む、コンピュータプログラム。
【請求項２０】
請求項1から18のいずれか一項に記載のメモリインターフェースサブシステムによって行われる前記動作を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークシステム機構に関する。
【背景技術】
【０００２】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を使用して受信した入力に対する出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層に対する入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って受信した入力から出力を生成する。
【０００３】
いくつかのニューラルネットワークは、リカレントニューラルネットワークである。リカレントニューラルネットワークは、入力シーケンスを受信して入力シーケンスから出力シーケンスを生成するニューラルネットワークである。詳細には、リカレントニューラルネットワークは、現在の出力を計算する際に前回の入力を処理したことに由来するネットワークの内部状態の一部またはすべてを使用し得る。リカレントニューラルネットワークの例としては、1つまたは複数のLSTMメモリブロックを含むLong Short-Term Memory(LSTM)ニューラルネットワークがある。各LSTMメモリブロックは、例えば、現在の活性化関数を生成する際に使用するために、または、LSTMニューラルネットワークの他のコンポーネントに提供されるように、セルがセルについての前回の状態を記憶することを可能とする、入力ゲート、忘却ゲート、および出力ゲートを各々が含む1つまたは複数のセルを含む。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、拡張ニューラルネットワークシステムに関する技術を説明する。一般に、拡張ニューラルネットワークシステムは、ニューラルネットワーク入力を受信し、ニューラルネットワーク出力と、ニューラルネットワーク出力の要素部から導出された値を記憶する外部メモリ、すなわち、ニューラルネットワークの外部にあるメモリと、ニューラルネットワーク出力の要素部を受信するように構成されるメモリインターフェースサブシステムとを生成し、受信した要素部を使用して外部メモリから削除、書き込み、および読み込みをするように構成される、ニューラルネットワークを含む。
【０００５】
システム入力のシーケンスを処理してシステム出力のシーケンスを生成するための拡張ニューラルネットワークシステムを本明細書にて説明する。拡張ニューラルネットワークシステムは、ニューラルネットワークを含み、ニューラルネットワークは、ニューラルネットワーク入力のシーケンスを受信し、各ニューラルネットワーク入力を処理してニューラルネットワーク入力からニューラルネットワーク出力を生成するように構成される。ニューラルネットワーク出力は、システム出力要素部、読み込み要素部、書き込みキー、および書き込みベクトルを含む。ニューラルネットワークシステムは、外部メモリ、およびメモリインターフェースサブシステムをさらに含む。メモリインターフェースサブシステムは、ニューラルネットワーク出力の各々について、システム出力のシーケンスのうちのシステム出力としてシステム出力要素部から導出された出力を提供するステップと、書き込みキーから外部メモリ内の複数のロケーションの各々についてのそれぞれのコンテンツベース重みを決定するステップと、外部メモリ内の複数のロケーションの各々がロケーションに記憶されているデータの修正のためにどれくらい利用可能であるかに基づいて外部メモリ内の複数のロケーションの各々についてのそれぞれの配置重みを決定するステップと、ロケーションについてのそれぞれのコンテンツベース重みおよびロケーションについてのそれぞれの配置重みから外部メモリ内の複数のロケーションの各々についてのそれぞれの最終的な書き込み重みを決定するステップと、最終的な書き込み重みに従って外部メモリに書き込みベクトルによって定義されるデータを書き込むステップと、読み込み要素部から外部メモリ内の複数のロケーションの各々についての読み込み重みの1つまたは複数のセットを決定するステップと、読み込み重みのセットに従って外部メモリからデータを読み込むステップと、外部メモリから読み込まれたデータをシステム入力のシーケンスのうちの次のシステム入力と統合して、ニューラルネットワーク入力のシーケンスのうちの次のニューラルネットワーク入力を生成するステップとを含む動作を行うように構成される。
【０００６】
外部メモリ内の複数のロケーションの各々についてのそれぞれの配置重みを決定するステップは、ロケーションの利用可能部分が使用されている度合いを表すロケーションの各々についてのそれぞれの使用状況値を決定するステップと、使用状況値に従ってロケーションを順序付けるステップと、順序付けおよび使用状況値に基づいてロケーションの各々についてのそれぞれの配置重みを決定するステップとを含み得る。ロケーションの各々についてのそれぞれの使用状況値を決定するステップは、前回のニューラルネットワーク出力についてのロケーションへの書き込みに使用された前回の最終的な書き込み重みに基づいてロケーションについての前回の使用状況値を増大するステップを含み得る。ニューラルネットワーク出力は、外部メモリへの書き込み時に複数のロケーションの各々を開放することができる範囲を定義する、開放ゲートのセットを含み得るし、ロケーションの各々についてのそれぞれの使用状況値を決定するステップは、ロケーションを開放することができる範囲に基づいてロケーションについての増大された前回の使用状況値を修正して、ロケーションについてのそれぞれの使用状況値を生成するステップを含み得る。
【０００７】
使用状況値に従ってロケーションを順序付けるステップは、使用状況の昇順でロケーションを順序付けるステップを含み得る。ロケーションの各々についてのそれぞれの配置重みを決定するステップは、1からロケーションについての使用状況値を引くことによって、ロケーションについての初期配置重みを決定するステップと、順序付け内の他の位置における他のロケーションについての使用状況値に基づいて初期配置重みを修正するステップとを含み得る。
【０００８】
ニューラルネットワーク出力は、コンテンツベース重みと配置重みとの間の補間を規定する、配置ゲートと、外部メモリへの書き込みの書き込み強度を規定する、書き込みゲートとを含み得る。複数のロケーションの各々についてのそれぞれの最終的な書き込み重みを決定するステップは、配置ゲートに従ってロケーションについてのコンテンツベース重みとロケーションについての配置重みとの間を補間するステップと、書き込みゲートに従って補間の結果をゲーティングして、ロケーションについての最終的な書き込み重みを決定するステップとを含み得る。
【０００９】
ニューラルネットワーク出力は、削除ベクトルをさらに含み得る。動作は、ニューラルネットワーク出力の各々について、最終的な書き込み重みおよび削除ベクトルに従って外部メモリから削除するステップをさらに含み得る。
【００１０】
システム入力のシーケンスを処理してシステム出力のシーケンスを生成するための拡張ニューラルネットワークシステムも本明細書にて説明する。拡張ニューラルネットワークシステムは、ニューラルネットワークを含み、ニューラルネットワークは、ニューラルネットワーク入力のシーケンスを受信し、各ニューラルネットワーク入力を処理してニューラルネットワーク入力からニューラルネットワーク出力を生成するように構成される。ニューラルネットワーク出力は、システム出力要素部、書き込み要素部、1つまたは複数の読み込みヘッドの各々についてのそれぞれの読み込みキー、および書き込みベクトルを含む。拡張ニューラルネットワークシステムは、外部メモリおよびメモリインターフェースサブシステムをさらに含む。メモリインターフェースサブシステムは、ニューラルネットワーク出力の各々について、システム出力のシーケンスのうちのシステム出力としてシステム出力要素部から導出された出力を提供するステップと、ニューラルネットワーク出力の書き込み要素部から外部メモリ内の複数のロケーションの各々についてのそれぞれの書き込み重みを決定するステップと、それぞれの書き込み重みに従って外部メモリに書き込みベクトルによって定義されるデータを書き込むステップと、1つまたは複数の読み込みヘッドの各々について、読み込みヘッドについての読み込みキーから外部メモリ内の複数のロケーションの各々についてのそれぞれのコンテンツベース読み込み重みを決定するステップと、メモリインターフェースサブシステムによって行われた前回の書き込み動作の重みから外部メモリ内の複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップと、1つまたは複数の履歴重みおよびコンテンツベース読み込み重みから複数のロケーションの各々についてのそれぞれの最終的な読み込み重みを決定するステップと、最終的な読み込み重みに従って外部メモリからデータを読み込むステップと、外部メモリから読み込まれたデータをシステム入力のシーケンスのうちの次のシステム入力と統合して、ニューラルネットワーク入力のシーケンスのうちの次のニューラルネットワーク入力を生成するステップとを含む動作を行うように構成される。
【００１１】
動作は、ニューラルネットワーク出力の各々について、外部メモリ内の複数のロケーションの各々についての削除重みの1つまたは複数のセットを決定するステップと、削除重みのセットに従って外部メモリからデータを削除するステップをさらに含み得る。
【００１２】
ニューラルネットワーク出力は、1つまたは複数の履歴重みとコンテンツベース読み込み重みとの間の補間を規定する、各読み込みヘッドについてのそれぞれの読み込みモードベクトルを含み得る。1つまたは複数の履歴重みおよびコンテンツベース読み込み重みから複数のロケーションの各々についてのそれぞれの最終的な読み込み重みを決定するステップは、読み込みモードベクトルに従ってロケーションについての1つまたは複数の履歴重みとロケーションについてのコンテンツベース読み込み重みとの間を補間するステップを含み得る。
【００１３】
動作は、メモリインターフェースサブシステムによって外部メモリに対して行われた前回の書き込み動作についての書き込み重みの履歴を追跡するテンポラルリンク行列を保持するステップをさらに含み得る。動作は、ニューラルネットワーク出力の各々について、ニューラルネットワーク出力についての書き込み重みに基づいてテンポラルリンク行列を更新するステップをさらに含み得る。外部メモリ内の複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップは、更新されたテンポラルリンク行列から複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップを含み得る。更新されたテンポラルリンク行列から複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップは、更新されたテンポラルリンク行列と前回のニューラルネットワーク出力についての読み込みヘッドについての最終的な読み込み重みから導出されたベクトルとの間の行列乗算を行うステップを含み得る。
【００１４】
外部メモリ内の複数のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定するステップは、更新されたテンポラルリンク行列の転置から複数のロケーションの各々についてのそれぞれの前方履歴重みを決定するステップを含み得る。更新されたテンポラルリンク行列から複数のロケーションの各々についてのそれぞれの後方履歴重みを決定するステップは、更新されたテンポラルリンク行列の転置と前回のニューラルネットワーク出力についての読み込みヘッドについての最終的な読み込み重みから導出されたベクトルとの間の行列乗算を行うステップを含み得る。
【００１５】
テンポラルリンク行列を更新するステップは、ロケーションが書き込まれる最終ロケーションであった度合いを表す複数のロケーションの各々についてのそれぞれの先行度重みを決定するステップと、複数のロケーションの各々についての先行度重みおよびニューラルネットワーク出力についての書き込み重みを使用してテンポラルリンク行列を更新するステップとを含み得る。
【００１６】
1つまたは複数のコンピュータ記憶媒体に符号化されたコンピュータプログラム製品であって、コンピュータプログラム製品は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、上述した拡張ニューラルネットワークシステムのうちのいずれかの拡張ニューラルネットワークシステムを実施させる命令を含む、コンピュータプログラム製品も説明する。
【００１７】
上述した拡張ニューラルネットワークシステムのうちのいずれかのメモリインターフェースサブシステムによって行われる動作を含む、方法も説明する。
【００１８】
1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを行うように構成されることは、実施中にシステムに動作またはアクションを行わせる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せが、システムにインストールされていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを行うように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に、動作またはアクションを行わせる命令を含むことを意味する。
【００１９】
本明細書において説明した発明特定事項が、以下の利点のうちの1つまたは複数を実現するために特定の実施形態において実施され得る。外部メモリ、すなわち、ニューラルネットワークの外部にあるメモリを用いてニューラルネットワークを拡張することによって、拡張ニューラルネットワークは、様々な機械学習タスクのために受信した入力から出力をより正確に生成することができる。詳細には、入力のシーケンスのうちの所与の入力の処理を支援するために、拡張ニューラルネットワークは、外部メモリからの読み込むことによって、シーケンス内にある多くの先行入力の処理中に拡張ニューラルネットワークによって生成された情報を効率的に使用することができる。同様に、シーケンスのうちの後続の入力の処理を支援するために、拡張ニューラルネットワークは、外部メモリに、現在の入力の処理中に生成された情報を記憶することができる。加えて、拡張ニューラルネットワークの訓練可能なパラメータの数を増大させることなく、外部メモリのサイズを増大させることができる。さらに、外部メモリにアクセスするための機構全体を分別可能なものとして扱うことができるため、拡張ニューラルネットワークシステムを効率的に訓練することができる。
【００２０】
外部メモリを用いてニューラルネットワークを拡張するための他の機構と比較して、本明細書に記載しているシステムは、ニューラルネットワークが、改善された読み込み、書き込み、削除機構によって外部メモリをより上手に使用することを可能としている。例えば、本明細書に記載しているシステムは、ニューラルネットワークが、割り振られたメモリのブロックが重複および干渉しないことを保証する機構を使用して外部メモリに書き込むことを可能としている。加えて、本明細書に記載しているシステムは、ニューラルネットワークが、既に書き込まれているメモリロケーションを開放しており、それゆえ、長いシステム入力シーケンスを処理する際にメモリを再使用することを可能としている。加えて、本明細書に記載しているシステムは、書き込みがされた順序を追跡しており、ニューラルネットワークが、外部メモリに書き込まれたシーケンシャル情報を保存しており、たとえ書き込みヘッドがメモリの異なる部分にジャンプしていたとしても、外部メモリからの読み込みに対して書き込みの順序を回復することを可能としている。
【００２１】
本明細書の発明特定事項の1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載している。他の特徴、態様、および発明特定事項の利点についても、説明、図面、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００２２】
【図１Ａ】例示的な拡張ニューラルネットワークシステムを示す図である。
【図１Ｂ】例示的な拡張ニューラルネットワークシステムの動作の概念図である。
【図２】システム入力からシステム出力を生成するための例示的なプロセスのフロー図である。
【図３】外部メモリに書き込むための例示的なプロセスのフロー図である。
【図４】外部メモリ内のロケーションについての配置重みを決定するための例示的なプロセスのフロー図である。
【図５】外部メモリから削除するための例示的なプロセスのフロー図である。
【図６】所与の読み込みヘッドについての外部メモリから読み込むための例示的なプロセスのフロー図である。
【図７】読み込みヘッドについての履歴重みを決定するための例示的なプロセスのフロー図である。
【図８】外部メモリ内のロケーションについてのコンテンツベース重みを生成するための例示的なプロセスのフロー図である。  類似の参照番号および様々な図面内の記号は、類似の要素を示す。
【発明を実施するための形態】
【００２３】
図1Aは、例示的な拡張ニューラルネットワークシステム100を図示している。拡張ニューラルネットワークシステム100は、以下に記載のシステム、コンポーネント、および技法が実施される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実施されるシステムの例である。
【００２４】
拡張ニューラルネットワークシステム100は、システム入力のシーケンスを受信してシステム入力からシステム出力のシーケンスを生成する機械学習システムである。例えば、拡張ニューラルネットワークシステム100は、入力シーケンスの一部としてシステム入力xを受信してシステム入力xからシステム出力yを生成し得る。拡張ニューラルネットワークシステム100は、出力データリポジトリに生成した一連の出力を記憶し得る、または、いくつかの他の直近の目的のために、例えば、ユーザへの提示のためにもしくは別のシステムによってさらに処理するためにといった、使用のために出力を提供し得る。
【００２５】
拡張ニューラルネットワークシステム100は、任意の種類のデジタルデータ入力を受信し、入力に基づいて、任意の種類のスコア、分類、または回帰の出力を生成するように構成され得る。
【００２６】
一例として、拡張ニューラルネットワークシステム100は、グラフデータ処理タスク、すなわち、グラフ構造中のパターンを識別または探索することをシステムに要求するタスクを行うように構成され得る。詳細には、拡張ニューラルネットワークシステム100への入力が、グラフの一部の表現、例えば、グラフのノードおよびエッジのシリアライズ形式を表す一連のベクトル、ならびに、グラフに関連するクエリである場合には、入力に基づいて生成される出力は、クエリに対する応答を定義し得る、例えば、一方のノードから他方へのグラフを介した最短の経路を定義し得るし、グラフから失われたデータ、例えば、グラフ内の失われたノードまたはエッジを定義し得る。別の例としては、拡張ニューラルネットワークシステム100への入力が、グラフの一部の表現、例えば、グラフのノードおよびエッジのシリアライズ形式を表す一連のベクトルである場合には、出力は、グラフがそのカテゴリに属している推定尤度を表す各スコアを用いた、カテゴリのセットの各々についてのスコアを含む分類出力であり得る。
【００２７】
別の例としては、拡張ニューラルネットワークシステム100への入力が、画像または画像から抽出された特徴である場合には、所与の画像のために拡張ニューラルネットワークシステム100によって生成された出力は、画像がカテゴリに属するオブジェクトの画像を含んでいる推定尤度を表す各スコアを用いた、オブジェクトカテゴリのセットの各々についてのスコアであり得る。
【００２８】
別の例としては、拡張ニューラルネットワークシステム100への入力が、インターネットリソース(例えば、ウェブページ)、ドキュメント、もしくはドキュメントの一部、または、インターネットリソース、ドキュメント、もしくはドキュメントの一部から抽出された特徴である場合には、所与のインターネットリソースのために拡張ニューラルネットワークシステム100によって生成された出力、ドキュメント、またはドキュメントの一部は、インターネットリソース、ドキュメント、またはドキュメントの一部がトピックに関するものである推定尤度を表す各スコアを用いた、トピックのセットの各々についてのスコアであり得る。
【００２９】
別の例としては、拡張ニューラルネットワークシステム100への入力が、特定の広告のためのインプレッションコンテキストの特徴である場合には、拡張ニューラルネットワークシステム100によって生成された出力は、特定の広告がクリックされるであろう推定尤度を表すスコアであり得る。
【００３０】
別の例としては、拡張ニューラルネットワークシステム100への入力が、ユーザに対する個人型レコメンドの特徴、例えば、レコメンドについてのコンテキストを特徴付ける特徴、例えば、ユーザがとった前回のアクションを特徴付ける特徴である場合には、ユーザがコンテンツアイテムをレコメンドされたことに対して好意的に応答するであろう推定尤度を表す各スコアを用いた、拡張ニューラルネットワークシステム100によって生成された出力は、コンテンツアイテムのセットの各々についてのスコアであり得る。
【００３１】
別の例としては、拡張ニューラルネットワークシステム100への入力が1つの言語内のテキストである場合には、拡張ニューラルネットワークシステム100によって生成された出力は、他の言語のテキストの要素が入力テキストの他の言語への適切な翻訳である推定尤度を表す各スコアを用いた、別の言語のテキストの要素のセットの各々についてのスコアであり得る。
【００３２】
別の例としては、拡張ニューラルネットワークシステム100への入力が、口語、一連の口語、またはその2つのうちの1つのから導出された特徴である場合には、拡張ニューラルネットワークシステム100によって生成された出力は、テキストの要素のセットの各々についてのスコアであり、各スコアは、テキストの要素が発話または一連の発話についての正確なトランスクリプトである推定尤度を表し得る。
【００３３】
別の例としては、拡張ニューラルネットワークシステム100は、音声合成システムの一部であり得る。
【００３４】
別の例としては、拡張ニューラルネットワークシステム100は、ビデオ処理システムの一部であり得る。
【００３５】
別の例としては、拡張ニューラルネットワークシステム100は、対話システムの一部であり得る。
【００３６】
別の例としては、拡張ニューラルネットワークシステム100は、自動補完システムの一部であり得る。
【００３７】
別の例としては、拡張ニューラルネットワークシステム100は、テキスト処理システムの一部であり得る。
【００３８】
別の例としては、拡張ニューラルネットワークシステム100は、強化学習システムの一部であり得る。
【００３９】
詳細には、拡張ニューラルネットワークシステム100は、ニューラルネットワーク102および外部メモリ104を含む。ニューラルネットワーク102は、ニューラルネットワーク入力を受信し、ニューラルネットワーク入力を処理してニューラルネットワーク出力を生成するように構成される、フィードフォワードニューラルネットワークまたはリカレントニューラルネットワーク、例えば、シャローまたはディープ長・短期記憶(LSTM)ニューラルネットワークであり得る。
【００４０】
一般的に、ニューラルネットワーク102によって受信されたニューラルネットワーク入力は、現在のシステム入力とメモリインターフェースサブシステム106による外部メモリから読み込まれたデータとの統合である。例えば、ニューラルネットワーク102は、現在のシステム入力xおよび外部メモリ104から読み込まれたデータrを受信して、システム出力を定義するデータyおよびメモリインターフェースサブシステム106へ提供される追加の出力oを含むニューラルネットワーク出力を生成するように構成され得る。
【００４１】
メモリインターフェースサブシステム106は、ニューラルネットワークによって生成された出力、例えば、ニューラルネットワーク出力o+y(ここで、+は連結を意味する)のうちの要素部oを受信し、受信した出力を外部メモリ104で行われることになる削除、読み込み、および書き込み動作に翻訳する。すなわち、メモリインターフェースサブシステム106は、出力oをニューラルネットワーク102から受信し、出力oに基づいて、データeを外部メモリ104から削除し、データwを外部メモリ104に書き込み、そしてデータrを外部メモリ104から読み込む。メモリインターフェースサブシステム106によって読み込まれたデータは、その後、例えば、システム入力とともに、その後のニューラルネットワーク入力要素部として、ニューラルネットワーク102に提供され得る。
【００４２】
一般的に、出力要素部oは、外部メモリ104に書き込む際のメモリインターフェースサブシステム106による使用のための書き込み要素部と、メモリインターフェースサブシステム106によって外部メモリ104から読み込むために使用される1つまたは複数の読み込みヘッドの各々についてのそれぞれの読み込み要素部と、外部メモリ104から削除する際のメモリインターフェースサブシステム106による使用のための削除要素部を含む。
【００４３】
外部メモリ104は、メモリインターフェースサブシステム106によって外部メモリ104に書き込まれるデータベクトルを記憶する。いくつかの実施形態においては、外部メモリ104は、要素M(i,j,t)を有する実数値行列メモリであり、ここで、iがロケーションを示し、jがベクトル要素を示し、tが時間を示している。そのため、M(i,j,t)は、時間tにおける外部メモリ104内のロケーションiに記憶されているベクトルの要素jに記憶されている値であり得る。このように外部メモリ104、メモリインターフェースサブシステム106、およびニューラルネットワーク102を構成することによって、拡張ニューラルネットワークシステム100のコンポーネントを全体的に分別可能なものとして扱うことができ、拡張ニューラルネットワークシステム100を効率的に訓練することを可能としている。
【００４４】
図1Bは、例示的な拡張ニューラルネットワークシステム100の動作の概念図である。
【００４５】
図1Bに示しているように、ニューラルネットワーク102は、ニューラルネットワーク入力(「入力」)を受信してニューラルネットワーク出力(「出力」)を生成する。メモリアクセスサブシステム106は、ニューラルネットワーク出力を、外部メモリ104に対する書き込みヘッドおよび2つの読み込みヘッドによって行われる動作に変換する。詳細には、メモリアクセスサブシステム106は、ニューラルネットワーク出力を使用して外部メモリに対する書き込み動作160および2つの読み込み動作162および164を行う。
【００４６】
書き込み動作160を行うために、メモリアクセスサブシステム106は、外部メモリ104にロケーションについての使用状況値170を保持する。各使用状況値は、データを記憶することになる対応するロケーションの利用可能部分が使用されている度合いを表す。使用状況値170から、メモリアクセスサブシステム106は、外部メモリ104内のロケーションの各々がそのロケーションに記憶されているデータの修正のためにどれくらい利用可能であるかを決定し、その後、その利用可能部分に従って外部メモリ104に書き込む。外部メモリに書き込むことについては図2から4を参照して以下でより詳細に説明する。
【００４７】
読み込み動作162および164の各々を行うために、メモリアクセスサブシステム106は、外部メモリ104に対して行われた前回の書き込み動作についての書き込み重みの履歴を追跡するリンクデータ180を保持する。リンクデータ180から、メモリアクセスサブシステム106は、各読み込みヘッドについての重みのそれぞれのセットを生成し、その後、生成した重みに従って外部メモリ104から読み込む。外部メモリから読み込むことについては図2、6、および7を参照して以下でより詳細に説明する。
【００４８】
図1Bの例では2つの読み込みヘッドを示しているが、他の例においては、メモリアクセスサブシステム106は、例えば、1つ、3つ、または5つといった異なる数の読み込みヘッドを使用する。
【００４９】
図2は、システム入力からシステム出力を生成するための例示的なプロセス200のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス200を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス200を行い得る。
【００５０】
システムは、システム入力を受信する(ステップ202)。システム入力は、システムによって受信されたシステム入力のシーケンスの1つである。
【００５１】
システムは、外部メモリ、例えば、図1Aの外部メモリ104から、読み込むことによって生成された1つまたは複数の読み込みデータベクトルを取得する(ステップ204)。一般的に、各読み込みデータベクトルは、それぞれの読み込みヘッドに対応しており、システム入力のシーケンスのうちの先行入力の処理中に対応する読み込みヘッドを使用して外部メモリから読み込むことによってシステムによって生成されたものである。
【００５２】
システムは、システム入力と外部メモリから読み込まれたデータとを統合することによってニューラルネットワーク入力を生成する(ステップ206)。例えば、システムは、システム入力と読み込みデータベクトルの各々とを連結し、ニューラルネットワーク入力を生成し得る。最初のシステム入力については、システムは、システム入力を、所定のベクトル、例えば、ニューラルネットワークの学習状態と連結し得る。
【００５３】
システムは、ニューラルネットワーク、例えば、図1Aのニューラルネットワーク102を使用して、ニューラルネットワーク入力を処理して、ニューラルネットワーク入力からニューラルネットワーク出力を生成する(ステップ208)。実施形態次第ではあるが、ニューラルネットワークは、フィードフォワードニューラルネットワーク、例えば、畳み込みニューラルネットワークもしくは別の種類の深層フィードフォワードニューラルネットワーク、または、リカレントニューラルネットワーク、例えば、LSTMニューラルネットワークのいずれかであり得る。ニューラルネットワークがリカレントニューラルネットワークである場合には、リカレントニューラルネットワークはまた、現在のニューラルネットワーク入力を処理する際にシーケンス内にある先行ニューラルネットワーク入力に由来するリカレントニューラルネットワークの内部状態を使用して、ニューラルネットワーク出力を生成する。いくつかの実施形態においては、ニューラルネットワークは、リカレント層およびフィードフォワード層の両方を含む。
【００５４】
システムは、ニューラルネットワーク出力のシステム出力要素部からシステム入力についてのシステム出力を生成する(ステップ210)。ニューラルネットワーク出力のシステム出力要素部は、システム出力を生成するために使用されることになる要素部として、すなわち、ニューラルネットワーク出力の同一の要素部がニューラルネットワークによって生成された各出力についてのシステム出力を生成するために使用されるように、例えば、システム管理者によって、指定されていた、ニューラルネットワーク出力の所定の要素部である。
【００５５】
いくつかの実施形態においては、システムは、システム入力についてのシステム出力としてシステム出力要素部を提供する。しかしながら、いくつかの他の実施形態においては、システムは、ステップ216を参照して以下で説明するように、システム出力要素部と外部メモリから読み込まれたデータを統合して、例えば、連結して、連結されたシステム出力として出力を提供、または、システム出力を生成するために1つまたは複数の変換を連結された出力に適用のいずれかをする。
【００５６】
システムは、ニューラルネットワーク出力の書き込み要素部を使用して外部メモリに書き込む(ステップ212)。ニューラルネットワーク出力の書き込み要素部は、外部メモリに書き込む際に使用されることになる要素部として指定されていたニューラルネットワーク出力の所定の要素部である。
【００５７】
詳細には、外部メモリに書き込むために、システムは、ニューラルネットワーク出力の書き込み要素部を使用して書き込み重みを決定して書き込み重みに従って外部メモリに書き込みベクトルを書き込む。一般的に、書き込み重みは、外部メモリ内のロケーションについてのコンテンツベース書き込み重みと配置重みとの統合である。
【００５８】
書き込み重みを決定して外部メモリに書き込むことについては図3および4を参照して以下でより詳細に説明する。
【００５９】
システムは、ニューラルネットワーク出力の削除要素部を使用して外部メモリから削除する(ステップ214)。ニューラルネットワーク出力の削除要素部は、外部メモリから削除する際に使用されることになる要素部として指定されていたニューラルネットワーク出力の所定の要素部である。詳細には、システムは、削除要素部によって定義された削除ベクトルを使用するとともに上述したような最終的な書き込み重みに従って外部メモリから削除する。外部メモリから削除することについては図5を参照して以下でより詳細に説明する。
【００６０】
1つまたは複数の読み込みヘッドの各々について、システムは、読み込みヘッドについてのニューラルネットワーク出力の読み込み要素部を使用して外部メモリから読み込み、読み込みヘッドについての読み込みベクトルを生成する(ステップ216)。所与の読み込みヘッドについてのニューラルネットワーク出力の読み込み要素部は、読み込みヘッドを使用して外部メモリから読み込む際に使用されることになる要素部として指定されていたニューラルネットワーク出力の所定の要素部である。すなわち、各読み込みヘッドは、ニューラルネットワーク出力の異なる要素部に割り当てられる。
【００６１】
詳細には、読み込みヘッドを使用して外部メモリから読み込むために、システムは、読み込みヘッドについてのニューラルネットワーク出力の読み込み要素部を使用して読み込み重みを決定し、その後、読み込み重みに従って外部メモリ内のロケーションから読み込む。一般的に、システムは、外部メモリ内のロケーションについて、コンテンツベース重みおよび1つまたは複数の履歴重みから所与の読み込みヘッドについての読み込み重みを決定する。
【００６２】
読み込み重みを決定して外部メモリから読み込むことについては図6および7を参照して以下でより詳細に説明する。
【００６３】
システムが複数の読み込みヘッドを使用して外部メモリから読み込む実施形態においては、システムは、所与のシステム入力についての複数の読み込み動作を行い、パラレルにおよび独立して他のセットの動作の各々のうちの複数の読み込み動作を行い得る。読み込みベクトルが各読み込みヘッドについて生成されたのであれば、システムは、読み込みベクトルを連結してシステム入力についての最終的な読み込みベクトルを生成し得る。加えて、システムは、削除、読み込み、および書き込み動作を任意の順序で行い得る。例えば、いくつかの実施形態においては、システムは、削除し、その後書き込みし、その後外部メモリから読み込む。しかしながら、他の実施形態においては、システムは、異なる順序でこれらの動作を行い得る。
【００６４】
プロセス200を、システム入力のシーケンスのうちの各システム入力について行い、システム入力のシーケンスについてのシステム出力のシーケンスを生成し得る。システム入力のシーケンスは、所望の出力、すなわち、入力シーケンスについてシステムによって生成されるべき出力シーケンスが、未知である、シーケンスであり得る。システムはまた、システムを訓練するために、すなわち、ニューラルネットワークのパラメータについての訓練済みの値と、削除、書き込み、および外部メモリからの読み込み時に使用されるプロセスの任意の追加のパラメータとを決定するために、訓練データのセット、すなわち、システムによって予測されるべき出力が未知である入力のセットにおける入力に対してプロセス200を行い得る。システムのコンポーネントは全体的に分別可能であるため、プロセス200は、ニューラルネットワークを訓練するための従来の機械学習訓練技法、例えば、ニューラルネットワークがリカレントニューラルネットワークである場合には時間訓練技法による確率的勾配降下逆伝播の一部として訓練データのセットから選択された入力に対して繰り返し行われ得る。
【００６５】
図3は、データを外部メモリに書き込むための例示的なプロセス300のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス300を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス300を行い得る。
【００６６】
システムは、ニューラルネットワーク出力の書き込み要素部を受信する(ステップ302)。ニューラルネットワーク出力の書き込み要素部は、書き込みキー、書き込み強度値、書き込みベクトル、開放ゲートのセット、配置ゲート、および書き込みゲートを含む。いくつかの実施形態においては、システムは、書き込みキー、書き込み強度値、書き込みベクトル、開放ゲート、配置ゲート、および書き込みゲートを生成するために値が正しいドメインにあることを保証する、1つまたは複数のドメインシフト機能を用いて、書き込み要素部を処理する。
【００６７】
システムは、書き込みキーおよび書き込み要素部に含まれる書き込み強度値から外部メモリ内のロケーションについてのコンテンツベース重みを決定する(ステップ304)。一般的に、所与のロケーションについてのコンテンツベース重みは、そのロケーションにおけるデータが書き込みキーとどれくらい類似しているかを反映している。キーからコンテンツベース重みを決定することについては図8を参照して以下で説明する。
【００６８】
システムは、外部メモリ内のロケーションの各々がそのロケーションに記憶されているデータの修正のためにどれくらい利用可能であるかに基づいて、開放ゲートを使用して外部メモリ内のロケーションについての配置重みを決定する(ステップ306)。一般的に、配置重みを決定するために、システムは、ロケーションの利用可能部分が使用されている度合いを表す各ロケーションについての使用状況値を決定し、その後、使用状況値、前回のニューラルネットワーク出力についての前回の最終的な書き込み重み、および開放ゲートに基づいて配置重みを生成する。配置重みを決定することについては図4を参照して以下でより詳細に説明する。
【００６９】
システムは、コンテンツベース重みおよび配置重みから外部メモリ内のロケーションについての最終的な書き込み重みを決定する(ステップ308)。
【００７０】
詳細には、システムは、コンテンツベース重みと配置重みとの間の補間を規定する、配置ゲートと、外部メモリへの現在の書き込みの書き込み強度を規定する、書き込みゲートとを使用し、各ロケーションについて配置重みとコンテンツベース重みとを統合してロケーションについての最終的な書き込み重みを生成する。
【００７１】
より詳細には、各ロケーションについて、システムは、配置ゲートに従ってロケーションについてのコンテンツベース重みとロケーションについての配置重みとの間を補間し、その後、書き込みゲートに従って補間の結果をゲーティングして、ロケーションについての最終的な書き込み重みを決定する。
【００７２】
システムは、最終的な書き込み重みに従って外部メモリに書き込みベクトルによって定義されるデータを書き込む(ステップ310)。すなわち、外部メモリ内の所与のロケーションに書き込むために、システムは、書き込みベクトルをロケーションについての最終的な書き込み重みで乗算して、ロケーションについての調整された書き込みベクトルを決定し、その後、ロケーションについての調整された書き込みベクトルを用いてそのロケーションに現在記憶されているベクトルを合計する。
【００７３】
図4は、外部メモリ内のロケーションについての配置重みを決定するための例示的なプロセス400のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス400を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス400を行い得る。
【００７４】
システムは、外部メモリ内のロケーションの各々についてのそれぞれの前回の使用状況値にアクセスする(ステップ402)。
【００７５】
所与のロケーションについての前回の使用状況値は、ロケーションの利用可能部分が外部メモリへの前回の書き込みの前に使用されていた度合いを表す。現在の書き込みが外部メモリへの最初の書き込みである場合には、システムは、各ロケーションについての前回の使用状況値として、デフォルト使用状況値、例えば、ゼロを使用する。
【００７６】
システムは、前回の使用状況値を更新して、各ロケーションについてのそれぞれの現在の使用状況値を決定する(ステップ404)。
【００７７】
詳細には、各ロケーションについて、システムは、ロケーションへの前回の書き込み中にロケーションに書き込むために使用される前回の最終的な書き込み重みに基づいて前回の使用状況値を増大する。現在の書き込みが最初の書き込みとなる場合には、システムは、使用状況値を増大しない。
【００７８】
各ロケーションについて、システムは、その後、開放ゲートに基づいてロケーションについての増大された前回の使用状況値を修正して、ロケーションについての現在の使用状況値を決定する。一般的に、開放ゲートは、外部メモリに書き込む際にロケーションの各々を開放することができる範囲を定義する。
【００７９】
詳細には、書き込み要素部は、システムによって外部メモリから読み込むために使用される各読み込みヘッドについてのそれぞれの開放ゲートを含む。システムは、各読み込みヘッドについての開放ゲートおよび前回の最終的な読み込み重みからロケーションについてのメモリ保持値を決定する。所与のロケーションについてのメモリ保持値は、ロケーションが開放ゲートによって解放されないであろう度合いを定義する。
【００８０】
詳細には、いくつかの実施形態においては、所与のメモリロケーションについてのメモリ保持値Ψtは、以下を満足する。
【００８１】
【数１】
0006651629.tif 000002
【００８２】
ここで、iは、1から読み込みヘッドRの総数まで変化し、
【数２】
0006651629.tif 000003
は、i番目の読み込みヘッドについての開放ゲートであり、
【数３】
0006651629.tif 000004
は、i番目の読み込みヘッドについての前回の最終的な読み込み重みである。
【００８３】
システムは、その後、メモリロケーションについてのメモリ保持値を使用して、メモリロケーションについての増大された前回の使用状況値を低減する。いくつかの実施形態においては、所与のメモリロケーションについての現在の使用状況値utは、以下を満足する。
【００８４】
【数４】
0006651629.tif 000005
【００８５】
ここで、ut-1は、ロケーションについての前回の使用状況値であり、
【数５】
0006651629.tif 000006
は、ロケーションについての前回の最終的な書き込み重みであり、Ψtは、ロケーションについてのメモリ保持値である。
【００８６】
システムは、それらの使用状況値に従って、すなわち、使用状況の昇順でロケーションを順序付けする(ステップ406)。
【００８７】
システムは、その後、順序付けおよびロケーションについての使用状況値に基づいて各ロケーションについてのそれぞれの配置重みを決定する(ステップ408)。
【００８８】
いくつかの実施形態においては、システムは、1からロケーションについての使用状況値を引くことによって、各ロケーションについてのそれぞれの初期配置重みを決定し、その後、順序付け内の他の位置における他のロケーションについての使用状況値に基づいてロケーションについての初期配置重みを修正して、ロケーションについての配置重みを生成する。
【００８９】
詳細には、これらの実施形態においては、所与のロケーションについて、システムは、所与のロケーションより使用される回数の少ない、すなわち、順序付け内の所与のロケーションより低いロケーションについての使用状況値の積を決定する。システムは、その後、初期配置重みを前記積で乗算することによって、所与のロケーションについての初期配置重みを修正する。
【００９０】
図5は、外部メモリから削除するための例示的なプロセス500のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス500を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス500を行い得る。
【００９１】
システムは、ニューラルネットワーク出力の削除要素部を受信する(ステップ502)。削除要素部は、削除ベクトルを含む。いくつかの実施形態においては、システムは、削除ベクトルを生成するために、すなわち、包括的に、削除ベクトル中の値のすべてが0と1との間にあることを保証するために値が正しいドメインにあることを保証する、ドメインシフト機能を用いて、削除要素部を処理する。
【００９２】
システムは、削除ベクトルおよび最終的な書き込み重みを使用して外部メモリから削除する(ステップ504)。詳細には、外部メモリ内の各ロケーションについて、システムは、削除ベクトルをロケーションについての最終的な書き込み重みで乗算して、ロケーションについての重み付き削除ベクトルを決定する。システムは、その後、そのすべてのうちのあるベクトルからロケーションについての重み付き削除ベクトルを減算して最終的な削除ベクトルを生成し、その後、メモリロケーションに現在記憶されているベクトルとロケーションから削除するための最終的な削除ベクトルとの要素ごとの乗算を行う。
【００９３】
図6は、所与の読み込みヘッドについての外部メモリから読み込むための例示的なプロセス600のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス600を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス600を行い得る。
【００９４】
システムは、1つまたは複数の読み込みヘッドの各々についてプロセス600を行って、各読み込みヘッドについてのそれぞれの読み込みベクトルを生成し得る。
【００９５】
システムは、読み込みヘッドについてのニューラルネットワーク出力の読み込み要素部を受信する(ステップ602)。読み込みヘッドについての読み込み要素部は、読み込みヘッドについての読み込みキー、読み込み強度値、および読み込みモードベクトルを含む。いくつかの実施形態においては、システムは、読み込みヘッドについての読み込みキーおよび読み込みモードベクトルを生成するために値が正しいドメインにあることを保証する、1つまたは複数のドメインシフト機能を用いて、読み込みヘッドについての読み込み要素部を処理する。
【００９６】
システムは、読み込みヘッドについての読み込みキーおよび読み込み強度値から外部メモリ内のロケーションの各々についてのコンテンツベース読み込み重みを決定する(ステップ604)。一般的に、所与のロケーションについてのコンテンツベース重みは、そのロケーションにおけるデータが読み込みキーとどれくらい類似しているかを反映している。キーからコンテンツベース重みを決定することについては図8を参照して以下で説明する。
【００９７】
システムは、システムによって行われた前回の書き込み動作の重みから外部メモリ内のロケーションの各々についての1つまたは複数のそれぞれの履歴重みを決定する(ステップ606)。
【００９８】
一般的に、システムは、システムによって外部メモリに対して行われた前回の書き込み動作についての書き込み重みの履歴を追跡するテンポラルリンク行列を保持し、テンポラルリンク行列を使用して履歴重みを決定する。
【００９９】
いくつかの実施形態においては、システムは、各ロケーションについて後方履歴重みおよび前方履歴重みの2つの履歴重みを決定する。
【０１００】
履歴重みを生成することについては図7を参照して以下でより詳細に説明する。
【０１０１】
システムは、コンテンツベース読み込み重みおよび1つまたは複数の履歴重みから外部メモリ内のロケーションについての最終的な読み込み重みを決定する(ステップ608)。
【０１０２】
詳細には、システムは、1つまたは複数の履歴重みとコンテンツベース読み込み重みとの間の補間を規定する、読み込みモードベクトルを使用し、1つまたは複数の履歴重みと各ロケーションについてのコンテンツベース重みとを統合してロケーションについての最終的な読み込み重みを生成する。すなわち、読み込みモードベクトルは、各履歴重みについておよびコンテンツベース重みについてそれぞれの補間値を含む。
【０１０３】
より詳細には、各ロケーションについて、システムは、読み込みモードベクトルに従ってロケーションについての1つまたは複数の履歴重みとロケーションについてのコンテンツベース重みとの間を補間して、ロケーションについての最終的な読み込み重みを決定する。
【０１０４】
システムは、最終的な読み込み重みに従って外部メモリからデータを読み込み、読み込みヘッドについての読み込みデータベクトルを生成する(ステップ610)。詳細には、システムは、最終的な読み込み重みに従って外部メモリ内の各ロケーションに記憶されているベクトルを統合することによって、読み込みデータベクトルを生成する。すなわち、システムは、対応するメモリロケーションについての、すなわち、ベクトルが記憶されているメモリロケーションについての最終的な読み込み重みである、各ベクトルのための重みを用いて、外部メモリに記憶されている各ベクトルの重み付き合計を計算する。
【０１０５】
図7は、読み込みヘッドについての履歴重みを決定するための例示的なプロセス700のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス700を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス700を行い得る。
【０１０６】
システムは、システムによって外部メモリに対して行われた前回の書き込み動作についての書き込み重みの履歴を追跡するテンポラルリンク行列を保持する(ステップ702)。詳細には、テンポラルリンク行列の要素[i,j]は、ロケーションiが前回のニューラルネットワーク出力についての前回の書き込み動作によってロケーションjの後に書き込まれるロケーションであった度合いを表す。
【０１０７】
システムはまた、ロケーションが前回のニューラルネットワーク出力についての前回の書き込み動作によって書き込まれる最終ロケーションであった度合いを表すロケーションの各々についてのそれぞれの先行度重みを保持する(ステップ704)。
【０１０８】
システムは、先行度重みおよびニューラルネットワーク出力についての最終的な書き込み重みを使用してテンポラルリンク行列を更新する(ステップ706)。
【０１０９】
詳細には、いくつかの実施形態においては、更新されたテンポラルリンク行列Ltのエントリ[i,j]は、以下を満足する。
【０１１０】
【数６】
0006651629.tif 000007
【０１１１】
ここで、wt[x]は、外部メモリ内のロケーションxのための現在の最終的な書き込み重みであり、pt-1[j]は、外部メモリ内のロケーションjのための先行度重みであり、Lt-1[i,j]は、更新前のテンポラルリンク行列のエントリ[i,j]である。
【０１１２】
いくつかの実施形態においては、テンポラルリンク行列を更新することに先立って、システムは、現在の最終的な書き込み重みからスパースな現在の最終的な書き込み重みを生成し、先行度重みからスパース先行度重みを生成し、テンポラルリンク行列を更新する際に、すなわち、現在の最終的な書き込み重みおよび先行度重みの代わりに、スパース書き込みおよびスパース先行度重みを使用し得る。スパース重みを使用してテンポラルリンク行列を更新することによって、システムは、リンク行列を更新し履歴重みを決定するのに必要なメモリおよび計算の量を低減する。
【０１１３】
現在の書き込み重みからスパース書き込み重みを決定するために、システムは、メモリロケーションのすべてについての書き込み重みのうちの上位K(外部メモリ内のロケーションの総数より少ない所定の値)個の高い書き込み重み値以外のすべてを0に設定し、残りのK個の重みの各々を残りのK個の重みの合計で除算する。システムは、同様の方式でスパース先行度重みを決定し得る。
【０１１４】
システムは、更新されたテンポラルリンク行列および読み込みヘッドについての前回の最終的な読み込み重みから読み込みヘッドについての履歴重みを決定する(ステップ708)。
【０１１５】
いくつかの実施形態においては、システムは、更新されたテンポラルリンク行列と前回のニューラルネットワーク出力についての読み込みヘッドについての前回の最終的な読み込み重みのベクトルとの間の行列乗算を行うことによって、各メモリロケーションについてのそれぞれの後方履歴重みを含む後方履歴重みベクトルを決定する。
【０１１６】
これらの実施形態の一部においては、システムはまた、更新されたテンポラルリンク行列の転置と前回のニューラルネットワーク出力についての読み込みヘッドについての前回の最終的な読み込み重みのベクトルとの間の行列乗算を行うことによって、各メモリロケーションについてのそれぞれの前方履歴重みを含む前方履歴重みベクトルを決定する。
【０１１７】
システムは、外部メモリからの読み込みの前に更新されたテンポラル読み込み行列を更新する際の使用のための外部メモリへの現在の書き込みを考慮するために、保持されている先行度重みを更新する(ステップ710)。詳細には、外部メモリへの初期書き込みの前には、先行度重みは、メモリロケーションのすべてに対して0となっている。
【０１１８】
外部メモリへの各書き込みの後、システムは、現在の書き込み動作についての現在の最終的な書き込み重みおよび前回の先行度重みに基づいて先行度重みを更新する。
【０１１９】
詳細には、いくつかの実施形態においては、システムは、ロケーションについての保持されている先行度重みを現在の書き込み動作についてのメモリロケーションのすべてについての書き込み重みのうちの1つとすべての合計と間の差で乗算することによって所与のロケーションについての更新された先行度重みを決定して、調整された保持されている先行度重みを生成する。システムは、その後、ロケーションについての現在の最終的な書き込み重みをロケーションについての調整された保持されている先行度重みに加算して、ロケーションについての更新された先行度重みを決定する。
【０１２０】
図8は、外部メモリ内のロケーションについてのコンテンツベース重みを生成するための例示的なプロセス800のフロー図である。便宜上、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとしてプロセス800を説明することにする。例えば、本明細書に従って適切にプログラムされた、拡張ニューラルネットワークシステム、例えば、図1Aの拡張ニューラルネットワークシステム100は、プロセス800を行い得る。
【０１２１】
システムは、コンテンツベースキーベクトルを受信する(ステップ802)。
【０１２２】
システムは、コンテンツベースキーベクトルと外部メモリに記憶されているベクトルとの間の類似度の度合いを計算する(ステップ804)。すなわち、システムは、コンテンツベースキーベクトルと外部メモリに記憶されている各ベクトルとの間のそれぞれの類似度の度合いを計算する。例えば、類似度の度合いは、以下を満足する、コンテンツベースキーベクトルk(h,t)と外部メモリM中のi番目のロケーションに位置する所与のベクトルM(i,・,t)との間の類似度Kを用いた、コサイン類似度の度合いであり得る。
【０１２３】
【数７】
0006651629.tif 000008
【０１２４】
システムは、類似度の度合いを使用して外部メモリ内のロケーションについてのコンテンツベース重みを計算する(ステップ806)。一般的に、システムは、コンテンツベースキーベクトルとより高い類似度の度合いを有しているロケーションにより高い重みが割り当てられるように、重みを計算する。例えば、外部メモリM中のi番目のロケーションについてのコンテンツベース重みは以下を満足し得る。
【０１２５】
【数８】
0006651629.tif 000009
【０１２６】
ここで、β(h,t)は、コンテンツベース重みのためのキー強度値である。
【０１２７】
実施形態次第ではあるが、システムは、ニューラルネットワークから受信される出力に基づいて、外部メモリに記憶されているデータの持続性の様々な度合いを保持し得る。例えば、いくつかの実施形態においては、システムは、各システム入力のシーケンスがシステムによって完全に処理された後に外部メモリを再設定する。別の例としては、いくつかの実施形態においては、外部メモリに記憶されているデータは、入力シーケンス間に存続する。すなわち、システムは、システム入力のシーケンス間に外部メモリからいかなるデータも消去しない。これらの実施形態においては、システムは、システムに割り当てられた所与のタスクが完了した後、且つ、システムが異なる機械学習タスクを開始する前に、外部メモリを再設定し得る。あるいは、システムは、タスク間であっても値を消去せずに外部メモリを保持し得る。そのため、現在の入力シーケンスを処理している間に、システムは、前回の入力シーケンスの処理している間、または、前回の機械学習タスクを行っている間でさえ、その間にメモリに記憶されたデータを利用することが可能となり得る。
【０１２８】
本明細書において説明した発明特定事項の実施形態および機能的な動作は、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的均等物を含むコンピュータハードウェアで、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって、または、データ処理装置の動作を制御するために、実行のための有形非テンポラルプログラムキャリアに符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。あるいはまたは加えて、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置による実行に適した受信機装置への伝送のための情報を符号化するために生成され、機械生成された電気、光学、または電磁気信号上に符号化され得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの組合せのうちの1つまたは複数であり得る。
【０１２９】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、処理データのためのあらゆる種類の装置、デバイス、およびマシンを含む。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった、特殊用途ロジック回路であり得るまたはさらに含み得る。必要に応じて、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【０１３０】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとしても称されまたは開示され得る)は、コンパイル型もしくはインタプリタ型言語、または、宣言型もしくは手続き型言語を含み、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしてを含む、任意の形式でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよい必ずしも対応する必要はない。プログラムは、他のプログラムもしくはデータ、例えば、マークアップ言語のドキュメントに記憶されている1つまたは複数のスクリプトを保持するファイルの一部に、当該のプログラム専用の単一のファイルに、または、複数の協調ファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに位置するもしくは複数のサイトにわたって分散され通信ネットワークによって相互通信する複数のコンピュータ上で、実行されるようにデプロイされ得る。
【０１３１】
本明細書において説明したプロセスおよびロジックフローは、入力データを処理して出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実施され得る。プロセスおよびロジックフローはまた、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実装され得るし、装置はまた、そのような特殊用途ロジック回路として実装され得る。
【０１３２】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは特殊用途マイクロプロセッサまたはその両方、または任意の他の種類の中央処理装置を含むまたは基づき得る。一般的に、中央処理装置は、リードオンリーメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般的に、コンピュータはまた、例えば、磁気、光磁気ディスク、または光ディスクといった、データを記憶するための1つまたは複数のマスストレージデバイスを含むことになる、または、そのような1つまたは複数のマスストレージデバイスからデータを受信もしくはそのような1つまたは複数のマスストレージデバイスにデータを送信またはその両方を行うことが動作可能に接続されることになる。しかしながら、コンピュータは、必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、数例挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム(GPS)受信機、または、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブといったポータブルストレージデバイスに組み込まれ得る。
【０１３３】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイスを含む、すべての形式の不揮発性メモリ、媒体、およびメモリデバイスと、例えば、内部ハードディスクまたはリムーバブルディスクといった磁気ディスクと、光磁気ディスクと、CD ROMおよびDVD-ROMディスクとを含む。プロセッサおよびメモリは、特殊用途ロジック回路によって補完され得るし、または、特殊用途ロジック回路に組み込まれ得る。
【０１３４】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタといった、ユーザに情報を表示するための表示デバイスと、ユーザがそれによってコンピュータに入力を提供することを可能にし、キーボードおよび例えばマウスまたはトラックボールといったポインティングデバイスとを有し、コンピュータに実装され得る。他の種類のデバイスも同様に、ユーザとのインタラクションを提供するために使用され得るし、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった、任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含み、任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信するとともにユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信した要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとのインタラクションを行い得る。
【０１３５】
本明細書において説明した発明特定事項の実施形態を、例えば、データサーバとして、バックエンドコンポーネントを含む、または、例えば、アプリケーションサーバといった、ミドルウェアコンポーネントを含む、または、例えば、それを介してユーザが本明細書において説明した発明特定事項の実施形態とやり取りすることができる関連グラフィックユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータといった、フロントエンドコンポーネントを含む、コンピューティングシステムにおいて、または、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントのうちの1つまたは複数の任意の組合せで、実装し得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信によって相互接続され得るし、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)を含み、例えば、インターネットを含む。
【０１３６】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的に互いにリモートに存在しており、通信ネットワークを介して通常はインタラクションを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。
【０１３７】
本明細書は、多くの特定の実施形態詳細を含んでいるが、これらは、任意の発明の範囲または主張される可能性がある範囲を制限するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態に関連して本明細書に説明したある特徴はまた、単一の実施形態における組合せで実施され得る。反対に、単一の実施形態に関連して説明した様々な特徴はまた、複数の実施形態で別々にまたは任意の適切なサブコンビネーションで実施され得る。さらに、特徴を、ある組合せで動作するように上述しているとしても、たとえそのようにはじめは主張していたとしても、いくつかのケースでは、主張した組合せのうちの1つまたは複数の特徴を、組合せから削除し得るし、主張した組合せは、サブコンビネーションまたはサブコンビネーションの変形を対象とし得る。
【０１３８】
同様に、動作を特定の順序で図面に図示しているが、このことを、望ましい結果を達成するためには、図示した特定の順序でもしくはシーケンシャルな順序でそのような動作を行う必要があり、または、図示した動作をすべて行う必要があり、と理解すべきではない。ある環境においては、マルチタスク処理およびパラレル処理が有利となる場合もある。さらに、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離はすべての実施形態においてそのような分離が必要であると理解すべきではないし、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品内に一緒に統合され得るまたは複数のソフトウェア製品にパッケージされ得ると理解すべきである。
【０１３９】
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ、望ましい結果をそれでも達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために、図示した特定の順序またはシーケンシャルな順序を必ずしも必要としているわけでない。ある実施形態においては、マルチタスク処理およびパラレル処理が有利となる場合もある。
【符号の説明】
【０１４０】
100  拡張ニューラルネットワークシステム
102  ニューラルネットワーク
104  外部メモリ
106  メモリアクセスサブシステム
106  メモリインターフェースサブシステム
160  書き込み
162  読み込み
164  読み込み
170  使用状況値
180  リンクデータ
【図１Ａ】
0006651629.tif 000010
【図１Ｂ】
0006651629.tif 000011
【図２】
0006651629.tif 000012
【図３】
0006651629.tif 000013
【図４】
0006651629.tif 000014
【図５】
0006651629.tif 000015
【図６】
0006651629.tif 000016
【図７】
0006651629.tif 000017
【図８】
0006651629.tif 000018