私はマルチレイヤLSTMを理解し、実装しようとしています。問題は、どうやって彼らがつながっているのか分からないことです。私は心の中で2 thoughsを持っています。各タイムステップでマルチレイヤLSTMを理解する
、最初LSTMの隠れ状態のHは、第二LSTMの入力となります。
各タイムステップで、第1のLSTMの隠れ状態HがセンシントLSTMの隠れ状態の初期値となり、第1のLSTMの入力が第2のLSTMの入力となる。
助けてください!
私はマルチレイヤLSTMを理解し、実装しようとしています。問題は、どうやって彼らがつながっているのか分からないことです。私は心の中で2 thoughsを持っています。各タイムステップでマルチレイヤLSTMを理解する
、最初LSTMの隠れ状態のHは、第二LSTMの入力となります。
各タイムステップで、第1のLSTMの隠れ状態HがセンシントLSTMの隠れ状態の初期値となり、第1のLSTMの入力が第2のLSTMの入力となる。
助けてください!
私はcolah's blog postの助けを借りて、特定の部分を理解させるように短くします。
あなたは上記の画像を見てわかるように、LSTMsは構造のように、このチェーンを持っており、それぞれが4つのニューラルネットワーク層を持っています。
次のタイムスタンプ(セル状態)と次のレイヤー(隠れ状態)に渡す値は基本的に同じで、望ましい出力です。この出力はセルの状態に基づいていますが、フィルタリングされたバージョンになります。まず、出力するセル状態のどの部分を決定するシグモイド層を実行します。次に、セル状態をtanh(値を-1と1の間にプッシュする)に入れ、シグモイドゲートの出力で乗算して、渡すことにした部分のみを出力します。
また、次のタイムスタンプ(セル状態)に前のセル状態情報(上矢印)を渡し、シグモイド層(忘れゲート層)を使用して決定し、新しい入力の助けを借りていく情報量以前の状態から入力します。
これが役に立ちます。
明確な答えはありません。それはあなたの問題に依存し、あなたは別のものを試してみるべきです。
最も単純なことは、最初のLSTM(非表示の状態ではない)の出力をLSTMの2番目のレイヤーへの入力としてパイプすることです(損失をかけるのではなく)。それはほとんどの場合に有効です。
あなたは隠れた状態にもパイプを張ることができますが、私はそれを非常に頻繁に見ませんでした。
他の組み合わせを試すこともできます。最初の層の出力と元の入力を入力する2番目の層について言います。または、現在のユニットと前のユニットからの最初のレイヤーの出力にリンクします。
これはすべてあなたの問題に依存し、何が効果的かを実験する必要があります。
実際にはLSTMの出力は何ですか?私はLSTMに関するいくつかの記事を読んで、それらがメモリCtと隠れた状態Htを生成するのを見ますか? –
@KhoaNgo Ctは通常、ステップ予測(次の文字またはそのように訓練すれば次のトークン)を出力する必要があるノードですが、隠れた状態は通常これまでの状態(つまり単語/文全体)をエンコードします。結局、あなたにはまだいくつかのニューロンが訓練されています。そして、それらが意味するものを正確に言うのは難しいです(特定の意味を持つように訓練しない限り)。 – Sorin
私はあなたが誤解していると思っています。画像の3つのボックスは、LSTMセルではなく、1つのLSTMセルの3つのタイムステップです。 –
ええ、私は複数のLSTMセルを積み重ねたい:( –