我的神经网络是过度拟合还是拟合不足



我正试图构建一个多类神经网络,根据我创建的数据集尽可能准确地预测岩石纸或剪刀。

当我摆弄各种参数时,训练集的损失/准确性似乎差异很大。然而,经过大量的尝试和错误,这似乎是最好的模型版本。我已经研究了与我的问题相关的其他问题,我认为这些图似乎很合适,但由于我是机器学习的新手,我想知道模型存在一些问题(过度拟合/拟合不足(,我只是没有看到。

我知道过拟合是指随着时间的增加,精度上升,损失下降的情况,但我仍然不确定图表上是否有明显的东西超出了我的理解。

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

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)

模型精度

模型损失

编辑:

该模型应基于先前决定的系数乘以9个特征来预测岩石纸或剪刀。5个特征是随机创建的系数,表示范围从-2到2的连续值的五大人格维度。

其他四个是:

  1. 如果他们赢了或输了

2,3,4(如果他们赢了,选择石头、纸或剪刀:这三者中的每一个都乘以一个系数,这个系数是他们获胜的偏向。

选择石头纸或剪刀的概率有一个内在的激活,这会对各自的选择产生偏见。剪刀的偏倚最大。

共有999个试验(由于随机机会,第一个试验被排除在外(,100个试验值中的每一个都保持不变。只有代表"赢/输"one_answers"赢"选择石头、纸张或剪刀的列会逐个更改。

从损失和精度曲线来看,您似乎已经非常精确地将模型与训练数据进行了拟合(这是过度拟合的迹象(。如果你担心过拟合问题,那么你可以采用一些正则化方法,如L1/L2正则化子(权重衰减(、Dropout、Batch Norm等。它们将帮助模型很好地推广到看不见的数据。此外,诸如";"提前停止";也适用于这种情况。希望它能帮助你缓解过度适应的问题。

最新更新