4

独自の LSTM (長期短期記憶) ニューラル ネットワークをプログラムしようとしました。基本的な機能が動作していることを確認したいと思います。時間 BPTT アルゴリズムによる逆伝播を実装して、単一のセル ネットワークをトレーニングしました。

単一セルの LSTM ネットワークは単純なシーケンスを学習できるべきですか、それとも複数のセルが必要ですか? ネットワークは、1 0 0 0 1 0 0 0 1 0 0 0 1 などの単純なシーケンスを学習できないようです。

シーケンス 1 と 0 を 1 つずつ順番にネットワークに送信し、それをフィードします。シーケンスの各出力を記録します。

LSTM セルを介してシーケンス全体を実行した後、平均誤差信号をセルに戻し、重みの変更をセル内部の別のコレクションに保存し、すべてのエラーを 1 つずつ実行して新しい重みを計算した後、各エラーの後、セル内の各重みについて、新しい重みを平均して新しい重みを取得します。

私は何か間違ったことをしていますか?アドバイスをいただければ幸いです。

どうもありがとう!

4

3 に答える 3

3

コードの正しさをテストするだけの場合でも、1 つのセル (1 つの隠れユニット) しか持たないのは得策ではありません。このような単純な問題でも 50 を試してみてください。このペーパー: http://arxiv.org/pdf/1503.04069.pdfは、パラメーターを更新するための非常に明確な勾配規則を提供します。そうは言っても、データセットや取り組んでいる問題が新しい LSTM であっても、独自に実装する必要はありません。既存のライブラリ (Theano、mxnet、Torch など) から選択し、そこから変更します。エラーが発生しにくく、適切な時間内に lstm をトレーニングするために不可欠な GPU コンピューティングをサポートしているため、より簡単な方法だと思います。 .

于 2015-12-08T04:51:54.613 に答える
0

LSTM 実装を (勾配チェック後に) テストする最良の方法は、元の LSTM 論文自体で説明されているおもちゃのメモリ問題で試してみることです。

私がよく使う最良のものは「足し算問題」です。

(値、マスク) の形式の一連のタプルを指定します。値は、0 から 1 の間の実数値のスカラー数です。マスクは、0 または 1 のバイナリ値です。

0.23, 0 0.65, 0 ... 0.86, 0 0.13, 1 0.76, 0 ... 0.34, 0 0.43, 0 0.12, 1 0.09, 0 .. 0.83, 0 -> 0.125

このようなタプル (通常は長さ 100) のシーケンス全体で、2 つのタプルのみがマスクを 1 として持つ必要があり、残りのタプルはマスクを 0 として持つ必要があります。最後の時間ステップでのターゲットは、2 つの値の平均です。マスクが 1 の場合。最後のタイム ステップ以外のすべてのタイム ステップでの出力は無視されます。マスクの値と位置は任意に選択されます。したがって、この単純なタスクは、実装が実際に長期間にわたって物事を記憶できるかどうかを示しています。

于 2016-07-28T13:55:26.910 に答える
0

以前に 1 つの隠しユニットを試したことはありませんが、シーケンス 0、1、0、1、0、1 に対して 2 つまたは 3 つの隠しユニットが機能すると確信しています。細胞数が多ければ多いほど良い結果が得られるとは限りません。セルの数が増えると、トレーニングの難易度も上がります。

あなたは、新しい重みを得るために、新しい重みを一緒に平均したと言いました。それは、多くのトレーニング セッションを実行し、トレーニングされたウェイトの平均を取るということですか?

LSTM を正しく実装したとしても、LSTM が機能しない可能性はたくさんあります。単純な勾配降下法で重みをトレーニングするのは簡単ではありません。

これが、重量の最適化に関する私の提案です。

  1. 勾配降下にモメンタム法を使用します。

  2. トレーニング セットにガウス ノイズを追加して、オーバーフィッティングを防ぎます。

  3. 各ユニットの適応学習率を使用します。

トロント大学が提供する Coursera のコース Neural Network を見て、そこで人々と話し合うことができるかもしれません。

または、GitHub で他の例を見ることもできます。例えば ​​:

https://github.com/JANNLab/JANNLab/tree/master/examples/de/jannlab/examples

于 2016-05-02T20:24:27.260 に答える