从本节开始,将介绍正则化,并从拉格朗日乘数法角度进行观察。
在处理线性回归任务过程中,我们以 L 2 L_2 L2正则化( Regularization \text{Regularization} Regularization)为例介绍了正则化在最小二乘法损失函数的作用。
关于最小二乘估计关于权重 W \mathcal W W的矩阵形式表达公式表示如下:
{ L ( W ) = W T X T X W − 2 W T X T Y + Y T Y W ^ = arg min W L ( W ) \begin{cases} \mathcal L(\mathcal W) = \mathcal W^T\mathcal X^T\mathcal X \mathcal W - 2 \mathcal W^T\mathcal X^T\mathcal Y + \mathcal Y^T\mathcal Y \\ \hat {\mathcal W} = \mathop{\arg\min}\limits_{\mathcal W} \mathcal L(\mathcal W) \end{cases} ⎩ ⎨ ⎧L(W)=WTXTXW−2WTXTY+YTYW^=WargminL(W)
对 L ( W ) \mathcal L(\mathcal W) L(W)关于 W \mathcal W W求解偏导,求解最优值 W ^ \hat {\mathcal W} W^:
{ ∂ L ( W ) ∂ W = 2 X T X W − 2 X T Y ≜ 0 W ^ = ( X T X ) − 1 X T Y \begin{cases} \begin{aligned} \frac{\partial \mathcal L(\mathcal W)}{\partial \mathcal W} = 2\mathcal X^T\mathcal X\mathcal W - 2\mathcal X^T\mathcal Y \triangleq 0 \end{aligned} \\ \hat {\mathcal W} = (\mathcal X^T\mathcal X)^{-1}\mathcal X^T\mathcal Y \end{cases} ⎩ ⎨ ⎧∂W∂L(W)=2XTXW−2XTY≜0W^=(XTX)−1XTY
关于 L 2 L_2 L2正则化的最小二乘估计 L ( W , λ ) \mathcal L(\mathcal W,\lambda) L(W,λ)表示为:
L ( W , λ ) = W T X T X W − 2 W T X T Y + Y T Y + λ W T W \mathcal L(\mathcal W,\lambda) = \mathcal W^T\mathcal X^T\mathcal X \mathcal W - 2 \mathcal W^T\mathcal X^T\mathcal Y + \mathcal Y^T\mathcal Y + \lambda \mathcal W^T\mathcal W L(W,λ)=WTXTXW−2WTXTY+YTY+λWTW
对应最优解表示为:
W ^ = ( X T X + λ I ) − 1 X T Y \hat {\mathcal W} = (\mathcal X^T\mathcal X + \lambda \mathcal I)^{-1} \mathcal X^T\mathcal Y W^=(XTX+λI)−1XTY
关于前后加正则化的权重最优解对比发现,在 N N N阶方阵 X T X \mathcal X^T\mathcal X XTX每个主对角线元素中添加了一个 λ \lambda λ。这样能够保证 X T X \mathcal X^T\mathcal X XTX必然是正定矩阵,而不单是实对称矩阵。如果 X T X \mathcal X^T\mathcal X XTX不是满秩矩阵,从而无法求解矩阵的逆 Λ − 1 \Lambda^{-1} Λ−1:
其中
Q \mathcal Q Q表示正交矩阵。
X T X = Q Λ Q T \mathcal X^T\mathcal X = \mathcal Q\Lambda\mathcal Q^T XTX=QΛQT
正则化,本质上是一种减少过拟合的方法。在神经网络中,关于正则化的描述是指关于权重 W \mathcal W W的正则化。在神经网络中,参数分为两类:权重 ( Weight ) (\text{Weight}) (Weight)、偏置 ( Bias ) (\text{Bias}) (Bias)。
权重影响的是神经网络所逼近函数的形状;而偏置影响的是函数的位置信息。在神经网络学习过程中,一旦对权重进行约束,偏置也会随之进行调整。因此对偏置进行约束意义不大。
从 M-P \text{M-P} M-P神经元的角度观察,偏置本身就是激活神经元的阈值。而阈值可看作是某权重与对应哑结点( Dummy Node \text{Dummy Node} Dummy Node)的线性结果,因而可以在学习过程中将阈值的学习包含在权重中( W Dum ∈ W \mathcal W_{\text{Dum}} \in \mathcal W WDum∈W):
θ = W Dum ⋅ x Dum ⏟ fixed = − 1 \theta = \mathcal W_{\text{Dum}} \cdot \underbrace{x_{\text{Dum}}}_{\text{fixed}=-1} θ=WDum⋅fixed=−1 xDum
因此,正则化的优化对象是权重参数 W \mathcal W W。
常见的正则化方法是 L 1 , L 2 L_1,L_2 L1,L2正则化。这里的 L 1 , L 2 L_1,L_2 L1,L2是指对应范数的类型。以 L 2 L_2 L2范数为例。假设某权重 W \mathcal W W是一个 p p p维向量:
W = ( w 1 , w 2 , ⋯ , w p ) T \mathcal W = (w_1,w_2,\cdots,w_p)^T W=(w1,w2,⋯,wp)T
而 W \mathcal W W可看作是 p p p维特征空间中的一个具体的点。而 L 2 L_2 L2范数表示该点 W \mathcal W W到 p p p维特征空间原点之间的距离:
∣ ∣ W ∣ ∣ 2 = ( w 1 − 0 ) 2 + ( w 2 − 0 ) 2 + ⋯ + ( w p − 0 ) 2 = ∣ w 1 ∣ 2 + ∣ w 2 ∣ 2 + ⋯ + ∣ w p ∣ 2 \begin{aligned} ||\mathcal W||_2 & = \sqrt{(w_1 - 0)^2 + (w_2 - 0)^2 + \cdots + (w_p - 0)^2}\\ & = \sqrt{|w_1|^2 + |w_2|^2 + \cdots + |w_p|^2} \end{aligned} ∣∣W∣∣2=(w1−0)2+(w2−0)2+⋯+(wp−0)2=∣w1∣2+∣w2∣2+⋯+∣wp∣2
以二维特征为例。此时的 W ( 2 ) \mathcal W^{(2)} W(2)表示为: W ( 2 ) = ( w 1 , w 2 ) T \begin{aligned}\mathcal W^{(2)} = (w_1,w_2)^T\end{aligned} W(2)=(w1,w2)T。关于 W ( 2 ) \mathcal W^{(2)} W(2)的 L 2 L_2 L2范数 ∣ ∣ W ( 2 ) ∣ ∣ 2 ||\mathcal W^{(2)}||_2 ∣∣W(2)∣∣2可表示为:
∣ ∣ W ( 2 ) ∣ ∣ 2 = ∣ w 1 ∣ 2 + ∣ w 2 ∣ 2 ||\mathcal W^{(2)}||_2 = \sqrt{|w_1|^2 + |w_2|^2} ∣∣W(2)∣∣2=∣w1∣2+∣w2∣2
满足到 p p p维特征空间原点之间距离为 ∣ ∣ W ( 2 ) ∣ ∣ 2 ||\mathcal W^{(2)}||_2 ∣∣W(2)∣∣2的 W \mathcal W W的集合在图像中表示的形状是一个圆,这意味着在圆上的每一个点都表示其特征满足 L 2 L_2 L2范数结果相同的权重:
同理, L 1 L_1 L1正则化对应的 L 1 L_1 L1范数表示如下:
∣ ∣ W ∣ ∣ 1 = ∣ w 1 ∣ + ∣ w 2 ∣ + ⋯ + ∣ w p ∣ ||\mathcal W||_1 = |w_1| + |w_2| + \cdots + |w_p| ∣∣W∣∣1=∣w1∣+∣w2∣+⋯+∣wp∣
依然以二维权重特征 ∣ ∣ W ( 2 ) ∣ ∣ 1 = ∣ w 1 ∣ + ∣ w 2 ∣ ||\mathcal W^{(2)}||_1 = |w_1| + |w_2| ∣∣W(2)∣∣1=∣w1∣+∣w2∣为例,其对应的权重集合在图像中表示为:
正则化不仅只有 L 1 , L 2 L_1,L_2 L1,L2正则化。在 K-Means \text{K-Means} K-Means聚类算法中介绍过:
它们都是明可夫斯基距离( Minkowski Distance \text{Minkowski Distance} Minkowski Distance)的一种具体表示结果: 0<p≤1
∣ ∣ W ∣ ∣ p = ( ∑ k = 1 m ∣ w k − 0 ∣ p ) 1 p ||\mathcal W||_p = \left(\sum_{k=1}^m|w_k - 0|^p\right)^{\frac{1}{p}} ∣∣W∣∣p=(k=1∑m∣wk−0∣p)p1
m m m不仅可以取 1 , 2 1,2 1,2;它可以取到更大的数值,甚至是无穷大。对应图像举例表示如下:
观察,当参数 p ≥ 1 p \geq1 p≥1时,满足 L p L_p Lp范数相等的点围成的集合图像是一个凸集合。而相反的, 0 < p ≤ 1 0
仅仅从输出层的角度观察该分类任务的目标:如果上一层的输出结果 a ( l − 1 ) a^{(l-1)} a(l−1)确定的条件下,找到一组合适的权重、偏置 W ^ ( l ) , b ^ ( l ) \hat {\mathcal W}^{(l)},\hat b^{(l)} W^(l),b^(l)使得损失函数达到最小:
W ^ ( l ) , b ^ ( l ) = arg max W ( l ) , b ( l ) J { Softmax [ ( W ^ ( l ) ) T ⋅ a ( l − 1 ) + b ^ ( l ) ] } \hat {\mathcal W}^{(l)},\hat b^{(l)} = \mathop{\arg\max}\limits_{\mathcal W^{(l)},b^{(l)}} \mathcal J \left\{\text{Softmax} \left[(\hat {\mathcal W}^{(l)})^T \cdot a^{(l-1)} + \hat b^{(l)}\right]\right\} W^(l),b^(l)=W(l),b(l)argmaxJ{Softmax[(W^(l))T⋅a(l−1)+b^(l)]}
但实际上,上一层的输出结果 a ( l − 1 ) a^{(l-1)} a(l−1)并非是确定的,而对于 a ( l − 1 ) a^{(l-1)} a(l−1)也同样受对应的 W ( l − 1 ) , b ( l − 1 ) \mathcal W^{(l-1)},b^{(l-1)} W(l−1),b(l−1)约束。
例如:使用
ReLU \text{ReLU} ReLU激活函数,对应的
W ( l − 1 ) , b ( l − 1 ) \mathcal W^{(l-1)},b^{(l-1)} W(l−1),b(l−1)均乘以
2 2 2.调整部分:
W ^ ( l ) ⇒ 1 2 W ^ ( l ) \hat {\mathcal W}^{(l)} \Rightarrow \frac{1}{2} \hat {\mathcal W}^{(l)} W^(l)⇒21W^(l)这里说明的是:在训练神经网络的过程中,假设能使损失函数达到最小的权重、偏置信息 W ^ , b ^ \hat {\mathcal W},\hat b W^,b^不是唯一确定的。最终获取损失函数最小的 W ^ , b ^ \hat {\mathcal W},\hat b W^,b^的大小取决于多种情况。例如:开始训练之前,对权重、偏置的初始化结果 W i n i t , b i n i t \mathcal W_{init},b_{init} Winit,binit的大小。
随机初始化的 W i n i t , b i n i t \mathcal W_{init},b_{init} Winit,binit虽然各不相同,并且可能差异极大,但并不影响该参数在反向传播过程中使得损失函数达到最小。也就是说,如果训练了若干次神经网络,并且都使损失函数达到了最小值,但每次训练产生的最终模型参数 W , b \mathcal W,b W,b可能是一组一组不同的值。
从理论上来说,我们仅需要观察损失函数达到最小对应的最优模型参数即可,但真实情况下,效果并非如此。
如果我们的数据集是一个全集:描述该任务中的所有样本均包含在数据集合中,即便参数不唯一,也不会影响最终的预测结果。
在极大似然估计与最大后验概率估计中介绍过,在面对任务时,它对应的真实模型是客观存在的。也就是说,该真实模型可以源源不断地生成样本。因此,想要从真实模型中采样是永远采不完的。
其次,如果真的得到一个全集,我们完全可以通过查询的方式得到对应结果。并且它是完全正确的。那就没有必要使用机器学习算法来解决该问题了。
同理,如果我们的预测任务仅仅在训练集中使用,参数不唯一同样不会影响最终预测结果。
但机器学习的目的就是用来预测未知(训练集之外)的数据,这种做法与机器学习的目的相悖,没有使用意义。
假设在训练集经过若干次训练,得到了若干组各自之间存在差异的模型参数。这些模型参数有大有小,在对陌生数据使用模型进行预测时,不同大小参数计算得到对应的 Softmax \text{Softmax} Softmax分量有大有小,最终可能导致分类存在差异的情况。
并且,样本自身存在噪声,也有可能存在 大的模型参数 和噪声之间的线性计算有可能主导了分类结果。使得最后判断的结果更容易出错。既然不同模型参数可能带来更多问题,我们是否可以寻找方法来约束一下参数 ? ? ?
针对上述问题,一种想法是约束模型参数的可行域范围:如果参数在可行域范围内,对于该参数的结果会认可;反之如果可行域范围之外,存在使得损失函数值更小的模型参数,也不会认可该参数。
关于可行域范围的描述,这里使用范数进行表示:
这里以
L 2 L_2 L2范数为例。
这里
J \mathcal J J依然表示损失函数;
C \mathcal C C表示可行域范围的常数,它表示权重空间中的点
W \mathcal W W到原点之间的距离
≤ C \leq \mathcal C ≤C.这里将
b b b归纳进
W \mathcal W W中,省略。
关于损失函数 J \mathcal J J以及正则项 ∣ ∣ W ∣ ∣ 2 − C ||\mathcal W||_2 - \mathcal C ∣∣W∣∣2−C对应在权重特征空间中的范围表示如下:
作为约束条件的正则项(绿色圆),在圆内(包含边界)都是它的可行域范围;而褐色线表示损失函数的等高线,椭圆越小,它对应的权重的结果越优,损失函数越小。
为什么要选择蓝色点:实际上选择任意绿色圆内褐色线上的点都是满足约束要求的。但是只有蓝色点权重的向量分量对梯度下降方向的分量的比重最大。也可以理解成约束条件下的最优方向/权重。
这明显是一个带约束的优化问题。使用拉格朗日乘数法,对目标函数 L ( W , λ ) \mathcal L(\mathcal W,\lambda) L(W,λ)进行表示:
L ( W , λ ) = J ( W ) + λ ( ∣ ∣ W ∣ ∣ 2 − C ) \mathcal L(\mathcal W,\lambda) = \mathcal J(\mathcal W) + \lambda (||\mathcal W||_2 - \mathcal C) L(W,λ)=J(W)+λ(∣∣W∣∣2−C)
由于是不等式约束,基于目标函数的优化结果可表示为:
其中
λ \lambda λ表示‘拉格朗日乘子’。
{ min W max λ L ( W , λ ) s . t . λ ≥ 0 \begin{cases} \mathop{\min}\limits_{\mathcal W} \mathop{\max}\limits_{\lambda} \mathcal L(\mathcal W,\lambda) \\ s.t. \quad \lambda \geq 0 \end{cases} {WminλmaxL(W,λ)s.t.λ≥0
将目标函数 L ( W , λ ) \mathcal L(\mathcal W,\lambda) L(W,λ)展开,得到如下结果:
{ L ( W , λ ) = J ( W ) + λ ( ∣ ∣ W ∣ ∣ 2 − C ) = J ( W ) + λ ∣ ∣ W ∣ ∣ 2 − λ ⋅ C L ( W , λ ) = J ( W ) + λ ∣ ∣ W ∣ ∣ 2 \begin{cases} \begin{aligned}\mathcal L(\mathcal W,\lambda) & = \mathcal J(\mathcal W) + \lambda(||\mathcal W||_2 - \mathcal C) \\ & = \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2 -\lambda \cdot \mathcal C \end{aligned}\\ \mathcal L(\mathcal W,\lambda) = \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2 \end{cases} ⎩ ⎨ ⎧L(W,λ)=J(W)+λ(∣∣W∣∣2−C)=J(W)+λ∣∣W∣∣2−λ⋅CL(W,λ)=J(W)+λ∣∣W∣∣2
其中上面的表示拉格朗日乘数法得到的结果;下面是常见的正则化表达结果。由于 λ , C \lambda,\mathcal C λ,C均是常数,对于求解最优权重 W \mathcal W W不影响,从而有:
对两目标函数对
W \mathcal W W求解梯度,由于常数
λ ⋅ C \lambda \cdot \mathcal C λ⋅C的梯度是
0 0 0,求出的
W \mathcal W W最值自然是相同的。
arg W ( min W max λ J ( W ) + λ ∣ ∣ W ∣ ∣ 2 − λ ⋅ C s . t . λ ≥ 0 ) = arg W ( min W max λ J ( W ) + λ ∣ ∣ W ∣ ∣ 2 s . t . λ ≥ 0 ) \mathop{\arg}\limits_{\mathcal W} \begin{pmatrix}\mathop{\min}\limits_{\mathcal W} \mathop{\max}\limits_{\lambda} \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2 -\lambda \cdot \mathcal C \\ s.t. \quad \lambda \geq 0\end{pmatrix} = \mathop{\arg}\limits_{\mathcal W} \begin{pmatrix}\mathop{\min}\limits_{\mathcal W} \mathop{\max}\limits_{\lambda} \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2 \\ s.t. \quad \lambda \geq 0\end{pmatrix} Warg(WminλmaxJ(W)+λ∣∣W∣∣2−λ⋅Cs.t.λ≥0)=Warg(WminλmaxJ(W)+λ∣∣W∣∣2s.t.λ≥0)
至此,关于正则化与拉格朗日乘数法得到的关于 W \mathcal W W的优化解是等价的。
关于 C \mathcal C C的物理意义是:某权重点在权重空间中到原点的距离。就是上述绿色圆的半径。
但从上述正则化的角度观察,它并没有对常数 C \mathcal C C进行约束,那么是否可以说明常数 C \mathcal C C不重要呢?
自然不是。
在使用梯度下降法优化模型参数 W \mathcal W W的过程中,每次迭代产生的梯度均与真正梯度结果大小相等,方向相反:
W ( t + 1 ) ⇐ W ( t ) − η ⋅ ∂ L ( W ( t ) ) ∂ W ( t ) \mathcal W^{(t+1)} \Leftarrow \mathcal W^{(t)} - \eta \cdot \frac{\partial \mathcal L(\mathcal W^{(t)})}{\partial \mathcal W^{(t)}} W(t+1)⇐W(t)−η⋅∂W(t)∂L(W(t))
但是加入正则化后,我们的权重被约束在绿色圆范围内。而这个绿色圆的范围,也就是半径 C \mathcal C C并不是一成不变的,而是需要达到一种微妙的平衡:
虽然我们没有直接约束 C \mathcal C C,但是我们可以通过约束 λ \lambda λ来约束绿色圆的范围。并且另一个重要原因是:调整 λ \lambda λ,从而调整 C \mathcal C C,最终实现蓝色点梯度与真正梯度大小相等。
如果每次迭代过程内,梯度的大小被确定的情况下, λ ⋅ C \lambda \cdot \mathcal C λ⋅C被约束在了一个确定的范围:
这里有一道正则化与偏差方差的题,这里挖一个坑,后续介绍
传送门下一节将继续介绍正则化——从权重衰减的角度观察。
相关参考:
“L1和L2正则化”直观理解(之一),从拉格朗日乘数法角度进行理解