私は機械学習とlstmに不慣れです。多変量入力を備えたエンコーダーデコーダーLSTMモデルの多段階予測については、このリンクLSTMを参照しています。
トレインとテストセットを再形成した後のデータセットの説明は次のとおりです。
print(dataset.shape)
print(train_x.shape, train_y.shape)
print((test.shape)
(2192, 15)
(1806, 14, 14) (1806, 7, 1)
(364, 15)
上記で私は持っていn_input=14, n_out=7
ます。
これが私のlstmモデルの説明です:
def build_model(train, n_input):
# prepare data
train_x, train_y = to_supervised(train, n_input)
# define parameters
verbose, epochs, batch_size = 2, 100, 16
n_timesteps, n_features, n_outputs = train_x.shape[1], train_x.shape[2], train_y.shape[1]
# reshape output into [samples, timesteps, features]
train_y = train_y.reshape((train_y.shape[0], train_y.shape[1], 1))
# define model
model = Sequential()
model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))
model.add(RepeatVector(n_outputs))
model.add(LSTM(200, activation='relu', return_sequences=True))
model.add(TimeDistributed(Dense(100, activation='relu')))
model.add(TimeDistributed(Dense(1)))
model.compile(loss='mse', optimizer='adam')
# fit network
model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose)
return model
モデルを評価すると、次のような出力が得られます。
Epoch 98/100
- 8s - loss: 64.6554
Epoch 99/100
- 7s - loss: 64.4012
Epoch 100/100
- 7s - loss: 63.9625
私の理解によると:(私が間違っている場合は私を訂正してください)
Here my model accuracy is 63.9625
(最後のエポック100を見ることによって)。また、エポック99とエポック100の間にギャップがあるため、これは安定していません。
これが私の質問です:
上記で定義されたエポックとバッチサイズは、モデルの精度の向上にどのように関連していますか?そのインクリメントとデクリメントはモデルの精度にどのように影響しますか?
上記で定義したエポック、バッチ、n_inputはモデルに対して正しいですか?
モデルの精度を上げるにはどうすればよいですか?上記のデータセットサイズはこのモデルに十分ですか?
私はこのすべてのパラメーターをリンクすることはできず、上記の要因によってより高い精度を達成する方法を理解するのに親切に助けてくれます。
エポックサイズが非常に大きいからといって、必ずしも精度が向上するとは限りません。エポックサイズは、特定の限界まで精度を上げることができ、それを超えるとモデルの過剰適合が始まります。非常に低いものを使用すると、適合性も低下します。これを参照してください。したがって、エポック99とエポック100の大きな違いを見ると、モデルに過剰適合していることがすでにわかります。経験則として、精度が向上しなくなったことに気付いたとき、それは通常1から10の間であるはずの理想的なエポック数です。100はすでに多すぎるようです。
バッチサイズは精度に影響しません。これは、GPUのメモリに基づいて速度またはパフォーマンスを制御するために使用されます。大量のメモリがある場合は、大量のバッチサイズを使用できるため、トレーニングが高速になります。
精度を上げるためにできることは次のとおりです。1。トレーニング用のデータセットを増やします。2.代わりに畳み込みネットワークを使用してみてください。このYouTubeチャンネルから、または一言で言えば、畳み込みネットワークの詳細を見つけるには、CNNは、モデルのトレーニングで焦点を当てるべき機能を特定するのに役立ちます。3.他のアルゴリズムを試してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加