首页 > 其他分享 >【Optimization in Operations Research 运筹学】牛顿法、高斯牛顿法、拟牛顿法与BFGS与为什么H要正定牛顿法亮点与弊端

【Optimization in Operations Research 运筹学】牛顿法、高斯牛顿法、拟牛顿法与BFGS与为什么H要正定牛顿法亮点与弊端

时间:2023-12-19 11:12:02浏览次数:34  
标签:Operations BFGS right mathbf nabla 牛顿 Delta left

牛顿法

\(F(x+\Delta x)=F(x)+F'(x)\Delta x+\frac{1}{2}F''(x)\Delta x^2\)
泰勒展开之后保留二次项
然后对展开式再进行求导 令导数等于0 直接得到前进的步长和方向 即\(Hx = b\)这里的\(x\)就是牛顿法求解的前进步长和方向。

如何理解呢?

加\(\Delta x\)之后得到的解析式再对\(x\)进行求导 得到导数等于0 则必然是一个极值点 因此此次前进的\(\Delta x\)是直接奔着下一次的结果的极值点方向去的

为什么H要至少半正定?

\(F(x+\Delta x)=F(x)+F'(x)\Delta x+\frac{1}{2}F''(x)\Delta x^2\)
展开后一次导数为0(因为至少要是极值点 一阶导数必为0)
即\(F'(x)\Delta x = 0\)

任选一个\(\Delta x\)保证泰勒展开后原函数 + 0 + 二次项,中的二次项必须大于0,这样\(F(x + \Delta x)\)才会大于\(f(x)\)此时就是任意前进\(\Delta x\),都会使得\(F(x)\)变大,我们的目的是变小。
\(F(x+\Delta x)=F(x)+0+\frac{1}{2}F''(x)\Delta x^2 > F(x)\)

高斯牛顿法

牛顿法直接对目标函数进行展开,而高斯牛顿法是先对里面\(f\)展开,然后再展开求导。
\(f\left(x+\Delta x\right)\approx f\left(x\right)+J\left(x\right)\Delta x\)

\[\begin{aligned} \frac{1}{2}\|f\left(x\right)+J\left(x\right)\Delta x\|^{2}& =\frac{1}{2}\big(f\left(x\right)+J\left(x\right)\Delta x\big)^{T}\left(f\left(x\right)+J\left(x\right)\Delta x\right) \\ &=\frac{1}{2}\left(\|f(x)\|_{2}^{2}+2f\left(x\right)^{T}J(x)\Delta x+\Delta x^{T}J(x)^{T}J(x)\Delta x\right) \end{aligned} \]

然后将上式对\(\Delta x\)求导,且导数为0:

\[2J\left(x\right)^{T}f\left(x\right)+2J\left(x\right)^{T}J\left(x\right)\Delta x=0 \]

随后得到:

\[J\left(x\right)^{T}J\left(x\right)\Delta x=-J\left(x\right)^{T}f\left(x\right). \]

拟牛顿法与BFGS

拟牛顿法解决了牛顿法迭代失败,对初始值要求高的问题。其中BFGS方法显著有效。

牛顿法的结果:

\(\nabla^2f(\mathbf{x}^{(t)})\Delta\mathbf{x}=-\nabla f(\mathbf{x}^{(t)})\)

将二次求导结果逆过去:

\(\Delta\mathbf{x}=-\nabla^2f(\mathbf{x}^{(t)})^{-1}\nabla f(\mathbf{x}^{(t)})\)

\(\mathbf{D}_t\)即为优化的方向:

\(\Delta\mathbf{x}^{(t+1)}=-\mathbf{D}_t\nabla f\left(\mathbf{x}^{(t)}\right)\)

然后理解一下二阶导数的性质:

\(\nabla f(\mathbf{x}^{(t+1)})-\nabla f(\mathbf{x}^{(t)})\approx\nabla^2f(\mathbf{x}^{(t)})(\mathbf{x}^{(t+1)}-\mathbf{x}^{(t)})\)

\(\nabla^2f(\mathbf{x}^{(t)})^{-1}(\nabla f(\mathbf{x}^{(t+1)})-\nabla f(\mathbf{x}^{(t)}))\approx\mathbf{x}^{(t+1)}-\mathbf{x}^{(t)}\)

上述两个式子可以重写一下:

\(\mathbf{D}_{t+1}\mathbf{g}=\mathbf{d}\)

\(\mathbf{d}\triangleq\mathbf{x}^{(t+1)}-\mathbf{x}^{(t)}\)

\(\mathbf{g}\triangleq\nabla f(\mathbf{x}^{(t+1)})-\nabla f(\mathbf{x}^{(t)})\)

BFGS公式认为\(\mathbf{D}_t\)初始值为单位阵,最大化问题为负的单位阵。然后随着迭代,\(\mathbf{D}_t\)会随着下面的公式进行更新。

\(\mathbf{D}_{t+1}\leftarrow\mathbf{D}_t+\left(\mathbf{1}+\frac{\mathbf{g}\mathbf{D}_t\mathbf{g}}{\mathbf{d}\cdot\mathbf{g}}\right)\frac{\mathbf{d}\mathbf{d}^\mathrm{T}}{\mathbf{d}\cdot\mathbf{g}}-\frac{\mathbf{D}_t\mathbf{g}\mathbf{d}^\mathrm{T}+\mathbf{d}\mathbf{g}^\mathrm{T}\mathbf{D}_t}{\mathbf{d}\cdot\mathbf{g}}\)

实际迭代过程类似于牛顿法,只是在当前求解最优\(\Delta x\)后,\(x\)更新前进,随后需要更新一下\(\mathbf{D}_t\),然后迭代次数+1,进入下次迭代。

标签:Operations,BFGS,right,mathbf,nabla,牛顿,Delta,left
From: https://www.cnblogs.com/linglingdog/p/17913229.html

相关文章

  • 拟牛顿法
    1拟牛顿法牛顿法:$$x_{k+1}=x_k-\nabla^2f(x_k)^{-1}\nablaf(x_k)$$牛顿法的缺陷在于\(\nabla^2f(x_k)\)难以求取和存储,因此有拟牛顿法(Quasi-Newtonmethods),通过在牛顿法的迭代中加入近似求取每一步\(Hessian\)矩阵的迭代步,仅通过迭代点处的梯度信息来求取\(Hessian......
  • [最优化方法笔记] 牛顿法与修正牛顿法
    1.牛顿法1.1梯度下降法的缺点对于无约束优化问题:\[\min_{x\in\mathbb{R}^n}f(x)\]使用梯度下降法进行迭代:\[x^{k+1}=x^k-\alpha_k\nablaf(x^k)\]梯度下降的基本策略式沿着一阶导数的反方向(即最速下降方向)迭代。然而,当\(\text{Hessian}\)矩阵\(\nabla^2f(x......
  • [ARC121F] Logical Operations on Tree 题解
    题目链接点击打开链接题目解法比较好的题首先要发现一个性质是:先删AND边,再删OR边最优小证一下:分类讨论AND边两端的数字情况\(0\&0\)左右两端虽然可能可以把\(1\)OR过来,但这种情况先做\(\&\),也一定可以OR得到\(1\)\(0\&1\)左边可能可以\(OR\)得到\(1......
  • [AGC063C] Add Mod Operations 题解
    题目链接点击打开链接题目解法好难想的构造题!!!到底是怎么想到的???首先无解的条件是好判的,如果有\(i\neqj,\;a_i=a_j\)且\(b_i\neqb_j\),那么就无解将\(a\)从小到大排序考虑下面的构造方式:\(y=curmax+x\),这样可以使最大值清\(0\),其他数都\(+x\),这是一个类似消元的过程,每......
  • 牛顿法、割线法、二分法
    1clear;clc;2%%牛顿法3f=@(x)x^4-4*x^2+4;%函数4df=@(x)4*x^3-8*x;%一阶导数5ddf=@(x)12*x^2-8;%二阶导数6N=1000;%最大迭代次数7x=zeros(N,1);%储存迭代点8x(1)=log(8);%初始点9eps=0.00001;%容许误差1011%迭代过程12fork=2:1:N13x(k)......
  • CF1900 B Laura and Operations 题解
    LinkCF1900BLauraandOperationsQuestion给出\(1,2,3\)的个数\(a,b,c\)可以分别减少两个不同的数,增加一个与两个数都不同的数问,是否能经过一些操作使得就剩下\(1\)或\(2\)或\(3\)Solution先考虑\(1,2,3\)其实是等价的,所以我们只需要考虑把\(2,3\)全都变成......
  • Long-Time Process on web (ASP.NET Long-Running Operations)
    a)CreatingawebservicethatcallsaThread?b)Creatingawebservicewith[SoapDocumentMethod(OneWay=true)]c)Anybetterway?withoutusinganexternalprogram?Anotherwayisqueuingjobs.MSMQorServiceBroker(SQLServer2005).1.Createajo......
  • Tenzing and Random Operations CF1842G 题解
    设\(m\)次选的位置分别为\(b_{1\simm}\)。于是答案为\(\mathbbE(\prod\limits_{i=1}^{n}(a_i+\sum\limits_{j=1}^{m}[b_j\lei]\cdotv))=\frac{S}{n^m}\)。首先考虑期望很难做,希望将期望转化为概率形式,发现这样有点困难。再考虑因为所有方案等概率,将求期望转化......
  • VMware Aria Operations for Logs 8.14 发布下载 - 集中式日志管理
    VMwareAriaOperationsforLogs8.14发布下载-集中式日志管理请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-logs/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org集中式日志管理VMwareAriaOperationsforLogs(以前称为vRealizeLogI......
  • VMware Aria Operations 8.14 发布下载 - 多云 IT 运维管理
    VMwareAriaOperations8.14发布下载-多云IT运维管理通过统一的高性能平台,实现跨私有云、混合云和多云环境的IT运维管理。请访问原文链接:https://sysin.org/blog/vmware-aria-operations/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org自动驾驶式IT运维......