loss和val loss太大

数据挖掘 机器学习 张量流
2022-02-24 10:20:55

我有一个已知 pdf x 的随机向量,我试图预测一些行为 y。我创建了一个包含 (X,y) 的数据集,其中 X 是 VA X 和 y = (y1,y2) 的 D 实现的向量。也就是说,对于每个实例,我都有一个输入向量 D 和一个输出向量 y。我试过:

 from tensorflow import keras
 model = keras.models.Sequential([
 keras.layers.Dense(300, input_shape=(D,), activation="relu"),
 keras.layers.Dense(300, input_shape=(D,), activation="relu"),
 keras.layers.Dense(100, input_shape=(D,), activation="relu"),
 #keras.layers.Dense(10, activation="relu")
 keras.layers.Dense(2)
 ])

 model.summary()
 model.compile(loss='mean_squared_error', optimizer="adam")
 history = model.fit(X_train, y_train, epochs=30, validation_data=     (X_val, y_val))

在训练中:

 Epoch 2/252 \\
 252/252 [==============================] - 0s 965us/sample - loss: 67222078.7937 - val_loss: 99721252.0000
 Epoch 2/252
 252/252 [==============================] - 0s 325us/sample - loss: 66736292.6984 - val_loss: 99545232.0000
 Epoch 3/252
 252/252 [==============================] - 0s 246us/sample - loss: 64592091.8095 - val_loss: 99156788.0000
 ...
 Epoch 252/252
 252/252 [==============================] - 0s 305us/sample - loss: 23.6345 - val_loss: 92329540.0000
 80/80 [==============================] - 0s 143us/sample - loss: 29423635.9000

损失和 val_loss 太糟糕了。谁能给我一个见解?

1个回答

如果您的预测值远离真实值(因为均方误差损失中的平方),那么具有如此大的损失值可能是正常的。
尝试使用 tf.Print 打印预测值和基本事实以进行检查。
您可以标准化您的基本事实值,使其范围不会太大。例如,网络预测 0 到 10 之间的值应该比预测 0 到 1000 之间的值更容易。