LSTMをスタックすることはどのような状況で有利なのでしょうか?
LSTMをスタックすることはどのような状況で有利なのでしょうか?
回答:
複数のLSTMsを積み重ねることの利点は何ですか?(答えを更新するだけです):
{1}から:
より深いアーキテクチャによって得られる追加のパワーが理論的には明確ではありませんが、いくつかのタスクでは、深いRNNが浅いRNNよりもうまく機能することが経験的に観察されました。特に、Sutskever et al(2014)は、エンコーダーデコーダーフレームワークで優れた機械翻訳パフォーマンスを達成するためには、4層の深いアーキテクチャが不可欠であると報告しています。Irsoy and Cardie(2014)は、1層のBI-RNNからいくつかの層を含むアーキテクチャに移行した結果の改善も報告しています。他の多くの作品は、階層化されたRNNアーキテクチャを使用して結果を報告していますが、1層のRNNと明示的に比較していません。
参照:
- {1}ゴールドバーグ、ヨアフ。「自然言語処理のためのニューラルネットワークモデルの入門書」J.アーティフ Intell。Res。(JAIR)57(2016):345-420。 https://scholar.google.com/scholar?cluster=3704132192758179278&hl=en&as_sdt=0,5 ; http://u.cs.biu.ac.il/~yogo/nnlp.pdf
LSTMをスタックすることが有利な状況の1つは、時系列データの階層表現を学習したい場合です。スタックされたLSTMでは、各LSTMレイヤーは、後続のLSTMレイヤーへの入力として使用されるベクターのシーケンスを出力します。この非表示レイヤーの階層により、時系列データのより複雑な表現が可能になり、さまざまなスケールで情報を取得できます。
たとえば、積み重ねられたLSTMを使用して、心拍数、歩数、GPS、その他の信号を使用して歩行、走行、自転車、階段を上る、または休憩する。EEGデータを使用したスタックLSTMによる時系列分類の例については、次のipythonノートブックを参照してください。
シーケンスからシーケンスモデルへ:エンコーダネットワークの仕事は、入力シーケンスをSeq2Seqモデルに読み込み、シーケンスの固定次元コンテキストベクトルCを生成することです。そのために、エンコーダはリカレントニューラルネットワークセル(通常はLSTM)を使用して、入力トークンを1つずつ読み取ります。セルの最終的な非表示状態はCになります。ただし、任意の長さのシーケンスを単一の固定サイズのベクトルに圧縮するのは非常に難しいため(特に翻訳などの難しいタスクの場合)、エンコーダーは通常スタックLSTMで構成されます。:各レイヤーの出力が次のレイヤーへの入力シーケンスである一連のLSTM「レイヤー」。最終層のLSTMの非表示状態は、コンテキストベクトルとして使用されます。