私は、あなたはLSTMのトレーニング手順の更なる理解を持っているよ、あなたはまず、ミニバッチSGD(確率的勾配降下)(時をバックプロパゲーション)BPTTの概念を学ぶことをお勧めします。
Q1。ステートレスの場合、LSTMはバッチ1のパラメータを更新し、次にバッチ2の隠しステートとセルステート(通常はすべてゼロ)を開始します。ステートフルの場合は、batch1の最後の出力隠しステートとセルステートをbatch2の初期ステートとして使用します。
Q2。上記のように、2つのバッチの2つのシーケンスに接続(たとえば、1つの在庫の価格)がある場合は、ステートフルモードを使用してください。そうでない場合(たとえば、1つのシーケンスが完全な文を表します)
BTW、@ vu.pham said if we use stateful RNN, then in production, the network is forced to deal with infinite long sequences
。これは正しいとは限りませんが、Q1で見ることができるように、LSTM はではありません。全体シーケンスについて学ぶには、まずbatch1でシーケンスを学習し、パラメータを更新してからbatch2でシーケンスを学習します。
LSTMが「ステートフル」の場合、以前のバッチに関する情報は隠し状態で保存されるため、バッチ1の更新はバッチ1に依存する必要があります。 ? (これはバニラのRNNの切り捨てられたBPTTと見なされると私は思うが、バックプロップはわずかな時間ステップを使用するが、RNNは依然として勾配が計算されるシーケンスの長さよりも長い依存性を学ぶことができる) –