深度学习笔记——正则化方法

文章目录

  • 深度学习中的正则化和优化
  • 1、正则化方法
    • 1.1 数据增强(Data Augmentation)
    • 1.2 L1 和L2正则化
      • L2正则化
      • L1正则化
      • L1与L2正则化
    • 1.3 添加噪声
    • 1.4 提前终止(early stopping)
    • 1.4 参数共享
    • 1.5 稀疏正则化
    • 1.6 Dropout

深度学习中的正则化和优化

深度学习中,正则化与优化策略占据了重要的地位,它们很大程度上决定了模型的泛化与收敛等性能。通过阅读《深度学习》,简要的总结了深度学习中的五大正则化方法和七大优化策略。

1、正则化方法

正则化通过对学习算法的修改,旨在减少泛化误差而不是训练误差。 从之前对方差和偏差( https://blog.csdn.net/qq_31827399/article/details/96730108 )的角度看,正则化技术就是以偏差的增加换取方差的减少 ,而且一个有效的正则化能显著减少方差而不是过度增加偏差。正则化技术是保证算法泛化能力的有效工具,因此算法正则化的研究成为机器学习中主要的研究主题。

在深度学习中常用的几种正则化策略:数据增强、L1 和L2正则化、提前终止、Dropout、Drop Connect、随机池化等。

1.1 数据增强(Data Augmentation)

让机器学习模型泛化得更好的最好办法是使用更多的数据进行训练,但是在实际运用中数据是有限的,为了实现这一目的,我们可以创建“假数据添加到训练集中。数据增强一般是通过向训练数据添加转换或扰动来人工增加训练数据集。

  • 常见的数据增强技术
任务 数据增强方式
对象识别(图像) 数据集的各种变换,如对图像的平移、旋转和缩放。
语音识别 注入噪声(通过将随机噪声添加到输入再进行训练能够大大改善神经网络的健壮性,也可以在隐藏层中注入噪声)

在实际运用中,也有对图像加入噪声的,如通过向图像添加高斯噪声,以及一个色调较低的版本是盐和胡椒噪音(它表现为随机的黑白像素在图像中传播,这类似于通过向图像添加高斯噪声而产生的效果,但可能具有较低的信息失真水平)
https://zhuanlan.zhihu.com/p/41679153

1.2 L1 和L2正则化

L1 和 L2 正则化是最常用的正则化方法,通过对目标函数 J 添加一个参数范数惩罚 Ω ( θ ) \Omega(\theta) Ω(θ),限制模型的学习能力。 J ^ ( t h e t a : X , y ) = J ( θ : X , y ) + α Ω ( θ ) \hat J(theta:\rm{X},y)=J (\theta:\rm{X},y)+\alpha\Omega(\theta) J^(theta:X,y)=J(θ:X,y)+αΩ(θ) α > = 0 \alpha>=0 α>=0衡量参数范数惩罚程度的超参数,在神经网络中,参数包括每层线性变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚;使用向量 ω \omega ω表示应受惩罚影响的权重,用向量 θ \theta θ表示所有参数。

当我们的训练算法最小化正则化后的目标函数 J ^ \hat J J^时,它会降低原始目标函数 J J J关于训练数据的误差并同时减少在某些衡量标准下参数 θ \theta θ(或参数子集)的规模。

L2正则化

L 2 L^2 L2参数正则化(也称为岭回归、Tikhonov正则)通常被称为权重衰减(weight decay),是通过向目标函数添加一个正则项 Ω ( θ ) = 1 2 ∥ ω ∥ 2 2 \Omega(\theta)=\frac{1}{2}\|\omega\|_2^2 Ω(θ)=21ω22 使权重更加接近原点。
r* 通过研究正则化后目标函数的梯度,可知加入权重衰减后会导致学习规则的修改,即在每步执行梯度更新前先收缩权重(乘以 ( 1 − ϵ α ) (1-\epsilon\alpha) (1ϵα) ϵ \epsilon ϵ学习率)。

  • 对目标函数进行二次近似,
    1)沿特征值较大的方向正则化影响较小。即 λ i ≫ α \lambda_i \gg\alpha λiα时, λ i λ i + α ≃ 1 \frac{\lambda_i}{\lambda_i+\alpha}\simeq 1 λi+αλi1
    2)沿特征值较小的方向,权重分量收缩到0。即 λ i ≪ α \lambda_i\ll\alpha λiα时, λ i λ i + α ≃ 0 \frac{\lambda_i}{\lambda_i+\alpha}\simeq 0 λi+αλi0

L2 正则化将能让深度学习算法感知到具有较高方差的输入 x,因此与输出目标的协方差较小(相对增加方差)的特征权重将会收缩。

L1正则化

L 1 L^1 L1正则化的参数惩罚项 Ω ( θ ) \Omega(\theta) Ω(θ)为各个参数的绝对值之和: Ω ( θ ) = ∣ ∣ w ∣ ∣ 1 = ∑ i ∣ w i ∣ \Omega(\theta)=||w||_1=\sum_i|w_i| Ω(θ)=w1=iwi
深度学习笔记——正则化方法_第1张图片

L1与L2正则化

(1)L1与L2正则化可看作对权重强加的约束,L2正则化将权重约束到一个 L 2 L^2 L2的球(圆)中,L1正则化将权重约束到一个 L 1 L^1 L1f范数限制的区域中。如上图的红色部分。权重衰减系数 α \alpha α约束着区域的大小

