【问题标题】:the training accuracy steadily increase, but training loss decrease and then increase训练准确率稳步提高,但训练损失先减少后增加
【发布时间】:2018-01-08 00:08:12
【问题描述】:

我已经用 tensorflow(4301 类)训练了一个人脸识别模型。训练过程如下(我有训练过程的图表): training accuracy training loss

训练准确率稳步提高,但是对于训练损失,它先是减少,然后经过一定次数的迭代后,它就奇怪地增加了。

我只是将 softmax 损失与权重正则化器一起使用。我使用 AdamOptimizer 来最小化损失。对于学习率设置,初始 lr 设置为 0.0001,每 7 个 epoc 学习率将减少一半(总共 380000 个训练图像,批量大小为 16)。我在一个验证集(包括 8300 张人脸图像)上进行了测试,验证准确率约为 55.0%,远低于训练准确率。

是否过拟合?过度拟合会导致训练损失的最终增加吗?

【问题讨论】:

  • 很难说不知道您使用什么优化器,什么损失函数等。模型是否工作正常,即您是否手动检查了结果?

标签: tensorflow computer-vision deep-learning face-recognition


【解决方案1】:

过度拟合是指训练数据和测试数据的表现开始出现差异——这里不是这种情况,因为你只报告训练表现。

培训正在对您的损失运行最小化算法。当你的损失开始增加时,这意味着训练在它应该做的事情上失败了。您可能希望更改最小化设置以使您的训练损失最终收敛。

至于为什么你的准确率在你的损失开始分散后很长时间内继续增加,如果不知道更多,很难说清楚。一种解释可能是您的损失是不同项的总和,例如交叉熵项和正则化项,并且只有后者发散。

【讨论】:

  • 是不是因为我的总损失包含一个 softmax 损失(用于分类)和一个权重调节器,随着训练精度随着总损失的提高而提高,softmax 损失仍然减少并且权重调节器只是增加更多以导致总损失增加?
  • 是的,这正是我从你的描述中推测的。您可以通过绘制损失的不同部分的图表来检查。
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 2017-08-14
  • 2019-08-18
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
相关资源
最近更新 更多