相关文章推荐
淡定的核桃  ·  python ...·  5 月前    · 
悲伤的沙滩裤  ·  Unable to mount Azure ...·  8 月前    · 
飘逸的萝卜  ·  ajax阻塞页面加载-掘金·  11 月前    · 

4 L1和l2正则化详解(花书7.1 参数范数惩罚)

7.1 参数范数惩罚

许多正则化方法通过对目标函数 J 添加一个 参数范数惩罚 \Omega (\theta) ,限制模型(如神经网络、线性回归和逻辑回归)的学习能力。将正则化后的目标函数记为:

\tilde{J}(\theta;X,y)=J(\theta;X,y)+\alpha\Omega(\theta) \\

其中 \alpha\in[0,\infty) 是权衡范数惩罚项 \Omega 和标准目标函数 J 相对贡献的超参数。

在神经网络中,参数包括每一层仿射变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚。

  • 精确拟合偏置所需的数据通常比拟合权重少得多
  • 每个权重会指定两个变量如何相互作用。而每个偏置仅控制一个单变量。这意味着不对偏置进行正则化也不会导致太大的方差
  • 正则化偏置参数可能会导致明显的欠拟合。

因此,我们使用向量 w 表示所有应受范数惩罚的权重,而 \theta 表示所有参数(包括 w 和无须正则化的参数)。

7.1.1 \boldsymbol{L^2} 参数正则化

权重衰减 (weight decay): L^2 参数范数惩罚。向目标函数添加一个正则项 \Omega(\theta)=\frac{1}{2}||w||_2^2 ,使权重更加接近原点。在其他学术圈, L^2 又被称为岭回归或Tikhonov正则。

通过研究正则化后目标函数的梯度,洞察一些权重衰减的正则化表现。

\tilde{J}(w;X,y)=\frac{\alpha}{2}w^{\top}w+J(w;X,y) \\

对应梯度为:

\nabla_w\tilde{J}(w;X,y)=\alpha w+\nabla_wJ(w;X,y) \\

使用单步梯度下降更新权重,即执行以下更新:

w\leftarrow w-\epsilon(\alpha w+\nabla_wJ(w;X,y)) \\

换种写法:

w\leftarrow (1-\epsilon\alpha)w-\epsilon\nabla_wJ(w;X,y) \\

我们可以看到,加入权重衰减后会引起学习规则的修改,即在每步执行通常的梯度更新之前先 收缩 权重向量(将权重向量乘以一个常数因子 \epsilon\alpha<1 )。这是单个步骤发生的变化。在训练的整个过程会发生什么呢?

1. w^* 未正则化的目标函数最小训练误差时的权重向量

w^* 未正则化的目标函数 取得最小训练误差时的权重向量,即

w^*=\arg \min_wJ(w);J最小时的w值 \\

并在 w^* 的领域对 未正则化的目标函数 做二次近似 [1] 。如果目标函数确实是二次的(如以均方误差拟合线性回归模型的情况),则该近似是完美的。近似的 \hat J(\theta) 如下:

\hat J(\theta)=J(w^*)+\frac{1}{2}(w-w^*)^\top H(w-w^*) \\ f(x)=f(x_0)+f'(x_0)x+\frac{f''(x_0)}{2!}(x-x_0)^2

其中 H J w^* 处计算的Hessian矩阵(关于 w )。

  • 因为 w^* 被定义为最优,即梯度消失为 0 ,所以该二次近似中没有一阶项。
  • 同样地,因为 w^* J 的一个最优点,我们可以得出 H 是半正定 [2] 的结论。

\hat J 取最小时,其梯度 \nabla_w\hat J(w)=H(w-w^*) \\

为0。

2. \tilde{w} 正则化后的目标函数最小训练误差时 的权重向量

\nabla_w\hat J(w)=\alpha w+H(w-w^*)=0 \\ \alpha \tilde w+H(\tilde w-w^*)=0 \\ (\alpha I+H)\tilde w=Hw^* \\ \tilde w=(\alpha I+H)^{-1}Hw^*