(2) 相比 L 2 L^2 L2正则化, L 1 L^1 L1正则化会产生更稀疏的解。
如果考虑Hessian矩阵是对角正定矩阵,我们得到 L 2 L^2 L2正则化的最优解是 ω i ~ = H i , i H i , i + α ω i ∗ \tilde{\omega_i}=\frac{H_{i,i}}{H_{i,i}+\alpha}\omega_i^{* } ωi~=Hi,i+αHi,iωi。如果 ω i ∗ ! = 0 \omega_i^{* }!= 0 ωi!=0(未正则化的解),则 ω i ~ ! = 0 \tilde{\omega_i}!=0 ωi~!=0(正则化后的解),这说明 L 2 L^2 L2正则化不会使参数变得稀疏,而 L 1 L^1 L1正则化有可能通过足够大的 α \alpha α实现稀疏( L 1 L^1 L1正则化的最优解: ω i ~ = s i g n ( ω i ∗ ) m a x ( ∣ ω i ∗ ∣ − α H i , i , 0 ) \tilde{\omega_i}=sign(ω^∗_i)max(|ω^∗_i|−\frac{\alpha}{H_{i,i}},0) ωi~=sign(ωi)max(ωiHi,iα,0))。

1.3 添加噪声

  • 将噪声加入到输入。这种情况一般作为数据增强策略进行,但是对于某些模型而言,向输入添加方差极小的噪声等价于对权重施加范数惩罚。
  • 将噪声加入到权重。这项技术主要用于循环神经网络。
  • 将噪声加入到输出。避免在实际运用中大多数数据集的标签会有一定错误的情况。例如"标签平滑"(能够防止模型追求确切概率而不影响模型学习正确分类)。

1.4 提前终止(early stopping)

  • 问题
    由于神经网络强大的表示能力,当训练次数过多时会经常遭遇过拟合,即训练误差会随时间推移减少,而验证集误差会再次上升
  • 提前终止:
    提前终止是一种正则化策略,我们只要返回使验证集误差最低的参数,就可以获得验证集误差更低的模型。在每次验证集误差有所改善后,我们存储模型参数的副本,直到在一定循环次数内没有进一步改善时,算法就会终止。,算法伪代码如下:
输入 :n为评估间隔步数,p为patience(即观察到p次更差的验证集表现后终止),w0为初始参数,k=0(k
  • 提前终止的优缺点:
    优:
    1、简单有效,具有正则化效果而不需要添加惩罚项或计算其梯度
    2、由于限制了训练迭代次数,减少了训练时的计算成本
    缺:
    1、训练期间要定期评估验证集
    2、需要保存最佳的参数副本(可以忽略)

  • 提前终止具有正则化效果
    提前终止为何具有正则化效果?其真正机制可理解为将优化过程的参数空间限制在初始参数值 θ 0 \theta_0 θ0的小邻域内。
    (1)提前终止和 L 2 L^2 L2正则化是等价的(在二阶近似、 λ i \lambda_i λi小的情况下),即 1 ϵ τ ≈ α \frac{1}{\epsilon\tau}\approx \alpha ϵτ1α。也就是说训练迭代次数 τ \tau τ和学习率 ϵ \epsilon ϵ起着与 L 2 L^2 L2正则化(权重衰减)系数 α \alpha α成反比的作用。
    (2)长度为 τ \tau τ的轨迹结束于 L 2 L^2 L2正则化目标的极小点,但是提前终止通常涉及监控验证集误差,以便在空间特别好的点处终止轨迹。
    (3)提前终止比 L 2 L^2 L2正则化更具有优势,提前终止能自动确定正则化的正确量,而权重衰减需要进行多个不同超参数的训练实验。

1.4 参数共享

参数范数惩罚或约束是相对于固定区域或点,但有时我们需要对模型参数之间的相关型进行惩罚,使模型参数尽量接近或者相等。
参数共享这种正则化方法就是强迫模型某些参数相等,这样的约束使之模型共享一组参数。
其显著优点就是,只有参数的子集需要被存储在内存中。对于特定的模型,如CNN,这可以显著减少模型所占用的内存,并且显著提高了网络大小而不需要相应的增加训练数据。

1.5 稀疏正则化

稀疏表示是一种间接地对模型参数施加复杂惩罚,通过惩罚神经网络的激活单元,稀疏化激活单元,使得许多元素为零。例如CNN中的稀疏连接。

1.6 Dropout

  • Dropout指暂时丢弃一部分神经元及其连接。随机丢弃神经元可以防止过拟合,同时指数级、高效地连接不同网络架构。神经元被丢弃的概率为 1 − p,减少神经元之间的共适应。隐藏层通常以 0.5 的概率丢弃神经元。使用完整网络(每个节点的输出权重为 p)对所有 2^n 个 dropout 神经元的样本平均值进行近似计算。Dropout 显著降低了过拟合,同时通过避免在训练数据上的训练节点提高了算法的学习速度。
计算方便 不适合训练数据太小(如小于5000)的网络
不限制适用的模型或训练过程 不适合宽度太窄的网络。否则大部分网络没有输入到输出的路径。
  • Dropout 与bagging
    Bagging 是通过结合多个模型降低泛化误差的技术,主要的做法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。而 Dropout 可以被认为是集成了大量深层神经网络的 Bagging 方法,因此它提供了一种廉价的 Bagging 集成近似方法,能够训练和评估值数据数量的神经网络。
    (1) Bagging:所有模型都是独立的。
      Dropout:所有模型共享参数,其中每个模型继承父神经网络参数的不同子集。参数共享使得在有限内存下表示指数级数量的模型变得可能。
    (2) Bagging:每个模型在其相应的训练集上训练到收敛。
      Dropout:大部分模型没有被显式地被训练,因为父神经网络通常很大,几乎不可能采样完指数级数量的子网络;取而代之的是,在单个步骤中训练一小部分子网络,通过参数共享使得剩余的子网络也有好的参数设定。

[1]深度学习

你可能感兴趣的:(机器学习)