之前有一篇博客已经讲解了正则化的一些知识,本文就深入一层看看每一种正则化到底对目标函数做了什么,让大家能够更加深入的了解正则化。现在介绍L2正则化的深入分析。
L2参数正则化
首先来看下带有正则化的损失函数。
J(w;X;y)ˉ=2αwtw+J(w;X;y)(1.1)
对应的梯度为
▽J(w;X;y)ˉ=αw+▽wJ(w;X;y)(1.2)
使用单步梯度下降更新权重,就是执行如下的更新
w←w−ϵ(αw+▽wJ(w;X;y))←(1−ϵα)w−ϵ▽wJ(w;X;y))
从上面的关系可以看出来,加入了一个w的更新过程是先加入一个衰减后引起了学习规则的改变。就是每步执行通常的梯度更新之前先收缩权重向量((1−ϵα)乘以这个常数因子)。这是一个单独的迭代过程,那么来看看训练整个过程会发生什么?
L2正则在训练中的影响
假设存在w∗为未正则化的目标函数取得最小训练误差时的权重向量,就是w∗=arg minwJ(w)。
J(θ)ˉ=J(w∗)+21(w−w∗)TH(w−w∗)(2.1)
第一项是J的最优值,第二项是正则项,这里的H是J在w∗处计算的的Hessian矩阵。因为w∗被定义成最优,就是梯度消失为0,也也就是J(w∗)′=0。当J(θ)ˉ取得最小值的时候其梯度如下,且等于0
▽wJ(x)ˉ=H(w−w∗)(2.2)
上面这个公式是这样计算而来的,J(w∗)′=0一阶导数为0 ,然后求正则项的导数,w∗是常数,求导以后就如公式2.2. 这个时候研究权重衰减带来的影响。w是当前的最优值,就有如下的等式。
αw+H(w−w∗)=0w=(H−αI)−1Hw∗
其中第一行根据公式1.2推导。 当α趋近于0的时候,正则化的w的解趋近于w∗. 当α增加的时候,因为H是实对称的,所以可以将其分解为如下形式,H=Q∧QT,将其用到上面的公式。
w=(Q∧QT+αI)−1Q∧QTw∗=[Q(∧+αI)QT]−1Q∧QTw∗=Q(∧+αI)−1∧QTw∗
从上面的的公式推导能够看出来权重衰减的效果沿着由H的特征向量说定义的轴缩放w∗。具体而言就是根据λi+αλi因子缩放与H的第i个特征向量对齐的W分量(这里的λi表示第i个特征值)。沿着H特征值较大的方向正则化影响小,反过来当λi<<α将会收缩到几乎为0.这里就与特征值和特征向量联系起来啦。只有在显著的减小目标函数的方向上的参数会保留相对完好,在无助与目标函数减小的方向(对应H较小的特征值)上改变的比较小。
实践
接下来咱们来一线性回归为例子,在加深一下理解。线性回归的代价函数是平均误差之和。
(Xw−y)T(Xw−y)+21αwTw(3.1)
其中第二项而L2正则项。
正规的解为
w=(XTX+αI)−1XTy(3.2)
如果不加入正则项,就是3.2公式中去除掉αI,这个αI能够防止原本的矩阵不可逆的情况,让算法更加通用 . 矩阵XTX与协方差矩阵m1XTX成正比。发现加入正则项后对角线增加了α.而这个矩阵(XTX)的对角项对应每个输入特征的方差。 L2正则化能让学习算法感知到具有较高方差的输入x(对较大的方差仍然加上一个α,使之更大),目的是与输出目标(y)的协方差较小(相对增加方差)的特征会被收缩。