结构风险是什么?训练误差加上对模型复杂度的惩罚
结构风险(Structural Risk)是统计学习中用来评价模型好坏的一个标准,它等于经验风险加上一个表示模型复杂度的正则化项。它的作用是在“对训练数据拟合得好”和“模型足够简单”这两个目标之间取得平衡,从而让模型在新的数据上也有好的表现。
从期望风险说起
我们训练模型,真正关心的是它在所有可能遇到的数据上的平均表现,也就是期望风险。但数据的真实分布是未知的,我们只能退而求其次,用模型在训练数据上的平均损失,也就是经验风险,来近似期望风险。按照“经验风险最小化”的思路,就是选择在训练数据上误差最小的模型。
当训练数据足够多时,这种做法效果不错。但当训练数据有限时,问题就出现了:一个足够复杂的模型,几乎总能把训练数据拟合得非常好,甚至做到完全没有误差,可它很可能只是把训练数据,连同其中的噪声,都记了下来,在新的数据上表现很差。这就是过拟合。经验风险低,并不能保证期望风险低。
结构风险的组成
为了解决这个问题,结构风险在经验风险的基础上加入了第二项,用来衡量模型的复杂度,也叫正则化项或惩罚项。于是,结构风险等于经验风险加上一个系数乘以模型复杂度。经验风险衡量的是模型对训练数据拟合得好不好;模型复杂度衡量的是模型有多复杂,越复杂惩罚越大;前面的系数是一个超参数,用来调节两者之间的权衡:系数越大,越看重模型的简单性,越不容易过拟合,但可能欠拟合;系数越小,越看重对训练数据的拟合,模型越复杂。
常见的复杂度惩罚
模型复杂度有多种衡量方式。L2 正则化:用模型参数的平方和来衡量复杂度,它会让参数的值整体变小,模型变得更平滑,在线性回归中就是岭回归,在神经网络中常被称为权重衰减。L1 正则化:用参数绝对值之和来衡量复杂度,它会让许多参数直接变为零,相当于自动地进行了特征选择,在线性回归中就是 Lasso 回归。在决策树中,可以用叶子节点的数量来衡量复杂度,剪枝的过程就是在最小化类似的结构风险。在支持向量机中,最大化间隔等价于最小化权重的大小,软间隔支持向量机的目标函数正是铰链损失形式的经验风险加上 L2 正则化项。
从贝叶斯的角度看
结构风险还有一个贝叶斯的解释:当模型是条件概率分布、损失函数是对数损失、复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。比如 L2 正则化相当于假设参数服从以零为中心的正态分布的先验,L1 正则化相当于假设参数服从拉普拉斯分布的先验。这说明正则化本质上是在表达一种偏好:在其他条件相同时,倾向于选择更简单的模型,这与“奥卡姆剃刀”原理所说的“如无必要,勿增实体”是一致的。