🎨
Bible-DeepLearning
  • Introduction
  • 第6章 深度前馈网络
    • 6.1 例子:学习XOR
    • 6.2 基于梯度的学习
      • 6.2.1 代价函数
        • 6.2.1.1 使用最大似然学习条件分布
        • 6.2.1.2 学习条件统计量
      • 6.2.2 输出单元
        • 6.2.2.1 用于高斯输出分布的线性神单元
        • 6.2.2.2 用于Bernoulli输出分布的sigmoid单元
        • 6.2.2.3 用于Multinoulli输出分布的softmax单元
    • 6.3 隐藏单元
      • 6.3.1 ReLU及其扩展
      • 6.3.2 logistic sigmoid与双曲正切函数
      • 6.3.3 其他隐藏单元
      • 李宏毅补充 SELU
    • 6.4 架构设计
    • 6.5 反向传播和其他的微分算法
      • 6.5.1 计算图
      • 6.5.2 微积分中的链式法则
      • 6.5.3 递归地使用链式法则来实现反向传播
      • 6.5.4 全连接MLP中的反向传播计算
      • 6.5.5 符号到符号的导数
      • 6.5.6 一般化的反向传播
      • 6.5.7 实例:用于MLP 训练的反向传播
      • 6.5.8 复杂化
  • 第7章 深度学习中的正则化
    • 7.1 参数范数惩罚
      • 7.1.1 L2参数正则化
      • 7.1.2 L1参数正则化
    • 7.2 作为约束的范数惩罚
    • 7.3 正则化和欠约束问题
    • 7.4 数据集增强
    • 7.5 噪声鲁棒性
    • 7.6 半监督学习
    • 7.7 多任务学习
    • 7.8 提前终止
    • 7.9 参数绑定和参数共享
    • 7.10 稀疏表示
    • 7.11 Bagging 和其他集成方法
    • 7.12 Dropout
    • 7.13 对抗训练
    • 7.14 切面距离、正切传播和流形正切分类器
    • Ag补充 一些能用于提升比赛成绩的方法
  • 第8章 深度模型中的优化
    • 8.1 学习和纯优化有什么不同
      • 8.1.1 经验风险最小化
      • 8.1.2 代理损失函数和提前终止
      • 8.1.3 批量算法和小批量算法
    • 8.2 神经网络优化中的挑战
      • 8.2.1 病态
      • 8.2.2 局部极小值
      • 8.2.3 8.2.3 高原、鞍点和其他平坦区域
      • 8.2.4 悬崖和梯度爆炸
      • 8.2.5 长期依赖
      • 8.2.6 非精确梯度
    • 8.3 基本算法
      • 8.3.1 随机梯度下降
      • 8.3.2 动量
      • 8.3.3 Nesterov 动量
    • 8.4 参数初始化策略
    • 8.5 自适应学习率算法
      • 8.5.1 AdaGrad
      • 8.5.2 RMSProp
      • 8.5.3 Adam
      • 8.5.4 选择正确的优化算法
    • 8.6 二阶近似方法
      • 8.6.1 牛顿法
      • 8.6.2 共轭梯度
      • 8.6.3 BFGS
    • 8.7 优化策略和元算法
      • 8.7.1 批标准化
      • 8.7.2 坐标下降
      • 8.7.3 Polyak 平均
      • 8.7.4 监督预训练
      • 8.7.5 设计有助于优化的模型
  • 第9章 卷积网络
    • 9.1 卷积运算
    • 9.2 动机
    • 9.3 池化
    • 9.4 卷积与池化作为一种无限强的先验
    • 9.5 基本卷积函数的变体
    • 9.6 结构化输出
    • 9.7 数据类型
  • 第10章 序列建模:循环和递归网络
    • 10.1 展开计算图
    • 10.2 循环神经网络
      • 10.2.1 导师驱动过程和输出循环网络
      • 10.2.2 计算循环神经网络的梯度
      • 10.2.3 作为有向图模型的循环网络
      • 10.2.4 基于上下文的RNN序列建模
    • 10.3 双向RNN
    • 10.4 基于编码 - 解码的序列到序列架构
    • 10.5 深度循环网络
    • 10.6 递归神经网络
    • 10.7 长期依赖的挑战
    • 10.9 渗漏单元和其他多时间尺度的策略
    • 10.10 长短期记忆和其他门控RNN
      • 10.10.1 LSTM
      • 10.10.2 其他门控RNN
    • 10.11 优化长期依赖
      • 10.11.1 梯度截断
      • 10.11.2 引导信息流的正则化
    • 10.12 外显记忆
  • 第11章 实践方法论
    • 11.1 性能度量
    • 11.2 默认的基准模型
    • 11.3 决定是否收集更多数据
    • 11.4 选择超参数
      • 11.4.1 手动选择超参数
      • 11.4.3 网络搜索
      • 11.4.4 随机搜索
    • 11.5 调试策略
