假设我们已经拥有尽可能多的高质量数据,现在我们将重点放在正则化技术上。
范数与权重衰减
在训练参数化机器学习模型时,权重衰减(通常称为
L
2
L_{2}
L2正则化)是最广泛使用的正则化的技术之一。
这项技术是基于一个基本直觉,即在所有函数
f
f
f中,函数
f
=
0
f=0
f=0(所有输入都得到值0)在某种意义上是最简单的,我们可以通过函数与零的距离来衡量函数的复杂度。但是我们应该如何精确地测量一个函数和零之间的距离呢?这里还没有一个确切的答案。
一种简单的方法是用过线性函数 f ( x ) = w ⊤ x f(\mathbf{x})=\mathbf{w}^{\top} \mathbf{x} f(x)=w⊤x中的权重向量的某个范数来度量其复杂性,例如 ∥ w ∥ 2 \|\mathbf{w}\|^{2} ∥w∥2。要保证权重向量比较小,最常用的方法是将其范数作为惩罚项加到最小化损失的问题中。将原来的训练目标最小化训练标签上的预测损失,调整为最小化预测损失和惩罚项之和。现在,如果我们的权重向量增长的太大,我们的学习算法可能会集中于最小化权重范数 ∥ w ∥ 2 \|\mathbf{w}\|^{2} ∥w∥2。这正是我们想要的。让我们回顾一下之前线性回归的例子。
y ^ = w 1 x 1 + … + w d x d + b \hat{y}=w_{1} x_{1}+\ldots+w_{d} x_{d}+b y^=w1x1+…+wdxd+b
y ^ = w ⊤ x + b \hat{y}=\mathbf{w}^{\top} \mathbf{x}+b y^=w⊤x+b
我们的损失由下式给出:
L ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w ⊤ x ( i ) + b − y ( i ) ) 2 L(\mathbf{w}, b)=\frac{1}{n} \sum_{i=1}^{n} \frac{1}{2}\left(\mathbf{w}^{\top} \mathbf{x}^{(i)}+b-y^{(i)}\right)^{2} L(w,b)=n1i=1∑n21(w⊤x(i)+b−y(i))2
这里,为了惩罚权重向量的大小,我们必须以某种方式在损失函数中添加 ∥ w ∥ 2 \|\mathbf{w}\|^{2} ∥w∥2,但是模型应该如何平衡这个新的额外惩罚的损失?实际上,我们通过正则化常数 λ \lambda λ来描述这种平衡,这是一个非负超参数,我们使用验证数据拟合:
L ( w , b ) + λ 2 ∥ w ∥ 2 L(\mathbf{w}, b)+\frac{\lambda}{2}\|\mathbf{w}\|^{2} L(w,b)+2λ∥w∥2