1. 问题介绍

在最优化方法中,Newton方法是一个比较经典的方法,它常用来求解无约束的优化问题或含有等式约束的优化问题。准确的说,Newton方法一般分为纯Newton方法和拟Newton方法。今天我们考虑的是无约束优化问题的纯Newton方法,其他衍生方法后续再讲解。
        求解的问题是:min⁡f(x)\min {\kern 1pt} f(x)minf(x)

2. Newton方向的解释与推导

2.1 二阶近似角度

我们知道各种优化方法的本质是迭代思想,迭代的两大要素就是下降方向步长。假设迭代到第k步,函数值为 f(x+v)f(x+v)f(x+v),其二阶Taylor近似为:
f(x+v)≈f^(x+v)=f(x)+∇f(x)Tv+12vT∇2f(x)vf(x + v) \approx \hat f(x + v)=f(x)+\nabla f{(x)^T}v + \frac{1}{2}{v^T}{\nabla ^2}f(x)vf(x+v)≈f^​(x+v)=f(x)+∇f(x)Tv+21​vT∇2f(x)v 这是关于vvv的二次凸函数,对vvv求一阶偏导并令其等于0:
∇f(x)+∇2f(x)v=0\nabla f{(x)}+{\nabla ^2}f(x)v=0∇f(x)+∇2f(x)v=0求得vvv等于:v=−∇f(x)∇2f(x)−1v=- \nabla f(x){\nabla ^2}f{(x)^{ - 1}}v=−∇f(x)∇2f(x)−1,我们定义−∇f(x)∇2f(x)−1- \nabla f(x){\nabla ^2}f{(x)^{ - 1}}−∇f(x)∇2f(x)−1为牛顿方法,记为Δxnt\Delta {x_{nt}}Δxnt​。
通过上述分析,我们可以看出 牛顿方向的一些本质。具体见下图:

上图中,实线是实际的函数,虚线是该函数的二阶近似,我们可以直观的看出,如果fff是二次的,那么x+Δxntx+\Delta x_{nt}x+Δxnt​就是最优点x∗x^*x∗,即使fff不是二次的,当xxx靠近x∗x^*x∗时,x+Δxntx+\Delta x_{nt}x+Δxnt​也是x∗x^*x∗的一个比较好的估计。

2.2 线性化最优性条件的角度

我们知道对于可微函数,其最优解的充分条件是x∗x^*x∗处的梯度为0,即∇f(x∗)\nabla f({x^*})∇f(x∗),我们对其进行线性化(即一阶展开):∇f(x+v)≈∇f(x)+∇2f(x)v=0\nabla f(x + v) \approx \nabla f(x) + {\nabla ^2}f(x)v=0∇f(x+v)≈∇f(x)+∇2f(x)v=0同样我们可以求得v=−∇f(x)∇2f(x)−1v=- \nabla f(x){\nabla ^2}f{(x)^{ - 1}}v=−∇f(x)∇2f(x)−1,即Δxnt\Delta x_{nt}Δxnt​。
注:牛顿方向具有仿射不变性,此处就不细讲了。

3. Newton减量

我们将λ(x)=(∇f(x)T∇2f(x)−1∇f(x))12\lambda (x) = {(\nabla f{(x)^T}{\nabla ^2}f{(x)^{ - 1}}\nabla f(x))^{\frac{1}{2}}}λ(x)=(∇f(x)T∇2f(x)−1∇f(x))21​称为xxx处的Newton减量。减量的作用在于设计迭代的停止准则。我们有:f(x)−inf⁡yf^(y)=f(x)−f^(y+Δxnt)=12λ(x)2f(x) - \mathop {\inf }\limits_y \hat f(y) = f(x) - \hat f(y + \Delta {x_{nt}}) = \frac{1}{2}\lambda {(x)^2}f(x)−yinf​f^​(y)=f(x)−f^​(y+Δxnt​)=21​λ(x)2其中,inf⁡yf^(y)\mathop {\inf }\limits_y \hat f(y)yinf​f^​(y)是对p∗p^*p∗(即函数fff的最小值)做出的估计值,因此12λ(x)2\frac {1}{2}\lambda {(x)^2}21​λ(x)2是对f(x)−p∗f(x)-p^*f(x)−p∗的估计值,即我们可以将其作为迭代停止条件:当12λ(x)2⩽ε\frac {1}{2}\lambda {(x)^2} \leqslant \varepsilon21​λ(x)2⩽ε时,迭代可以停止。
——————————————————————————————
Newton 算法
(1) 给定初始点x∈domfx \in domfx∈domf,误差阈值ε\varepsilonε;
(2) 计算Newton方向和步长:
Δxnt=−∇f(x)∇2f(x)−1;\Delta {x_{nt}}=- \nabla f(x){\nabla ^2}f{(x)^{ - 1}};Δxnt​=−∇f(x)∇2f(x)−1;
λ(x)2=∇f(x)T∇2f(x)−1∇f(x);\lambda {(x)^2}=\nabla f{(x)^T}{\nabla ^2}f{(x)^{ - 1}}\nabla f(x);λ(x)2=∇f(x)T∇2f(x)−1∇f(x);
(3) 停止准则:如果12λ(x)2⩽ε\frac {1}{2}\lambda {(x)^2} \leqslant \varepsilon21​λ(x)2⩽ε时,退出,否则进入下一步;
(4) 确定步长ttt:通过线性搜索或Armijo Rule搜索;
(5) 进入下一步迭代:x=x+tΔxntx=x+t\Delta {x_{nt}}x=x+tΔxnt​
(6)重复进行直至达到停止条件。
————————————————————————————
注意:我们一般称步长t=1t=1t=1时,为纯Newton方法。
以上就是最为基础的Newton算法的原理,可以注意到,该方法的一个主要特点是要求海塞矩阵∇2f(x){\nabla ^2}f(x)∇2f(x)可逆,因此如果某点处的海塞矩阵是奇异矩阵(即不可逆),那么该方法将会失去效用,正因为如此,才有了后续的拟Newton方法。