\alpha 趋向于 0 时,正则化的解 \tilde w 会趋向于 w^*

\alpha 增加时会发生什么呢? 开始高危操作: 因为Hessian H 是实对称 [3] 的,所以可以分解为一个对角矩阵 \Lambda 和一组特征向量的标准正交基 Q 。并且有 H=Q\Lambda Q^\top ,所以:

\begin{align} &\tilde w=(H+\alpha I)^{-1}Hw^* \\ &=(Q\Lambda Q^\top+\alpha I)^{-1} Q\Lambda Q^\top w^* \\ &=(Q\Lambda Q^\top+Q\alpha I Q^\top)^{-1} Q\Lambda Q^\top w^* \\ &=(Q(\Lambda+\alpha I) Q^\top)^{-1} Q\Lambda Q^\top w^* \\ &=Q(\Lambda+\alpha I )^{-1} \Lambda Q^\top w^* \end{align} \\

注意:

  • 推导过程需要严谨,待确认
  • (\Lambda+\alpha I )^{-1} \Lambda

我们可以看到权重衰减的效果是沿着 H 的特征向量所定义的轴缩放 w^* 。具体来说,我们会根据 \frac{\lambda_i}{\lambda_i+\alpha} 因子缩放与 H i 个特征向量对齐的 w^* 的分量。(可查看图2.3,回顾这种缩放的原理)

7.1.2 \boldsymbol{L^1} 正则化

L^2 权重衰减是 权重衰减最常见的形式;

L^1 限制参数的规模;

形式地,对模型参数 w L^1 正则化定义为,即各个参数的绝对值之和:

\Omega(\theta)=||w||_1=\sum_i|w_i| \\

正则化的目标函数:

\tilde J(w;X,y)=\alpha||w||_1+J(w;X,y) \\

对应的梯度(实际上是次梯度)

\nabla_w\tilde J(w;X,y)=\alpha\;\rm{sign} (w)+\nabla_wJ(w;X,y) \qquad\qquad\qquad(7.20)\\

其中 \mathrm{sign}(w) 只是简单地取 w 各个元素的正负号,例如: \alpha \mathrm{sign} (w)=+\alpha+\alpha -\alpha

观察式(7.20),我们立刻发现 L^1 的正则化效果与 L^2 大不一样。具体来说,正则化对梯度的影响不再是线性地缩放每个 w_i ;而是添加了一项与 \mathrm {sign} (w_i) 同号的常数。使用这种形式的梯度之后,我们不一定能得到 J(w;X,y) 二次近似的直接算术解( L^2 正则化时可以)。

假设1: 简单的线性模型具有二次代价函数,我们可以通过泰勒级数表示。或者我们可以设想,这是逼近更复杂模型的代价函数的阶段泰勒级数。在这个 设定 下,梯度由下式给出:

\nabla_w\hat J(w)=H(w-w^*);同样,H是J在w^*处关于w的Hessian矩阵 \\

假设2: 由于 L^1 惩罚项在完全一般化的Hessian的情况下,无法得到直接清晰的代数表达式,因此我们将进一步简化假设Hessian是对角的,即 H=\mathrm{diag}([H_{1,1},...,H_{n,n}]) ,其中每个 H_{i,i}>0 。如果线性回归问题中的数据已被预处理(如可以使用PCA),去除了输入特征之间的相关性,那么这一 假设 成立。

L^1 正则化目标函数的二次近似分解成关于参数的求和:

\tilde J(w;X,y)=J(w^*;X,y)+\sum_i[\frac{1}{2}H_{i,i}(w_i-w_i^*)^2+\alpha|w_i|] \\

其中: J(w^*;X,y) 是常数项

如下列形式的解析解(对每一维 i )可以最小化上面这个近似代价函数 \tilde J

