【AI人工智能】:白话机器学习之(五)最优化方法-牛顿法

简介

牛顿法,英文名称BFGS,是求解非线性优化问题的最有效的方法之一。

特点

  • 收敛速度快;

方式

  • 牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂(后续会讲解拟牛顿法,拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这个过程。

分析

考虑无约束最优化问题

min⁡x∈Rf(x)\min_{x \in R} f(x)minx∈R​f(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 \partial y_j}]_{nxn}[∂xi​∂yj​∂f2​]nxn​在x(k)x^{(k)}x(k)的值。

这里详解下泰勒展开式的里面的海塞矩阵,暂时讲解下二元函数的泰勒展开式

enter image description here

接着我们继续进行,函数f(x)有极值的必要条件是在极值点处的一阶导数为0,即梯度向量为0。特别是当H(xk)H(x^{k})H(xk)是正定矩阵的时候,函数f(x)的极值为极小值,所以:

∇(f(x))=0\nabla(f(x)) = 0∇(f(x))=0

对f(x)求导,则

∇(f(x)=f(xk)+gkT(x−xk)+1/2(x−xk)TH(xk(x−xk)))\nabla(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+H(xk)(x−xk)= g_k + H(x^{k})(x - x^{k})=gk​+H(xk)(x−xk) 则 gk+H(xk)(xk+1−xk)=0 g_k + H(x^{k})(x^{k+1} - x^{k}) = 0gk​+H(xk)(xk+1−xk)=0 xk+1−xk=−H(xk)−1gkx^{k+1} - x^{k}= -H(x^k)^{-1}g_kxk+1−xk=−H(xk)−1gk​ 或者 xk+1=xk+pk x^{k+1} = x^{k} + p_kxk+1=xk+pk​ 其中 H(xk)pk=−gk H(x^k)p_k = -g_kH(xk)pk​=−gk​ 到此公式推导完毕

算法

输入:目标函数f(x),梯度g(x)=∇f(x) g(x) = \nabla f(x)g(x)=∇f(x),海塞矩阵H(x),精度要求ε; 输出:f(x)的极小点x^*;

  1. 取初始值点x(0)x^{(0)}x(0),k=0;
  2. 计算gk=g(x(k))g_k = g(x^{(k)})gk​=g(x(k))
  3. 若∣∣gk∣∣<ε||g_k|| < ε∣∣gk​∣∣<ε,则停止计算,得到解x∗=x(k)x^* = x^{(k)}x∗=x(k)
  4. 计算Hk=H(x(k))H_k = H(x^{(k)})Hk​=H(x(k)),并且求解pkp_kpk​

H(xk)pk=−gk H(x^k)p_k = -g_kH(xk)pk​=−gk​ 5. 进行迭代,xk+1=xk+pkx^{k+1} = x^{k} + p_kxk+1=xk+pk​,请求k++,转到第2步;

我为大家准备了一份整整200G的学习资料大礼包!迪迦熬夜整理,只希望大家给个三连即可!免费领取可以扫码加我的助手小姐姐vx,也很欢迎加入我的扣扣学习交流群一起学习交流:1019725448

 扫码添加即可领取! 

 

扣扣学习交流群!欢迎大家加入一起学习交流(大牛答疑、资料分享、技术交流、AI行业前沿信息) 

猜你喜欢

转载自blog.csdn.net/Java_chain/article/details/120973313