7 深度学习中的正则化
机器学习中的一个核心问题是设计不仅在训练数据上表现好,而且能在新的输入上泛化好的算法。在机器学习中,许多策略被显式地设计来减少测试误差,这些策略被统称为正则化。
Q:为什么需要正则化?
在实践中,过于复杂的模型族不一定包括目标函数或真实数据的生成过程,甚至也不包括近似过程。我们很难知道数据的生成过程,所以很难确定模型族是否包含数据的生成过程。 如图像、视频文本等,本质上这些领域的真实生成过程涉及模拟整个宇宙,所以很难控制模型的复杂度来找到合适的模型。
相反,在实际的深度学习应用场景中,我们几乎总会发现最好的拟合模型是一个适当正则化的大型模型。
7.1 参数范数惩罚
对目标函数进行参数范数惩罚:
J ^ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) \hat{J}(\theta;X,y)=J(\theta;X,y)+\alpha\Omega(\theta) J^(θ;X,y)=J(θ;X,y)+αΩ(θ)
J J J是目标函数, J ^ \hat{J} J^是正则化后的目标函数, α \alpha α是正则化项的超参数, Ω ( θ ) \Omega(\theta) Ω(θ)是参数范数惩罚。
我们一般只对权重 w w w进行惩罚,而不对偏置进行惩罚。精确拟合偏置所需要的数据量通常要比拟合权重少得多。每个权重会指定两个变量如何相互作用,我们需要在各种条件下观察这两个变量才能更好地拟合权重。而每个偏置仅控制一个单变量。这意味着我们不对其进行正则化也不会导致太大的方差。另外,正则化偏置参数可能会导致明显的欠拟合。因此,我们使用向量 w w w表示所有应受范数惩罚影响的权重,而向量 θ \theta θ表示所有参数(包括 w w w和无需正则化的参数)。
7.11 L 2 L^2 L2参数正则化
Ω ( θ ) = 1 2 ∣ ∣ w ∣ ∣ 2 \Omega(\theta)=\frac{1}{2}||w||^2 Ω(θ)=21∣∣w∣∣2
也被称为岭回归或Tikhonov正则。
目标函数变为:
J ^ ( θ ; X , y ) = J ( θ ; X , y ) + α 1 2 ∣ ∣ w ∣ ∣ 2 \hat{J}(\theta;X,y)=J(\theta;X,y)+\alpha\frac{1}{2}||w||^2 J^(θ;X,y)=J(θ;X,y)+α21∣∣w∣∣2
与之对应的梯度为
∇ w J ^ ( θ ; X , y ) = α w + ∇ w J ( w ; X , y ) \nabla_w\hat{J}(\theta;X,y)=\alpha w+\nabla_wJ(w;X,y) ∇wJ^(θ;X,y)=αw+∇wJ(w;X,y)
使用单步梯度下更新权重,即执行以下更新:
w ← w − ϵ ( α w + ∇ w J ( w ; X , y ) ) w \leftarrow w-\epsilon (\alpha w+\nabla_wJ(w;X,y)) w←w−ϵ(αw+∇wJ(w;X,y))
换一种写法是
w ← ( 1 − ϵ α ) w − ϵ ∇ w J ( w ; X , y ) w \leftarrow (1-\epsilon \alpha)w-\epsilon \nabla_wJ(w;X,y) w←(1−ϵα)w−ϵ∇wJ(w;X,y)
我们可以看到,加入权重衰减之后在对权重更新之前首先会收缩权重向量。
令 w ∗ w^* w∗为未正则化的目标函数取得最小训练误差时的权重向量,即 w ∗ = a r g m i n w J ( w ) w^*=arg min_wJ(w) w∗=argminwJ(w),并在 w ∗ w^* w∗的邻域对目标函数做二次近似。如果目标函数确实是二次的,则该近似是完美的。近似的 J ^ ( θ ) \hat{J}(\theta) J^(θ)如下
J ^ ( θ ) = J ( w ∗ ) + 1 / 2 ( w − w ∗ ) T H ( w − w ∗ ) \hat{J}(\theta)=J(w^*)+1/2(w-w^*)^TH(w-w^*) J^(θ)=J(w∗)+1/2(w−w∗)TH(w−w∗)
其中 H H H是 J J J在 w ∗ w^* w∗处计算的 H e s s i a n Hessian Hessian矩阵(关于 w w w)。因为 w ∗ w^* w∗被定义为最优,即梯度消失为0,所以在该二次近似中没有一阶项。同样地,因为 w ∗ w^* w∗是 J J J的一个最优点,我们可以得出 H H H是半正定的结论。
当 J ^ \hat{J} J^取最小值时,梯度为0,即
∇ J ^ ( w ) = H ( w − w ∗ ) = 0 \nabla \hat{J}(w)=H(w-w^*)=0 ∇J^(w)=H(w−w∗)=0
矩阵求导的复习
</
y = 1 / 2 ( w − w ∗ ) T H ( w − w ∗ ) y=1/2(w-w^*)^TH(w-w^*) y=1/2(w−w∗)TH(w−w∗)
d y = t r ( d y ) = 1 / 2 t r ( d ( w − w ∗ ) T H ( w − w ∗ ) + ( w − w ∗ ) T H d ( w − w ∗ ) ) dy=tr(dy)=1/2tr(d(w-w^*)^TH(w-w^*)+(w-w^*)^THd(w-w^*)) dy=tr(dy)=1/2tr(d(w−w∗)TH(w−w∗)+(w−w∗)THd(w−w∗))
利用 t r ( A B ) = t r ( B A ) , t r ( A ) = t r ( A T ) tr(AB)=tr(BA),tr(A)=tr(A^T) tr(AB)=tr(BA),tr(A)=tr(AT)进行化简
d y = 1 / 2 t r ( w T ( H T + H ) d w ) dy=1/2tr(w^T(H^T+H)dw) dy=1/2tr(wT(HT+H)dw)
d y / d w = 1 / 2 ( H T + H ) w dy/dw=1/2(H^T+H)w dy/dw=1/2(HT+H)w
当 H T = H H^T=H HT=H时, d y / d w = H w dy/dw=Hw dy/dw=Hw