经验风险最小化(empirical risk minimization)
/ em-PEER-ih-kul RISK min-ih-mih-ZAY-shun /
经验风险最小化,是几乎所有机器学习背后那条不动声色的原则:既然你无法衡量一个模型在世上每一种情形下表现如何,你就退而求其次,衡量它在你手头真有的那些例子上表现如何,并把这个表现尽量做好。「经验」意思是「基于你眼前的数据」;「风险」不过是「平均损失」的一个正式说法;「最小化」就是把它压到尽可能低。
老实说,背后的真相是:我们真正想要的东西——在所有未来、未见过的情形上都误差很低(即「真实风险」)——是无法衡量的,因为未来还没发生,而世界是无穷的。于是我们换上一个能算得出来的替身:训练集上的平均损失(即「经验风险」)。经验风险最小化所下的赌注是:在一个庞大而有代表性的样本上做得好,就能推广到普遍情形上也做得好。常常确实如此——但前提是这个样本真的长得像模型将要面对的那个世界。
过拟合也正是从这一条原则里冒出来的。一个足够灵活的模型,可以靠死记硬背每一个训练样本(连同其中的噪声和怪癖)把经验风险压到零,而真实风险却依旧居高不下。正是这道缝隙,让我们不敢只信训练损失,让我们留出一份验证集,也让正则化、提前停止之类的手段得以存在——它们通过劝阻模型别把样本拟合得太完美,来让经验风险最小化保持诚实。
你收集了一万封带标注的邮件,训练一个垃圾邮件过滤器,去最小化它在这恰好一万封上的平均误差。这个平均值就是经验风险。可你真正想要的,是它在明年将收到的数百万封邮件上误差很低——那个你永远无法直接衡量的真实风险。经验风险最小化寄望于:这一万封是个忠实的替身。
我们在拥有的数据上最小化损失,寄望它能代表那些我们没有的数据。
最小化训练损失并不是目的——泛化才是。经验风险最小化只有在训练数据既大又有代表性时才管用;在一份有偏或极小的样本上,把经验风险压得越完美,模型在真实世界里可能反而越糟,而不是越好。