学习笔记之自适应学习率
1. 动量法(Momentum)
- 动量法旨在克服传统梯度下降法容易陷入局部最优解或鞍点的问题。
- 通过结合前一步的更新方向,可以使优化过程更具方向性,即使梯度方向改变,也可以延续原方向的动量,帮助越过局部最优。
2. 自适应学习率概述
- 自适应学习率方法为每个参数分配不同的学习率,优化不同方向的更新步伐。
- 当梯度较小且损失不再下降时,传统梯度下降可能停滞不前,自适应学习率能调整学习步伐继续优化。
3. 典型方法:AdaGrad
- AdaGrad(Adaptive Gradient)是自适应学习率的早期方法,能根据梯度大小自动调整学习率。
- 在训练过程中,如果梯度较大,学习率会相应减小;而当梯度较小时,学习率则增大。
- 问题:AdaGrad 会因为不断累积梯度平方和,使得学习率不断减小,导致后期步伐过小而停滞。
4. 改进方法:RMSProp
- RMSProp 是一种改进的自适应学习率方法,由 Geoffrey Hinton 在其课程中提出。
- 它通过指数衰减平均的方法调整梯度的重要性,相较于 AdaGrad,更能平衡不同时间步的梯度大小,避免学习率过小的情况。
5. Adam 优化器
- Adam(Adaptive Moment Estimation)是目前最常用的优化算法之一,结合了 RMSProp 和动量法的优势。
- 它利用一阶动量和二阶动量估计来调整学习率,使得参数更新更加稳定和高效。
- PyTorch 等深度学习框架中已经内置了 Adam 优化器,并且默认的超参数设置已经适用于大多数场景。
6. 学习率调度(Learning Rate Scheduling)
- 学习率调度是为了避免学习率在训练后期过大或过小,通过动态调整学习率来提高训练效果。
- 常见的调度策略包括学习率衰减(Learning Rate Decay)和预热(Warm-Up)。
- 学习率衰减是随着训练时间推移逐渐减小学习率;预热则是先增大学习率再逐渐减小,帮助模型收集初始训练信息。
7. 总结
- 自适应学习率方法通过为不同参数和不同时间步调整学习步伐,提升了梯度下降法的鲁棒性和训练效率。
- 当前优化算法的发展方向是在适应不同梯度场的同时,平衡不同超参数设置的效果,以便更好地解决深度学习中的复杂优化问题。