牛顿法和拟牛顿法是求解无约束最优化问题的常用方法,收敛速度快。牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵(Hesse matrix)的逆矩阵,计算复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,计算速度快。
牛顿法
考虑无约束优化问题
min f(x)
其中x* 为目标函数的极小值点
假设f(x)具有二阶连续偏导数,若第k次迭代值为x^(k), 则可将f(x)在x^(k)附近进行二阶泰勒展开:
(其实就是在x^(k)附近的二阶曲面近似代替 f(x), 而梯度下降法是用 x^(k)附近的平面近似代替 f(x), 然后求出x^(k)附近的二阶曲面的极值点近似代替f(x)的极值点)
f(x) = f(x^(k)) + g_k ^T(x-x^(k)) + 1/2 (x -x^(k))^T H(x(k))(x - x^(k))
这里 g_k = g(x^(k)) = \delta f(x^(k)) 是f(x) 的梯度向量在点x^(k) 的值, H(x^(k)) 是f(x) 的海塞矩阵(Hesse matrix)
在点x^(k) 的值,函数f(x) 有极值的必要条件是在极值点出一阶导数为0,即梯度向量为藕特别当H(x^()k) 是正定矩阵时,函数f(x) 的极值为极小值。
g_k + H_k (x^(k_1) - x^(k)) = 0
(x^(k_1) - x^(k)) = - H_k ^ (-1) g_k