线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总(下)

简介: 线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总(下)

DFP算法的性质


定理1:在DFP算法中,若初始矩阵H 0 对称正定,则H k 中每一个都对称正定。

image.png

共轭方向法与共轭梯度法


基本思想


  最速下降法存在锯齿现象,Newton法需要计算目标函数的二阶导数。接下来介绍的共轭方向法是介于最速下降法和Newton法之间的一种方法,它克服了最速下降法的锯齿现象,从而提高了收敛速度;它的迭代公式也比较简单,不必计算目标函数的二阶导数,与Newton法相比,减少了计算量和存储量。它是比较实用而有效的最优化方法。


image.png


20191103140154239.png


 任选初始点x 0 ,沿它的某个下降方向,例如向量p 0 的方向,作直线搜索,如上图所示。由下面这个定理:

image.png

image.png

由上面共轭梯度法那张图可以设:

image.png

 归纳一下,对于正定二元二次函数,从任意初始点x 0 出发,沿任意下降方向p 0 做直线搜索得到x 1 再从x 1 出发,沿p 0的共轭方向p 1 作直线搜索,所得到的x 2 必是极小点x 。到目前为止的共轭梯度法依旧是假设了目标函数是二次正定矩阵。

  上面的结果可以推广到n 维空间中,即在n 维空间中,可以找出n 个互相共轭的方向,对于n 元正定二次函数从任意初始点出发,顺次沿着这n 个共轭方向最多作n 次直线搜索,就可以求到目标函数的极小点。

  对于n 元正定二次目标函数,如果从任意初始点出发经过有限次迭代就能够求到极小点,那么称这种算法具有二次终止性。例如,Newton法对于二次函数只须经过一次迭代就可以求到极小点,因此是二次终止的;而最速下降法就不具有二次终止性。共轭方向法(如共轭梯度法、拟Newton法等)也是二次终止的。

  一般说来,具有二次终止性的算法,在用于一般函数时,收敛速度是较快的。


共轭向量及其性质

image.png


共轭方向法


  共轭方向法的理论基础是下面的定理。

定理 假设

image.png

 这个定理看来较繁,但可借用直观的几何图形来帮助理解。n = 3 n=3n=3m = 2 m=2m=2的情形为例,如图示。

  p 0 p 1 是Q共轭向量,张成了二维空间R 2 ,这是过坐标原点的一个平面。 现在,过点x 0 沿p 0 方向作直线搜索得到x 1,再过点x 1 沿p 1 方向作直线搜索得到x 2 过点x 0 由向量p 0 p 1 张成的平面就是线性流形L [ x 0 ; p 0 , p 1 ] 。它是R 2 的平行平面。

  定理的论断是,最后一个迭代点x 2 处的梯度∇ f ( x 2 ) 必与p 0p 1 垂直。并且x 2 是三元二次目标函数f ( x ) 在线性流形L [ x 0 ; p 0 , p 1 ]即过x 0p 0 p 1张成的平面)上的极小点。


  共轭方向法算法的大体流程就是:选定初始点x 0和下降方向向量p 0 ,做直线搜索x k + 1 = l 。提供的梯度方向p k + 1使得image.png。提供共轭方向的方法有多种。不同的提供方法将对应不同的共轭方法。每种方法也因产生共轭方向的特点而得名。


 那么这里做直线搜索image.png中的t 是如何确定的呢?这里我们先回顾一下在最速下降法中是如何计算这个t 的。最速下降法:

image.png

 这里还可以采用另外一种种方式计算t k ,下面对另外一种方式进行公式推导:

image.png

共轭梯度法

image.png

 针对目标函数是正定二次函数来讨论:


(1) 第一个迭代点的获得

image.png

(2) 第二个迭代点的获得

image.png

由此解出

image.png

(3) 第三个迭代点的获得

image.png

image.png

(4) k 个迭代点的获得

image.png


以上就是共轭梯度法得核心内容。


Fletcher-Reeves共轭梯度法

image.png



此式称为Fletcher-Reeves公式(1964年)。

相关文章
|
机器学习/深度学习 存储 Python
|
7月前
|
程序员 开发者
PDF 转图片,一行代码搞定!批量支持已上线!
大家好,我是程序员晚枫!今天为大家介绍 `popdf` 的新功能:PDF 转图片,支持批量操作!只需一行代码即可完成单文件转换,批量处理也只需简单修改参数。工具简单易用,小白也能快速上手。`popdf` 是我开发的实用工具之一,旨在解决开发中的小痛点。欢迎访问 GitHub 项目地址 (<https://github.com/CoderWanFeng/popdf>),提出建议或加入开源小组,一起交流进步!快来体验吧,保证让你惊艳! 😄
323 16
|
弹性计算 安全 关系型数据库
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
对于初次上云的用户来说,参考一份适合自己行业的解决方案可帮助自己快速上手,并根据方案的内容选择适合自己的云产品进行方案部署。阿里云发布各种解决方案是基于众多客户上云的成功案例萃取而成的最优化企业上云指导,涵盖前端Web和移动应用程序开发、网站搭建、网络组网、数据库、迁云等众多上云项目。本文为大家汇总了一些上云解决方案的详情入口,方便大家快速查询与自己场景相符的解决方案。
1981 1
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
|
SQL PHP 数据库
21 PHP如何进行事务处理的?
路老师在知乎上分享PHP语言知识,帮助大家入门并深入了解PHP。本文介绍了PDO中的事务处理,通过实例讲解了如何使用beginTransaction()、commit()和rollback()方法实现事务操作。
222 1
【Typora】如何使用Markdown插入一段文字,部分左对齐,部分右对齐
如何在Markdown编辑器Typora中使用HTML语法实现同一行内文字的左对齐和右对齐布局。
886 1
|
算法 Python
快速傅里叶变换(FFT)在NumPy中的使用
【4月更文挑战第17天】本文介绍了如何在Python的NumPy库中使用快速傅里叶变换(FFT)进行频率分析。FFT是数字信号处理的关键技术,用于从时域信号中提取频率信息。NumPy的`numpy.fft`模块提供了一维、二维及多维FFT的实现,简化了在Python中的操作。文中通过示例展示了如何进行一维和二维FFT计算,并绘制频域信号的幅度谱。了解FFT及其在NumPy中的应用,有助于在信号处理和图像分析等领域进行高效工作。
|
SQL 负载均衡 Oracle
MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解 | 学习笔记
快速学习 MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解
MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解 | 学习笔记
|
编解码 固态存储 数据挖掘
通俗解读人脸检测框架-RetinaFace
通俗解读人脸检测框架-RetinaFace
461 2
|
C++ Python
【Pybind11】pybind11在visual studio中的配置
【Pybind11】pybind11在visual studio中的配置
|
编译器 数据处理 Python
Python的xlrd模块在Anaconda中的安装
本文介绍在Anaconda环境下,安装Python读取.xls格式表格文件的库xlrd的方法~
912 1
Python的xlrd模块在Anaconda中的安装