2017-03-05 14 views
3

多変量時系列の将来の値を予測したいと考えています。このコードをテンプレートとして使用しますが、出力のアクティブ化を線形に変更しました。ケラスで将来の時系列値を予測するためのlstm

https://gist.github.com/karpathy/587454dc0146a6ae21fc 

入力データは8倍の2倍の値のシーケンスです。出力は、入力シーケンスの1つ前の同じ8次元ベクトルです。これが線形活性化を選択する理由である。

model = Sequential() 
model.add(LSTM(512, input_dim=len(chars),return_sequences=True)) #minesh witout specifying the input_length 
model.add(LSTM(512, return_sequences=True)) #- original 
model.add(Dropout(0.2)) 
model.add(TimeDistributed(Dense(len(chars)))) 
model.add(Activation('linear')) 
model.compile(loss='mean_squared_error', optimizer='rmsprop') 

KerasとRNNの新機能です。誰かがこのデザインを確認できましたか?

答えて

2

各サンプルに8x2の入力があります。これらの8つのタイムステップごとに、追跡している512個の機能をエンコードします。次に、512の値...パラメータの数は膨大なものにする必要がありますか?その膨大な数のパラメータを使用するためにパターンに十分なデータと多様性があることを願っています。そうでないと、オーバーフィットになります。

私はまた、このようLSTMのためにドロップアウトを使用することができますavise:

model.add(LSTM(512, return_sequences=True, dropout_W = 0.2)) #- original 

あり機能dropout_Uでもあるが、私は1つを使用することはありません。 LSTMには複数のゲートがあり、これらのゲートは密なレイヤーなので、ドロップアウトを適用するゲートを選択できます。それを入力ゲート(dropout_W)に適用し、反復ゲート(dropout_U)には適用しないことをお勧めします。

それ以外のアーキテクチャは意味があります。

+0

提案していただきありがとうございます。 – bhomass

関連する問題