4. 收敛性分析

关于Newton方法的收敛性分析(此处我们需要假定函数二次连续可微且具有强凸性)比较复杂。在此,我们只给出一些直观的结论,具体证明请查找相关书籍。
在介绍收敛性结论之前,先介绍关于LipschitzLipschitzLipschitz连续。我们说一个函数fff是以LLL为常数的LipschitzLipschitzLipschitz连续的,即∥f(x)−f(y)∥2⩽L∥x−y∥2{\left\| {f(x) - f(y)} \right\|_2} \leqslant L{\left\| {x - y} \right\|_2}∥f(x)−f(y)∥2​⩽L∥x−y∥2​对任意的x,y∈domfx,y\in dom fx,y∈domf都成立,其中LLL称LipschitzLipschitzLipschitz常数。该连续是一种比较强的连续,函数有比较好的光滑性,因为上式要求函数值得变化是缓的。对于Newton方法的收敛性分析,我们还需要假设其海塞矩阵∇2f(x){\nabla ^2}f(x)∇2f(x)是LipschitzLipschitzLipschitz连续的。
下面我们将说明Newton方法的收敛性结论:存在满足0<η⩽m2L0 < \eta \leqslant \frac{{{m^2}}}{L}0<η⩽Lm2​和γ>0\gamma > 0γ>0的η\etaη和γ\gammaγ使下式成立:
(1)如果∥∇f(x(k))∥2⩾η{\left\| {\nabla f({x^{(k)}}) } \right\|_2} \geqslant \eta∥∥​∇f(x(k))∥∥​2​⩾η,则∥∇f(x(k+1))−f(x(k))∥2⩽−γ{\left\| {\nabla f({x^{(k + 1)}}) - f({x^{(k)}})} \right\|_2} \leqslant - \gamma∥∥∥​∇f(x(k+1))−f(x(k))∥∥∥​2​⩽−γ
(2)如果∥∇f(x(k))∥2⩽η{\left\| {\nabla f({x^{(k)}}) } \right\|_2} \leqslant \eta∥∥​∇f(x(k))∥∥​2​⩽η,则用Armijo搜索产生的t(k)=1t^{(k)}=1t(k)=1,且有L2m2∥∇f(x(k+1))∥2⩽(L2m2∥∇f(x(k))∥2)2\frac{L}{{2{m^2}}}{\left\| {\nabla f({x^{(k + 1)}})} \right\|_2} \leqslant {\left( {\frac{L}{{2{m^2}}}{{\left\| {\nabla f({x^{(k)}})} \right\|}_2}} \right)^2}2m2L​∥∥∥​∇f(x(k+1))∥∥∥​2​⩽(2m2L​∥∥∥​∇f(x(k))∥∥∥​2​)2
上述两个式子其实,描述了Newton方法收敛的两个阶段:第一个式子描述的是收敛速度较慢的阶段,我们一般称之为阻尼Newton阶段;第二个式子描述的是收敛速度非常快的的阶段,也我们常说的搜索点靠近最优点了,我们一般称之为二次收敛阶段,该阶段一般迭代次数大体上不会超过6次。
上述两个不等式的证明较为复杂,此处不做详细证明了。我们给出上式中一些参数的取值:
γ=αβη2mM2\gamma = \alpha \beta {\eta ^2}\frac{m}{{{M^2}}}γ=αβη2M2m​,η=min⁡{1,3(1−2α)}m2L\eta = \min \left\{ {1,3(1 - 2\alpha )} \right\}\frac{{{m^2}}}{L}η=min{1,3(1−2α)}Lm2​
其中,α\alphaα和β\betaβ分别表示Armijo搜索方法中的两个参数,mmm和MMM是函数强凸性中的参数,即mI≼∇2f(x)≼MImI \preccurlyeq {\nabla ^2}f(x) \preccurlyeq MImI≼∇2f(x)≼MI;LLL是LipschitzLipschitzLipschitz常数。
————————————————————————————
总结: Newton方法的核心在于Newton方向,该方向我们可以从二阶近似的角度去推导,当步长为1时,我们称之为纯Newton方法;其次,通过收敛性分析,我们知道当搜索点靠近最优点时,Newton方法具有非常快的收敛速度(二次收敛),具有较好的性质,但同时我们也需要注意到其缺点:一是Newton方向中含有海塞矩阵的可逆矩阵,因此要求在当前点的海塞矩阵是非奇异的;二是当搜索点离最优点比较远时(即在阻尼Newton阶段),收敛速度将会非常慢(比线性收敛还慢);也正是有此缺点,才有了后续的一些拟Newton方法。