Powered by GitBook
On this page
  • 什么是L2正则化
  • L2正则化的效果
  • L2正则化在机器学习中的效果

Was this helpful?

  1. 第7章 深度学习中的正则化
  2. 7.1 参数范数惩罚

7.1.1 L2参数正则化

什么是L2正则化

[success] L2正则化,别名:权重衰减,weight decay,L2参数惩罚,岭回归,Tikhonov 正则

在第5.2节中我们已经看到过最简单而又最常见的参数范数惩罚,即通常被称为权重衰减(weight decay)的L2L^2L2参数范数惩罚。 这个正则化策略通过向目标函数添加一个正则项Ω(θ)=12∣∣w∣∣22\Omega(\theta) = \frac{1}{2} ||{w}||_2^2Ω(θ)=21​∣∣w∣∣22​,使权重更加接近原点。

[info] 更一般地,我们可以将参数正则化为接近空间中的任意特定点,令人惊讶的是这样也仍有正则化效果,但是特定点越接近真实值结果越好。 当我们不知道正确的值应该是正还是负时,零是有意义的默认值。 由于模型参数正则化为零的情况更为常见,我们将只探讨这种特殊情况。

例如假设要训练的模型与另一个已经训练的模型非常相似,可以令这个模型的参数接近已经训练模型的参数。

在其他学术圈,L2L^2L2也被称为岭回归或Tikhonov正则。

我们可以通过研究正则化后目标函数的梯度,洞察一些权重衰减的正则化表现。 为了简单起见,我们假定其中没有偏置参数,因此θ\thetaθ就是www。

[success] 在下文中会出现θ\thetaθ和w混用的情况,把所有θ\thetaθ都看作是w就可以了。

这样一个模型具有以下总的目标函数:

J~(w;X,y)=α2w⊤w+J(w;X,y)\begin{aligned} \tilde{J}(w;X, y) =\frac{\alpha}{2} w^\top w + J(w;X, y) \end{aligned}J~(w;X,y)=2α​w⊤w+J(w;X,y)​

[success] J(w;X,y)J(w;X, y)J(w;X,y)为基本代价函数。 J~(w;X,y)\tilde{J}(w;X, y)J~(w;X,y)正则化的代价函数。

与之对应的梯度为

∇wJ~(w;X,y)=αw+∇wJ(w;X,y)\begin{aligned} \nabla_{w} \tilde{J}(w;X,y) =\alpha w + \nabla_{w} J(w;X, y) \end{aligned}∇w​J~(w;X,y)=αw+∇w​J(w;X,y)​

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

w←w−ϵ(αw+∇wJ(w;X,y))\begin{aligned} w \leftarrow w - \epsilon(\alpha w + \nabla_{w} J(w;X, y)) \end{aligned}w←w−ϵ(αw+∇w​J(w;X,y))​

换种写法就是:

w←(1−ϵα)w−ϵ∇wJ(w;X,y)\begin{aligned} w \leftarrow (1-\epsilon \alpha)w - \epsilon \nabla_{w} J(w;X, y) \end{aligned}w←(1−ϵα)w−ϵ∇w​J(w;X,y)​

我们可以看到,加入权重衰减后会引起学习规则的修改,即在每步执行通常的梯度更新之前先收缩权重向量(将权重向量乘以一个常数因子)。

[success] 这就是“weight decay”的含义。

这是单个步骤发生的变化。 但是,在训练的整个过程会发生什么呢?

L2正则化的效果

我们进一步简化分析,令w∗w^*w∗为未正则化的目标函数取得最小训练误差时的权重向量,即w∗=arg⁡min⁡wJ(w)w^* = \arg\min_{w} J(w)w∗=argminw​J(w), 并在w∗w^*w∗的邻域对目标函数做二次近似。

[success] 当w=w时,J(w)取到最小值,此时∇wJ(w;X,y)=0\nabla_{w} J(w;X, y)=0∇w​J(w;X,y)=0。 *问:什么叫“对目标函数做二次近似”? 答:将目标函数按照泰勒公式展开,并保留其中的函数项、一阶项和二阶项。即:

