【Datawhale X 李宏毅苹果书 AI夏令营】 Task 2

自适应学习率

在训练神经网络的过程中,经常会遇到损失函数不再减少的情况,尽管此时梯度仍然很大。这意味着模型可能停留在一个非临界点,如鞍点或局部最小值之外的地方。使用固定学习率的传统梯度下降方法可能在某些情况下导致训练陷入困境,尤其是在面对具有挑战性的优化地形时,如在陡峭的山谷或平坦的高原上。

固定学习率的问题

  • 过度振荡: 如果学习率设置得过高,更新步骤可能会过大,导致参数在最优点附近振荡而不能稳定收敛。
  • 收敛慢: 如果学习率过低,虽然可以保证稳定性,但是收敛速度非常慢,这会大大增加训练所需的时间。
  • 局部极小值: 固定的单一学习率可能不适合所有参数,尤其是在面对复杂、非凸的损失表面时,可能会导致某些参数陷入局部极小值。

在这里插入图片描述

自适应学习率

自适应学习率是一种优化技术,它为不同的参数分配不同的学习率,以适应不同参数的变化速度。这种方法允许优化算法在某些方向上采取更大的步骤,而在其他方向上采取更小的步骤,从而提高整体的训练效率和效果。

  • AdaGrad: AdaGrad是一种自适应学习率方法,它根据每个参数的历史梯度大小自动调整学习率。具体而言,对于梯度较大的参数,AdaGrad会减小其学习率;而对于梯度较小的参数,则会增大其学习率。这种机制可以帮助算法在不同参数空间中保持一致的更新速率,特别是在处理稀疏数据时表现良好。
  • RMSProp: RMSProp是对AdaGrad的一种改进,它引入了一个衰减因子α,用于控制历史梯度的重要性。这解决了AdaGrad中累积梯度平方导致的学习率过早衰减的问题。RMSProp允许新观察到的梯度对当前的学习率产生更大的影响,从而使算法能更快地对新信息作出响应,并在平坦区域加大步幅,在陡峭区域减小步幅。
  • Adam: Adam算法结合了动量法的思想和自适应学习率的优点。它利用动量机制来加速到达最小值,并使用类似于RMSProp的方法来自适应地调整学习率。Adam算法因其良好的性能和广泛的适用性,成为目前深度学习中最常用的优化器之一。Adam能够处理非平稳目标函数,并且对于不同的参数具有良好的自适应性。

学习率调度

在深度学习中,选择合适的学习率对于模型的训练至关重要。一个固定的学习率可能在训练过程中导致模型收敛缓慢或者训练过程不稳定。 例如,如果学习率设置得过高,梯度下降可能会在最优点附近跳来跳去而无法收敛;如果学习率太低,则需要更多的迭代次数才能达到最小值,这将增加训练的时间成本。

学习率调度策略

为了克服这些问题,可以采用学习率调度策略,即在训练过程中动态调整学习率。以下是几种常见的学习率调度方法:

学习率衰减(Learning Rate Decay)

  • 这种策略指的是随着训练的进行逐渐减少学习率。它可以帮助模型更精细地逼近局部最小值。
  • 实现方式包括线性衰减、指数衰减、步进衰减等。例如,线性衰减是每经过一定数量的epoch后,按一定比例减少学习率;指数衰减则是每次迭代都乘以一个小于1的比例因子。
  • 优点是可以避免学习率过高导致的震荡,并且有助于模型最终收敛。
  • 缺点是需要手动设定衰减的时机和速度,这可能需要一些实验和调参。

预热(Warm-up)

  • 在训练初期使用较低的学习率,然后逐步增加到正常水平。
  • 目的是让模型先适应数据分布,避免初始阶段梯度过大导致的参数更新不稳。
  • 通常与学习率衰减结合使用,即在预热阶段结束后再执行衰减策略。
  • 优点是可以帮助模型更好地初始化,并且减少训练初期的不稳定因素。

在这里插入图片描述

周期性学习率(Cyclic Learning Rate)

  • 在每个周期内,学习率在两个边界值之间周期性地变化。
  • 这种方法可以让模型有机会从不同的学习率中获益,从而可能发现更好的局部最小值。
  • 通常周期的长度会随着训练的进行而增加。
  • 优点是能够促进模型的探索能力,防止陷入局部最优。

在实际应用中,不同的任务和模型结构可能需要不同的学习率调度策略,往往需要通过交叉验证来确定最佳的学习率及其调度策略。可视化训练过程中的损失函数变化,有助于理解学习率调整的效果。结合多种策略,比如先用预热策略,再结合学习率衰减或其他策略,可以获得更好的训练效果。

分类

分类与回归的关系

在深度学习领域,分类任务和回归任务是最常见的两种问题。回归任务的目标是预测一个连续值,而分类任务则是预测一个离散的类别标签。

分类任务可以被视为回归任务的一种特殊形式。在回归任务中,目标是预测一个连续的数值;而在分类任务中,目标是预测一个离散的标签或类别。具体来说:

  • 回归: 预测一个或多个连续变量的值,例如房价预测。
  • 分类: 预测一个离散的标签,例如图像识别中的类别(狗、猫、鸟等)。

分类任务的特点

  • 多分类问题:分类任务可以是二分类或多分类问题。
  • 独热编码(One-Hot Encoding):为了确保类别之间没有被错误地赋予某种顺序关系(例如,类别之间的距离),通常使用独热编码表示类别。独热编码是一种将类别标签转换为向量的技术,其中每个类别对应一个维度,该维度上只有一个位置为1,其余均为0。
  • softmax函数:为了更好地处理分类问题,通常会将网络的输出转换为概率分布。softmax函数是一种常用的转换方法,它可以将网络输出的任意实数值转换为概率分布,使得每个类别的输出值反映了样本属于该类别的概率。通过将输出转换为概率分布,可以更容易地进行比较和决策,这对于多分类任务尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值