转载自:https://zhuanlan.zhihu.com/p/78185057
梯度法和牛顿法都是优化中常用的算法,一般来说机器学习和深度学习中用到的优化方法中梯度法是较多的,以及它的改进的算法,如adagrad, adadelta, rmsprop, adam等。回到本问题上来。
梯度下降法的公式如下:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/29aeb3548b38fef19f9e6ca413475dc2.png)
牛顿法的公式如下:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/a1646312114d4724525fbba2b4925f5b.png)
可以看到梯度法要求的是一阶导数,牛顿法要求二阶导数且求海塞矩阵的逆,因此来说比较耗时。
总的来说,梯度法和牛顿法有如下区别:
- 梯度下降法是一阶优化算法,牛顿法是二阶优化算法
- 牛顿法的收敛速度相比梯度下降法常常较快,但是计算开销大,实际中常用拟牛顿法
- 牛顿法对初始值有一定要求,在非凸优化问题中(如神经网络训练),牛顿法很容易陷入鞍点(牛顿法步长会越来越小),而梯度下降法则很容易逃离鞍点(因此在神经网络训练中一般使用梯度下降法,高维空间的神经网络中存在大量鞍点)
- 梯度下降法在靠近最优点时会震荡,因此步长调整在梯度下降法中是必要的,具体有adagrad, adadelta, rmsprop, adam等一系列自适应学习率的方法
参考文献:
Eureka:梯度下降法、牛顿法和拟牛顿法
https://blog.youkuaiyun.com/qq_39852676/article/details/86529995
常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等) - 蓝鲸王子 - 博客园
本文对比了梯度法和牛顿法在优化算法中的应用,详细解析了两者在机器学习和深度学习中的优劣。梯度下降法作为一阶优化算法,易于逃离鞍点,但在接近最优解时易震荡;牛顿法为二阶优化算法,收敛速度快但计算成本高,且在非凸问题中易陷于鞍点。
392

被折叠的 条评论
为什么被折叠?



