优化算法

优化算法比较

https://zhuanlan.zhihu.com/p/32230623

adam缺点

https://zhuanlan.zhihu.com/p/32262540

优化算法的选择

https://zhuanlan.zhihu.com/p/32338983

牛顿法

只用到了目标函数的一阶导数信息(迭代方向),而牛顿法则用到了二阶导数信息
牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
数据量大的时候会很慢。

  • 牛顿法起始点不能离局部极小值点太远,否则可能不收敛
  • 更新二阶hessian 矩阵,维度高的时候耗内存
  • 梯度下降靠近最优点时候有震荡,牛顿法一步到位(最明显是二阶函数)

对函数f(x)进行泰勒展开到二阶,得到

求导,令为


得:

基本牛顿法的流程:

  1. 给定终止误差值 初始点 令
  2. 计算 若 则停止, 输出
  3. 计算 并求解线性方程组得解
  4. 并转2。

全局牛顿法的流程:

  1. 给定终止误差值 初始点 令
  2. 计算 若| 则停止, 输出
  3. 计算 并求解线性方程组得解
  4. 记 是不满足下列不等式的最小非负整数
  5. 并转2。

你可能感兴趣的:(优化算法)