简介
牛顿法,英文名称BFGS,是求解非线性优化问题的最有效的方法之一。
特点
- 收敛速度快;
方式
- 牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂(后续会讲解拟牛顿法,拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这个过程。
分析
考虑无约束最优化问题
minx∈Rf(x)\min_{x \in R} f(x)minx∈Rf(x)
其中x∗x^*x∗为目标函数的极小点。 假设f(x)具有二阶连续偏导数,若第k次迭代值为x(k)x^{(k)}x(k),则可将f(x)在x(k)x^{(k)}x(k)附近进行二阶泰勒展开:
f(x)=f(xk)+gkT(x−xk)+1/2(x−xk)TH(xk)(x−xk)f(x) = f(x^{k}) + g_{k}^{T}(x - x^{k}) + 1/2(x-x^{k})^TH(x^{k})(x - x^{k})f(x)=f(xk)+gkT(x−xk)+1/2(x−xk)TH(xk)(x−xk)
- gk=g(xk)=∇(f(xk))g_k = g(x^{k})= \nabla(f(x^{k})) gk=g(xk)=∇(f(xk))是f(x)的梯度向量在x(k)x^{(k)}x(k)的值。
- H(xk)H(x^{k})H(xk)是f(x)的海塞矩阵 [∂f2∂xi∂yj]nxn [\frac {\partial f^2} {\partial x_i