Datawhale X 李宏毅苹果书 AI夏令营《深度学习详解》- 3.1 3.2


Datawhale X 李宏毅苹果书 AI夏令营《深度学习详解》

Datawhale 学习手册:https://linklearner.com/activity/16/15/43

学习链接:https://github.com/datawhalechina/leedl-tutorial
PDF下载:
地址:https://github.com/datawhalechina/leedl-tutorial/releases
链接: https://pan.baidu.com/s/1ZKuXfkXHoyyvPR1-CP-Ffw 提取码: 2t6m
学习视频:


3.1 局部极小值与鞍点

3.1.1 临界点及其种类

概述与背景知识

在深度学习中,我们使用各种优化算法(如梯度下降)来调整神经网络的参数,目的是最小化损失函数。然而,在训练过程中,可能会出现训练停滞的情况,即使参数继续更新,损失也不会进一步降低。这种情况可能是由于优化算法收敛到了一个临界点,临界点包括局部极小值和鞍点。

主要概念

  • 梯度下降:一种常用的优化算法,通过沿着损失函数梯度的负方向更新参数以寻找最小值。
  • 局部极小值:损失函数在其邻域内达到最小值的点,梯度为零。
  • 鞍点:梯度为零但既非局部极小值也非局部极大值的点,类似于马鞍的形状。

详细内容

在训练过程中,随着参数的更新,训练损失不再下降。这可能是由于参数已经收敛到了临界点,梯度下降算法无法继续更新参数。临界点可以是局部极小值或鞍点。

  • 局部极小值:在该点,损失函数达到局部最小值,梯度为零。在局部极小值点的邻域内,损失函数的值比该点高。
  • 鞍点:在该点,梯度为零,但在某些方向上损失函数的值可能低于该点,在其他方向上则高于该点。鞍点的梯度为零,但不是局部极小值。

重点知识

  • 梯度为零:梯度为零意味着损失函数在该点的斜率为零,即没有变化。
  • 临界点:梯度为零的点被称为临界点,包括局部极小值和鞍点。
  • 局部极小值与鞍点的区别:局部极小值在邻域内是最小值点,而鞍点在某些方向上是凹的,在其他方向上则是凸的。

实例

考虑一个简单的神经网络,包含两个权重 w 1 w_1 w1 w 2 w_2 w2。如果存在一个点 ( w 1 ∗ , w 2 ∗ ) (w_1^*, w_2^*) (w1,w2),在这个点上损失函数的梯度为零,即 ∂ L ∂ w 1 = 0 \frac{\partial L}{\partial w_1} = 0 w1L=0 ∂ L ∂ w 2 = 0 \frac{\partial L}{\partial w_2} = 0 w2L=0,那么该点就是一个临界点。如果这个点是局部极小值,则在该点附近损失函数的值会增加;如果是鞍点,则损失函数在某些方向上会减少,在其他方向上会增加。

内容总结

  • 临界点是梯度为零的点,可以是局部极小值或鞍点。
  • 局部极小值是损失函数达到局部最小值的点。
  • 鞍点是梯度为零但不是局部极小值的点。

延伸学习

  • 探索不同的优化算法如何处理局部极小值和鞍点。
  • 学习如何通过可视化技术直观地理解损失函数的形状。

参考资料


3.1.2 判断临界值种类的方法

概述与背景知识

为了确定一个临界点是局部极小值还是鞍点,我们需要了解损失函数在该点周围的形状。这可以通过分析损失函数在该点的一次和二次导数来实现。

主要概念

  • 泰勒级数近似:一种利用多项式来近似函数的方法。
  • 梯度:损失函数在某一点的一次导数。
  • 海森矩阵:损失函数在某一点的二次导数构成的矩阵。

详细内容

对于给定的一组参数 θ ′ \theta' θ,损失函数 L ( θ ) L(\theta) L(θ) θ ′ \theta' θ 附近的近似形式为:

