- 广义正则化:通过某种手段使学习算法在训练误差变化不大的情况下,使得泛化误差显著降低的方法。
- 狭义正则化:不减少网络参数,只进行参数范围调整的方法。
- 正则化相当于是“挂坠”,狭义正则化就是给损失函数加一个正则化项(通过增加一个挂坠来让模型不要特别好的拟合训练集,以避免过拟合的现象)。
参数范数正则化
1. 概述
- 1.范数是将向量映射到非负值的函数。满足三条性质:
- a.非负性, f ( x ) ≥ 0 ( f ( x ) = 0 < = = > x = 0 ) f(x)\geq0(f(x)=0 <==> x=0) f(x)≥0(f(x)=0<==>x=0)
- b.齐次性, ∀ α ∈ R , f ( α x ) = ∣ α ∣ f ( x ) \forall \alpha \in R,f(\alpha x)=\left | \alpha \right |f(x) ∀α∈R,f(αx)=∣α∣f(x)
- c.三角不等式, f ( x + y ) ≤ f ( x ) + f ( y ) f(x+y)\leq f(x)+f(y) f(x+y)≤f(x)+f(y)
- 2.常用范数
- L p L_{p} Lp范数是使用最为广泛的一种范数, ∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 / p \left \| x \right \|_{p} = (\sum_{i}\left | x_{i} \right |^{p} )^{1/p} ∥x∥p=(∑i∣xi∣p)1/p。当p=2时,等价于欧几里得距离。
- 衡量矩阵大小最常使用F范数,即 ∥ A ∥ F = ∑ i , j A i j 2 \left \| A \right \|_{F}=\sqrt{\sum _{i,j}A_{ij}^{2}} ∥A∥F=∑i,jAij2
- 3.通过简单的在损失函数后添加参数范数正则化项来限制模型的学习能力。
- J ^ ( Θ ; X , y ) = J ( Θ ; X , y ) + α Ω ( Θ ) \hat{J}(\Theta ;X,y)=J(\Theta ;X,y)+\alpha \Omega (\Theta ) J^(Θ;X,y)=J(Θ;X,y)+αΩ(Θ)
- 其中, α \alpha α是正则项系数,是一个超参,用来权衡惩罚项 Ω \Omega Ω对损失函数的贡献。 α \alpha α为0表示无正则化, α \alpha α越大,正则惩罚越大。
- 4.当最小化正则化后的损失函数时候,同时降低原有损失函数J和正则化项 Ω \Omega Ω的值,一定程度减少了过拟合的程度。
- 5.通俗来说,正则化就是让影响很小的节点参数(如权重)多几个等于0或接近于0。在神经网络中则相当于删除掉了一些节点,从而使模型变得简单。
- 6.三种范式
- L0范数: ∥ w ∥ 0 \left \| w \right \|_{0} ∥w∥0,指向量中非0元素的个数,越小说明0越多;
- L1范数: ∥ w ∥ 1 \left \| w \right \|_{1} ∥w∥1,指向量中各元素绝对值之和;
- L2范数: ∥ w ∥ 2 \left \| w \right \|_{2} ∥w∥2,即各元素的平方和再开方;
2. L2正则化(单步)简述
- 主要用于线性回归,正则项的形式: Ω ( w ) = 1 2 ∥ w ∥ 2 2 \Omega (w)=\frac{1}{2}\left \| w \right \|_{2}^{2} Ω(w)=21∥w∥22
- 1.损失函数: J ^ ( Θ ; X , y ) = J ( Θ ; X , y ) + α 2 ∥ w ∥ 2 2 \hat{J}(\Theta ;X,y)=J(\Theta ;X,y)+\frac{\alpha }{2}\left \| w \right \|_{2}^{2} J^(Θ;X,y)=J(Θ;X,y)+2α∥w∥22
- 2.计算梯度: ▽ w J ^ ( w ; X , y ) = ▽ w J ( w ; X , y ) + α w \triangledown _{w}\hat{J}(w;X,y)=\triangledown _{w}J(w;X,y)+\alpha w ▽wJ^(w;X,y)=▽wJ(w;X,y)+αw
- 3.使用单步梯度下降更新权重:: w = ( 1 − λ α ) w − λ ▽ w J ( w ; X , y ) w=(1-\lambda \alpha )w-\lambda \triangledown _{w}J(w;X,y) w=(1−λα)w−λ▽wJ(w;X,y)。(进行每一步的梯度更新前,先对参数w进行了缩放;权重衰减的名称则由此而来)
3. L2参数正则化分析(整个训练过程)
- 1. w ∗ w^{*} w∗:未正则化的损失函数J得到的最小损失权重向量
- 2.在 w ∗ w^{*} w∗附近对损失函数做二次近似: J ^ ( w ) = J ( w ∗ ) + ( w − w ∗ ) T ▽ J ( w ∗ ) + 1 2 ( w − w ∗ ) T H ( w − w ∗ ) \hat{J}(w)=J(w^{*})+(w-w^{*})^{T}\triangledown J(w^{*})+\frac{1}{2}(w-w^{*})^{T}H(w-w^{*}) J^(w)=J(w∗)+(w−w∗)T▽J(w∗)+21(w−w∗)TH(w−w∗)
- 3.引入L2正则化项的梯度,使 J ^ ( w ) \hat{J}(w) J^(w)最小;KaTeX parse error: Expected 'EOF', got '}' at position 56: …H(\hat{w}-w^{*}}̲)=0,求得 w ^ = ( H + α I ) − 1 H w ∗ \hat{w}=(H+\alpha I)^{-1}Hw^{*} w^=(H+αI)−1Hw∗
- 其中H是J在 w ∗ w^{*} w∗处计算的海森矩阵,当 J ^ ( w ) \hat{J}(w) J^(w)取得最小值时,其梯度为0。同时因H为对称矩阵, H = Q Λ Q T H=Q\Lambda Q^{T} H=QΛQT.
- 4. w ^ = Q ( Λ + α I ) − 1 Λ Q T w ∗ \hat{w}=Q(\Lambda +\alpha I)^{-1}\Lambda Q^{T}w^{*} w^=Q(Λ+αI)−1ΛQTw∗
- 5.可见,权重衰减是沿着H的特征向量的标准正交基所定义的轴缩放
w
∗
w^{*}
w∗;
当原损失函数在特征值大的方向进行下降时,正则化项对其影响较小;
在特征值小的方向下降时,正则化项会对其进行限制;
也就相当于保证了原损失函数沿着损失下降最大的方向下降。
4. L1正则化
- 1.L1正则化又称为Lasso回归; J ^ ( w ; X , y ) = J ( w ; X , y ) + α ∥ w ∥ 1 \hat{J}(w;X,y)=J(w;X,y)+\alpha \left \| w \right \|_{1} J^(w;X,y)=J(w;X,y)+α∥w∥1
- 2.计算梯度: ▽ w J ^ ( w ; X , y ) = ▽ w J ( w ; X , y ) + α ⋅ s i g n ( w ) \triangledown _{w}\hat{J}(w;X,y)=\triangledown _{w}J(w;X,y)+\alpha \cdot sign(w) ▽wJ^(w;X,y)=▽wJ(w;X,y)+α⋅sign(w)
5. L1参数正则化分析
- 1. w ∗ w^{*} w∗:未正则化的损失函数J得到的最小损失权重向量
- 2.在 w ∗ w^{*} w∗处对正则化后的损失函数进行二次泰勒展开: J ^ ( w ) = J ( w ∗ ) + 1 2 ( w − w ∗ ) T H ( w − w ∗ ) \hat{J}(w)=J(w^{*})+\frac{1}{2}(w-w^{*})^{T}H(w-w^{*}) J^(w)=J(w∗)+21(w−w∗)TH(w−w∗)
- L1正则项在完全一般化的海森矩阵无法得到清晰的代数表达式,进一步假设海森矩阵为对角矩阵且对角项大于0。(若线性回归问题中数据已被预处理,去除输入特征之间的相关性,则假设成立)
- 3.将目标函数二次近似分解为关于参数的总和: J ^ ( w ) = J ( w ∗ ) + ∑ i [ 1 2 H i , i ( w i − w i ∗ ) 2 + α ∣ w i ∣ ] \hat{J}(w)=J(w^{*})+\sum _{i}[\frac{1}{2}H_{i,i}(w_{i}-w_{i}^{*})^{2}+\alpha \left | w_{i} \right |] J^(w)=J(w∗)+∑i[21Hi,i(wi−wi∗)2+α∣wi∣]
- 4.最小化这个近似损失函数: w ^ i = s i g n ( w i ∗ ) m a x { ∣ w i ∗ ∣ − α H i , i , 0 } \hat{w}_{i}=sign(w_{i}^{*})max\left\{\left | w_{i}^{*} \right |-\frac{\alpha }{H_{i,i}},0\right\} w^i=sign(wi∗)max{∣wi∗∣−Hi,iα,0}
-
w
i
∗
>
0
w_{i}^{*}>0
wi∗>0时分两种情况:
a. w i ∗ ≤ α H i i , w ^ i = 0 w_{i}^{*}\leq \frac{\alpha }{H_{ii}}, \hat{w}_{i}=0 wi∗≤Hiiα,w^i=0
b. w i ∗ > α H i i , w ^ i = w i ∗ − α H i i w_{i}^{*}> \frac{\alpha }{H_{ii}}, \hat{w}_{i}=w_{i}^{*}-\frac{\alpha }{H_{ii}} wi∗>Hiiα,w^i=wi∗−Hiiα
5. L1和L2的区别
- 1.L2范数更有助于计算病态的问题
- 2.L1相对于L2能够产生更加稀疏的模型
- 3.从概率角度进行分析,很多范数约束相当于对参数添加先验分布,其中L2范数相当于参数服从高斯先验分布;L1范数相当于拉普拉斯分布。