神经网络模型应用到机器学习时的难点问题:

  • 优化问题
    • 神经网络的损失函数是一个非凸函数,找到全局最优解比较困难
    • 神经网络的参数很多,训练数据也大,无法使用代价很高的二阶优化方法,但一阶优化方法的训练效率通常比较低
    • 深度神经网络存在梯度消失或梯度爆炸问题,导致基于梯度的优化方法经常失效
  • 泛化问题
    • 深度神经网络的复杂度较高,拟合能力很强,但很容易过拟合训练集
    • 需要一定的正则化方法来改进网络的泛化能力

第 7 章 网络优化与正则化 - 图1

7.1 网络优化

网络优化:寻找一个神经网络模型来使得经验(或结构)风险最小化的过程,包括模型选择以及参数学习等

7.1.1 网络结构多样性

  • 由于网络结构的多样性,很难找到一种通用的优化方法
  • 神经网络的超参数一般比较多,也给优化带来了很大的挑战

7.1.2 高维度变量的非凸优化

非凸优化问题 主要难点
低维空间 如何选择初始化参数 & 逃离局部最优点
高维空间 如何逃离鞍点
驻点 梯度为 0 的点
局部最小值 梯度为 0 的点,且要求在每一维度上都是最低点,概率非常低
鞍点 梯度为 0 的点,但在一些维度上是最高点,在另一些维度上是最低点;
高维空间大部分驻点都是鞍点;
逃离鞍点:基于梯度下降的优化方法会在鞍点附近接近停滞,使用随机梯度下降,通过在梯度方向上引入随机性,可以有效地逃离鞍点

image.png

  • 平坦最小值:神经网络参数多且有一定冗余性,使得每单个参数队最终损失影响都较小,导致损失函数在局部最小解附近通常是一个平坦区域,称为平坦最小值
    • 平坦最小值邻域的点的损失都比较接近,因此训练神经网络时,不需要精确地找到一个局部最小值,只要在局部最小值的邻域中即可
    • 平坦最小值和模型泛化能力有一定关系:
      • 当模型收敛到平坦的局部最小值时,其鲁棒性更好,即微小的参数变动不会剧烈影响模型能力
      • 当模型收敛到尖锐的局部最小值时,其鲁棒性较差
      • 具备良好泛化能力的模型通常应该是鲁棒的,因此,理想的局部最小值应该是平坦的

image.png

  • 局部最小值的等价性
    • 在非常大的神经网络中,大部分的局部最小解是等价的,它们在测试集上性能都比较相似
    • 而且,局部最小解对应的训练损失都可能非常接近于全局最小解对应的训练损失
    • 因此,训练神经网络时,通常没有必要找全局最小值,这反而可能导致过拟合

7.1.3 神经网络优化的改善方法

  • 改善神经网络优化的目标:找到更好的局部最小值 和 提高优化效率

    • 虽然上面提到局部最小值的等价性,但指的是这些局部最优解在训练集上的损失接近,而它们的泛化能力差异很大,需要寻找一个泛化能力高的局部最优解
  • 神经网络优化的改善方法:

    • 使用更有效的优化算法来提高梯度下降优化方法的效率和稳定性,比如:动态学习率调整、梯度估计修正等
    • 使用更好的参数初始化方法数据预处理方法来提高优化效率
    • 修改网络结构来得到更好的优化地形,比如:使用 ReLU 激活函数、残差连接、逐层归一化
      • 优化地形:指高维空间中损失函数的曲面形状,好的优化地形通常比较平滑
    • 使用更好的超参数优化方法

7.2 优化算法

  • 深度神经网络的参数学习主要通过梯度下降法来寻找一组可以最小化结构风险的参数
  • 梯度下降法可以分为:
    • 批量梯度下降
    • 随机梯度下降
    • 小批量梯度下降

第 7 章 网络优化与正则化 - 图4

7.2.1 小批量梯度下降

出于计算资源开销和训练速度等考虑,训练深度神经网络时,经常使用小批量梯度下降法

