我正在玩Keras的cifar10示例,您可以找到here。我重新创建了模型(即,不是同一个文件,但其他一切都差不多),你可以找到它here。
该模型是相同的,我训练模型30个时期,在50,000图像训练集上进行0.2验证。我无法理解我得到的结果。我的验证和测试损失小于培训的次数(相反,培训准确性与验证和测试准确性相比较低):
Loss Accuracy Training 1.345 0.572 Validation 1.184 0.596 Test 1.19 0.596
看一下情节,我不确定为什么训练错误会再次开始增加。我是否需要减少我训练的时期数量或者可能实施提前停止?不同的模型架构会有帮助吗?如果是这样,会有什么好建议?
感谢。
答案 0 :(得分:5)
这是一种罕见的现象,但它偶尔会发生。可能出现以下情况有几个原因:
答案 1 :(得分:0)
Marcin的回答很好。高训练错误还有其他几个重要原因:
退出。在训练中,辍学层是“打开”的,但是在进行验证和测试时,它们将被“关闭”(跳过)。这是自动的,是设计使然。辍学对训练错误有轻微的伤害。这是预料之中的。尽管存在其他培训挑战,但辍学层实际上在深度神经网络中对正则化很有帮助。大多数深度神经网络可能都使用辍学。
学习率太高。就像把硬币扔进杯子里一样。摔得太重会跳出来。