Deep learning 深度学习模型陷入局部极小值还是过度拟合?

Deep learning 深度学习模型陷入局部极小值还是过度拟合?,deep-learning,neural-network,pytorch,Deep Learning,Neural Network,Pytorch,我通过微调EfficientNet-B4为100个时代训练了一个10类的图像分类模型。我将训练数据分成70/30。我使用随机梯度下降法,Nesterov动量为0.9,开始学习率为0.001。批量大小为10。在接下来的50个世纪(第51-100个世纪),测试损失似乎保持在84%。我不知道模型是陷入局部极小值还是模型拟合过度。下面是从第51纪元到第100纪元的测试和列车损失的图像。我非常需要你的帮助。谢谢 根据您提供的图表,验证和训练损失仍在下降,因此您的模型仍在训练中,没有过度拟合。如果您的测试集

我通过微调EfficientNet-B4为100个时代训练了一个10类的图像分类模型。我将训练数据分成70/30。我使用随机梯度下降法,Nesterov动量为0.9,开始学习率为0.001。批量大小为10。在接下来的50个世纪(第51-100个世纪),测试损失似乎保持在84%。我不知道模型是陷入局部极小值还是模型拟合过度。下面是从第51纪元到第100纪元的测试和列车损失的图像。我非常需要你的帮助。谢谢

根据您提供的图表,验证和训练损失仍在下降,因此您的模型仍在训练中,没有过度拟合。如果您的测试集无法保持相同的精度,原因可能是您用于培训/验证数据集的数据在测试数据集上的通用性不够好(在您的图表中,验证仅达到50%的精度,而您的测试集达到84%的精度)。

我查看了您的培训和验证图表。是的,您的模型正在训练,损失正在下降,但您的验证误差接近50%,这意味着“随机猜测”

可能的原因-

1-从您的列车错误(显示在50-100历元之间的图像中),平均错误正在下降,但它是随机的。就像你在第100纪元的错误,在第70纪元几乎是一样的。这可能是因为您的任一数据集都太简单,并且您正在强制庞大的网络(如高效网络)对其进行过度拟合

2-这也可能是因为你的微调方式,可能有任何问题。比如冻结了哪些层,以及在执行BP时为哪个层使用渐变。我假设你使用的是预先训练过的重量

3-优化器问题。试着用亚当


如果你能提供总损失(从历元1-100),那就太好了。

我的意思是测试精度停留在84%,你能上传模型摘要吗?当然!下面是指向包含模型摘要的txt文档的链接。正如你所建议的,我必须使用较小的网络。我用EfficientNet-B0对其进行了再培训,与之前的EfficientNet-B4网络相比。是的,我使用了预先训练好的权重,冻结了所有其他层,只训练分类器(_fc)。我使用的网络架构。(). 我训练了400个时代的模型,下面是损失。(). 这个模型的性能仍然不好。我使用了完全相同的优化器。使用Adam有什么区别?这是否意味着我必须改进我的数据?除了改善数据,我还有什么其他选择?