小批量梯度下降公式:

  • 第 7 章 网络优化与正则化 - 图5 表示一个深度神经网络,θ 为网络参数,K 为批量大小
  • 第 t 次迭代时损失函数关于参数 θ 的偏导数:第 7 章 网络优化与正则化 - 图6
  • 第 t 次更新的梯度 第 7 章 网络优化与正则化 - 图7
  • 使用梯度下降法更新参数:第 7 章 网络优化与正则化 - 图8
  • 每次迭代时参数更新的差值 第 7 章 网络优化与正则化 - 图9,标准的小批量梯度下降中 第 7 章 网络优化与正则化 - 图10

  • 影响小批量梯度下降的主要因素:

    • 批量大小 K
    • 学习率 α
    • 梯度估计
  • 可以从以上三点入手,对梯度下降法进行改进,加快优化速度

7.2.2 批量大小选择

批量大小 K 不影响随机梯度的期望,但会影响随机梯度的方差:

  • 批量大小越大,随机梯度的方差越小,引入的噪声也越小,训练也越稳定,因此可以设置较大的学习率
  • 批量大小较小时,则需要设置较小的学习率,否则模型会不收敛

学习率通常要随着批量大小的增大而增大,可以使用线性缩放规则

  • 线性缩放规则:当批量大小增大 m 倍时,学习率也增加 m 倍
    • s适用于批量大小较小时,否则会使训练不稳定
概念 定义
回合 Epoch 所有训练集的样本更新一遍为一个回合
迭代 Iteration 每一次小批量更新为一次迭代
  • 批量大小和模型泛化能力也有一定关系:
    • 批量越大,越有可能收敛到尖锐最小值
    • 批量越小,越有可能收敛到平坦最小值

7.2.3 学习率调整

学习率 α 对梯度下降优化的影响:

  • 学习率太大,就不收敛
  • 学习率太小,收敛太慢

第 7 章 网络优化与正则化 - 图11

7.2.3.1 学习率衰减

学习率一开始要保持大些来保证收敛速度,在收敛到最优点附近时要小些以避免来回震荡,可以通过学习率衰减、学习率退火实现

常见的学习率衰减方式:(β 为衰减率)

  • 分段常数衰减、阶梯衰减:根据经验设置
  • 逆时衰减:第 7 章 网络优化与正则化 - 图12
  • 指数衰减:第 7 章 网络优化与正则化 - 图13,β<1
  • 自然指数衰减:第 7 章 网络优化与正则化 - 图14
  • 余弦衰减:第 7 章 网络优化与正则化 - 图15,T 为总的迭代次数

image.png

7.2.3.2 学习率预热

为了提高训练稳定性,可以在最初采用较小的学习率,逐渐恢复到初始学习率(预热期),预热过程结束后再选择一种学习率衰减方式逐渐降低学习率

逐渐预热第 7 章 网络优化与正则化 - 图17

7.2.3.3 周期性学习率调整

周期性地增大学习率有助于逃离尖锐最小值或鞍点,虽然短期内可能损害优化过程,使得网络收敛的稳定新变差,但长期来看有助于找到更好的局部最优解

两种常用的周期性调整学习率的方法:

  • 循环学习率:即让学习率在一个区间内周期性地增大或缩小
    • 三角循环学习率:使用线性缩放来调整学习率
  • 带热重启的随机梯度下降 SGDR:学习率每隔一定周期后重新初始化为某个预先设定值,然后逐渐采用余弦衰减降低学习率
    • 重启周期 第 7 章 网络优化与正则化 - 图18 可以随着重启次数逐渐增加
    • 每个周期中学习率地上界也逐步衰减

image.png

7.2.3.4 AdaGrad 算法

AdaGrad 算法:借鉴 L2 正则化的思想,每次迭代时自适应地调整每个参数的学习率

  • 第 t 次迭代时,每个参数梯度平方的累积值第 7 章 网络优化与正则化 - 图20
  • 参数更新差值第 7 章 网络优化与正则化 - 图21, 第 7 章 网络优化与正则化 - 图22,α 是初始学习率
  • 如果某个参数的偏导数累积较大,则学习率相对较小;如果某个参数偏导数累积较小,则学习率相对较大
  • 整体上随着迭代次数的增加,学习率逐渐缩小

