最近在做一个 OCR 识别的训练,昨晚下班前,生成了一版数据,准备跑一晚上。
结果早上充满期待的打开电脑,发现了这样的曲线:
loss 值已经收敛到 0.08,识别成功率到达 95%,但是好像突然间重头开始训练了一样。
用类似的数据训练这个模型已经有十几次了,没有发生这样的情况。百思不得其解。
提问人:tensorfyx,发帖时间:2018-5-17 08:31:12
最近在做一个 OCR 识别的训练,昨晚下班前,生成了一版数据,准备跑一晚上。
结果早上充满期待的打开电脑,发现了这样的曲线:
loss 值已经收敛到 0.08,识别成功率到达 95%,但是好像突然间重头开始训练了一样。
用类似的数据训练这个模型已经有十几次了,没有发生这样的情况。百思不得其解。
提问人:tensorfyx,发帖时间:2018-5-17 08:31:12
一般来说,损失出问题的情况下,调整学习率是常见的手段,楼主当然可以试试。不过就你这种情况,如果确实不是随机个例, 那么个人只看见过几次说 Adam 优化器可能有这样的现象,不确定是否适用于楼主的情况。下面这个链接算是解释比较清楚的一次:
如果楼主解决了,希望能分享解决过程学习一下,谢谢!
yunhai_luo,2018-5-17 13:47
这是深度学习模型中的正常现象。深度学习模型的参数空间很大,实际问题常常也比较复杂(非凸的)。
优化过程中:可能在训练时,先落入某个损失函数的局部极小值(local minima);在几次迭代之后,跳出这个局部区域;重新到达另一个极小值(可能会是全局最小值)。
你现在 TensorBoard 展示的指标应该是 cost (loss 损失函数) 的值,你同时也可以观测一下 accuracy 等识别准确度指标,看是否在上升。通常训练收敛之后,选择一个效果最好的模型就可以了。
TianLin,2018-5-20 12:15:35
囧,学习了,局部最优是真的可怕。。。陷入了局部最优,导致整体训练会崩溃 hhh
ViolinSolo (提问人),发表于 2018-7-5 00:15:13