L ( θ ) ≈ L ( θ ′ ) + ( θ − θ ′ ) ⊤ g + 1 2 ( θ − θ ′ ) ⊤ H ( θ − θ ′ ) L(\theta) \approx L(\theta') + (\theta - \theta')^\top g + \frac{1}{2}(\theta - \theta')^\top H (\theta - \theta') L(θ)L(θ)+(θθ)g+21(θθ)H(θθ)

其中:

  • ( g )是梯度向量,由损失函数在 θ ′ \theta' θ的一次导数组成。
  • ( H )是海森矩阵,由损失函数在 θ ′ \theta' θ的二次导数组成。

重点知识

  • 泰勒级数近似:用于近似损失函数。
  • 梯度:损失函数的一次导数。
  • 海森矩阵:损失函数的二次导数矩阵。

实例

假设我们有一个简单的神经网络,包含两个权重 w 1 w_1 w1 w 2 w_2 w2,损失函数为:
L ( w 1 , w 2 ) = ( 1 − w 1 w 2 ) 2 L(w_1, w_2) = (1 - w_1w_2)^2 L(w1,w2)=(1w1w2)2

在原点 ( 0 , 0 ) (0, 0) (0,0),损失函数的梯度为零,即 ∇ L ( 0 , 0 ) = [ 0 , 0 ] ⊤ \nabla L(0, 0) = [0, 0]^\top L(0,0)=[0,0]。为了判断这一点是否为局部极小值或鞍点,我们需要计算海森矩阵:
H = [ ∂ 2 L ∂ w 1 2 ∂ 2 L ∂ w 1 ∂ w 2 ∂ 2 L ∂ w 2 ∂ w 1 ∂ 2 L ∂ w 2 2 ] = [ 0 − 2 − 2 0 ] H = \begin{bmatrix} \frac{\partial^2 L}{\partial w_1^2} & \frac{\partial^2 L}{\partial w_1 \partial w_2} \\ \frac{\partial^2 L}{\partial w_2 \partial w_1} & \frac{\partial^2 L}{\partial w_2^2} \end{bmatrix} = \begin{bmatrix} 0 & -2 \\ -2 & 0 \end{bmatrix} H=[w122Lw2w12Lw1w22Lw222L]=[0220]

海森矩阵的特征值为2和-2,因此原点是鞍点。

内容总结

  • 利用泰勒级数近似可以近似损失函数。
  • 海森矩阵的特征值可以用来判断临界点的类型。
  • 如果海森矩阵的所有特征值都是正的,则临界点是局部极小值;如果所有特征值都是负的,则是局部极大值;如果有正有负,则是鞍点。

延伸学习

  • 学习如何计算海森矩阵并分析其特征值。
  • 探究不同优化策略对逃离鞍点的影响。

参考资料


3.2 批量和动量

3.2.1 批量大小对梯度下降法的影响

概述与背景知识

在深度学习中,梯度下降法是一种常用的优化算法,用于最小化损失函数,从而改善模型的预测性能。由于数据集通常较大,直接使用所有数据来计算梯度并不实际,因此引入了批量的概念。

主要概念

  • 批量梯度下降法(BGD): 使用所有训练数据计算梯度。
  • 随机梯度下降法(SGD): 每次仅使用一个样本计算梯度。
  • 小批量梯度下降法(Mini-batch GD): 在 BGD 和 SGD 之间的一种折中方法,每次使用一个小批量的数据来计算梯度。

详细内容

  • 批量梯度下降法: 该方法在每轮更新时都需要遍历整个训练集来计算梯度,因此计算成本较高,但梯度更加精确,更新更稳定。
  • 随机梯度下降法: 每次更新只基于一个样本,虽然计算速度快,但由于梯度中包含较大的噪声,更新路径较为波动。
  • 小批量梯度下降法: 结合了两者的优点,既保持了一定的稳定性,又能利用并行计算加速训练过程。

重点知识

  • 批量大小的影响:
    • 较小的批量使得梯度更具有随机性,有助于模型跳出局部最优解。
    • 较大的批量可以更快地完成一轮训练,但在某些情况下可能导致泛化性能较差。

