問題タブ [lstm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neural-network - PyBrain での予期しない LSTM 層の出力
LSTM レイヤーを使用して、複数のメモリ セルを多重化しています。とはいえ、いくつかの入力オプションがあるので、そのうちの 1 つだけを非表示レイヤーにフィードしたいと考えています。このような方法で LSTM への入力を調整したので、cell_input に加えて、input_gate、forget_gate、および output_gate に基づいて適切なセルが選択されます。
ただし、LSTM レイヤーはメモリ セルの値を変換するようですが、そのまま出力に渡すことを期待しています。
たとえば、便宜上、input_gate、forget_gate、cell_input、および output_gate に対応するグループに出力した次の入力を渡します。
グループが示すように、LSTM レイヤーがci[0]
、ci[1]
、およびのみをci[5]
出力に渡すようにしog
ます。ただし、出力バッファーに表示される内容は異なります。
私にとってまったく無意味というわけではありませんが (0 番目と 1 番目のエントリは残りのエントリよりわずかに大きい)、この出力は[.5 .5 0. 0. 0.]
私が期待したものではありません。
私が LSTM について学んだことから、メモリ セルから実際の出力への遷移機能はないようです。
artificial-intelligence - ニューラル ネットワークの時系列の正規化
時系列予測ネットワークの隠れ層関数として LSTM を使用しています。入力の正規化は必要ですか? もしそうなら、data = data / sum(data) は正しい正規化ですか? 出力も入力で正規化する必要がありますか?
artificial-intelligence - PyBrain RNN 予測の失敗
活性化関数として LSTM を使用した時系列予測にリカレント ニューラル ネットワークを使用しています。入力はシーケンス データセットであり、出力は入力シーケンスの次のデータムです。何百もの入力、同じサイズの 1 つの非表示レイヤー、および出力レイヤーに 1 つの出力があります。どんなにトレーニングしても、結果は常に実際の値よりもはるかに高くなります (他の関数も同様)。以下にそれぞれ緑と青で示されています。解決策は何ですか?
machine-learning - Recurrent Neural Network とは何ですか? Long Short Term Memory (LSTM) ネットワークとは何ですか?
まず、そのタイトルに 3 つの質問を詰め込んでしまったことをお詫びします。より良い方法があるかどうかはわかりません。
すぐに始めます。フィードフォワード ニューラル ネットワークについては、かなりよく理解していると思います。
しかし、LSTM は本当に私を逃れます。おそらくこれは、Recurrent ニューラル ネットワーク全般についてよく理解していないためだと思います。私はCourseraでHintonとAndrew Ngのコースを受講しました. それの多くはまだ私には意味がありません。
私が理解したところでは、リカレント ニューラル ネットワークはフィードフォワード ニューラル ネットワークとは異なり、過去の値が次の予測に影響を与えます。再帰型ニューラル ネットワークは、一般的にシーケンスに使用されます。
私が見たリカレント ニューラル ネットワークの例は、バイナリ加算でした。
再帰型ニューラル ネットワークは、最初に最も右の 0 と 1 を取得し、1 を出力します。次に 1,1 を取得し、0 を出力し、1 を繰り上げます。次の 0,0 を取り、1 を繰り上げたので 1 を出力します。最後の計算から。この 1 はどこに保存されますか? フィード フォワード ネットワークでは、結果は基本的に次のようになります。
再帰型ニューラル ネットワークはどのように計算されますか? 私はおそらく間違っていますが、私が理解したことから、再帰型ニューラル ネットワークは、T 隠れ層 (T はタイムステップ数) を持つフィードフォワード ニューラル ネットワークです。そして、各隠れ層はタイムステップ T で X 入力を受け取り、その出力は次のそれぞれの隠れ層の入力に追加されます。
しかし、これを正しく理解していたとしても、過去の値を通常のフィードフォワード ネットワーク (スライディング ウィンドウなど) への入力として単純に使用することよりも、これを行う利点はわかりません。
たとえば、2 つの出力ニューロンを使用してフィードフォワード ネットワークをトレーニングする代わりに、バイナリ加算にリカレント ニューラル ネットワークを使用する利点は何ですか。1 つはバイナリ結果用で、もう 1 つはキャリー用ですか? 次に、キャリー出力を取り、フィードフォワード ネットワークに接続します。
ただし、フィードフォワード モデルの入力として単に過去の値を使用することと、これがどのように異なるのかはわかりません。
タイムステップが多いほど、勾配が消失するため、再帰型ニューラル ネットワークはフィードフォワード ネットワークよりも不利になるだけのように思えます。私が理解したところでは、LSTM は勾配消失の問題に対する解決策です。しかし、私はそれらがどのように機能するかを実際に把握していません。さらに、単純に再帰型ニューラル ネットワークよりも優れているのでしょうか、それとも LSTM を使用すると犠牲になりますか?
python - pybrain で双方向 LSTM ネットワークを実装する方法
pybrain で双方向 LSTM ネットワークを実装しようとしています。例としてサンプルコードはありますか?
python - Pybrain 双方向ネット クラスはフィードフォワード ネットワークのみをサポートします
これによれば
クラスはフィードフォワードネットのみをサポートしていますか? 双方向 LSTM リカレント ネットワークを実装するにはどうすればよいですか?