最优化 牛顿法及其变种

牛顿法

设f(x)是二次可微实函数, 那么它的二阶泰勒多项式为

ϕ(x)=f(x0)+f(x0)(xx0)+12f′′(x0)(xx0)2 ϕ ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 1 2 f ″ ( x 0 ) ( x − x 0 ) 2

那么把x换成向量, 则有
ϕ(x)=f(x0)+f(x0)(xx0)+12(xx0)T2f(x0)(xx0) ϕ ( x ) = f ( x 0 ) + ∇ f ( x 0 ) ( x − x 0 ) + 1 2 ( x − x 0 ) T ∇ 2 f ( x 0 ) ( x − x 0 )

其中 2f(x0) ∇ 2 f ( x 0 ) f(x) f ( x ) x0 x 0 处的hesse矩阵.
为求 ϕ(x) ϕ ( x ) 的平稳点, 令 ϕ(x)=0 ∇ ϕ ( x ) = 0 . 则有
f(x0)+2f(x0)(xx0)=0 ∇ f ( x 0 ) + ∇ 2 f ( x 0 ) ( x − x 0 ) = 0

假设hesse矩阵可逆, 则由上式得到 牛顿法迭代公式:
x(k+1)=x(k)2f(x(k))1f(x(k))(1.4) (1.4) x ( k + 1 ) = x ( k ) − ∇ 2 f ( x ( k ) ) − 1 f ( x ( k ) )

其中 2f(x(k))1 ∇ 2 f ( x ( k ) ) − 1 是hesse矩阵的逆矩阵.

牛顿法至少2级收敛, 收敛速率快于梯度下降法. 特别地, 对于二次凸函数, 用牛顿法经历一次迭代即达极小点.
值得注意, 当初始点远离极小点时, 牛顿法可能不收敛, 因为牛顿方向不一定是下降方向, 经迭代, 目标函数值可能上升.
针对这一问题进行修正, 人们提出了 阻尼牛顿法.

阻尼牛顿法

与原始牛顿法的区别在于: 增加了沿牛顿方向的一维搜索.

拟牛顿法

牛顿法需要计算二阶偏导, 而且目标函数的Hesse矩阵可能非正定. 为克服这些问题, 人们提出了拟牛顿法, 基本思想是用不含二阶导数的矩阵A来近似原Hesse矩阵的逆矩阵 H1 H − 1 .
根据得到近似矩阵A的方法的不同, 拟牛顿法也有不同的变体.

OWL-QN

OWL-QN(orthant-wise Limited-memory Quasi-Newton)
微软提出的算法,该算法是基于L-BFGS算法的可用于求解L1正则的算法。简单来讲,OWL-QN算法是指假定变量的象限确定的条件下使用L-BFGS算法来更新,同时,使得更新前后变量在同一个象限中(使用映射来满足条件)。

参考

  1. cnblog, 无约束优化算法——牛顿法与拟牛顿法(DFP,BFGS,LBFGS)
  2. OWL-QN算法介绍

你可能感兴趣的:(数学,概率,统计,最优化)