机器学习中的一个核心问题是设计不仅在训练数据上表现好,而且能在新输入上泛化(?)好的算法。在机器学习中,许多策略被显式地设计来减少测试误差(可能会以增大训练误差为代价)。这些策略被统称为正则化。
待补充 141
1 参数范数惩罚
许多正则化方法通过对目标函数 J J J添加一个参数范数惩罚 Ω ( θ ) \Omega(\theta) Ω(θ),限制模型(如神经网络、线性回归或逻辑回归)的学习能力。我们将正则化后的目标函数记为 J ~ \tilde{J} J~:
J ~ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) ( 7.1 ) \tilde{J}(\theta;X,y)=J(\theta;X,y)+\alpha\Omega(\theta)\quad\quad\quad\quad\quad(7.1) J~(θ;X,y)=J(θ;X,y)+αΩ(θ)(7.1)
其中 α ∈ [ 0 , ∞ ) \alpha\in[0,\infty) α∈[0,∞)是权衡范数惩罚项 Ω \Omega Ω和标准目标函数 F ( X ; θ ) F(X;\theta) F(X;θ)相对贡献的超参数。将 α \alpha α设为0表示没有正则化。 α \alpha α越大,对应正则化惩罚越大。
当我们的训练算法最小化正则化后的目标函数 J ~ \tilde{J} J~时,它会降低原始目标 J J J关于训练数据的误差并同时减小在某些衡量标准下参数 θ \theta θ(或参数子集)的规模。选择不同的参数范数 Ω \Omega Ω会偏好不同的解。在本节中,我们会讨论各种范数惩罚对模型的影响。
在探究不同范数的正则化表现之前,我们需要说明一下,在神经网络中,参数包
括每一层仿射变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚。
精确拟合偏置所需的数据通常比拟合权重少得多。每个权重会指定两个变量如何相
互作用。我们需要在各种条件下观察这两个变量才能良好地拟合权重。而每个偏置仅
控制一个单变量。这意味着,我们不对其进行正则化也不会导致太大的方差。另外,
正则化偏置参数可能会导致明显的欠拟合。因此,我们使用向量 w 表示所有应受范
数惩罚影响的权重,而向量 θ 表示所有参数 (包括 w 和无需正则化的参数)。
在神经网络的情况下,有时希望对网络的每一层使用单独的惩罚,并分配不同
的 α 系数。寻找合适的多个超参数的代价很大,因此为了减少搜索空间,我们会在
所有层使用相同的权重衰减。
1.1 L 2 L^2 L2参数正则化
权重衰减(weight decay)是最简单且最常见的参数范数惩罚,它表现为
L
2
L^2
L2参数范数惩罚。这个正则化策略通过向目标函
数添加一个正则项
Ω
(
θ
)
=
1
2
∥
w
∥
2
2
\Omega(\theta)=\frac{1}{2}\Vert w\Vert_2^2
Ω(θ)=21∥w∥22,使权重更加接近原点(更一般地,我们可以将参数正则化为接近空间中的任意特定点,令人惊讶的是这样也仍有正则化效果,但是特定点越接近真实值结果越好。当我们不知道正确的值应该是正还是负时,零是有意义的默认值。由于模型参数正则化为零的情况更为常见,我们将只探讨这种特殊情况。)。在其他学术圈,
L
2
L^2
L2也被称为岭回归或 Tikhonov 正则。
我们可以通过研究正则化后目标函数的梯度,洞察一些权重衰减的正则化表现。为了简单起见,我们假定其中没有偏置参数,因此 θ \theta θ就是 w w w。这样一个模型具有以下总的目标函数:
J ~ ( w ; X , y ) = α 2 w T w + J ( w ; X , y ) ( 7.2 ) \tilde{J}(w;X,y)=\frac{\alpha}{2}w^Tw+J(w;X,y)\quad\quad\quad\quad(7.2) J~(w;X,y)=2αwTw+J(w;X,y)(7.2)
与之对应的梯度为
∇ w J ~ ( w ; X , y ) = α w + ∇ w J ( w ; X , y ) ( 7.3 ) \nabla_w\tilde{J}(w;X,y)=\alpha w+\nabla_wJ(w;X,y)\quad\quad\quad\quad(7.3) ∇wJ~(w;X,y)=αw+∇wJ(w;X,y)(7.3)
(?上面的公式推导)
使用单步梯度下降更新权重,即执行以下更新:
w ← w − ϵ ( α w + ∇ w J ( w ; X , y ) ) . ( 7.4 ) w\leftarrow w-\epsilon(\alpha w+\nabla_wJ(w;X,y)).\quad\quad\quad\quad\quad(7.4) w←w−ϵ(αw+∇wJ(w;X,y)).(7.4)
换一种写法,上式变为:
w ← ( 1 − ϵ α ) w − ϵ ∇ w J ( w ; X , y ) . ( 7.5 ) w\leftarrow(1-\epsilon\alpha)w-\epsilon\nabla_wJ(w;X,y).\quad\quad\quad\quad(7.5) w←(1−ϵα)w−ϵ∇wJ(w;X,y).(7.5)
可以看到,加入权重衰减后会引起学习规则的修改,即在每步执行通常的梯度更新之前先收缩权重向量(将权重向量乘以一个常数因子)。这是单个步骤发生的变化。但是,在训练的整个过程会发生什么呢?
我们进一步简化分析,令 w ∗ w^* w∗为未正则化的目标函数取得最小训练误差时的权重向量,即 w ∗ = arg min w J ( w ) w^*=\argmin\limits_{w}J(w) w∗=wargminJ(w),并在 w ∗ w^* w∗的邻域对目标函数做二次近似。如果目标函数确实是二次的 (如以均方误差拟合线性回归模型的情况),则该近似是完美的。近似的 J ^ ( θ ) \hat{J}(\theta) J^(θ)如下:
J ^ ( θ ) = J ( w ∗ ) + 1 2 ( w − w ∗ ) T H ( w − w ∗ ) ( 7.6 ) \hat{J}(\theta)=J(w^*)+\frac{1}{2}(w-w^*)^TH(w-w^*)\quad\quad\quad\quad(7.6) J^(θ)=J(w∗)+21(w−w∗)TH(w−w∗)(7.6)
其中 H H H是 J J J在 w ∗ w^* w∗处计算的 Hessian 矩阵 (关于 w w w)。因为 w ∗ w^* w∗被定义为最优,即梯度消失为 0,所以该二次近似中没有一阶项。同样地,因为 w ∗ w^* w∗ 是 J J J 的一个最优点,我们可以得出 H H H 是半正定的结论。(?)
当 J ^ \hat{J} J^ 取得最小时,其梯度
∇ w J ^ ( w ) = H ( w − w ∗ ) ( 7.7 ) \nabla_w\hat{J}(w)=H(w-w^*)\quad\quad\quad\quad(7.7) ∇wJ^(w)=H(w−w∗)(7.7)
为0.(还是一个问题,这里是怎么推导的?)
为了研究权重衰减带来的影响,我们在式 (7.7) 中添加权重衰减的梯度。现在我们探讨最小化正则化后的 J ^ \hat{J} J^。我们使用变量 w ~ \tilde{w} w~ 表示此时的最优点:
α
w
~
+
H
(
w
~
−
w
∗
)
=
0
(
7.8
)
\alpha\tilde{w}+H(\tilde{w}-w^*)=0\quad\quad\quad\quad\quad(7.8)
αw~+H(w~−w∗)=0(7.8)
(
H
+
α
I
)
w
~
=
H
w
∗
(
7.9
)
(H+\alpha I)\tilde{w}=Hw^*\quad\quad\quad\quad\quad(7.9)
(H+αI)w~=Hw∗(7.9)
w
~
=
(
H
+
α
I
)
−
1
H
w
∗
(
7.10
)
\tilde{w}=(H+\alpha I)^-1Hw^*\quad\quad\quad\quad\quad(7.10)
w~=(H+αI)−1Hw∗(7.10)
(?矩阵什么时候可逆)
当 α \alpha α 趋向于 0 时,正则化的解 w ~ \tilde{w} w~ 会趋向 w ∗ w^* w∗。那么当 α \alpha α 增加时会发生什么呢?因为 H H H 是实对称的,所以我们可以将其分解为一个对角矩阵 Λ \Lambda Λ 和一组特征向量的标准正交基 Q Q Q,并且有 H = Q Λ Q T H=Q\Lambda Q^T H=QΛQT(?实对称矩阵的什么性质)。将其应用于式 (7.10) ,可得:
w ~ = ( Q Λ Q T + α I ) − 1 Q Λ Q T w ∗ ( 7.11 ) = [ Q ( Λ + α I ) Q T ] − 1 Q Λ Q T w ∗ ( 7.12 ) = Q ( Λ + α I ) − 1 Λ Q T w ∗ ( 7.13 ) \tilde{w}=(Q\Lambda Q^T+\alpha I)^{-1}Q\Lambda Q^Tw^*\quad\quad\quad\quad\quad\ \ (7.11)\\=[Q(\Lambda+\alpha I)Q^T]^{-1}Q\Lambda Q^T w^*\quad\quad\quad\quad(7.12)\\=Q(\Lambda+\alpha I)^{-1}\Lambda Q^Tw^*\quad\quad\quad\quad\quad\quad\quad(7.13) w~=(QΛQT+αI)−1QΛQTw∗ (7.11)=[Q(Λ+αI)QT]−1QΛQTw∗(7.12)=Q(Λ+αI)−1ΛQTw∗(7.13)
(?)中间推导
我们可以看到权重衰减的效果是沿着由 H H H的特征向量所定义的轴缩放 w ∗ w^* w∗。具体来说,我们会根据 λ i λ i + α \frac{\lambda_i}{\lambda_i+\alpha} λi+αλi因子缩放与 H H H第 i i i个特征向量对齐的 w ∗ w^* w∗的分量(图2.3中有这种缩放的原理)
沿着 H H H特征值较大的方向(如 λ i ≫ α \lambda_i\gg\alpha λi≫α)正则化的影响较小。而 λ i ≪ α \lambda_i\ll\alpha λi≪α的分量将会收缩到几乎为零。这种效应如图7.1所示:
只有在显著减小目标函数方向上的参数会保留得相对完好。在无助于目标函数减小的方向(对应 Hessian 矩阵较小的特征值)上改变参数不会显著增加梯度。这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。
目前为止,我们讨论了权重衰减对优化一个抽象通用的二次代价函数的影响。这些影响具体是怎么和机器学习关联的呢?我们可以研究线性回归,它的真实代价函数是二次的,因此我们可以使用相同的方法分析。再次应用分析,我们会在这种情况下得到相同的结果,但这次我们使用训练数据的术语表述。线性回归的代价函数是平方误差之和:
( X w − y ) T ( X w − y ) ( 7.14 ) (Xw-y)^T(Xw-y)\quad\quad\quad\quad(7.14) (Xw−y)T(Xw−y)(7.14)
我们添加 L 2 L^2 L2正则项后,目标函数变为:
( X w − y ) T ( X w − y ) + 1 2 α w T w ( 7.15 ) (Xw-y)^T(Xw-y)+\frac{1}{2}\alpha w^Tw\quad\quad\quad\quad(7.15) (Xw−y)T(Xw−y)+21αwTw(7.15)
这将普通方程的解从(?):
w = ( X T X ) − 1 X T y w=(X^TX)^{-1}X^Ty w=(XTX)−1XTy
变为:
w = ( X T X + α I ) − 1 X T y ( 7.17 ) w=(X^TX+\alpha I)^{-1}X^Ty\quad\quad\quad\quad\quad(7.17) w=(XTX+αI)−1XTy(7.17)
式 (7.16) 中的矩阵 X T X X^TX XTX与协方差矩阵 1 m X T X \frac{1}{m}X^TX m1XTX成正比。 L 2 L^2 L2正则项将这个矩阵替换为式 (7.17) 中的 ( X T X + α I ) − 1 (X^TX+\alpha I)^{-1} (XTX+αI)−1这个新矩阵与原来的是一样的,不同的仅仅是在对角加了 α \alpha α。这个矩阵的对角项对应每个输入特征的方差。我们可以看到, L 2 L^2 L2正则化能让学习算法 ‘‘感知’’ 到具有较高方差的输入 x x x,因此与输出目标的协方差较小(相对增加方差)的特征的权重将会收缩。(?)
1.2 L 1 L^1 L1参数正则化
对模型参数 w w w的 L 1 L^1 L1正则化被定义为:
Ω ( θ ) = ∥ w ∥ 1 = ∑ i ∣ w i ∣ ( 7.18 ) \Omega(\theta)=\Vert w\Vert_1=\sum\limits_{i}|w_i|\quad\quad\quad\quad(7.18) Ω(θ)=∥w∥1=i∑∣wi∣(7.18)
即各个参数的绝对值之和。接着我们将讨论 L 1 L^1 L1正则化对简单线性回归模型的影响,与分析 L 2 L^2 L2正则化时一样不考虑偏置参数。我们尤其感兴趣的是找出 L 1 L^1 L1和 L 2 L^2 L2正则化之间的差异。与 L 2 L^2 L2权重衰减类似,我们也可以通过缩放惩罚项 Ω \Omega Ω的正超参数 α \alpha α来控制 L 1 L^1 L1权重衰减的强度。因此,正则化的目标函数 J ~ ( w ; X , y ) \tilde{J}(w;X,y) J~(w;X,y)如下所示:
J ~ ( w ; W , y ) = α ∥ w ∥ 1 + J ( w ; X , y ) ( 7.19 ) \tilde{J}(w;W,y)=\alpha\Vert w\Vert_1+J(w;X,y)\quad\quad\quad\quad\quad(7.19) J~(w;W,y)=α∥w∥1+J(w;X,y)(7.19)
对应的梯度(实际上是次梯度)(?):
∇ w J ~ ( w ; X , y ) = α s i g n ( w ) + ∇ w J ( w ; X , y ) ( 7.20 ) \nabla_w\tilde{J}(w;X,y)=\alpha sign(w)+\nabla_wJ(w;X,y)\quad\quad\quad\quad(7.20) ∇wJ~(w;X,y)=αsign(w)+∇wJ(w;X,y)(7.20)
其中 s i g n ( w ) sign(w) sign(w)只是简单地取 w w w各个元素的正负号。
观察式 (7.20) ,我们立刻发现 L 1 L^1 L1的正则化效果与 L 2 L^2 L2大不一样。具体来说,我们可以看到正则化对梯度的影响不再是线性地缩放每个 w i w_i wi;而是添加了一项与 s i g n ( w i ) sign(w_i) sign(wi) 同号的常数。使用这种形式的梯度之后,我们不一定能得到 J ( X , y ; w ) J(X,y;w) J(X,y;w) 二次近似的直接算术解( L 2 L^2 L2正则化时可以)。
简单线性模型具有二次代价函数,我们可以通过泰勒级数表示。或者我们可以设想,这是逼近更复杂模型的代价函数的截断泰勒级数。在这个设定下,梯度由下式给出
∇ w J ^ ( w ) = H ( w = w ∗ ) ( 7.21 ) \nabla_w\hat{J}(w)=H(w=w^*)\quad\quad\quad\quad\quad(7.21) ∇wJ^(w)=H(w=w∗)(7.21)