AdaGrad 算法的缺点:经过一定次数的迭代依然没有找到最优点时,由于这时的学习率已经非常小,很难再继续找到最优点

7.2.3.5 RMSprop 算法

RMSprop 算法的优点:在有些情况下避免了 AdaGrad 算法中学习率不断单调下降以至于过早衰减的缺点

RMSprop 算法与 AdaGrad 算法的区别

  • 第 7 章 网络优化与正则化 - 图23 的计算由累积方式变成了指数衰减移动平均
  • 迭代过程中,每个参数的学习率并不是呈衰减趋势,可以变小也可以变大

  • 每次迭代梯度 第 7 章 网络优化与正则化 - 图24 平方的指数衰减移动平均第 7 章 网络优化与正则化 - 图25

    • β 为衰减率,一般取值 0.9
  • 参数更新差值第 7 章 网络优化与正则化 - 图26,α 是初始学习率,eg. 0.001

7.2.3.6 AdaDelta 算法

AdaDelta 算法

  • 类似 RMSprop 算法,都是通过梯度平方的指数衰减移动平均来调整学习率
  • 引入了每次参数更新差值 第 7 章 网络优化与正则化 - 图27 的指数衰减移动平均

    • 与 RMSprop 算法的差别:将初始学习率 α 改动为动态计算的 第 7 章 网络优化与正则化 - 图28,一定程度上抑制了学习率的波动
  • 第t次迭代梯度 第 7 章 网络优化与正则化 - 图29 平方的指数衰减移动平均第 7 章 网络优化与正则化 - 图30

    • β 为衰减率,一般取值 0.9
  • 第 t 次迭代时,参数更新差值 第 7 章 网络优化与正则化 - 图31 的指数衰减移动平均第 7 章 网络优化与正则化 - 图32
    • 第 7 章 网络优化与正则化 - 图33 为衰减率
  • 参数更新差值第 7 章 网络优化与正则化 - 图34

7.2.4 梯度估计修正

  • 问题:随机(小批量)梯度下降法中,如果每次选取的样本数量比较少,每次迭代的梯度估计和整个训练集上的最优梯度不一致,具有一定的随机性,即梯度估计随机性
  • 解决:
    • 增加批量大小
    • 梯度估计修正:使用最近一段时间内的平均梯度来代替当前时刻的随机梯度,作为参数更新的方向,从而提高优化速度

7.2.4.1 动量法

动量法:用之前累积动量(最近一段时间内梯度的加权平均值)来代替真正的梯度,每次迭代的梯度可以看作加速度

  • 当某个参数在最近一段时间内的梯度方向不一致时,其真实的参数更新幅度变小
  • 当某个参数在最近一段时间内的梯度方向都一致时,其真实的参数更新幅度变大,起到加速作用

动量法的优点:

  • 在迭代初期,梯度方向都比较一致,动量法会起到加速作用,可以更快地到达最优点
  • 在迭代后期,梯度方向不一致,在收敛值附近振荡,动量法会起到减速作用,增加稳定性

  • 第 t 次迭代时,计算负梯度的加权移动平均作为参数的更新方向第 7 章 网络优化与正则化 - 图35

    • 第 7 章 网络优化与正则化 - 图36 为动量因子,通常设为 0.9,α 为学习率

7.2.4.2 Nesterov 加速梯度/Nesterov 动量法

  • 参数更新方向第 7 章 网络优化与正则化 - 图37

image.png

7.2.4.3 Adam 算法

