0

回帰問題のために、3 つの隠れ層を持つフィード フォワード ニューラル ネットワークを構築しました。検証に使用している指標は MAPE です。以下はモデルパラメータです

#Define the model
NN_model = Sequential()

# The Input Layer :
NN_model.add(Dense(128, kernel_initializer='normal',input_dim = X_train.shape[1], activation='relu'))

# The Hidden Layers :
NN_model.add(Dense(256, kernel_initializer='normal',activation='relu'))
NN_model.add(Dense(256, kernel_initializer='normal',activation='relu'))
NN_model.add(Dense(256, kernel_initializer='normal',activation='relu'))

# The Output Layer :
NN_model.add(Dense(1, kernel_initializer='normal',activation='linear'))

# Compile the network :
NN_model.compile(loss='mean_absolute_percentage_error', optimizer='adam', metrics=['mean_absolute_percentage_error'])
##NN_model.compile(loss='mean_absolute_error', optimizer='adam', metrics=['mean_absolute_error'])
NN_model.summary()

サンプル出力は次のようになります。

Train on 18000 samples, validate on 4500 samples
Epoch 1/500
18000/18000 [==============================] - 3s 148us/step - loss: 672.5252 - mean_absolute_percentage_error: 672.5252 - val_loss: 29.3799 - val_mean_absolute_percentage_error: 29.3799

Epoch 00001: val_loss improved from inf to 29.37992, saving model to Weights-001--29.37992.hdf5
Epoch 2/500
18000/18000 [==============================] - 2s 133us/step - loss: 739.9019 - mean_absolute_percentage_error: 739.9019 - val_loss: 220.4918 - val_mean_absolute_percentage_error: 220.4918

Epoch 00002: val_loss did not improve from 29.37992
Epoch 3/500
18000/18000 [==============================] - 2s 129us/step - loss: 840.8005 - mean_absolute_percentage_error: 840.8005 - val_loss: 18.5716 - val_mean_absolute_percentage_error: 18.5716

私の質問は、各エポックで、平均絶対パーセンテージ エラーと検証平均絶対パーセンテージ エラーが表示されることです。後者の方が低いようですが、これは私が期待することです.なぜ平均絶対パーセント誤差は非常に異なり、検証平均絶対パーセント誤差よりもはるかに高いのですか?

また、検証平均絶対パーセンテージエラーがそれほど変動するのはなぜですか?

任意の入力に感謝します。

4

2 に答える 2

0

入力値に関してあまり広がりがないため、MAPE はかなり低い可能性があります。

視覚化を容易にするために、古典的な線形回帰について話しているとしましょう。残念なことに、線形回帰を素敵な古典的なシグモイドで実行してい-infますinf

あなたの最善の努力は、として定義された行になります0x+0.5. 使用しているモデルを物理的に改善することはできません。それでも、MAPE は 50% であり、10000% のようなクレイジーなものではありません。

もちろん、そのモデルは完全にゴミですが、その誤りはかなり狭い範囲の値に制限されています。

さて、DNN を使用すると、心配するすべての余分な次元があるため、よりトリッキーになりますが、モデルをデバッグするための適切な手がかりになる可能性があります。

変動に関する限り、ATM を判断するのは困難です。最初の 3 つのエポックを示したばかりですが、データの基盤をまだ見つけようとしている可能性があります。診断を行う前に、さらなるトレーニング中に問題が解決しないかどうかを確認します。

于 2019-01-30T17:25:24.877 に答える