最优化方法——Newton方法相关推荐

  1. 最速下降方法与Newton方法

    文章目录 最速下降方法 Euclid范数和二次范数 Euclid范数 二次范数 基于坐标变换的解释 采用$\ell_1$-范数的最速下降方向 数值试验 Newton 方法 Newton 步径 二阶近似 ...

  2. 牛顿(Newton)方法

    1.基本Newton方法 设f(x)f(x)具有连续的二阶偏导数,当前迭代点是xk.f(x)x_k. f(x)在xkx_k处的TaylorTaylor展开式为 f(xk+d)=fk+gTkd+12dT ...

  3. 最优化方法matlab代码(一) 牛顿类方法

    代码:最优化方法牛顿方法matlab代码-从零开始-专业指导文档类资源-CSDN文库https://download.csdn.net/download/benchuspx/58807913目录 1. ...

  4. dfp方法例题_数学软件 之 基于MATLAB的DFP算法

    DFP算法是本科数学系中最优化方法的知识,也是无约束最优化方法中非常重要的两个拟Newton算法之一,上一周写了一周的数学软件课程论文,姑且将DFP算法的实现细节贴出来分享给学弟学妹参考吧,由于博客不 ...

  5. Newton法(牛顿法)

    基本思想 算法 修正Newton法 G_k为奇异矩阵 G_k为非奇异矩阵 总结 上一篇博客我们讲了最速下降法(梯度下降法),梯度下降法简单,但是收敛的速度较慢.这一篇博客将会讲述牛顿法,牛顿法对于正定 ...

  6. 凸优化之有等式约束的优化问题的求解方法

    有等式约束的优化问题的求解方法 对数障碍 log barrier \text{log barrier} log barrier 首先, 介绍一下 log barrier \text{log barri ...

  7. 机器学习中的优化算法!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 在机器学习中,有很 ...

  8. dfp算法例题matlab,数学软件 之 基于MATLAB的DFP算法

    DFP算法是本科数学系中最优化方法的知识,也是无约束最优化方法中非常重要的两个拟Newton算法之一,上一周写了一周的数学软件课程论文,姑且将DFP算法的实现细节贴出来分享给学弟学妹参考吧,由于博客不 ...

  9. 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译

    <信息技术和电气工程学科国际知名教材中译本系列:凸优化>从理论.应用和算法三个方面系统地介绍凸优化内容. 凸优化在数学规划领域具有非常重要的地位.从应用角度看,现有算法和常规计算能力已足以 ...

  10. [Swift]快速反向平方根 | Fast inverse square root

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

最新文章

  1. 给程序员的VIM速查卡
  2. css js 兼容问题
  3. 容器编排技术 -- Kubernetes Labels 和 Selectors
  4. k8s核心技术-Helm引入---K8S_Google工作笔记0043
  5. linux搭建博客-day 7安装Nginx
  6. 十大震撼谷歌地图卫星照
  7. mysql create database 语法_MySQL中CREATE DATABASE语法总结
  8. Hive,Pig,HBase 傻傻分不清楚
  9. 通过Himal项目学习掌握asp.net MVC
  10. Ubuntu16 下载软件Aria2 全局配置方法(最全组合)
  11. MHL接口是一种废品接口
  12. Unity3D架构设计NavMesh寻路
  13. html5统计在线人数,html的统计访客人数的代码?
  14. 华为完成首次6GHz频谱试验;iPhone 支持 Siri 操作关机;Gitlab 禁止使用 Windows|极客头条
  15. 小米2022校招前端实习一面总结
  16. 台达DOP系列触摸屏与电脑通讯不上时,如何进入系统设置画面修改系统设置从而正常通讯?
  17. ios label文字行间距_UILabel UITextField调整行间距【原创】
  18. 【网络篇】第三篇——源端口号和目的端口号
  19. 装的系统没有截图和计算机工具栏,不想安装专用的截图工具?这里有几个Windows(snipping tool)截图小技巧_都叫兽软件...
  20. 中国历史“四大谜案”

热门文章

  1. IFormatProvider,ICustomFormatter,IFormattable总结
  2. 在演示文稿中控制视频播放效果
  3. 如何让Html页面的导航固定在浏览器顶部
  4. php cookbook怎么样,《PHP Cookbook》学习笔记(三)
  5. STC学习:便携式温度采集器
  6. cuda10安装_Mmdetection的安装和使用
  7. 最全计算机基础知识竞赛试题及答案,计算机基础知识竞赛试题.doc
  8. XGBoost 损失函数Loss Functions
  9. 1万字说清楚Receiver Operating curve(ROC) 受试者操作特征曲线
  10. websocket 连接本地端口_Spring Boot 结合 WebSocket 实现在线聊天