在机器学习中,许多策略被显示地设计减少测试误差(可能以增大训练误差为代价),这些策略被统称为正则化。
1. 损失函数:Jw = MSE + 正则项
正则化是指修改学习算法,使其降低泛化误差而非训练误差。
常见正则项有L2,L1
2. 欠拟合(underfitting)和过拟合
(overfitting)。欠拟合是指模型不能在训练集上获得足够低的误差。而过拟合是指训
练误差和和测试误差之间的差距太大。
通过调整模型的容量(capacity),我们可以控制模型是否偏向于过拟合或者欠
拟合。通俗地,模型的容量是指其拟合各种函数的能力。容量低的模型可能很难拟
合训练集。容量高的模型可能会过拟合,因为记住了不适用于测试集的训练集性质。
机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,
而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛
化(generalization)。
通常情况下,当我们训练机器学习模型时,我们可以使用某个训练集,在训练
集上计算一些被称为训练误差(training error)的度量误差,目标是降低训练误差。
目前为止,我们讨论的是一个简单的优化问题。机器学习和优化不同的地方在于,我
们也希望泛化误差(generalization error)(也被称为测试误差(test error))很低。
泛化误差被定义为新输入的误差期望。
在假设空间中,相比于某一个学习算法,我们可能更偏好另一个学习算法。这
意味着两个函数都是符合条件的,但是我们更偏好其中一个。只有非偏好函数比偏
好函数在训练数据集上效果明显好很多时,我们才会考虑非偏好函数。
例如,我们可以加入权重衰减(weight decay)来修改线性回归的训练标准。带
权重衰减的线性回归最小化训练集上的均方误差和正则项的和J(w),其偏好于平方
L2 范数较小的权重。具体如下:
其中 是提前挑选的值,控制我们偏好小范数权重的程度。当 = 0,我们没有任
何偏好。越大的 偏好范数越小的权重。最小化J(w) 可以看作是拟合训练数据和
偏好小权重范数之间的权衡。这会使得解决方案的斜率较小,或是将权重放在较少
的特征上。我们可以训练具有不同 值的高次多项式回归模型,来举例说明如何通
过权重衰减控制模型欠拟合或过拟合的趋势。如图5.5 所示。
更一般地,正则化一个学习函数f(x; ) 的模型,我们可以给代价函数添加被称
为正则化项(regularizer)的惩罚。在权重衰减的例子中,正则化项是Ω(w) = w⊤w。
表示对函数的偏好是比增减假设空间的成员函数更一般的控制模型容量的方法。
我们可以将去掉假设空间中的某个函数看作是对不赞成这个函数的无限偏好。