L2范数浅谈
机器学习的求解本质上是一个优化问题的求解,其方式一般通过构造损失函数,对损失函数进行求解,进而确定模型参数的过程。为了防止模型过拟合,或者使得模型更稳定,经常使用正则化技术。今天介绍一下正则化技术中的L2范数。
许多正则化技术通过对损失函数(也叫目标函数)J 添加一个参数范数惩罚 $\Omega(\theta)$ 限制模型的学习能力。假设正则化后的目标函数为 J :
$$ J(\theta, X, ,y) = J(\theta; X, y) + \alpha(\Omega) \tag{1.1}$$
其中,$\theta\in[0, \infty]$ 是衡量范数惩罚项 $\Omega$ 对目标函数 $J(\theta, X, ,y)$ 相对贡献的超参数。$\theta$ 为0表示没有正则化,$\theta$ 越大,对目标函数的惩罚越大。
此处需要注意的是,则神经网络中,参数包含每一层仿射变换的权重和偏置,通常我们只对权重正则化而非偏置,原因是精确拟合偏置所需的数据量比拟合权重少得多。每个权重会指定两个变量如何相互作用,而每个偏置控制一个单变量【尚待考究】,这意味着我们不对其进行正则化也不会导致太大的方差。另外,正则化偏置参数可能会导致模型明显的欠拟合。
L2正则化
L2正则化(也叫岭回归 或吉洪诺夫正则),即 $\Omega(\theta)=\frac{1}{2}||w||^2_2$ ,通过对目标函数添加L2范数,使得权重更加接近原点。在这里,我们通过研究正则化后的目标函数的梯度,洞察一些权重衰减的正则化表现。为了简便,假设没有偏置,因为 $\theta$ 就是$w$。目标函数如下:
$$J(\theta; X, y) = \frac{\theta}{2}w^Tw + J(w; X, y) \tag{1.2}$$
与之对应的梯度为
$$\nabla_wJ(w; X, y) = \alpha w + \nabla_wJ(w; J, y) \tag{1.3}$$
使用单步梯度下降更新权重,
$$w\leftarrow w - \epsilon(\alpha w + \nabla_wJ(w; X, y)) \tag{1.4}$$
稍微整理一下:
$$w\leftarrow(1-\epsilon\alpha)w-\epsilon\nabla_wJ(w; X,y) \tag{1.5}$$
可以看到,加入正则化之后学习规则的变化,即在每次更新梯度之前先收缩权重向量(将权重向量乘以一个常数因子)。
进一步分析,令 $w^*$ 为 未正则化 的目标函数取得最小误差的权重向量,即$w^*=argmin_wJ(w)$。我们在$w^*$的邻域做二次近似(二阶泰勒展开),如果目标函数确实是二次的,则该近似可以看作是完美的。近似的 $\hat{J}(\theta)$ 如下:
$$ \hat{J}(\theta) = J(w^*)+\frac{1}{2}(w-w^*)^TH(w-w^*) \tag{1.6} $$
其中,H是J在$w^*$处关于w的Hessian矩阵。因为$w^*$被定义为最优,即梯度消失为0,所以该二次项中没有一阶项。同样地,因为$w^*$是J的一个最优点,可以得到H是半正定的结论。
当 $\hat{J}$ 取得最小时,其梯度
$$\nabla_w\hat{J}(w)=H(w-w^*) \tag{1.7}$$
为0。
上文研究的是未正则化的情况。为了研究正则化带来的影响,我们在$(1.7)$中添加正则化项的梯度。设最小化正则化后的损失函数为 $\hat{J}$,使用变量 $\tilde{w}$ 表示此时的最优点:
$$ \alpha\tilde{w} + H(\tilde{w} - w^*) =0 \tag{1.8}$$
$$(H + \alpha I)\tilde{w} = Hw^* \tag{1.9}$$
$$ \tilde{w} = (H + \alpha I)^{-1}Hw^* \tag{1.10}$$
当 $\alpha$ 趋近于0时,正则化的解 $\tilde{w}$ 会趋近于 $w^*$。
当 $\alpha$ 增加时,因为 $H$ 是实对称的,所以可以将其分解为一个对角矩阵 A 和一组特征向量的标准正交基 Q,并有 $ H=QAQ^T$,将其带入$(1.10)$,有:
$$\tilde{w} = (QAQ^T + \alpha I)^{-1}QAQ^Tw^* \tag{1.11}$$
$$\tilde{w} = [(Q(A + \alpha I)Q^T]^{-1}QAQ^T w^* \tag{1.12}$$
$$\tilde{w} = (Q(A + \alpha I)^{-1}AQ^T w^* \tag{1.13}$$
注:对角矩阵的逆为矩阵各元素变为倒数之后的矩阵。
可以看到正则化项的效果是沿着由 H 的特征向量所定义的轴缩放 $w^*$。具体来说,就是根据 $\frac{\lambda _i}{\lambda _i+\alpha}$ 因子缩放与H第i个特征对齐的 $w^*$ 的分量。 沿着H特征值较大的方向(如$\lambda \gg \alpha$)正则化的影响较小。而 $\lambda \ll \alpha$ 的分量将会收缩到几乎为0。
通过对 $(1.13)$ 的分析,我们可以知道只有在显著减少目标函数的方向上的参数会保留相对完好。在无助于目标函数减小的方向(H矩阵较小的特征值)上改变参数不会显著增加梯度。这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。
以上讨论了正则化对通用的二次代价函数的影响。接下来以线性回归为例进行阐述。
线性回归的代价函数是平方误差之和:
$$(Xw-y)^T(Xw-y) \tag{1.14}$$
解析解为:
$$w=(X^TX)^{-1}X^Ty \tag{1.15}$$
添加 L2 正则化项之后,目标函数变为:
$$(Xw-y)^T(Xw-y)+\frac{1}{2}\alpha w^Tw \tag{1.16}$$
解析解为:
$$w=(X^TX+\alpha I)^{-1}X^Ty \tag{1.17}$$
式(1.15)中的矩阵 $X^TX$ 与协方差矩阵 $\frac{1}{m}X^TX$成正比。L2正则项将这个矩阵替换为$X^TX+\alpha I$,与之不同的是**对角线加了$\alpha$**。这个矩阵的对角线对应了每个输入特征的方差。我们可以看到,L2正则化能让学习算法感知具有较高方差的输入特征$x_i$,并且其特征的权重将会收缩。模型的抗扰动能力也比较强。
参考文献:
- 花书:深度学习