Adam 算法 ≈ 动量法 + RMSprop 算法

  • 类似动量法,计算梯度 第 7 章 网络优化与正则化 - 图39 的指数加权平均:第 7 章 网络优化与正则化 - 图40
  • 类似 RMSprop 算法,计算梯度平方 第 7 章 网络优化与正则化 - 图41 的指数加权平均:第 7 章 网络优化与正则化 - 图42
    • 第 7 章 网络优化与正则化 - 图43 是两个移动平均的衰减率,通常设 第 7 章 网络优化与正则化 - 图44
  • 偏差修正:第 7 章 网络优化与正则化 - 图45第 7 章 网络优化与正则化 - 图46
  • 参数更新差值第 7 章 网络优化与正则化 - 图47
    • 学习率通常设为 第 7 章 网络优化与正则化 - 图48,也可以进行衰减

7.2.4.4 梯度截断

梯度截断:解决梯度爆炸问题。将梯度的模限定在一个区间,当梯度的模大于或小于这个区间时就进行截断

两种梯度截断方法:

  • 按值截断第 7 章 网络优化与正则化 - 图49
    • 将梯度限制在区间 第 7 章 网络优化与正则化 - 图50
  • 按模截断:将梯度的模截断到一个给定的截断阈值 b
    • 第 7 章 网络优化与正则化 - 图51 ,保持 第 7 章 网络优化与正则化 - 图52 不变
    • 第 7 章 网络优化与正则化 - 图53第 7 章 网络优化与正则化 - 图54
    • 训练过程对阈值 b 并不十分敏感,通常一个小的阈值就可以得到很好的结果
    • 训练循环神经网络时,按模截断是避免梯度爆炸问题的有效方法

7.2.5 优化算法小结

image.png
以上几种优化方法在 MNIST 数据集上收敛性的比较:
image.png

优化算法的统一公式描述:第 7 章 网络优化与正则化 - 图57

  • 第 7 章 网络优化与正则化 - 图58第 7 章 网络优化与正则化 - 图59 为学习率缩放函数,可以取 1 或历史梯度的模的移动平均
  • 第 7 章 网络优化与正则化 - 图60第 7 章 网络优化与正则化 - 图61 为优化后的参数更新方向,可以取当前的梯度 第 7 章 网络优化与正则化 - 图62 或历史梯度的移动平均
  • 第 7 章 网络优化与正则化 - 图63

7.3 参数初始化

  • 参数初始值的选取关系到网络的优化效率和泛化能力
  • 尽管不同的局部最优解通常在训练集上的损失都比较接近,但是泛化能力差异很大,因此需要一个好的初始值,使得网络收敛到一个泛化能力高的局部最优解
  • 参数不能初始化为0,否则会遇到对称权重问题

第 7 章 网络优化与正则化 - 图64| 参数初始化的方式 | 说明 | | —- | —- | | 预训练初始化 | 使用一个已经在大规模数据上训练过的模型来提供好的初始参数值;
预训练模型在目标任务上的学习过程称为精调
现在利用预训练方法主要是为了带来更好的泛化性,而不再是为了解决网络优化问题 | | 随机初始化 | 对每个参数都随机初始化,以避免对称权重现象,是的不同神经元之间的区分性更好;
随机初始化通常只用在神经网络的权重矩阵上 | | 固定值初始化 | 根据经验用特殊的固定值进行初始化 |

7.3.1 基于固定方差的参数初始化

  • 固定方差:指的是方差 第 7 章 网络优化与正则化 - 图65 为一个预设值,和神经元的输入、激活函数以及所在层数无关
  • 基于固定方差的参数初始化:从一个固定均值(通常为 0)和方差 第 7 章 网络优化与正则化 - 图66 的分布中采样来生成参数的初始化

两种基于固定方差的参数初始化方法:

  • 高斯分布初始化:使用一个高斯分布 第 7 章 网络优化与正则化 - 图67 对每个参数进行随机初始化
  • 均匀分布初始化:在给定区间 第 7 章 网络优化与正则化 - 图68 内采用均匀分布来初始化参数
    • 方差:第 7 章 网络优化与正则化 - 图69
    • 所以,第 7 章 网络优化与正则化 - 图70

为了降低固定方差对网络性能以及优化效率的影响,基于固定方差的随机初始化方法通常要配合逐层归一化一起使用

7.3.2 基于方差缩放的参数初始化

