(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装される畳み込みゲート制御再帰型ニューラルネットワーク(CGRN)を含み、前記CGRNが、
次元x×y×mを有するテンソルである状態を保持することであって、x、y、およびmが、それぞれ1よりも大きい、保持することと、
複数の時間ステップの各々に関して、複数の畳み込みゲートを通じて現在保持されている状態を処理することによって前記現在保持されている状態を更新することと、
前記複数の時間ステップの中の最後の時間ステップの後に、前記更新された状態を出力層を通じて処理することであって、前記出力層が、前記複数の時間ステップの中の前記最後の時間ステップの後に前記更新された状態を受け取り、前記更新された状態を修正してCGRNの出力を生成するように構成される、処理することとを行うように構成され、
前記CGRNの前記状態が、システムの入力に初期化され、
前記CGRNが、シーケンス内に配列された複数の畳み込みゲート制御再帰型ユニット(CGRU)を含み、
現在の時間ステップが前記複数の時間ステップの第1の時間ステップである場合、前記シーケンス内の第1のCGRUは、システムの入力に初期化された状態を受け取り、該受け取った状態を処理して第1の更新された状態を生成するように構成され、前記現在の時間ステップが前記複数の時間ステップの第1の時間ステップでない場合、前記第1のCGRUは、直前の時間ステップにおいて前記シーケンス内の最後のCGRUによって生成された状態を受け取り、該受け取った状態を処理して更新された状態を生成するように構成され、
前記時間ステップにおけるそれぞれのその他のCGRUが、前記シーケンス内の前のCGRUによって更新された前記状態を受け取り、前記受け取られた状態を更新するように構成される、システム。
【請求項２】
各CGRUが、主畳み込みゲートを含み、前記主畳み込みゲートが、g =σ(U' * s + B')を満たす主畳み込みゲート出力gを生成するように構成され、ここで、sが、前記CGRUによって受け取られた前記状態であり、U' * sが、前記主畳み込みゲートのカーネルバンクと前記状態との畳み込みであり、B'が、前記主畳み込みゲートに関するバイアスベクトルである請求項1に記載のシステム。
【請求項３】
各CGRUが、忘却畳み込みゲートをさらに含み、前記忘却畳み込みゲートが、r =σ(U'' * s + B'')を満たす忘却畳み込みゲート出力rを生成するように構成され、ここで、sが、前記CGRUによって受け取られた前記状態であり、U'' * sが、前記忘却畳み込みゲートのカーネルバンクと前記状態との畳み込みであり、B''が、前記忘却畳み込みゲートに関するバイアスベクトルである請求項2に記載のシステム。
【請求項４】
前記CGRUによって更新された更新された内部状態CGRU(s)が、
CGRU(s) = u・s + (1 - u)・tanh(U * (r・s) + B)
を満たし、ここで、Uが、GRUのカーネルバンクであり、Bが、バイアスベクトルであり、r・sが、点別のベクトル積を示す請求項3に記載のシステム。
【請求項５】
前記最後の時間ステップの後に前記更新された状態を修正することが、
前記最後の時間ステップの後に前記更新された状態の第1の列の各成分に出力パラメータ行列を適用することを含む請求項1から4のいずれか一項に記載のシステム。
【請求項６】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から5のいずれか一項に記載のCGRNを実装させる命令を記憶する1つまたは複数のコンピュータストレージ媒体。
【請求項７】
システムの入力を受け取るステップと、
請求項1から5のいずれか一項に記載のCGRNを使用して前記システムの入力を処理して前記システムの入力に関するCGRNの出力を生成するステップとを含む方法。
【請求項８】
方法であって、
次元x×y×mを有するテンソルである状態を保持することであって、x、y、およびmが、それぞれ1よりも大きい、保持することと、
複数の時間ステップの各々に関して、複数の畳み込みゲートを通じて現在保持されている状態を処理することによって前記現在保持されている状態を更新することと、
前記複数の時間ステップの中の最後の時間ステップの後に、前記更新された状態を出力層を通じて処理することであって、前記出力層が、前記複数の時間ステップの中の前記最後の時間ステップの後に前記更新された状態を受け取り、前記更新された状態を修正して畳み込みゲート制御再帰型ニューラルネットワーク(CGRN)の出力を生成するように構成される、処理することと
を行うようにCGRNを動作させるステップと、
ニューラルネットワークシステムによって、前記CGRNの前記状態をシステムの入力に初期化するステップとを含み、
前記CGRNが、シーケンス内に配列された複数の畳み込みゲート制御再帰型ユニット(CGRU)を含み、
前記方法がさらに、
現在の時間ステップが前記複数の時間ステップの第1の時間ステップである場合、システムの入力に初期化された状態を受け取り、該受け取った状態を処理して第1の更新された状態を生成するように前記シーケンス内の第1のCGRUを動作させるステップと、
前記現在の時間ステップが前記複数の時間ステップの第1の時間ステップでない場合、直前の時間ステップにおいて前記シーケンス内の最後のCGRUによって生成された状態を受け取り、該受け取った状態を処理して更新された状態を生成するように前記第1のCGRUを動作させるステップとを含み、
前記時間ステップにおけるそれぞれのその他のCGRUが、前記シーケンス内の前のCGRUによって更新された前記状態を受け取り、前記受け取られた状態を更新するように構成される、方法。
【請求項９】
各CGRUが、主畳み込みゲートを含み、前記方法が、g =σ(U' * s + B')を満たす主畳み込みゲート出力gを生成するように前記主畳み込みゲートを動作させるステップを含み、ここで、sが、前記CGRUによって受け取られた前記状態であり、U' * sが、前記主畳み込みゲートのカーネルバンクと前記状態との畳み込みであり、B'が、前記主畳み込みゲートに関するバイアスベクトルである請求項8に記載の方法。
【請求項１０】
各CGRUが、忘却畳み込みゲートをさらに含み、前記方法が、r =σ(U'' * s + B'')を満たす忘却畳み込みゲート出力rを生成するように前記忘却畳み込みゲートを動作させるステップを含み、ここで、sが、前記CGRUによって受け取られた前記状態であり、U'' * sが、前記忘却畳み込みゲートのカーネルバンクと前記状態との畳み込みであり、B''が、前記忘却畳み込みゲートに関するバイアスベクトルである請求項9に記載の方法。
【請求項１１】
前記CGRUによって更新された更新された内部状態CGRU(s)が、
CGRU(s) = u・s + (1 - u)・tanh(U * (r・s) + B)
を満たし、ここで、Uが、GRUのカーネルバンクであり、Bが、バイアスベクトルであり、r・sが、点別のベクトル積を示す請求項10に記載の方法。
【請求項１２】
前記最後の時間ステップの後に前記更新された状態を修正することが、
前記最後の時間ステップの後に前記更新された状態の第1の列の各成分に出力パラメータ行列を適用することを含む請求項8から11のいずれか一項に記載の方法。
【請求項１３】
コンピューティング装置によって実行されるときに前記コンピューティング装置に請求項8から12のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークシステムのアーキテクチャに関する。
【背景技術】
【０００２】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【０００３】
一部のニューラルネットワークは、再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力シーケンスを受け取り、入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、再帰型ニューラルネットワークは、現在の時間ステップにおいて出力を計算する際に前の時間ステップからのネットワークの内部状態の一部またはすべてを使用する可能性がある。再帰型ニューラルネットワークの例は、1つまたは複数のLSTMセルを含む長期短期記憶(LSTM: Long Short-Term Memory)ニューラルネットワークであり、1つまたは複数のLSTMセルはそれぞれ、たとえば現在の活性化(activation)を生成する際に使用するためまたはLSTMニューラルネットワークのその他の構成要素に提供されるための、セルに関する前の状態をセルが記憶することを可能にする、入力ゲート、忘却ゲート、および出力ゲートを含む。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、再帰型ニューラルネットワークアーキテクチャに関するテクノロジーを説明する。
【０００５】
概して、畳み込みゲート制御再帰型ニューラルネットワーク(CGRN)は、複数の畳み込みゲート制御再帰型ユニット(CGRU: convolutional gated recurrent unit)を含み、次元x×y×mを有する状態テンソルを保持し、x、y、およびmは、それぞれ1よりも大きい。
【０００６】
複数の時間ステップの各々において、CGRNは、CGRUの各々を通じて現在保持されている状態テンソルを処理することによって現在保持されている状態テンソルを更新するように構成される。最後の時間ステップの後、状態テンソルは、システムの出力を生成する出力層によって処理される。
【０００７】
1つまたは複数のコンピュータのシステムが特定の動作または行為を実行するように構成されることは、システムが、動作中にシステムに動作または行為を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行為を実行させる命令を含むことを意味する。
【０００８】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。本明細書において説明されるCGRNのアーキテクチャは、CGRNが並列性が高いことを可能にし、すなわち、CGRNは、並列性の高い畳み込み演算器から構築されるので、CGRNを訓練するのにより少ない計算量ですむようにし、実行するのに、すなわちCGRNを使用して推論を計算するのに計算効率が高くなるようにする。CGRNのアーキテクチャは、CGRNが異なるサイズの入力に一般化されることを可能にし、たとえば、より短い入力に関して訓練されたCGRNがより長い入力に関する推論を効果的に計算することを可能にする。
【０００９】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】例示的なニューラルネットワークシステムを示す。
【図２】CGRNを使用してニューラルネットワークの入力を処理するための例示的なプロセスの流れ図である。
【図３】現在保持されているセルの状態テンソルを更新するためにCGRUを使用して現在の時間ステップにおいて現在保持されている状態テンソルを処理するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１１】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００１２】
図1は、例示的なニューラルネットワークシステム100を示す。ニューラルネットワークシステム100は、以下で説明されるシステム、構成要素、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【００１３】
ニューラルネットワークシステム100は、ニューラルネットワークの入力を受け取り、ニューラルネットワークの入力からシステムの出力を生成する機械学習システムである。たとえば、ニューラルネットワークシステム100は、ニューラルネットワークの入力102を受け取り、システムの出力132を生成することができる。概して、ニューラルネットワークの入力は、数値入力のシーケンス、たとえば、数値のベクトルまたはその他の順序付けられた集合であり、システムの出力は、単一のベクトルまたは複数のベクトルのシーケンスである可能性がある。
【００１４】
ニューラルネットワークシステム100は、生成されたシステムの出力を出力データリポジトリに記憶するか、あるいは、たとえば、ユーザに提示するためにシステムの出力を特徴付けるデータを提供することによって、またはさらに処理するために別のシステムにシステムの出力の一部もしくはすべてを提供することによって何らかの即時的な目的で使用するためにシステムの出力を提供することができる。
【００１５】
ニューラルネットワークシステム100は、任意の種類のデジタルデータ入力を受け取り、入力に基づいて任意の種類のスコア、分類、または回帰出力を生成するように構成され得る。
【００１６】
例として、ニューラルネットワークシステム100への入力が1つの言語のテキストを表すシーケンスである場合、ニューラルネットワークシステム100によって生成される出力は、入力テキストの他の言語への翻訳である別の言語のテキストを表すシーケンスである可能性がある。
【００１７】
別の例として、ニューラルネットワークシステム100への入力が発話された発言の特徴を表すシーケンスである場合、ニューラルネットワークシステム100によって生成される出力は、発言の書き起こしであるテキストを表すシーケンスである可能性がある。
【００１８】
別の例として、ニューラルネットワークシステム100への入力がテキストを表すシーケンスである場合、ニューラルネットワークシステム100によって生成される出力は、1組の話題のうちの各々に関するスコアである可能性があり、スコアは、対応する話題がテキストシーケンスの話題である見込みを表す。
【００１９】
別の例として、ニューラルネットワークシステム100への入力がテキストを表すシーケンスである場合、ニューラルネットワークシステム100によって生成される出力は、入力テキストの要約である、すなわち、入力テキストシーケンスよりも短いテキストを表すシーケンスである可能性がある。
【００２０】
特に、ニューラルネットワークシステム100は、畳み込みゲート制御再帰型ニューラルネットワーク(CGRN) 110を含む。CGRN 110は、畳み込みゲート制御再帰型ユニット(CGRU) 120のシーケンスおよび出力層130を含む。
【００２１】
概して、CGRUは、ニューラルネットワークの入力102から生成される初期状態テンソル122を受け取り、最終状態テンソル128を生成するために初期状態テンソル122を集合的に繰り返し更新する。
【００２２】
すなわち、CGRN 110は、x、y、およびmがそれぞれ1よりも大きいものとして次元x×y×mを有し、ニューラルネットワークの入力102から初期化されるテンソルである状態を保持する。ニューラルネットワークの入力102から状態テンソルを初期化することは、図2を参照して下でより詳細に説明される。CGRU 120は、最終状態テンソル128を生成するために保持される状態テンソルを集合的に繰り返し更新する。
【００２３】
より詳細には、CGRU 120は、複数の時間ステップの各々において処理を実行する。各時間ステップにおいて、各CGRUは、入力状態テンソルを受け取り、入力状態テンソルを更新し、更新された状態テンソルをCGRNの別の構成要素、すなわち、別のCGRUまたは出力層に提供する。たとえば、複数の時間ステップのうちの所与の時間ステップにおいて、シーケンス内のCGRU 120aが、現在の状態テンソル122を受け取り、現在の状態テンソル122を処理して更新された状態テンソル126を生成することができる。最終状態テンソル126は、複数の時間ステップのうちの最後の時間ステップのためのシーケンス内の最後のCGRUによって生成される状態テンソルである。
【００２４】
出力層130は、最終状態テンソル126を処理してシステムの出力132を生成する。最終状態テンソル126を処理することは、図2を参照して下でより詳細に説明される。
【００２５】
図2は、CGRNを使用してニューラルネットワークの入力を処理するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたニューラルネットワークシステム、たとえば、図1のニューラルネットワークシステム100が、プロセス200を実行し得る。
【００２６】
システムが、ニューラルネットワークの入力を受け取る(ステップ202)。概して、ニューラルネットワークの入力は、長さmをそれぞれが有するベクトルのシーケンスである。たとえば、シーケンスは、可能な入力の語彙からのそれぞれの入力をそれぞれが表す埋め込みベクトル(embedding vector)のシーケンスである可能性がある。
【００２７】
システムは、ニューラルネットワークの入力を用いてCGRNの状態テンソルを初期化する(ステップ204)。特に、システムは、各入力ベクトルを状態テンソルの第1の列へと連結し、状態テンソルのすべてのその他のエントリをゼロに設定する。すなわち、シーケンス内の第kのベクトルが、(0,k,0)から(0,k,m)までの成分において状態テンソルに追加され、列1からx - 1までの成分が、ゼロに設定される。
【００２８】
システムは、複数の時間ステップのためのCGRUのシーケンスを通じて初期状態テンソルを処理して最終状態テンソルを生成する(ステップ206)。特に、時間ステップの各々において、システムは、シーケンス内のCGRUの各々を通じて現在の状態テンソルを処理してシーケンスに関する更新された状態テンソルを生成する。CGRUによって入力状態テンソルを処理することは、図3を参照して下でより詳細に説明される。
【００２９】
システムは、出力層を使用して最終状態テンソルを処理してCGRNの出力、すなわち、受け取られたニューラルネットワークの入力に関するシステムの出力を生成する(ステップ208)。
【００３０】
特に、出力層は、第1の列の第kの深さベクトルが最終状態テンソルの(0,k,0)から(0,k,m)における成分であるものとして最終状態テンソルの第1の列の各深さベクトル(depth vector)に出力パラメータ行列を適用して、列の各深さベクトルからそれぞれの初期出力ベクトルを生成するように構成される。
【００３１】
一部の実装においては、そのとき、出力層は、最終出力ベクトルを生成するために各処理出力ベクトルから極大の成分を選択するように構成され、すなわち、その結果、最終出力ベクトルは、初期出力ベクトルの各々からのそれぞれの極大の成分のベクトルである。
【００３２】
図3は、現在保持されているセルの状態テンソルを更新するためにCGRUを使用して現在の時間ステップにおいて現在保持されている状態テンソルを処理するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムにより実装されたCGRUによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたニューラルネットワークシステム内のCGRU、たとえば、図1のニューラルネットワークシステム100のCGRU 120aが、プロセス300を実行し得る。
【００３３】
CGRUが、現在保持されている状態テンソルを受け取る(ステップ302)。現在の時間ステップが第1の時間ステップであり、CGRUがシーケンス内の第1のCGRUである場合、状態テンソルは、ニューラルネットワークの入力から初期化された状態テンソルである。現在の時間ステップが第1の時間ステップではなく、CGRUがシーケンス内の第1のCGRUである場合、状態テンソルは、直前の時間ステップにおいてシーケンス内の最後のCGRUによって生成された状態テンソルである。CGRUがシーケンス内の第1のCGRUではない場合、状態テンソルは、現在の時間ステップのためにシーケンス内の前のCGRUによって生成された状態テンソルである。
【００３４】
CGRUは、現在保持されている状態テンソルに主畳み込みゲート(main convolutional gate)を適用して主畳み込みゲート出力を生成する(ステップ304)。特に、CGRUは、CGRUに関する主カーネルバンク(kernel bank)と現在保持されている状態テンソルとの間で畳み込みを実行する。カーネルバンクは、形状[kx, ky, m, m]の4次元テンソルであり、すなわち、kx・ky・m2個のパラメータを含み、kxおよびkyは、カーネルの幅および高さである。状態テンソルとのカーネルバンクの畳み込みは、状態テンソルと同じ次元を有する新しいテンソルを生成する。
【００３５】
心象(mental image)sとの形状[kx, ky, m, m]を有するフィルタバンクの畳み込みを実行するとき、結果として得られるテンソルの成分[x, y, i]の値は、
【００３６】
【数１】
0006676165.tif 000002
【００３７】
を満たす。
【００３８】
一部の実装において、忘却畳み込みゲート(forget convolutional gate)出力gは、
g =σ(U' * s + B')
を満たし、sは、現在保持されている状態テンソルであり、U' * sは、主畳み込みゲートの主カーネルバンクと状態テンソルとの畳み込みであり、B'は、主畳み込みゲートに関するバイアスベクトルである。
【００３９】
CGRUは、現在保持されている状態テンソルに忘却畳み込みゲートを適用して忘却畳み込みゲート出力を生成する(ステップ306)。特に、CGRUは、CGRUに関する忘却カーネルバンクと現在保持されている状態テンソルとの間で畳み込みを実行する。一部の実装において、忘却畳み込みゲート出力rは、
r =σ(U'' * s + B'')
を満たし、U'' * sは、忘却カーネルバンクと現在保持されている状態テンソルとの畳み込みであり、B''は、忘却畳み込みゲートに関するバイアスベクトルである。
【００４０】
CGRUは、現在保持されている状態テンソル、主畳み込みゲート出力、および忘却畳み込みゲート出力を組み合わせて、更新された状態テンソルを生成する(ステップ308)。すなわち、CGRUは、現在保持されている状態テンソルに主畳み込みゲート出力と忘却畳み込みゲート出力との両方を適用して、更新された状態テンソルを生成する。一部の実装において、更新された状態テンソルは、
CGRU(s) = u・s + (1 - u)・tanh(U * (r・s) + B)
を満たし、Uは、GRUの出力カーネルバンクであり、Bは、GRUの出力に関するバイアスベクトルであり、r・sは、点別のベクトル積を示す。
【００４１】
CGRUは、更新された状態テンソルをCGRN内の次の構成要素に提供する(ステップ310)。特に、CGRUがシーケンス内の最後のCGRUではない場合、CGRUは、更新された状態テンソルをシーケンス内の次のCGRUに提供する。CGRUがシーケンス内の最後のCGRUであり、現在の時間ステップが最後の時間ステップではない場合、CGRUは、次の時間ステップにおいて処理するために、更新された状態テンソルをシーケンス内の第1のCGRUに提供する。CGRUがシーケンス内の最後のCGRUであり、現在の時間ステップが最後の時間ステップである場合、CGRUは、ニューラルネットワークの入力に関するシステムの出力を生成するために、更新された状態テンソルを出力層に提供する。
【００４２】
CGRNの構成要素のすべては微分可能であるので、システムは、通常の機械学習訓練技術、たとえば、時間訓練技術(time training technique)による誤差逆伝播を用いた確率的勾配降下法を使用して目的関数を最適化することによってCGRNを訓練することができる。すなわち、システムは、CGRNの、すなわち、フィルタバンクのパラメータおよびCGRUのバイアスならびに出力層の出力パラメータ行列の値を調整することによって目的関数を最適化するために訓練技術の複数回の繰り返しを実行することができる。
【００４３】
場合によっては、CGRNの訓練中、CGRUの各パラメータの値が時間ステップのすべてに渡って共有されるように制約するのではなく、システムは、時間ステップを複数のサブセットに分割し、CGRUに関する各パラメータの値がサブセット内で共有されるようにのみ制約する。すなわち、時間ステップの所与のサブセットに関して、および所与のCGRUの所与のパラメータに関して、システムは、サブセット内の各時間ステップにおいて同じ値を有するようにパラメータを制約するが、その他のサブセットに関しては値が変化することを可能にする。したがって、訓練した後、CGRUは、時間ステップのあるサブセット内では入力にパラメータ値のある組を適用し、時間ステップの別のサブセット内では入力にパラメータ値の別の組を適用する。
【００４４】
本明細書に記載の対象の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、または有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せである可能性がある。
【００４５】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)である可能性もあり、またはそのような専用の論理回路をさらに含む可能性がある。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【００４６】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される可能性もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適したその他の単位としての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置され得る。
【００４７】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【００４８】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはこれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づく可能性がある。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれる可能性がある。
【００４９】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【００５０】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT (ブラウン管)またはLCD (液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【００５１】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができる関係グラフィカルユーザインターフェース(relationship graphical user interface)もしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【００５２】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【００５３】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定ともみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装される可能性もある。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装される可能性もある。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除される可能性があり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【００５４】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があると理解されるべきである。
【００５５】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行為は、異なる順序で実行される可能性があり、それでも所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【００５６】
100  ニューラルネットワークシステム
102  ニューラルネットワークの入力
110  CGRN
120  CGRU
120a  CGRU
122  初期状態テンソル、現在の状態テンソル
126  更新された状態テンソル
128  最終状態テンソル
130  出力層
132  システムの出力
200  プロセス
300  プロセス
【図１】
0006676165.tif 000003
【図２】
0006676165.tif 000004
【図３】
0006676165.tif 000005