Datawhale X 李宏毅苹果书AI夏令营进阶 task1笔记

前言

        本次学习的参考书为《深度学习详解》,由李宏毅老师编写。机器学习作为人工智能发展的产物,涵盖内容丰富,深度学习作为其子集,往往采用更为复杂的模型,会使用深层神经网络解决模式识别等问题。深度学习往往需要更多的模型参数、神经网络层数、训练所用数据集等。本期Datawhale Task1讲解了参考书3.1-3.3小节,概括总结得出以下内容。

3.1局部极小值与鞍点

        局部最小值:在损失函数的曲面上,局部最小值的点周围所有方向的梯度都指向该点或指向更高的位置,它是一个比周围点损失更小的点。
        鞍点:损失函数曲面上的特殊点,其中损失函数沿着某个方向的梯度为零,但同时存在其他方向的梯度不为零。鞍点在某些方向上是局部最小值,而在其他方向上可能不是,类似于马鞍的形状。

图1 梯度下降失效的情况图(摘自参考书)

        局部最小值如同在一个坑里,鞍点则更像个马背。通过概念界定和丰富的画面想象力,我们可以推断出当训练损失达到某个点后无法再下降时,我们需要对该点进行判断,若为局部最小值,说明已然达到了损失最小点,普天同庆,调试任务结束了。但如果它是鞍点,证明在某一方面(可能是参数)进行微调仍然能够进行进一步调优,这为加班调试模型带来了希望。

        得出以上结论后,我们面临两个重要问题,没有直观图,只有个梯度下降失效的情况图,该如何判断目前是什么点?如果是鞍点,怎么进一步调优?

        本人不才,高数学的不咋地(但没挂:)),稍有印象高等数学对于梯度和鞍点已经有了证明的方法:首先,计算函数在某一点的梯度(即偏导数组成的向量)。如果梯度为零向量,那么该点可能是极值点(包括局部最小点、局部最大点或鞍点)。 接下来,计算该点的 Hessian 矩阵(即由函数的二阶偏导数组成的矩阵)。 对于局部最小点,如果 Hessian 矩阵是正定的(即所有特征值都大于零),那么该点就是局部最小点。而对于鞍点,如果 Hessian 矩阵的特征值有正有负,那么该点就是鞍点。粗略比较了一下参考书,好像也是这么个意思吧。

        判断过程中有两个重要参数,点θ (也可以理解为参数)与Hessian矩阵的特征值λ。通过λ判断出鞍点后,假设u为λ(λ在此为负数)对应的特征向量,通过证明(此处略)可以推出只要沿着u的方向更新参数就可以进一步减小。

        但是,事实证明平常多数遇到的都是鞍点而非局部极小值,从多维度的角度考虑,想要满足极小是一件非常非常困难的事情,但成为鞍点就简单了许多,仍然从两者概念角度入手,鞍点只是在某一方向上的梯度为0,其他时候则非零;局部极小值需要满足各个方向上梯度都为0。机器学习有两类参数,超参数与模型参数。深度学习拥有更为复杂的神经网络层与模型,模型参数数量更为庞大。在此,参数便是方向的真身,参数越多也就意味着想要达到局部极小值更为困难。

3.2 批量和动量

        在深度学习中,数据通常被分批处理,每批包含一定数量(批量大小 B)的数据。整个数据集被遍历一次称为一个回合(epoch)。数据在每个epoch开始时通常会被打乱。
        批量梯度下降(BGD):使用整个数据集作为批量,每次更新参数前计算一次梯度。这种方法计算量大,但更新稳定且准确。
        随机梯度下降(SGD):每次更新只使用一个数据点来计算梯度,参数更新频繁,引入了随机性,有助于逃离局部最小值。

        随机梯度下降的梯度上引入了随机噪声,因此在非凸优化问题中,其相比批量梯度下降更容易逃离局部最小值。

        在GPU等并行计算设备上,大批量的数据可以同时处理,因此大批量大小不一定导致更长的计算时间。实验表明,大批量大小可能导致训练准确率降低,但小批量大小有助于优化和泛化。两者在开销上更大的差距在于更新时间,在有考虑并行计算的时候,大的批量大小反而是较有效率的,一个回合大的批量花的时间反而是比较少的。

图2 并行计算中批量大小与计算时间的关系图(摘自参考书)

        大的批量大小优化可能会有问题,小的批量大小优化的结果反而是比较好的。

图3 不同的批量来训练模型来做图像识别问题的实验结果图(摘自参考书)

        书中有个总结性的表感觉很有用,方便记忆。

        动量法通过考虑历史梯度信息来更新参数,有助于逃离鞍点和局部最小值。动量法可以视为在梯度方向上加入之前更新方向的加权和。

        自适应学习率方法可以对抗鞍点或局部最小值,通过调整学习率来优化训练过程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值