方差缩放:初始化一个神经网络时,为了缓解梯度消失或梯度爆炸问题,需尽可能保持每个神经元的输入和输出方差一致,根据神经元的连接数量来自适应地调整初始化分布的方差,这类方法称为方差缩放

7.3.2.1 Xavier 初始化

7.3.2.2 He 初始化

image.png

7.3.3 正交初始化

  • 基于固定方差 or 方差缩放的参数初始化的问题:对权重矩阵中的每个参数进行独立采用,由于采样的随机性,采样出来的权重矩阵依然可能存在梯度消失或梯度爆炸问题
  • 改进:正交初始化

正交初始化:将权重矩阵初始化为正交矩阵,从而使得这个线性网络在信息的前向传播过程和误差的反向传播过程中都具有范数保持性,从而可以避免在训练开始时就出现梯度消失或梯度爆炸问题

正交初始化的步骤:

  • 用均值为 0,方差为 1 的高斯分布初始化一个矩阵
  • 将这个矩阵用奇异值分解得到两个正交矩阵,并使用其中之一作为权重矩阵

当在非线性网络中使用正交初始化时,通常要将正交矩阵乘以一个缩放系数 ρ

  • 当激活函数为 ReLU 时,激活函数在 0 附近的平均梯度可以近似为 0.5,为了保持范数不变,设置 第 7 章 网络优化与正则化 - 图72

正交初始化通常用在循环神经网络中循环边上的权重矩阵上

7.4 数据预处理

数据预处理:对于尺度敏感的模型,必须先对样本进行预处理,将各个维度的特征转换到相同的取值区间,并且消除不同特征之间的相关性,才能获得比较理想的结果

归一化:泛指把数据特征转换为相同尺度的方法

  • 相同尺度:可以是同一区间 [0,1] 或 [-1,1],也可以是服从均值为 0、方差为 1 的标准正态分布

常用的归一化方法:

  • 最小最大值归一化:将每一个特征的取值范围归一到 [0,1] 或 [-1,1]
    • 第 7 章 网络优化与正则化 - 图73
  • 标准化/Z 值归一化:将每一维特征都调整为均值为 0、方差为 1
    • 先计算均值 第 7 章 网络优化与正则化 - 图74 和方差 第 7 章 网络优化与正则化 - 图75
    • 第 7 章 网络优化与正则化 - 图76
    • 标准差 σ 不能为 0,若为 0 说明这一为特征没有任何区分性,可以直接删掉
  • 白化:用来降低输入数据特征之间的冗余性。输入数据经过白化处理后,特征之间的相关性降低,并且所有特征具有相同的方差
    • 白化的主要实现方式:主成分分析 PCA

image.png

7.5 逐层归一化

逐层归一化:对神经网络的隐藏层进行归一化,从而使得网络更容易训练

  • 逐层指的是可以应用在神经网络的任意一个中间层,实际上不需要对所有层都进行归一化

逐层归一化可以有效提高训练效率的原因:

  • 更好的尺度不变性
    • 把每个神经层的输入分布都归一化为标准正态分布,可以使得每个神经层对其输入具有更好的尺度不变性,缓解内部协变量偏移现象,从而可以更高效地进行参数初始化以及超参数选择
  • 更平滑的优化地形
    • 逐层归一化可以使得大部分神经层的输入处于不饱和区域,从而让梯度变大,避免梯度消失问题
    • 还可以使得神经网络的优化地形更加平滑,以及使梯度变得更加稳定,从而允许使用更大的学习率,并提高收敛速度

第 7 章 网络优化与正则化 - 图78

7.5.1 批量归一化 BN

