牛顿法是利用 Hessian 矩阵提供的二阶导数信息来指导搜索的最简单的算法。
牛顿法基于一个二阶泰勒展开来近似 附近的 ,
- 如果 是一个正定二次函数,牛顿法只要应用一次就能直接跳到函数的最小点。
- 如果 不是一个真正二次但能在局部近似为正定二次,牛顿法需要多次迭代应用式,而且能比梯度下降更快得到达临界点
以上在接近全局极小点时是一个特别有用的性质,但是在鞍点附近是有害的,牛顿法会被鞍点吸引跑偏。只有当附近的临近点是最小点(Hessian 的所有特征值都是正的)时,牛顿法才适用,而梯度下降不会被吸引到鞍点(除非梯度指向鞍点)。
Ref
- Newton’s method – Wikipedia
- 优化算法——牛顿法(Newton Method) : 算法流程介绍+Java实现
- 牛顿迭代法(Newton’s Method): 算法流程+ C++ 代码 + 神奇开方数
- Jacobian矩阵和Hessian矩阵: Hessian 矩阵 与 牛顿法