【Datawhale X 李宏毅苹果书 AI夏令营】 学习笔记:《深度学习详解》3.3-3.5 自适应学习率

#### 3.3 自适应学习率的概念与必要性

在深度学习模型的训练过程中,选择合适的学习率是至关重要的。学习率太大会导致模型在损失函数的误差面上来回震荡,无法收敛到最优解;学习率太小则会使得模型收敛速度极慢,甚至可能陷入局部最优解中。传统的梯度下降方法使用固定学习率,这在实际应用中显得有些不够灵活。因此,自适应学习率方法被提出,用于动态调整学习率,从而适应不同训练阶段的需求。

自适应学习率的核心思想是根据梯度的大小,自动调整每个参数的学习率。当梯度较大时,减小学习率以防止过冲;当梯度较小时,增大学习率以加快收敛速度。这样可以在训练过程中更加高效地寻找最优解。

#### 3.3.1 AdaGrad:自适应学习率的基础

**AdaGrad(Adaptive Gradient)** 是自适应学习率的早期代表性算法之一。它的主要思想是为每个参数设计一个不同的学习率,并且这个学习率是基于所有过去时间步的梯度平方和来调整的。具体而言,AdaGrad 通过对每个参数在训练过程中所经历的梯度平方进行累积,再将其用于缩放学习率:

\[
\theta_{t+1}^{(i)} \leftarrow \theta_t^{(i)} - \frac{\eta}{\sqrt{G_t^{(i)}} + \epsilon} \cdot g_t^{(i)}
\]

其中,\( G_t^{(i)} \) 是第 \( i \) 个参数的累积梯度平方和,\( g_t^{(i)} \) 是当前的梯度,\( \eta \) 是初始学习率,\( \epsilon \) 是一个小常数,用于防止分母为零。

优点:
- AdaGrad 能够根据梯度信息自适应地调整学习率,使得在训练的早期阶段有较快的收敛速度。
- 对于稀疏数据,AdaGrad 表现尤为出色,因为它会对频繁出现的特征给予较小的步长,而对稀疏特征则使用较大的步长。

缺点:
- 随着时间的推移,累积的梯度平方和不断增大,这使得学习率持续减小,最终可能导致训练停滞。

#### 3.3.2 RMSProp:改进的自适应学习率方法

**RMSProp(Root Mean Squared Propagation)** 是一种针对 AdaGrad 所存在的问题进行改进的算法。其核心思想是通过引入指数加权平均的方法,对梯度平方和进行平滑处理,以避免学习率在后期过度减小的问题。RMSProp 的更新公式为:

\[
\sigma_t^{(i)} = \alpha \cdot \sigma_{t-1}^{(i)} + (1-\alpha) \cdot (g_t^{(i)})^2
\]

\[
\theta_{t+1}^{(i)} \leftarrow \theta_t^{(i)} - \frac{\eta}{\sqrt{\sigma_t^{(i)}} + \epsilon} \cdot g_t^{(i)}
\]

其中,\( \alpha \) 是衰减系数,通常取值在 \(0.9\) 左右,\( \sigma_t^{(i)} \) 表示第 \( i \) 个参数在第 \( t \) 次迭代时的均方根。

优点:
- RMSProp 能够动态调整每个参数的学习率,并且其在训练后期的表现比 AdaGrad 更稳定。
- 适用于非凸问题,并且在训练深度神经网络时表现出色。

#### 3.3.3 Adam:结合动量与自适应学习率的优化器

**Adam(Adaptive Moment Estimation)** 是目前深度学习中最广泛使用的优化算法之一。它结合了 RMSProp 和动量法的优点,能够在参数更新中考虑梯度的均方根和梯度的动量,从而提供更为灵活和有效的优化路径。

Adam 的更新步骤包括两个部分:
1. 计算一阶矩的指数加权移动平均(动量):
   \[
   m_t^{(i)} = \beta_1 \cdot m_{t-1}^{(i)} + (1-\beta_1) \cdot g_t^{(i)}
   \]
   
2. 计算二阶矩的指数加权移动平均(RMSProp的思想):
   \[
   v_t^{(i)} = \beta_2 \cdot v_{t-1}^{(i)} + (1-\beta_2) \cdot (g_t^{(i)})^2
   \]
   
3. 计算偏差修正后的动量和均方根,并更新参数:
   \[
   \hat{m}_t^{(i)} = \frac{m_t^{(i)}}{1-\beta_1^t}, \quad \hat{v}_t^{(i)} = \frac{v_t^{(i)}}{1-\beta_2^t}
   \]
   
   \[
   \theta_{t+1}^{(i)} \leftarrow \theta_t^{(i)} - \frac{\eta}{\sqrt{\hat{v}_t^{(i)}} + \epsilon} \cdot \hat{m}_t^{(i)}
   \]

Adam 优化器默认的超参数设置(如 \( \beta_1 = 0.9 \) 和 \( \beta_2 = 0.999 \))在大多数情况下表现良好,因此是许多深度学习模型的首选优化器。

优点:
- 结合动量和 RMSProp 的优点,提供了平滑且高效的收敛路径。
- 对超参数不敏感,易于使用。

#### 3.4 学习率调度:优化过程中的动态调整

除了上述自适应学习率方法外,学习率调度也是提高训练效率的重要策略。学习率调度涉及到在训练过程中动态调整学习率,以适应不同的训练阶段。

1. **学习率衰减**:随着训练的进行,逐渐减小学习率,避免在训练后期步长过大导致模型无法精细调整。常见的策略有指数衰减、余弦退火等。

2. **预热策略**:在训练初期逐渐增大学习率,随后再逐渐减小。预热策略的作用是帮助模型在初期阶段更好地探索参数空间,收集足够的梯度信息,再进入稳定的优化阶段。预热策略在 Transformer 等深度模型中应用广泛。

#### 3.5 优化总结:从梯度下降到自适应学习率的演变

自梯度下降法被提出以来,优化算法经历了显著的进化。从最基础的固定学习率到各种自适应学习率方法,再到结合了动量与 RMSProp 的 Adam 优化器,现代深度学习优化方法日益成熟。这些优化器不仅提高了模型训练的效率,还在一定程度上缓解了梯度消失和局部最优等问题。

理解和掌握这些优化算法的内在机制,对于设计高效、稳健的深度学习模型至关重要。虽然目前 Adam 是应用最广泛的优化器,但不同任务和数据集可能对优化器有不同的需求,因此在实际应用中灵活选择和调节优化算法是至关重要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值