J(θ)=J(w)≈J(w∗)+(w−w∗)⊤∇wJ(w;X,y)+12(w−w∗)⊤H(w−w∗)\begin{aligned} J(\theta) = J(w) \approx & J(w^*) + \\ & (w - w^*)^\top \nabla_{w} J(w;X, y) + \\ & \frac{1}{2}(w - w^*)^\top H (w - w^*) \end{aligned}J(θ)=J(w)≈​J(w∗)+(w−w∗)⊤∇w​J(w;X,y)+21​(w−w∗)⊤H(w−w∗)​

如果目标函数确实是二次的(如以均方误差拟合线性回归模型的情况),则该近似是完美的。

[success] 在二阶近似的过程中,将展开项中高于二阶的项都省略掉的,因此只是近似。 但如果目标函数本身是二次的,那么它展开后高于二阶的项都是0。省略的都是0项,因此说该近似是完美的。

近似的J^(θ)\hat J(\theta)J^(θ)如下

J^(θ)=J(w∗)+12(w−w∗)⊤H(w−w∗),\begin{aligned} \hat J(\theta) = J(w^*) + \frac{1}{2}(w - w^*)^\top H (w - w^*), \end{aligned}J^(θ)=J(w∗)+21​(w−w∗)⊤H(w−w∗),​

[danger] 注意这里是J^(θ)\hat J(\theta)J^(θ),表示对基本代价函数J(θ)J(\theta)J(θ)的近似,与上文中表示带正则化项的代价函数J~(θ)\tilde J(\theta)J~(θ)是不同的。

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

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

当J^\hat JJ^取得最小时,其梯度公式(7.7)

∇wJ^(w)=H(w−w∗)\begin{aligned} \nabla_{w} \hat{J}(w) = H (w - w^*) \end{aligned}∇w​J^(w)=H(w−w∗)​

为0。

[success] 公式(7.7)的意思是,函数J^(w)\hat J(w)J^(w)在w处的梯度为H(w−w∗)H (w - w^*)H(w−w∗)。

[warning] J^(w)\hat{J}(w)J^(w)的梯度∇wJ^(w)\nabla_{w} \hat{J}(w)∇w​J^(w)是怎么推导出来的?

为了研究权重衰减带来的影响,我们在式(7.7)中添加权重衰减的梯度。

[success] J^(θ)\hat J(\theta)J^(θ)近似J(θ)J(\theta)J(θ),所以认为∇wJ(θ)=∇wJ^(θ)\nabla_{w} {J}(\theta) = \nabla_{w} \hat{J}(\theta)∇w​J(θ)=∇w​J^(θ) 根据公式7.3,计算出∇wJ~(θ)=αw+∇wJ(θ)=αw+H(w−w∗)\nabla_{w} \tilde {J}(\theta) = \alpha w + \nabla_{w} {J}(\theta) = \alpha w + H(w-w^*)∇w​J~(θ)=αw+∇w​J(θ)=αw+H(w−w∗)

现在我们探讨最小化正则化后的J^\hat JJ^。 我们使用变量w~\tilde{w}w~表示此时的最优点:

αw~+H(w~−w∗)=0⇒(H+αI)w~=Hw∗⇒w~=(H+αI)−1Hw∗(7.10)\begin{aligned} & \alpha \tilde{w} + H (\tilde{w} - w^*) = 0 \\ \Rightarrow & (H + \alpha I) \tilde{w} = H w^* \\ \Rightarrow & \tilde{w} = (H + \alpha I)^{-1} H w^* & (7.10) \end{aligned}⇒⇒​αw~+H(w~−w∗)=0(H+αI)w~=Hw∗w~=(H+αI)−1Hw∗​(7.10)​

当α\alphaα趋向于0时,正则化的解w~\tilde{w}w~会趋向w∗w^*w∗。 那么当α\alphaα增加时会发生什么呢? 因为H是实对称的,所以我们可以将其分解为一个对角矩阵Λ\LambdaΛ和一组特征向量的标准正交基QQQ,并且有H=QΛQ⊤H = Q \Lambda Q^\topH=QΛQ⊤。

将其应用于公式7.10,可得:

w~=(QΛQ⊤+αI)−1QΛQ⊤w∗=[Q(Λ+αI)Q⊤]−1QΛQ⊤w∗=Q(Λ+αI)−1ΛQ⊤w∗(7.13)\begin{aligned} \tilde w &= ( Q \Lambda Q^\top + \alpha I)^{-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^* & (7.13) \end{aligned}w~​=(QΛQ⊤+αI)−1QΛQ⊤w∗=[Q(Λ+αI)Q⊤]−1QΛQ⊤w∗=Q(Λ+αI)−1ΛQ⊤w∗​(7.13)​

[success] 以上公式推导过程会用到标准正交矩阵的性质。 Q是标准正交矩阵,因此满足Q⊤=Q−1Q^\top = Q^{-1}Q⊤=Q−1

我们可以看到权重衰减的效果是沿着由H的特征向量所定义的轴缩放w∗w^*w∗。

[success] Q是H的特征向量组成的矩阵。因此公式7.13看作是对w*沿着H的特征向量所定义的轴缩放。

具体来说,我们会根据λiλi+α\frac{\lambda_i}{\lambda_i + \alpha}λi​+αλi​​因子缩放与HHH第iii个特征向量对齐的w∗w^*w∗的分量。

[success] (Λ+αI)−1Λ( \Lambda+ \alpha I)^{-1} \Lambda(Λ+αI)−1Λ是对角矩阵,对角线上的值为λiλi+α\frac{\lambda_i}{\lambda_i + \alpha}λi​+αλi​​,因此可以把对角线的值可以看作是对应特征向量的轴上的缩放比例。

(不妨查看图2.3回顾这种缩放的原理)。

沿着H特征值较大的方向(如λi≫α\lambda_i \gg \alphaλi​≫α)正则化的影响较小。 而λi≪α\lambda_i \ll \alphaλi​≪α的分量将会收缩到几乎为零。 这种效应如图7.1所示。

只有在显著减小目标函数方向上的参数会保留得相对完好。

[warning] “显著减小目标函数方向”与"λ\lambdaλ很大的方向"怎么联系?

在无助于目标函数减小的方向(对应Hessian矩阵较小的特征值)上改变参数不会显著增加梯度。 这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。

L2正则化在机器学习中的效果

目前为止,我们讨论了权重衰减对优化一个抽象通用的二次代价函数的影响。 这些影响具体是怎么和机器学习关联的呢? 我们可以研究线性回归,它的真实代价函数是二次的,因此我们可以使用相同的方法分析。 再次应用分析,我们会在这种情况下得到相同的结果,但这次我们使用训练数据的术语表述。 线性回归的代价函数是平方误差之和:

[warning] 对于线性回归来说,cross-entropy代价函数与MSE代价函数是等价的。 其它情况呢?怎么计算cross entropy的代价函数。

(Xw−y)⊤(Xw−y)\begin{aligned} (X w - y)^\top (X w - y) \end{aligned}(Xw−y)⊤(Xw−y)​

我们添加L2L^2L2正则项后,目标函数变为

(Xw−y)⊤(Xw−y)+12αw⊤w.\begin{aligned} (X w - y)^\top (X w - y) + \frac{1}{2}\alpha w^\top w. \end{aligned}(Xw−y)⊤(Xw−y)+21​αw⊤w.​

这将普通方程的解从

w=(X⊤X)−1X⊤y(7.16)\begin{aligned} w = (X^\top X)^{-1} X^\top y & (7.16) \end{aligned}w=(X⊤X)−1X⊤y​(7.16)​

变为

w=(X⊤X+αI)−1X⊤y(7.17)\begin{aligned} w = (X^\top X + \alpha I)^{-1} X^\top y && (7.17) \end{aligned}w=(X⊤X+αI)−1X⊤y​​(7.17)​

公式7.16中的矩阵X⊤XX^\top XX⊤X与协方差矩阵1mX⊤X\frac{1}{m}X^\top Xm1​X⊤X成正比。 L2L^2L2正则项将这个矩阵替换为公式7.17中的(X⊤X+αI)−1(X^\top X + \alpha I)^{-1}(X⊤X+αI)−1 这个新矩阵与原来的是一样的,不同的仅仅是在对角加了α\alphaα。 这个矩阵的对角项对应每个输入特征的方差。 我们可以看到,L2L^2L2正则化能让学习算法“感知”到输入x具有较高的方差,这会使得学习算法压缩那些与输出目标的协方差较小(相对增加方差)的特征的权重。

[warning] [?]与输出目标的协方差?

Previous7.1 参数范数惩罚Next7.1.2 L1参数正则化

Last updated 5 years ago

Was this helpful?

[success]

[success] 根据Hessian矩阵的性质,当w处是极小值时,H矩阵是半正定的。

[success]

[info] 图2.3

Hessian矩阵
半正定矩阵
实对称矩阵的特征分解
标准正交