一.梯度下降
1.BGD
2.SGD
3.MBGD
概念学习:https://blog.csdn.net/u012421852/article/details/79562067
比较代码:https://blog.csdn.net/qq_26347025/article/details/79222967
二.牛顿算法
1.牛顿法
https://blog.csdn.net/sigai_csdn/article/details/80678812
2.拟牛顿法
有待学习!!!
三.区别
1.收敛速率
牛顿下降算法二阶收敛。没看明白。。下面链接有证明:
https://blog.csdn.net/robert_chen1988/article/details/53137997
2.梯度下降法是用平面去拟合当前的局部曲面,牛顿下降法是用二次曲面去拟合当前的局部曲面。
①.首先考虑一下这个公式,是目标函数,用一阶泰勒展开式去拟合目标函数,其实就是用平面去拟合函数的局部曲面。
我们的目的是使得左边的值变小,即比小,那么应该使得变为负值。
但是如何使得上式一定为负值,简单的方法就是:
但是不要忘了以上所有的一切只有在局部成立,也就是说在小范围才成立,所以加个小的修正的因子,上式就变为:
最终得到公式:
这就是为什么说梯度下降算法是用平面拟合函数的局部曲面。
②.牛顿下降法是用二次曲面去拟合当前的局部曲面
牛顿法的几何意义本质:在原函数的某一点处用一个二次函数近似原函数,然后用这个二次函数的极小值点作为原函数的下一个迭代点。