批量归一化 Batch Normalization:是不同训练数据(小批量数据)之间对一个中间层的单个神经元进行归一化

  • 因此,要求小批量样本的数量不能太小,否则难以计算单个神经元的统计信息
  • 缺点:如果一个神经元的净输入的分布在神经网络中是动态变化的,比如循环神经网络,就无法应用批量归一化操作
  • 优点

    • 可以提高优化效率
    • 还可以作为一种隐形的正则化方法:训练时神经网络对一个样本的预测不仅和样本本身有关,还和同一批次的其他样本有关,由于选取批次时具有随机性,因此神经网络不会过拟合到某个特定样本
  • 归一化操作应用在净输入 第 7 章 网络优化与正则化 - 图79,为了提高归一化效率,不适合使用白化操作,一般使用标准化将 第 7 章 网络优化与正则化 - 图80 的每一维都归一到标准正态分布

  • 标准归一化是的取值集中到 0 附近,如果使用 Sigmoid 型激活函数,这个取值区间正好接近线性变换,减弱了神经网络的非线性性质,为了使得归一化不对网络的表示能力造成负面影响,可以通过增加一个附加的缩放和平移变换改变取值区间
    • 第 7 章 网络优化与正则化 - 图81
  • 批量归一化可以看作一个特殊的神经层,加在每一层非线性激活函数之前(因为批量归一化本身具有平移变换,所以仿射变换 第 7 章 网络优化与正则化 - 图82 不再需要偏置参数):
    • 第 7 章 网络优化与正则化 - 图83

7.5.2 层归一化 LN

层归一化 Layer Noemalization:是单个训练数据对一个中间层的所有神经元进行归一化
批量归一化的区别:对于 K 个样本的一个小批量集合 第 7 章 网络优化与正则化 - 图84

  • 层归一化是对矩阵 第 7 章 网络优化与正则化 - 图85 的每一列进行归一化(单个数据对于一层的所有神经元)
  • 批量归一化是对矩阵 第 7 章 网络优化与正则化 - 图86 的每一行进行归一化(所有数据对于一层的单个神经元)
  • 一般而言,批量归一化是是更好的选择,担当小批量样本数较小时,可以选择层归一化

image.png

7.5.3 权重归一化

权重归一化:通过在参数化方法,将连接权重进行归一化,分解为长度和方向两种参数

  • 权重 W 的第 i 行 第 7 章 网络优化与正则化 - 图88

  • 由于权重共享,权重数量往往比神经元数量要少,因此权重归一化的开销会比较小

7.5.4 局部响应归一化 LRN

局部响应归一化 Local Response Normalization,对邻近的特征映射进行局部归一化

  • 通常用在基于卷积的图像处理
  • 第 7 章 网络优化与正则化 - 图89

局部响应归一化和层归一化的异同:

  • 同:都是对同层的神经元进行归一化
  • 异:
    • 局部响应归一化应用在激活函数之后,只是对邻近的神经元进行局部归一化,并且不减去均值
    • 层归一化应用在激活函数之前,对同层的所有神经元进行归一化,且减去均值

局部响应归一化和最大汇聚的异同:

  • 同:都具有抑制作用(eg. 使用 ReLU 作为激活函数时,神经元的活性值没有限制,如果一个神经元活性值非常大,使用局部响应归一化,则和它邻近的神经元就近似的归一化为 0,起到抑制作用)
  • 异:
    • 局部响应归一化是对同一个位置的邻近特征映射中的神经元进行抑制
    • 最大汇聚是对同一个映射特征中的邻近位置中的神经元进行抑制

7.6 超参数优化

第 7 章 网络优化与正则化 - 图90 超参数优化的两个主要问题:

  • 超参数优化是一个组合问题,无法像一般参数那样通过梯度下降法来优化,也没有通用有效的优化方法
  • 评估一组超参数配置的时间非常高,从而导致一些优化方法在超参数优化中难以应用

超参数优化的目标函数:第 7 章 网络优化与正则化 - 图91,是衡量一组超参数配置 x 效果的函数,一般设置为开发集上的错误率

从某种角度来讲,深度学习使得机器学习中的“特征工程”问题转变为“网络架构工程”问题

第 7 章 网络优化与正则化 - 图92

7.6.1 网格搜索

网格搜索:通过尝试所有超参数的组合来寻找一组合适的超参数配置的方法

7.6.2 随机搜索

随机搜索:对超参数进行随机组合,然后选取一个性能最好的配置,避免网格搜索对不重要超参数的不必要尝试,一般比网格搜索更有效

