我的神经网络是否过度拟合或欠拟合?

Is my neural network suffering from overfitting or underfitting?

我正在尝试构建一个多 class 神经网络,以根据我创建的数据集尽可能准确地预测石头布或剪刀。

由于我弄乱了各种参数,训练集的 loss/accuracy 似乎差异很大。然而,经过大量的尝试和错误,这似乎是最好的模型版本。我查看了与我的相关的其他问题,我认为这些图表似乎很合适,但由于我是机器学习的新手,我想知道该模型是否存在我遇到的某些问题(超过 fitting/under 拟合)就是没看到。

我理解过拟合是指随着epoch的增加,accuracy上升而loss下降的情况,但我仍然不确定图表上是否有明显的东西超出了我的理解。

这就是我目前编译和拟合模型的方式。

model.compile(loss=['categorical_crossentropy'], optimizer=Adam(.01), metrics=['accuracy'])

history = model.fit(X_train,y_train, epochs=30, verbose=True, validation_split=.33, batch_size=3)

Model Accuracy

Model Loss

编辑:

该模型应根据先前确定的系数乘以 9 个特征来预测石头布或剪刀。 5 个特征是随机创建的系数,代表 5 大人格维度,范围为从 -2 到 2 的连续值。

另外四个是:

  1. 如果他们赢了或输了。

2, 3, 4) 如果他们获胜,则选择石头、布或剪刀:并将这三者中的每一个乘以一个系数,该系数作为他们获胜的偏见。

选择石头布或剪刀的概率有一个内置的激活,可以偏向于各自的选择。剪刀的偏差最大。

共有 999 次试验(排除第一个,因为它是随机的)并且 100 个试验值中的每一个,对于 Big 5 人格维度,都保持不变。只有代表 Won/Lost 和赢得选择石头、布或剪刀的列会逐次更改试验。

从损失和准确度曲线来看,您似乎已经非常精确地将模型拟合到训练数据(过度拟合的迹象)。如果您担心过拟合问题,那么您可以采用一些正则化方法,如 L1/L2 regularizer(权重衰减)、Dropout、Batch Norm 等。它们将帮助模型很好地泛化到看不见的数据。此外,类似“early stopping”的方法也适用于这种场景。希望它能帮助您减轻过度拟合的问题。