优化算法比较
https://zhuanlan.zhihu.com/p/32230623
adam缺点
https://zhuanlan.zhihu.com/p/32262540
优化算法的选择
https://zhuanlan.zhihu.com/p/32338983
牛顿法
只用到了目标函数的一阶导数信息(迭代方向),而牛顿法则用到了二阶导数信息
牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
数据量大的时候会很慢。
- 牛顿法起始点不能离局部极小值点太远,否则可能不收敛
- 更新二阶hessian 矩阵,维度高的时候耗内存
- 梯度下降靠近最优点时候有震荡,牛顿法一步到位(最明显是二阶函数)

求导,令为

得:

基本牛顿法的流程:
- 给定终止误差值
初始点
令
- 计算
若
则停止, 输出
- 计算
并求解线性方程组得解
-
并转2。
全局牛顿法的流程:
- 给定终止误差值
初始点
令
- 计算
若|
则停止, 输出
- 计算
并求解线性方程组得解
- 记
是不满足下列不等式的最小非负整数
-
并转2。