缺点:网格搜索和随机搜索都没有利用不同超参数组合之间的相关性,一般都比较低效

7.6.3 贝叶斯优化

贝叶斯优化:是一种自适应的超参数优化方法,根据当前已经试验的超参数组合,来预测下一个可能带来最大收益的组合

时序模型优化:是一种比较常用的贝叶斯优化方法
image.png

贝叶斯优化的缺点:高斯过程建模需要计算协方差矩阵的逆,时间复杂度是 第 7 章 网络优化与正则化 - 图94,因此不能很好地处理高位情况

7.6.4 动态资源分配

动态资源分配:将有限的资源分配给更有可能带来收益的超参数
早期停止 Early-Stopping:通过一组超参数的学习曲线来预估这组超参数是否有希望得到比较好的结果,如果一组超参数配置的学习曲线不收敛或者收敛比较差,则中止当前训练

逐次减半方法:一种有效的动态资源分配方法,对于 N 组待尝试的超参数配置,可以通过 第 7 章 网络优化与正则化 - 图95 次逐轮次减半的方法来选取最优的配置
image.png

7.6.5 神经架构搜索

神经架构搜索:通过神经网络来自动实现网络架构的设计

  • 神经架构搜索利用一个控制器来生成另一个子网络的架构描述
  • 控制器可以由一个循环神经网络来实现,控制器的训练可以通过强化学习来实现,其奖励信号为生成的子网络在开发集上的准确率

7.7 网络正则化

机器学习模型的关键是泛化问题,即在样本真实分布上的期望风险最小化

  • 神经网络的拟合能力很强,通常都能在训练数据上将错误率降到很低,甚至导致过拟合,因此泛化能力反而成为影响模型能力的最关键因素

正则化:是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法

  • 传统的机器学习中主要通过限制模型复杂度来提高泛化能力
    • eg. 第 7 章 网络优化与正则化 - 图97第 7 章 网络优化与正则化 - 图98 正则化
  • 训练深度模型时使用的其它正则化方法
    • 数据增强、提前停止、丢弃法、集成法

第 7 章 网络优化与正则化 - 图99

7.7.1 L1 和 L2 正则化

第 7 章 网络优化与正则化 - 图100第 7 章 网络优化与正则化 - 图101 正则化:通过约束参数的 第 7 章 网络优化与正则化 - 图102第 7 章 网络优化与正则化 - 图103 范数来减小模型在训练集上的过拟合现象

引入正则化后,优化问题可以写为:

  • 第 7 章 网络优化与正则化 - 图104

弹性网络正则化:同时加入 第 7 章 网络优化与正则化 - 图105第 7 章 网络优化与正则化 - 图106 正则化

  • 第 7 章 网络优化与正则化 - 图107

7.7.2 权重衰减

权重衰减:在每次更新参数时,引入一个衰减系数:

  • 第 7 章 网络优化与正则化 - 图108
  • α 为学习率,β 为权重衰减系数,一般取值较小,eg. β=0.0005

  • 在标准的随机梯度下降中,权重衰减正则化和 第 7 章 网络优化与正则化 - 图109 正则化效果相同

  • 在较为复杂的优化方法中,eg. Adam,权重衰减正则化和 第 7 章 网络优化与正则化 - 图110 正则化并不等价

7.7.3 提前停止 Early Stop

提前停止:设置一个验证集,用验证集上的错误来代替期望错误,当验证集上的错误率不在下降,就停止迭代,避免过拟合

7.7.4 丢弃法 Dropout

丢弃法:训练神经网络时,随机丢弃一部分神经元(同时丢弃对应的连接边)来避免过拟合

  • 从集成学习的角度,最终的网络可以近似看作集成了不同网络的组合模型

  • 引入掩蔽函数 第 7 章 网络优化与正则化 - 图111

    • m 是丢弃掩码,通过概率 p 的伯努利分布随机生成
    • 训练阶段激活神经元的平均数量为原来的 p 倍,所以在测试阶段也需要将神经元的输入 x 乘以 p
  • 第 7 章 网络优化与正则化 - 图112

  • 对于隐藏层的神经元,保留率 p=0.5 时效果最好

  • 对于输入层的神经元,保留率 p 通常设为更接近 1 的数,使得输入变化不会太大
    • 对输入层神经元的丢弃,相当于给数据增加噪声,以此来提高网络的鲁棒性

