Datawhale X 李宏毅苹果书 AI夏令营 task1

 3.1 局部极小值与鞍点

在深度学习的优化过程中,模型的损失函数可能会在某些点处停止下降,即使我们希望进一步降低损失。这一章节探讨了导致这一现象的原因,包括局部极小值、鞍点,以及其他临界点。理解这些概念能够帮助优化神经网络,避免陷入不理想的解。

  1. 局部极小值

    • 定义:局部极小值是指在某个点附近的所有点的损失函数值都大于或等于该点的损失函数值。换句话说,虽然这个点不是整个损失函数的全局最小值,但在其邻近区域内,它的损失值是最低的。
    • 问题:如果梯度下降算法在训练过程中达到一个局部极小值,梯度为零,模型的参数将不再更新,导致优化过程停滞。虽然损失可能已经很低,但它不是全局最优解,仍然有可能进一步降低损失。

    图 3.1 展示了梯度下降在损失函数的不同点(局部极小值、鞍点)停止更新的情况,帮助理解为什么梯度为零时,模型可能会陷入不同类型的临界点。                                                                                  

  2. 鞍点

    • 定义:鞍点是指在某些方向上是极小值,而在其他方向上是极大值的点。在这些点上,梯度同样为零,但它们不是局部极小值。
    • 问题:梯度下降算法在鞍点处也会停止更新,因为梯度为零。然而,鞍点并不意味着损失函数无法进一步下降;通过离开鞍点,仍然有可能找到更低的损失值。

    图 3.2 展示了局部极小值和鞍点的图形示意,说明它们了在损失函数表面上的不同形态。

  3. 临界点

    • 定义:临界点是指梯度为零的点,包含了局部极小值、局部极大值和鞍点。
    • 挑战:在优化过程中,难以区分模型是否收敛在局部极小值还是鞍点。如果误认为模型已经收敛而实际上只是停在了鞍点,这将限制模型的性能。

判断临界点类型的方法

  • 泰勒级数展开
    • 为了判断一个临界点是局部极小值、局部极大值还是鞍点,使用泰勒级数展开可以对损失函数在临界点附近的形状进行近似。这个近似包括梯度向量和海森矩阵的计算。
    • 梯度向量(g):它表示损失函数的一阶导数,描述了损失函数的斜率方向。在临界点,梯度为零,因此无法单靠梯度来判断临界点的性质。
    • 海森矩阵(Hessian Matrix, H):这是损失函数的二阶导数矩阵,描述了损失函数的曲率。通过计算海森矩阵的特征值,可以判断临界点的性质:
      • 如果所有特征值为正,则该点为局部极小值。
      • 如果所有特征值为负,则该点为局部极大值。
      • 如果特征值有正有负,则该点为鞍点。

在图 3.2 中,红色的点在某一方向上表现为极小值,而在另一方向上表现为极大值,这种情况就是鞍点。如果模型的参数更新在此类点上停滞,虽然梯度为零,但它并不代表模型达到了最优状态。通过计算海森矩阵的特征值,我们能够确定当前的临界点是局部极小值还是鞍点,从而决定是否需要调整优化策略以跳出鞍点,继续降低损失。

3.2 批量和动量

在深度学习的训练过程中,如何有效更新模型的参数至关重要。本章节详细探讨了批量大小(batch size)对梯度下降法的影响,并介绍了动量法(momentum method),作为一种提高优化效果的方法,尤其在应对鞍点和局部极小值时。

  1. 批量大小对梯度下降的影响

    • 批量梯度下降法(Batch Gradient Descent, BGD)
      • 定义:在批量梯度下降法中,每次使用整个训练数据集计算梯度,然后更新参数。由于使用了所有的数据,这种方法的更新稳定,但每次更新的计算量非常大,可能导致训练过程缓慢。
      • 优势:更新方向更准确和稳定,因为所有数据都被用于计算梯度。
      • 劣势:计算量大,尤其在大数据集上,每次更新耗时较长。
    • 随机梯度下降法(Stochastic Gradient Descent, SGD)
      • 定义:与批量梯度下降不同,随机梯度下降法每次只使用一个训练样本计算梯度并更新参数。更新速度快,但更新方向可能包含噪声,因此路径会更加曲折。
      • 优势:由于频繁更新,模型更容易逃离局部极小值和鞍点,在非凸优化问题中表现优异。
      • 劣势:更新方向不稳定,训练过程可能显得噪声较多,难以找到最优解。
    • 小批量梯度下降法(Mini-batch Gradient Descent)
      • 定义:这种方法结合了批量梯度下降和随机梯度下降的优点,每次使用一个小批量(如32或128个样本)数据计算梯度并更新参数。
      • 优势:在保持计算效率的同时,提供了更稳定的更新方向,常用于深度学习训练。
      • 调优点:批量大小是一个超参数,需要根据具体任务和计算资源进行调整。

    图 3.11 和 图 3.12 通过实验数据展示了不同批量大小对训练模型的影响,指出较小的批量大小在测试集上的表现往往优于较大的批量,因为小批量更容易跳出不理想的局部极小值。      

    • 表 3.1 总结了小批量梯度下降与批量梯度下降的对比,列出两者在一次更新速度、优化效果、泛化性能等方面的优缺点。                                                                                           

  2. 动量法

    • 定义:动量法通过引入前一步的更新方向,使参数更新不仅依赖当前的梯度,还考虑到之前更新的历史。这样可以让模型在遇到鞍点或局部极小值时更容易继续前进。
    • 工作原理
      • 公式:每一步的参数更新方向为当前梯度的反方向加上前一步的更新方向,这样更新方向不仅仅依赖于当前的损失,还受之前梯度的影响。在动量法中,每一步的参数更新公式可以表示为:   通过这个公式,当前的参数更新方向不仅取决于当前的梯度,还会受到之前更新方向的影响,从而避免在优化过程中陷入局部极小值或鞍点。
      • 理解方式:可以将其类比为物理中的惯性,物体在下坡过程中即使遇到平坦区域或小上坡,依然可能因为动量继续前行。
    • 优点:在优化中,动量法有助于模型在损失表面上快速移动,并避免陷入局部极小值或鞍点的困境。
      • 图 3.14:展示了物理世界中的惯性,帮助理解动量法的原理。                                             

      • 图 3.16图 3.17:展示了动量法在参数更新时如何结合当前梯度和之前的更新方向,帮助理解其在优化中的优势。                                                                    

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangzaojun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值