問題タブ [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.

0 投票する
1 に答える
442 参照

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 について学んだことから、メモリ セルから実際の出力への遷移機能はないようです。

0 投票する
1 に答える
1368 参照

artificial-intelligence - ニューラル ネットワークの時系列の正規化

時系列予測ネットワークの隠れ層関数として LSTM を使用しています。入力の正規化は必要ですか? もしそうなら、data = data / sum(data) は正しい正規化ですか? 出力も入力で正規化する必要がありますか?

0 投票する
1 に答える
433 参照

artificial-intelligence - PyBrain RNN 予測の失敗

活性化関数として LSTM を使用した時系列予測にリカレント ニューラル ネットワークを使用しています。入力はシーケンス データセットであり、出力は入力シーケンスの次のデータムです。何百もの入力、同じサイズの 1 つの非表示レイヤー、および出力レイヤーに 1 つの出力があります。どんなにトレーニングしても、結果は常に実際の値よりもはるかに高くなります (他の関数も同様)。以下にそれぞれ緑と青で示されています。解決策は何ですか?

0 投票する
3 に答える
10594 参照

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 を使用すると犠牲になりますか?

0 投票する
1 に答える
1034 参照

python - pybrain で双方向 LSTM ネットワークを実装する方法

pybrain で双方向 LSTM ネットワークを実装しようとしています。例としてサンプルコードはありますか?

0 投票する
0 に答える
127 参照

python - Pybrain 双方向ネット クラスはフィードフォワード ネットワークのみをサポートします

これによれば

https://github.com/pybrain/pybrain/blob/1dd5086a51c3c98497ef85b31178588a89d8951e/pybrain/structure/networks/bidirectional.py

クラスはフィードフォワードネットのみをサポートしていますか? 双方向 LSTM リカレント ネットワークを実装するにはどうすればよいですか?