优化与训练
学习曲线(learning curve)
/ LUR-ning kurv /
学习曲线,是一张「模型表现如何随训练推进而变化」的图——它是机器学习中被盯得最多的诊断工具。它最常见的样子,是纵轴画损失(或准确率),横轴画训练时间,并且训练集和验证集各画一条。把这两条曲线放在一起读,你一眼就能看出训练是顺利、卡住,还是出了岔子,远在你白白耗掉几小时之前。
曲线的形状会讲故事。如果两条都下降并贴得很近地稳定下来,训练是健康的。如果训练那条一路下降,验证那条却走平、随后回升,你就跨进了过拟合——模型在死记。如果两条都高高地平在那里不肯降,你就是欠拟合——模型太弱,或学习率不对,或它还需要更多训练。一条参差不齐、向上爆炸的曲线,通常意味着学习率太高了。
还有第二种相关的含义:学习曲线也可以画「表现随训练数据量的变化」,把训练时间固定住。这个版本回答一个务实、省钱的问题——「再多收集些数据真的有用吗,还是我们已经到了那个点,多给样本几乎也撬不动指针了?」无论哪一种含义,学习曲线的价值都在于:它把一个看不见的过程,变成一张你能据以行动的图。
同一张图上两条曲线。蓝色的训练损失线稳稳地滑到0.05。橙色的验证损失线在第20轮降到0.30,随后明显地爬回0.45。第20轮之后那道越拉越大的缝隙,是过拟合再清楚不过的标记——也是该在第20轮停下的提示。
训练与验证之间越拉越大的缝隙,是过拟合被画了出来。
永远要画验证曲线,而不是只画训练曲线。一条漂亮、不停下降的训练损失,单看几乎说明不了什么——真相藏在它与验证之间那道缝隙里。
又称
另见