回帰型ニューラルネットワーク
回帰型ニューラルネットワーク(かいきがたニューラルネットワーク、Recurrent neural network; RNN)は内部に循環をもつニューラルネットワークの総称・クラスである。
ニューラルネットワークは入力を線形変換する処理単位からなるネットワークである。このネットワーク内に循環が存在する、すなわちユニットの出力が何らかの経路で自身へ再び入力する場合、これを回帰型ニューラルネットワークという。回帰のないネットワーク(順伝播型ニューラルネットワーク; Feed-Forward Network; FFN)と対比される。
RNNは任意のひと続きの入力を処理するために内部状態(記憶)を使うことができる。これによって、時系列のための時間的な動的振る舞いを示すことが可能となる。これによって、分割化されていない、つながりのある手書き文字認識や音声認識といった課題に応用が可能になっている。
「回帰型ニューラルネットワーク」という用語は、類似した一般構造を持つ2つの広いネットワークのクラスを指し示すために見境なく使われる。1つは有限インパルス、もう1つは無限インパルスである。どちらのネットワークのクラスも時間的な動的振る舞いを示す。有限インパルス回帰型ネットワークは厳密な順伝播型ニューラルネットワークに展開でき、置き換えることができる有向非巡回グラフであるのに対して、無限インパルス回帰型ネットワークは展開できない有向巡回グラフである。
有限インパルスと無限インパルス回帰型ネットワークはどちらも追加の保管状態を持つことができ、この保管場所はニューラルネットワークによる直接的な制御下とすることができる。保管場所は他のネットワークやグラフが時間遅延を取り込むか、フィードバックループを持つのであれば、それらで置き換えることもできる。こういった制御された状態はゲート状態またはゲート記憶と呼ばれ、長・短期記憶ネットワーク(LSTMs)およびゲート付き回帰型ユニット(GRUs)の一部である。
再帰型ニューラルネットまたは循環ニューラルネットと訳されこともある。本項では「Recurrent」ニューラルネットワークの訳語として「回帰型」、「Recursive」ニューラルネットワークの訳語として「再帰型」を用いる。3
回帰型ニューラルネットワークは1986年のデビッド・ラメルハートの研究に基づく。ホップフィールド・ネットワークは1982年にジョン・ホップフィールドによって見出された。1993年、ニューラルヒストリー圧縮システムが、時間に展開されたRNN中で1000以上の層を必要とする「非常に深い学習」問題を解決した。
長・短期記憶(LSTM)は2007年頃から音声認識に革命をもたらし始め、特定の音声認識への応用において伝統的なモデルをしのいだ。2009年、コネクショニスト時系列分類(CTC)で訓練されたLSTMネットワークは、パターン認識大会で優勝した初のRNNとなった。このネットワークはつながった手書き文字認識の複数の大会で優勝した。2014年、中国の大手検索サイト百度は、伝統的な音声処理法を用いることなくSwitchboard Hub5'00音声認識ベンチマークを破るためにCTCで訓練されたRNNを用いた。
LSTMはまた、大規模語彙音声認識およびテキスト音声合成を改良し、Google Androidにおいて使われた.。2015年、GoogleはCTCで訓練されたLSTMによって音声認識の劇的な性能向上が達成されたと報告され、この技術はGoogle Voice Searchで使用された。
LSTMは機械翻訳、言語モデリング、多言語処理の記録を破った。畳み込みニューラルネットワーク(CNN)と組み合わされたLSTMは自動画像キャプション(短い説明文)付けを向上させた。
RNNには多くの派生形式がある。
基本的なRNNは連続する「層」へと編成されたニューロン的ノードのネットワークであり、所定の層中の個々のノードは次の層中の全てのノードと有向(一方向)結合により結合されているJanuary 2017。個々のノード(ニューロン)は時間変動する実数値の活性化を有する。個々の結合(シナプス)は変更可能な実数値の重み付けを有する。ノードは(ネットワーク外からデータを受け取る)入力ノード、(結果を得る)出力ノード、(入力から出力への途上でデータを修正する)隠れノードのいずれかである。
離散時間設定における教師あり学習のため、実数値入力ベクトルの配列は入力ノードに到着する(一度に1つのベクトル)。任意の時間ステップにおいて、個々の非入力ユニットはそれに結合した全てのユニットの活性化の加重和の非線形関数としてその現在の活性化(結果)を計算する。ある時間ステップにおける一部の出力ユニットのために教師が与えられた目標活性化を提供することができる。例えば、入力配列が数字音声に対応した音声シグナルであるならば、配列の最後における最終目標出力は数字を分類するラベルとなるだろう。
強化学習のセッティングでは、教師は目標シグナルを与えない。代わりに、適合度関数または報酬関数がRNNの性能を評価するために使われることがある。これは環境に影響を与えるアクチュエータに結合された出力ユニットを通してその入力ストリームに影響する。これは、進行が勝ち取った点数によって測定されるゲームをプレーするために使うことができるかもしれない。
個々の配列は、全ての目標シグナルのネットワークによって計算された対応する活性化からのずれの和として誤差を生じる。膨大な配列のセットを訓練では、全誤差は全ての個別の配列の誤差の和である。
ジェフリー・エルマンネットワークは、一連の「文脈ユニット」(右図中のu)を追加した3層ネットワーク(右図中でx、y、zとして垂直に配置されている)である。中央(隠れ)層は1の重みに固定されたこれらの文脈ユニットに結合されている。個々の時間ステップにおいて、入力は順伝播され、学習規則が適用される。固定された逆結合は文脈ユニット中の隠れユニットの以前の値のコピーを保存する(これは、それらが学習規則が適用する前に結合を通じて伝播されるためである)。したがって、ネットワークは一種の状態を維持することができ、これによって標準的な多層パーセプトロンの能力を超える時系列予測といった課題を実行することが可能となる。
マイケル・I・ジョーダンネットワークはエルマンネットワークと似ている。文脈ユニットは隠れ層の代わりに出力層から入力を得る。ジョーダンネットワーク中の文脈ユニットは状態層とも呼ばれる。それらはそれら自身への回帰的結合を持つ。
エルマンネットワークとジョーダンネットワークは「単純回帰型ネットワーク(SRN)」としても知られている。
\begin{align}
h_t &= \sigma_h(W_{h} x_t + U_{h} h_{t-1} + b_h) \\
y_t &= \sigma_y(W_{y} h_t + b_y)
\end{align}
\begin{align}
h_t &= \sigma_h(W_{h} x_t + U_{h} y_{t-1} + b_h) \\
y_t &= \sigma_y(W_{y} h_t + b_y)
\end{align}
x_t: 入力ベクトル
h_t:隠れ層ベクトル
y_t: 出力ベクトル
W、U、およびb: パラメータ行列およびベクトル
\sigma_hおよび\sigma_y: 活性化関数
ホップフィールドネットワークは全ての結合が対称的なRNNである。定常入力を必要とし、複数パターンの配列を処理しないため、汎用RNNではない。ホップフィールドネットワークは収束することを保証している。もし結合がヘッブの学習を用いて訓練されるならば、ホップフィールドネットワークは結合変化に抵抗性のある頑強な連想メモリとして機能することができる。
Bart Koskoによって発表された双方向連想メモリ(bidirectional associative memory、BAM)ネットワークは、ベクトルとして連想データを貯蔵するホップフィールドネットワークの一変型である。双方向性は行列とその転置行列を通って情報が流れることから来ている。典型的には、双極符号化が連想対の二値符号化よりも選好される。最近、マルコフ飛び(ステッピング)を用いた確率的BAMモデルが増強したネットワーク安定化ために最適化され、現実世界の応用と関わりを持った。
BAMネットワークは2つの層を持ち、そのうちのどちらかを、連想を思い出し、もう一方の層上へ出力を生成するための入力として動作させることができる。
エコー状態ネットワーク(Echo state network、ESN)は、疎らに結合されたランダム隠れ層を持つ。出力ニューロンの重みは変更可能な(訓練可能な)ネットワークの一部でしかない。ESNは特定の時系列の再現に秀でている。スパイキングニューロンのための派生形式は液体状態マシンとして知られる。
独立回帰型ニューラルネットワーク(Independently recurrent neural network、IndRNN)は、従来の完全結合型RNNにおける勾配消失および爆発問題に対処する。1つの層中の個々のニューロンは(この層中の他の全てのニューロンへの完全な結合の代わりに)文脈情報としてそれ自身の過去状態のみを受け取り、ゆえにニューロンは互いの履歴に独立である。勾配バックプロパゲーションは、長期または短期記憶を保持するため、勾配消失および爆発を避けるために制御することができる。ニューロン間情報は次の層において探索される。IndRNNはReLUといった非飽和非線形関数を使って確実に訓練することができる。スキップコネクションを使うことで、深いネットワークを訓練することができる。
再帰型ニューラルネットワーク(recursive neural network)は、トポロジカル順序で可微分なグラフ様構造を横断することによって、同じ一連の重みを構造に再帰的に適用することによって作られる。このようなネットワークは典型的に自動微分の反転モードによって訓練することもできる。再帰型ニューラルネットワークは、論理項といった構造の分散表現を処理することできる。再帰型ニューラルネットワークの特殊な場合が、構造が直鎖に対応するRecurrent(回帰型)NNである。再帰型ニューラルネットワークは自然言語処理に応用されてきた。再帰型ニューラルテンソルネットワークは、木中の全てのノードに対してテンソルベースの合成関数を使用する。
ニューラルヒストリーコンプレッサ(neural history compressor)はRNNの教師なしスタックである。入力レベルにおいて、前の入力から次の入力を予測することを学習する。この階層型構造において一部のRNNの予測不可能な入力のみが次のより高いレベルのRNNへの入力となる。したがって、極めてまれにしかその内部状態は再計算されない。ゆえに、個々のより高位のRNNは下位RNN中の情報の圧縮表現を学ぶ。これは、入力配列がより高レベルにおける表現から正確に再構成できるような方法で行われる。
このシステムは、記述長またはデータの確率の負の対数を効果的に最小化する。入ってくるデータ配列中の多量の学習可能な予測可能性を考えると、最高レベルのRNNは、重要な事象間に長い間隔がある深い配列でさえも容易に分類するために教師あり学習を用いることができる。
このRNN階層を2つのRNN、「意識的」チャンカー(高位)と「無意識的」オートマタイザー(下位)に抜き出すことが可能である。チャンカーがオートマタイザーによって予測不可能な入力の予測と圧縮を学習すると、次にオートマタイザーは次の学習フェーズにおいて追加ユニットを通して、よりゆっくりと変化するチャンカーの隠れ層を予測または模倣することになる。これによってオートマタイザーが、長い間隔を超えて適切な、めったに変化しない記憶を学習することが容易になる。次に、チャンカーが残った予測不可能な事象に注視できるように、これはオートマタイザーが以前は予測不可能だった入力の多くを予測できるものとするのを助ける。
生成モデルは、1992年に自動微分またはバックプロパゲーションの勾配消失問題を部分的に克服した。1993年、こういったシステムは時間方向に展開されたRNN中に1000を超える後続層を必要とする「非常に深い学習」課題を解決した。
二次(second order)RNNは、標準的な重みw{}_{ij}の代わりにより高次の重みw{}_{ijk}を用い、状態は積となる。これによって、訓練、安定性、表現において有限状態機械への直接的マッピングが可能となる。長・短期記憶(LSTM)はこの一例であるが、こういった形式的マッピングまたは安定性の証明は持たない。
長・短期記憶(LSTM)は勾配消失問題を回避するディープラーニング(深層学習)システムである。LSTMは通常、「忘却」ゲートと呼ばれる回帰型ゲートによって拡張されている。LSTMは勾配の消失または爆発からの逆伝播誤差を防ぐ。代わりに、誤差は空間方向に展開された無制限の数のバーチャル層を通して逆向きに流れる。すなわち、LSTMは、数千または数百万離れた時間段階前に起こった事象の記憶を必要とする課題を学習できる。問題特化型のLSTM的トポロジーを発展させることができる。。LSTMは重要な事象間に長い遅延が与えられても機能し、低周波数と高周波数成分を混合した信号を扱うことができる。
多くの応用がLSTM RNNのスタックを用いており、訓練セット中のラベル配列の確率を最大化するRNN重み行列を見付けるためにそれらをコネクショニスト時系列分類(CTC)によって訓練している。CTCはアラインメントと認識の両方を達成する。
LSTMは隠れマルコフモデル(HMM)や類似の概念に基づく以前のモデルとは異なり、文脈依存言語を認識することを学習することができる。
ゲート付き回帰型ユニット(GRUs)は2014年に発表された回帰型ニューラルネットワークにおけるゲート機構である。完全な形式やいくつかの単純化された方式で使われている。多声音楽モデリングおよび音声信号モデリングにおけるそれらの性能は長・短期記憶の性能と似ていることが明らかにされた。これらは出力ゲートを持っていないため、LSTMよりもパラメータが少ない。
双方向性(bi-directional)RNNsは要素の過去および未来の文脈に基づいて配列の個々の要素を予測あるいはラベル付けするために有限配列を用いる。これは、2つのRNNの出力を統合することによってなされる。一方のRNNは配列を左から右へ、もう一方は右から左へと処理する。統合された出力は教師が与えられた対象シグナルの予測である。この技法はLSTM RNNsを組み合わせた時に特に有用であることが証明されている。
連続時間(continuous time)回帰型ニューラルネットワーク(CTRNN)は、入ってくるスパイクの一連の流れのニューロンへの影響をモデル化するために常微分方程式の系を用いる。
活動電位y_{i}を持つネットワーク中のニューロンiに対して、活性化の変化率は以下の式で与えられる。
\tau_{i}\dot{y}_{i}=-y_{i}+\sum_{j=1}^{n}w_{ji}\sigma(y_{j}-\Theta_{j})+I_{i}(t)
上式において、
\tau_{i} : シナプス後ノードの時定数
y_{i} : シナプス後ノードの活性化
\dot{y}_{i} : シナプス後ノードの活性化の変化率
w{}_{ji} : シナプス前ノードからシナプス後ノードへの結合の重み
\sigma(x) : xのシグモイド。例: \sigma(x) = 1/(1+e^{-x})
y_{j} : シナプス前ノードの活性化
\Theta_{j} : シナプス前ノードのバイアス
I_{i}(t) : (もしあれば)ノードへの入力
CTRNNsは進化ロボティクスに適用された。進化ロボティクスでは、CTRNNsはビジョン、連携、および軽度認知行動に取り組むために使われている。
ここで留意すべきは、シャノン標本化定理により、離散時間回帰型ニューラルネットワークは、微分方程式が等価な差分方程式へと変形された連続時間回帰型ニューラルネットワークを見ることができる、という点である。この変形は、シナプル後ノード活性化関数y_i(t)がローパスフィルターを通された後に(しかしサンプリングより前に)起こると考えることができる。
階層的(hierarchical)RNNsは、階層的振る舞いを有用なサブプログラムへと分解するために様々なやり方でそれらのニューロンを結合する。
一般に、回帰型多層パーセプトロン(Recurrent Multi-Layer Perceptron、RMLP)ネットワークは直列のサブネットワークから構成され、それぞれのサブネットワークは多層のノードを含む。これらのサブネットワークのそれぞれは、フィードバック結合を持ちうる最終層を除いて順伝播型である。これらのサブネットワークのそれぞれは、順伝播型結合によってのみ結合されている。
多重時間スケール(multiple timescales)回帰型ニューラルネットワーク(MTRNN)は、ニューロン間の空間的結合および異なる種類のニューロン活動(個々は異なる時間特性を持つ)に依存した自己組織化を通して脳の機能的階層をシミュレートできるニューラルネットワークに基づいた計算モデルである。こういった変化に富んだ神経活動により、一連の挙動の連続的変化が再使用可能なプリミティブへと分割され、それらは次に多様な逐次的挙動へと柔軟に統合される。こういった種類の階層の生物学的同意は、ジェフ・ホーキンスによる著書『考える脳 考えるコンピューター 』(2005年)中の脳機能の自己連想記憶理論において議論されたJune 2017。
ニューラルチューリングマシン(Neural Turing machine、NTM)は、回帰型ニューラルネットワークを外部記憶装置を連結することによってそれらを拡張する手法である。RNNは注意(attention)過程によって外部記憶装置と相互作用できる。組み合わされた系はチューリングマシンまたはフォン・ノイマン構造と類似しているが、端から端まで微分可能ニューラルコンピュータであり、これによって最急降下法を用いて効率的に学習することが可能となる。
微分可能ニューラルコンピュータ(differentiable neural computer、DNC)はニューラルチューリングマシンの拡張であり、曖昧な量の個々のメモリアドレスと出来事の配列の記憶を使うことができる。
ニューラルネットワーク・プッシュダウン・オートマトン(NNPDA)はNTMと似ているが、(入力)テープは微分可能で、訓練される類似スタックによって置き換えられる。このようにして、NNPDAは文脈自由文法(CFG)の認識器と複雑さが似ている。
線形回帰(linear recurrence)は非線形活性化関数を持たない回帰モジュール・レイヤーである。
RNNを含むニューラルネットワークは定義としては非線形活性化関数を必要としない。しかし実践的にはほぼ必ずシグモイド関数などの非線形変換を導入している。ゆえに状態 h_{t-1} が回帰する際、h_{t-1} は非線形変換されたうえで f(x_t, h_{t-1}) へ回帰していることになる。この系列・時間方向への非線形変換を無くし線形回帰とするモジュール・レイヤーが提案されている。
最急降下法は、関数の極小値を探し出すための一次の反復的最適化アルゴリズムである。ニューラルネットワークでは、非線形活性化関数が可微分であるという条件で、重みに関する誤差の微分係数に比例して個々の重みを変化させることによって誤差項を最小化するために使うことができる。これを行うための様々な手法はポール・ワーボス、ロナルド・J・ウィリアムス、トニー・ロビンソン (音声認識)、ユルゲン・シュミットフーバー、ゼップ・ホッフライター、パールマターらによって1980年代と1990年代初頭に開発された。
標準的手法は「通時的誤差逆伝播法(Backpropagation through time、BPTT)」と呼ばれ、順伝播型ネットワークのための誤差逆伝播法の一般化である。誤差逆伝播法と同様に、BPTTはポントリャーギンの最大値原理の後ろ向き連鎖(reverse accumulation)モードにおける自動微分の実例である。計算コストがより高いオンライン版は「実時間リカレント学習(Real-Time Recurrent Learning、RTRL)」と呼ばれる。これは、積み重ねられた接ベクトルを持つ前向き連鎖(forward accumulation)モードにおける自動微分の実例である。BPTTとは異なり、このアルゴリズムは時間について局所的だが、空間については局所的でない。
この文脈において、空間について局所的とは、単一ユニットの更新計算量が重みベクトルの次元において線形であるように、ユニットの重みベクトルが結合されたユニットとユニットそれ自身に蓄えられた情報のみを用いて更新できることを意味する。時間について局所的とは、更新が連続的に(オンラインで)起こり、BPTTのように任意の時間地平線内の複数の時間ステップではなく最も近い時間ステップにのみ依存することを意味する。生物学的ニューラルネットワークは時間と空間の両方に関して局所的であるように見える。
偏微分の再帰的計算について、RTRLはヤコビ行列を計算するために時間ステップ毎にO(隠れ層の数 × 重みの数) の時間計算量を持つのに対して、BPTTは任意の時間地平線内の全ての順方向活性化を記憶するという代償を払って、時間ステップ毎にO(重みの数) しか取らない。BPTTとRTRLの中間の計算量を持つオンラインハイブリッド版や、連続時間版が存在する。
標準的なRNN構造に対する最急降下法の大きな問題は、誤差勾配が重要な事象間の時間差の大きさに伴い指数関数的に急速に消失することである。BPTT/RTRL混成学習手法を組み合わされたLSTMはこれらの問題の克服を試みている。この問題は、ニューロンの文脈をそれ自身の過去状態に減らすことによって独立回帰型ニューラルネットワーク(IndRNN)でも解決され、次にニューロン横断的情報は続く層において探索できる。長期記憶を含む異なる範囲の記憶は勾配消失および爆発問題を起こさずに学習できる。
因果的再帰誤差逆伝播法(causal recursive backpropagation、CRBP)は、局所的に回帰したネットワークのためにBPTTおよびRTRL枠組みを実装し、組み合わせる。CRBPは最も一般的な局所回帰型ネットワークと連携する。CRBPアルゴリズムは大域誤差項を最小化できる。この事実はアルゴリズムの安定性を向上し、これは局所フィードバックを持つ回帰型ネットワークのための勾配計算技法に関する統一的な概観をもたらす。
任意の構造を持つRNNにおける勾配情報の計算のためのある手法は、シグナルフローグラフ図式導出(signal-flow graphs diagrammatic derivation)に基づく。この手法はBPTTバッチアルゴリズムを用い、ネットワーク感度計算に関するLeeの定理に基づく。これはWanおよびBeaufaysによって提案されたが、その高速なオンライン版はCampolucci、Uncini、およびPiazzaによって提案された。
ニューラルネットワークにおける重みの訓練は、非線形大域的最適化問題としてモデル化できる。目的関数は、以下のように特定の重みベクトルの適合度または誤差を評価するために作ることができる。第一に、ネットワークの重みは重みベクトルにしたがって設定される。次に、ネットワークは訓練配列に対して評価される。典型的には、予測値と訓練配列中で指定される目標値との間の差分二乗和が現在の重みベクトルの誤差を表わすために使われる。任意の大域的最適化技法を次に目的関数を最小化するために使うことができる。
RNNを訓練するための最も一般的な大域的最適化手法は遺伝的アルゴリズムである(特に非構造化ネットワークにおいて)。
最初に、遺伝的アルゴリズムは染色体中の1つの遺伝子が1つの重み結合を表わす所定のやり方でニューラルネットワーク重みを使ってエンコードされる。全ネットワークは単一の染色体として表わされる。数適応度関数は以下のように評価される。
染色体中にコードされた個々の重みはネットワークの個別の重み結合へと割り当てられる。
訓練セットは入力シグナルを前向きに伝播するネットワークへと提示される。
平均二乗誤差が適応度関数に返される。
この関数が遺伝的選択過程を駆動する。
多くの染色体が集団を作り上げる。しあたがって、多くの異なるニューラルネットワークは停止基準が満されるまで進化する。一般的な停止スキームは、
ニューラルネットワークが訓練データの一定のパーセンテージを学習した時、または
平均二乗誤差の最小値が満された時、または
である。停止基準は、訓練中の個々のネットワークからの平均二乗誤差の逆数を得る適応度関数によって評価される。したがって、遺伝的アルゴリズムの目標は適応度関数を最大化する(これによって平均二乗誤差が減少する)ことである。
焼きなまし法または粒子群最適化といった他の大域的(と進化的の両方またはいずれか一方)最適化技法を良い重みのセットを探すために使うことができる。
RNNモデルの性能は様々なタスク・指標を用いて評価される。以下はその一例である。
Copyingタスクは系列処理モデルの記憶力を評価するために「最初に提示された数字の並びを最後に思い出す」タスクである。
モデルにはまず \{1,\ ...,\  8\} からランダムサンプリングされた10個の入力が連続して渡され(記憶ステップ)、次にL個の 0 が渡され(保持ステップ)、最後に 9 が10連続で渡される(想起ステップ)。モデルは最初の10個の数字を覚え、Lステップ続く 0 の間それを覚えておき、9 に応答して最初の10個の数字を順番通り出力しなければならない。下の擬似コードが入力と理想的な出力である。
Copyingタスクは長期のタイムラグを跨いで記憶を保持するタスクであり、長期記憶を直接評価する標準的なタスクである。シンプルながら難しいことが知られており、エルマンネット等の単純RNNはこのタスクを解けず、LSTMもL=100を部分的にしか学習できないことが知られている。
RNNはカオス的に振る舞いうる。こういった場合、力学系理論を分析のために使うことができる。
RNNは実のところ具体的な構造(直鎖構造)を持つ再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、子供表現を親表現へと統合するいかなる階層構造上でも動作するが、回帰型ニューラルネットワークは以前の時間ステップおよび隠れ表現を現在の時間ステップ表現へと統合する直線的時間進行上で動作する。
具体的には、RNNは有限インパルス応答および無限インパルス応答フィルターの非線形版として見ることができ、また非線形自己回帰外因性モデル(nonlinear autoregressive exogenous model、NARX)と見ることもできる。
主要なディープラーニングライブラリ(例: PyTorch/Caffe/Torch, TensorFlow/Keras, Chainer, Deeplearning4j, DyNet, Microsoft Cognitive Toolkit, Apache MXNet, Theano)や機械学習ライブラリ(例: Apache SINGA)がRNNの学習と推論をサポートしている。
回帰型ニューラルネットワークの応用: