0
多出力回帰器の損失関数を計算するために平均二乗誤差を使用しています。私は、1対多アーキテクチャのリカレントニューラルネットワークモデルを使用しました。私の出力ベクトルはサイズ6(1 * 6)であり、値は単調増加(非減少)です。多出力回帰における二乗誤差コスト関数に制約を追加
例: Y_I = [1,3,6,13,30,57,201]
私はこの依存関係を学ぶためにモデルを強制したいと思います。したがって、コスト関数に制約を加える。検証セットで300に等しいエラーが発生しています。私は平均二乗誤差損失関数を編集した後、より良い性能を得ることができると信じています。
私は実装にケラスを使用しています。ここにコアモデルがあります。
batchSize = 256
epochs = 20
samplesData = trainX
samplesLabels = trainY
print("Compiling neural network model...")
Model = Sequential()
Model.add(LSTM(input_shape = (98,),input_dim=98, output_dim=128, return_sequences=True))
Model.add(Dropout(0.2))
#Model.add(LSTM(128, return_sequences=True))
#Model.add(Dropout(0.2))
Model.add(TimeDistributedDense(7))
#rmsprop = rmsprop(lr=0.0, decay=0.0)
Model.compile(loss='mean_squared_error', optimizer='rmsprop')
Model.summary()
print("Training model...")
# learning schedule callback
#lrate = LearningRateScheduler(step_decay)
#callbacks_list = [lrate]
history = Model.fit(samplesData, samplesLabels, batch_size=batchSize, nb_epoch= epochs, verbose=1,
validation_split=0.2, show_accuracy=True)
print("model training has been completed.")
学習率、減衰などに関するその他のヒントがあります。