Datawhale X 李宏毅苹果书 AI夏令营 学习笔记

1.2.2Task1

1.1 局部极小值和鞍点

1.1.1 临界点及其种类

  提到梯度为零的时候,大家最先想到的可能就是局部极小值(local minimum)但其实损失不是只在局部极小值的梯度是零,还有其他可能会让梯度是零的点,比如鞍点(saddle point)。鞍点其实就是梯度是零且区别于局部极小值和局部极大值(localmaximum)的点。鞍点的梯度为零,但它不是局部极小值。我们把梯度为零的点统称为临界点(critical point)。损失没有办法再下降,也许是因为收敛在了临界点,但不一定收敛在局部极小值,因为鞍点也是梯度为零的点。

1.1.2 判断临界值种类的方法

   判断一个临界点到底是局部极小值还是鞍点需要知道损失函数的形状。网络本身很复杂,用复杂网络算出来的损失函数显然也很复杂。虽然无法完整知道整个损失函数的样子,但是如果给定某一组参数,比如 θ′,在 θ′ 附近的损失函数是有办法写出来的——虽然 L(θ) 完整的样子写不出来。θ′ 附近的 L(θ) 可近似为

        

  式3.1是矩阵形式的泰勒展开

在临界点,梯度 g 为零,所以在临界点的附近,损失函数可被近似为

  H为海森矩阵(Hessian Matrix)

  这里写到二阶即可,因此H的正负影响L是极大值还是极小值,可以通过特征值的方式判定H的正负。H 为正定矩阵,则 vTHv > 0,临界点是局部极小值。若 H 的所有特征值都是负的,H 为负定矩阵,则 vTHv < 0,临界点是局部极大值。若 H 的特征值有正有负,临界点是鞍点。

1.2 批量和动量

  计算梯度时,可以对数据集进行划分成一个个批量,这对结果和运行速度都有影响。 遍历所有批量的过程称为一个回合(epoch)。在把数据分为批量的时候,还可以进行随机打乱(shuffle)。随机打乱有很多不同的做法。

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

  •   批量梯度下降法(Batch Gradient Descent,BGD):不进行数据划分,数据集一起训练
  •   随机梯度下降法(Stochastic Gradient Descent,SGD):每一笔数据都进行更新

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

  批量梯度下降法对全部数据看一遍才更新数据,看似花费时间会更长,但gpu的并行计算能力提高了效率,大的批量大小反而是较有效率的,一个回合大的批量花的时间反而是比较少的。

1.2.2 动量法 

    动量法(Momentum)是一种优化算法,它通过在梯度下降过程中引入动量项来加速收敛并改善优化性能。其实就是考虑了过去对于现在的影响。

  动量法的优点

  1. 加速收敛

    在梯度指向相同方向时,动量项会使更新变得更加一致,从而加速收敛。
  2. 克服振荡

    在曲率变化较大的区域,梯度可能在某些方向上振荡。动量项可以帮助算法穿过这些振荡区域,从而更快地到达最优解。
  3. 逃离局部极小值

    在遇到局部极小值时,动量项可以帮助算法有足够的“惯性”来越过这些局部极小值,继续朝向全局最优解前进。

 1.2.3 自适应学习率

  传统的梯度下降方法使用固定的学习率,这可能导致在某些情况下收敛速度慢,或者在某些参数上更新过大或过小。自适应学习率方法试图通过为每个参数自动调整学习率来解决这些问题。通常在开始的时候学习率比较大,随着训练进行,应该越来越接近极小值点,学习率主键减小。

  常见的自适应学习率算法有Adam、RMSprop。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值