w_i=\mathrm{sign}(w_i^*)max\left \{|w_i^*|-\frac{\alpha}{H_{i,i}},0\right \} \\


\begin{align} &\sum_i[\frac{1}{2}H_{i,i}(w_i-w_i^*)^2+\alpha|w_i|] \\ & \Rightarrow\frac{1}{2}(w_i-w_i^*)^2+\frac{\alpha}{H_{i,i}}|w_i| \\ &=\frac{1}{2}[(w_i)^2-2w_iw_i^*+(w_i^*)^2]+\frac{\alpha}{H_{i,i}}|w_i| \\ &=\frac{1}{2}[(w_i)^2+(w_i^*)^2]+\frac{\alpha}{H_{i,i}}|w_i|-w_iw_i^* \end{align}

如果:

  • w_i>0 \frac{\alpha}{H_{i,i}}|w_i|-w_iw_i^*=(\frac{\alpha}{H_{i,i}}-w_i^*)w_i
  • w_i<0 \frac{\alpha}{H_{i,i}}|w_i|-w_iw_i^*=-\frac{\alpha}{H_{i,i}}w_i-w_iw_i^*=-(\frac{\alpha}{H_{i,i}}+w_i^*)w_i
  • 推导过程需要严谨,待确认

\frac{\alpha}{H_{i,i}}|w_i|-w_iw_i^*=a|w_i|-bw_i ,求 a|w_i|-bw_i 最小值,去掉绝对值号,无非两种情况:

  • a|w_i|-bw_i=aw_i-b_wi=(a-b)w_i
  • a|w_i|-bw_i=a(-w_i)-bw_i=-(a+b)w_i
  • a肯定大于0
  • 对b分情况讨论
    • b>0
      • a-b>0,最为值 w_i=0
      • a-b<0,
    • b<0
      • a+b>0
      • a_b<0


相比 L^2 正则化, L^1 正则化会产生更 稀疏(sparse) 的解。 L^1 正则化有可能通过足够大的 \alpha 实现稀疏。由 L^1 正则化导出的稀疏性质已经被广泛地用于 特征选择

正则化的目标函数: \tilde J(w;X,y)=\alpha||w||_1+J(w;X,y)

标准目标函数: J(w;X,y)

正则化目标函数的近似: \hat J(w;X,y)




泰勒级数

定义 :如果 f(x) 在点 x=x_0 具有任意阶导数,则幂级数

\sum_{n=0}^\infty \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+...

称为 f(x) 在点 x_0 处的泰勒级数。

在泰勒公式中,取 x_0=0 ,得到的级数 \sum_{n=0}^{\infty}\frac{f^{(n)}(0)}{n!}x^n 称为 麦克劳林 级数。函数 f(x) 的麦克劳林级数是 x 幂级数 ,那么这种展开是唯一的,且必然与 f(x) 的麦克劳林级数一致。

半正定

在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。在 线性代数 中,正定矩阵的性质类似 复数 中的 实数

  • 复数:我们把形如 z=a+bi a,b 均为实数)的数称为复数。
  • 实数:实数,是有理数和无理数的总称。数学上,实数定义为与数轴上的实数,点相对应的
  • 正定矩阵 广义定义:设 M n 阶方阵,如果对任何非零向量 \mathbb z ,都有 \mathbb z^\top M \mathbb z>0 ,其中 \mathbb z^\top 表示 \mathbb z 的转置,就称 M 为正定矩阵。
  • 半正定矩阵 :是 正定矩阵 的推广。实对称矩阵 M 称为半正定的,如果二次型 \mathbb z^\top M\mathbb z 半正定,即对于任意不为0的实列向量 \mathbb z ,都有 \mathbb z^\top M\mathbb z\geq0

参考

  1. ^ 泰勒公式
  2. ^ 半正定
  3. ^ 实对称矩阵
编辑于 2022-05-31 19:51

文章被以下专栏收录