好的优化算法能够让神经网络运行的更快。本篇博客根据吴恩达老师的讲解,对几种优化算法进行总结。
- 梯度下降法
- 指数加权平均数(预备知识)https://blog.csdn.net/v_road/article/details/95114377
- 动量梯度下降法
- RMSprop
- Adam
1. Mini-batch梯度下降法
将训练集分割为小一点子集,使用梯度下降法进行训练。该过程叫做Mini-batch梯度下降。
设每个子集中有m个样本(因为考虑到电脑的内存设置和使用方式,一般的mini-batch的大小m设置为62-512,通常为2的n次方。这样代码会运行地快一些。)
当m=整个训练集的大小,称为batch梯度下降;
缺点:训练样本的数量巨大时,单次迭代的耗时太长;
当m=1时,称为随机梯度下降法;
缺点:1.噪声大(可以通过减小学习率来改善或减小);
2.因为一次只处理一个样本,失去了所有向量多带来的加速效果,效率低下。
2. 动量梯度法
基本思想:
计算梯度指数加权平均数,并利用该梯度更新权重;
更新公式:
3. RMSprop(Root Mean Square根均方)
基本思想:
减缓纵坐标上的学习速度,同时加快横坐标方向上的学习速度。
更新公式:
4. Adam
计算公式: