目录
7.3 不同优化算法的比较分析
飞桨AI Studio - 人工智能学习与实训社区 (baidu.com)
除了批大小对模型收敛速度的影响外,学习率和梯度估计也是影响神经网络优化的重要因素。
神经网络优化中常用的优化方法也主要是如下两方面的改进,包括:
- 学习率调整:通过自适应地调整学习率使得优化更稳定。AdaGrad、RMSprop、AdaDelta算法等。
- 梯度估计修正:通过修正每次迭代时估计的梯度方向来加快收敛速度。动量法、Nesterov加速梯度方法等。
本节还会介绍综合学习率调整和梯度估计修正的优化算法,如Adam算法。
7.3.1 优化算法的实验设定
7.3.1.1 2D可视化实验
为了更好地展示不同优化算法的能力对比,我们选择一个二维空间中的凸函数,然后用不同的优化算法来寻找最优解,并可视化梯度下降过程的轨迹。
7.3.1.2 简单拟合实验
这里我们随机生成一组数据作为数据样本,再构建一个简单的单层前馈神经网络,用于前向计算。
与Paddle API对比,验证正确性
分别实例化自定义SimpleBatchGD优化器和调用paddle.optimizer.SGD API, 验证自定义优化器的正确性。
7.3.2 学习率调整
7.3.2.1 AdaGrad算法
7.3.2.2 RMSprop算法
7.3.3 梯度估计修正
7.3.3.1 动量法
用之前积累动量来替代真正的梯度。每次迭代的梯度可以看作加速度。
7.3.3.2 Adam算法
Adam算法(自适应矩估计算法)可以看作动量法和RMSprop算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率。
7.3.4 不同优化器的3D可视化对比
百度AI Studio课程_学习成就梦想,AI遇见未来_AI课程 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)
【选做题】
- 编程实现下面的动画
- 在动画中增加Adam
- 分析解释这个动画