スライディングウィンドウアプローチでLSTMをトレーニングする場合、LSTMをオーバーフィットしますか?なぜ人々はそれをLSTMに使用しないように見えるのですか?
簡単な例として、文字のシーケンスを予測する必要があると仮定します。
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
次のミニバッチを使用してLSTMをトレーニングし続けると、悪い(またはより良い)でしょうか。
A B C D E F G H I J K L M N, backprop, erase the cell
B C D E F G H I J K L M N O, backprop, erase the cell
.... and so on, shifting by 1 every time?
以前は、次のように常にトレーニングしていました。
A B C D E F G H I J K L M N, backprop, erase the cell
O P Q R S T U V W X Y Z, backprop, erase the cell
1つずつシフトするのではなく、代わりに2エントリずつウィンドウをスライドさせる方がよいでしょうか?それは何を意味しますか(精度/オーバーフィッティングに関して)?
また、フィードフォワードネットワークでスライディングウィンドウアプローチを行うと、オーバーフィットになりますか?ネットワークは非常に長い間同じ情報領域にさらされているため、私は「はい」と仮定します。たとえばE F G H I J K
、長時間さらされます。
編集:
セルの状態はトレーニングバッチ間で消去されるため、LSTMにはこれらの時間に「ハンマートゥヘッド」があることに注意してください。OPQRSTUVWXYZの前の状態を思い出すことはできません。これは、LSTMが「O」が「M」に続くことを知ることができないことを意味します。
だから、私は(したがって私の質問全体)、中間に(重複する)バッチを与えないのだと思いました...そしてその場合、複数の重複するミニバッチを使用しないのはなぜですか?私にとってこれはよりスムーズなトレーニングを提供しますか?最終的に、それはLSTMのスライディングウィンドウを意味します。
回答が受け入れられた後に私が見つけたいくつかの有用な情報:
英語の翻訳の最初の単語は、おそらくソース文の最初の単語と非常に相関しています。ただし、デコーダーは50ステップ前の情報を考慮する必要があり、その情報は何らかの方法でベクターにエンコードする必要があります。リカレントニューラルネットワークには、このような長距離の依存関係を処理する問題があることが知られています。理論的には、LSTMのようなアーキテクチャはこれに対処できるはずですが、実際には長距離の依存関係には依然として問題があります。
たとえば、研究者は、ソースシーケンスを逆にする(エンコーダに逆方向に送る)と、デコーダからエンコーダの関連部分へのパスが短くなるため、結果が大幅に向上することを発見しました。同様に、入力シーケンスを2回入力することも、ネットワークが物事をよりよく記憶するのに役立つようです。たとえば、あるトレーニングの例が「ジョンが帰宅した」場合、「ジョンは帰宅しました」をネットワークに1つの入力として与えます。
回答を受け入れてから編集します。
数か月後、データをより適切に使用するため、スライディングウィンドウアプローチを使用する傾向が強くなりました。しかし、その場合、おそらくABCDEFGHIJKLMNOの直後にBCDEFGHIJKLMNOをトレーニングしたくないでしょう。代わりに、サンプルをシャッフルして、すべての情報をLSTM に徐々に「均一に」取り入れてください。ABCDEFGHIJKLMNOなどの後にHIJKLMNOPQRSTUを付けてください。これは壊滅的な忘却に直接関係しています。いつものように、検証とテストのセットを注意深く監視し、エラーが着実に増加しているのを確認したらすぐに停止します
また、合成勾配を使用することにより、「ハンマートゥヘッド」の問題を改善できます。ここでその利点を参照してください:(リンクされた回答は長いシーケンスの利点を説明しています)/datascience//a/32425/43077