複数のLSTMをスタックする利点は何ですか?


25

利点は何ですか、なぜ深いネットワークで複数のLSTMを並べて使用するのですか?LSTMを使用して、一連の入力を単一の入力として表します。それで、その単一の表現ができたら、なぜそれを再び渡すのでしょうか?

これは自然言語生成プログラムで見たからです。


1
あなたは本当に水平に(タイムステップに沿って)並んでスタックされたLSTMを意味しましたか、それとも垂直にスタックされた(各タイムステップに複数のLSTMセル)ことを意味しましたか?
-wabbit

回答:


18

垂直に積み重ねられたLSTMレイヤーを参照していると思います(水平軸が時間軸であると仮定しています)。

その場合、LSTMをスタックする主な理由は、モデルの複雑さを増すことです。単純なフィードフォワードネットの場合、レイヤーをスタックして入力データの階層的特徴表現を作成し、機械学習タスクに使用します。同じことが、スタックされたLSTMにも当てはまります。

繰り返し入力に加えて、タイムステップごとにLSTM。入力がすでにLSTMレイヤー(またはフィードフォワードレイヤー)からの結果である場合、現在のLSTMは現在の入力のより複雑なフィーチャ表現を作成できます。

ここで、フィーチャ入力とLSTMレイヤーの間にフィードフォワードレイヤーを持つことと別のLSTMレイヤーを持つことの違いは、フィードフォワードレイヤー(完全に接続されたレイヤーなど)が前のタイムステップからフィードバックを受け取らず、したがって特定のことを説明できないことですパターン。代わりにLSTMを使用する(たとえば、スタックされたLSTM表現を使用する)より複雑な入力パターンをすべてのレイヤーで記述することができます


4
レイヤー内のLSTMセルは既に完全に相互に接続されています(レイヤーの出力は同じレイヤーのすべての入力に接続されています)。したがって、個々のセルは、すべて1つのレイヤー内で、他のセルの出力の上にすでに機能を結合できます。複数のレイヤーがより複雑なパターンになる理由について詳しく説明してください。
ダニジャー

6

{1}から:

深いアーキテクチャによって得られる追加のパワーが理論的には明確ではありませんが、いくつかのタスクでは、深いRNNが浅いRNNよりもうまく機能することが経験的に観察されました。特に、Sutskever et al(2014)は、エンコーダーデコーダーフレームワークで優れた機械翻訳パフォーマンスを達成するには、4層の深いアーキテクチャが不可欠であると報告しています。Irsoy and Cardie(2014)は、1層のBI-RNNから複数の層を持つアーキテクチャに移行した結果の改善も報告しています。他の多くの研究では、階層化されたRNNアーキテクチャを使用して結果を報告していますが、1層のRNNと明示的に比較していません。

参考までに:


参照:


2

シーケンス分類のためにLSTMをいじることから、CNNのモデル容量を増やすのと同じ効果がありました(それらに精通している場合)。そのため、特にデータが不足している場合は確実に利益が得られます。

もちろん、オーバーフィットし、パフォーマンスが低下する可能性があるため、両刃にします。私の場合、私は1つのLSTMから2つのスタックに移行し、ほとんど瞬時に改善されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.