image.png

7.7.5 数据增强

数据增强:通过算法对图像进行转变,引入噪声等方法来增加数据的多样性

  • 主要用于图像数据

数据增强的方法:

  • 旋转:
  • 翻转:
  • 缩放:
  • 平移:
  • 加噪声:给样本特征加入随机噪声

7.7.6 标签平滑

标签平滑给样本的标签引入一定的噪声,避免损失函数过拟合训练集中一些被错误标注的数据

  • 区别于数据增强的加噪声:是给样本特征加入噪声

  • 硬目标 Hard Target第 7 章 网络优化与正则化 - 图114

    • 只有对应类别的值为 1,其它都为 0
  • 软目标 Soft Target第 7 章 网络优化与正则化 - 图115
    • 以上公式是将其它类别都付与相同的概率,更好的做法是设置不同的概率,可以使用知识蒸馏

知识蒸馏

  • 先训练另外一个更复杂(通常为多个网络的集成)的教师网络
  • 使用教师网络的输出作为软目标来,和硬目标一起来训练学生网络

7.8 总结和深入阅读

  • 神经网络的优化和正则化是对立统一的关系

    • 一方面,我们希望优化算法能找一个全局最优解 or 较好的局部最优解
    • 另一方面,我们又不希望模型优化到最优解,可能导致过拟合
    • 优化和正则化的同一目标是期望风险最小化
  • 优化问题:主要要难点是 非凸优化 & 梯度消失问题

  • 提高训练效率的方法通常分为 3 个方面:

    • 修改网络模型来得到更好的优化地形
      • eg. 逐层归一化、残差连接以及 ReLU 激活函数等
    • 使用更有效的优化算法
      • eg. 动态学习率、梯度估计修正等
    • 使用更好的参数初始化方法
  • 泛化问题

    • 在传统机器学习模型上比较有效的 第 7 章 网络优化与正则化 - 图116第 7 章 网络优化与正则化 - 图117 正则化在深度神经网络中作用有限
    • 一些经验的做法更有效
      • eg. 小的批量大小、大的学习率、提前停止、丢弃法、数据增强等

image.png

习题

参考:《神经网络与深度学习-邱锡鹏》习题解答

习题 7-1 在小批量梯度下降中, 试分析为什么学习率要和批量大小成正比


习题 7-2 在Adam算法中, 说明指数加权平均的偏差修正的合理性( 即公式(7.27)和公式(7.28))


习题 7-3 给出公式(7.33)和公式(7.34)中的函数 𝜓(⋅) 和 𝜙(⋅) 在不同优化算法中的具体形式


习题 7-4 证明公式(7.43)


习题 7-5 证明公式(7.45)


习题 7-6 在批量归一化中, 以 𝑓(⋅) 取 Logistic 函数或 ReLU 函数为例, 分析以下 参见公式(7.51).两种归一化方法的差异:第 7 章 网络优化与正则化 - 图119第 7 章 网络优化与正则化 - 图120


习题 7-7 从再参数化的角度来分析批量归一化中缩放和平移的意义


习题 7-8 分析为什么批量归一化不能直接应用于循环神经网络


习题 7-9 证明在标准的随机梯度下降中, 权重衰减正则化和 ℓ2 正则化的效果相同.并分析这一结论在动量法和Adam算法中是否依然成立


习题 7-10 试分析为什么不能在循环神经网络中的循环连接上直接应用丢弃法?

循环神经网络中的循环连接具有误差累积的效果,最终会导致将丢弃法所造成的噪声放大,破坏模型的学习能力


习题 7-11 若使用标签平滑正则化方法, 给出其交叉熵损失函数