实例

  • 实验结果:
    • 在 MNIST 和 CIFAR-10 数据集上,随着批量大小的增加,模型的验证集准确率降低。
    • 即使训练准确率保持不变,测试准确率也会随着批量大小的增加而下降。

内容总结

批量梯度下降法虽然提供了更准确的梯度,但计算成本高且可能陷入局部最优;而随机梯度下降法虽然计算成本低,但梯度的噪声较大。小批量梯度下降法则是一种平衡的选择,既减少了计算负担,又通过引入适量的噪声帮助模型更好地泛化。

延伸学习

  • 批量大小与泛化的联系:
    • 论文 “On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima” 中探讨了大批量训练可能导致的泛化性能下降问题。
    • 对于“好”和“坏”的局部最小值,前者位于较平坦的区域,有利于泛化;后者位于陡峭的区域,泛化性能较差。

参考资料

  • “On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima”

3.2.2 动量法

概述与背景知识

动量法是一种改进梯度下降法的技术,它模拟了物理学中的动量概念,通过在梯度更新中加入历史梯度信息,提高训练过程的稳定性及效率。

主要概念

  • 动量法:
    • 通过累积过去的梯度方向来加速收敛。
    • 类似于物理中物体滚动时的惯性效应。

详细内容

  • 动量法的数学表示:
    m t = β m t − 1 + η ∇ f ( θ t − 1 ) θ t = θ t − 1 − m t \begin{aligned} m_t &= \beta m_{t-1} + \eta \nabla f(\theta_{t-1}) \\ \theta_t &= \theta_{t-1} - m_t \end{aligned} mtθt=βmt1+ηf(θt1)=θt1mt
    其中, β \beta β 是动量系数, η \eta η 是学习率, ∇ f ( θ t − 1 ) \nabla f(\theta_{t-1}) f(θt1) 是在 θ t − 1 \theta_{t-1} θt1 处的梯度。

重点知识

  • 动量法的作用:
    • 减少在梯度方向上的振荡,有助于更快地收敛。
    • 有助于克服鞍点或局部最小值。

实例

  • 物理世界的类比:
    • 将参数想象成在误差表面上滚动的小球,动量法模拟了小球滚动时的惯性效应。

内容总结

动量法通过在梯度更新中加入过去梯度的加权平均,使得训练过程更加平滑,同时也能更有效地穿越误差表面的不平坦区域。这种方法有助于加速收敛过程,并且能更好地处理鞍点问题。

延伸学习

  • 其他动量相关的优化器:
    • Nesterov 加速梯度(NAG): 改进了动量法,通过提前预估下一个位置来调整动量方向。
    • Adam 优化器: 结合了动量法和 RMSProp 的优点,是目前常用的一种优化器。

参考资料

  • “Efficient Backprop” by Yann LeCun, Léon Bottou, Genevieve B. Orr, Klaus-Robert Müller
  • “Adam: A Method for Stochastic Optimization” by Diederik P. Kingma, Jimmy Ba
  • “On the Importance of Initialization and Momentum in Deep Learning” by Ilya Sutskever, James Martens, George Dahl, Geoffrey Hinton
  • “RMSProp and Its Family” by Tieleman, Tijmen and Hinton, Geoffrey
  • “Momentum and Its Variants” by Li et al.
  • “Nesterov’s Accelerated Gradient and Momentum as approximations to Regularised Update Descent” by Ioffe, Sergey
  • “Understanding Nesterov Momentum Through a Modified Loss Function” by Sutskever, Ilya and Martens, James and Dahl, George and Hinton, Geoffrey
  • “A Review of Momentum and Its Applications in Deep Learning” by Zhang, Xiaojun and Wang, Xuejun and Liu, Zhiyong and Zhao, Xiaohui
  • “Gradient Descent with Momentum” by Goodfellow, Ian and Bengio, Yoshua and Courville, Aaron
  • “Momentum and the Acceleration of Stochastic Gradient Descent” by Sutskever, Ilya and Martens, James and Dahl, George and Hinton, Geoffrey

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值