02(d)多元无约束优化问题-拟牛顿法
此部分内容接《02(a)多元无约束优化问题-牛顿法》!!!
第三类:拟牛顿法(Quasi-Newton methods)
拟牛顿法的下降方向写为:
${{\mathbf{d}}_{k}}=-{{\mathbf{S}}_{k}}\cdot \nabla f({{\mathbf{x}}_{k}})$
关键就是这里的${{\mathbf{S}}_{k}}$,主要有两拨人对拟牛顿法做出了贡献他们分别针对${{\mathbf{S}}_{k}}$,提出了两种不同的方法;注:下式中的${{\mathbf{\delta }}_{k}}={{\mathbf{x}}_{k+1}}-{{\mathbf{x}}_{k}}$,${{\mathbf{\gamma }}_{k}}=\nabla f({{\mathbf{x}}_{k+1}})-\nabla f({{\mathbf{x}}_{k}})$。
第一拨人:Davidon-Fletcher-Powell (DFP),初始值${{\mathbf{S}}_{0}}=\mathbf{E}$,且
\[{{\mathbf{S}}_{k+1}}={{\mathbf{S}}_{k}}+\frac{{{\mathbf{\delta }}_{k}}\mathbf{\delta }_{k}^{T}}{\mathbf{\delta }_{k}^{T}{{\mathbf{\gamma }}_{k}}}-\frac{{{\mathbf{S}}_{k}}{{\mathbf{\gamma }}_{k}}\mathbf{\gamma }_{k}^{T}{{\mathbf{S}}_{k}}}{\mathbf{\gamma }_{k}^{T}{{\mathbf{S}}_{k}}{{\mathbf{\gamma }}_{k}}}\]
第二拨人:Broyden-Fletcher-Goldfarb-Shanno(BFGS)初始值${{\mathbf{S}}_{0}}=\mathbf{E}$,且
\[{{\mathbf{S}}_{k+1}}={{\mathbf{S}}_{k}}+\left( 1+\frac{\mathbf{\gamma }_{k}^{T}{{\mathbf{S}}_{k}}{{\mathbf{\gamma }}_{k}}}{\mathbf{\gamma }_{k}^{T}{{\mathbf{\delta }}_{k}}} \right)\frac{{{\mathbf{\delta }}_{k}}\mathbf{\delta }_{k}^{T}}{\mathbf{\gamma }_{k}^{T}{{\mathbf{\delta }}_{k}}}-\frac{{{\mathbf{\delta }}_{k}}\mathbf{\gamma }_{k}^{T}{{\mathbf{S}}_{k}}+{{\mathbf{S}}_{k}}{{\mathbf{\gamma }}_{k}}\mathbf{\delta }_{k}^{T}}{\mathbf{\gamma }_{k}^{T}{{\mathbf{\delta }}_{k}}}\]
由于这两拨人所构造${{\mathbf{S}}_{k+1}}$的目的就是,在计算量小的情况下去接近${{H}^{-1}}({{\mathbf{x}}_{k}})$,如果${{H}^{-1}}({{\mathbf{x}}_{k}})$不好(不是正定的),这个两拨人提出的这种近似的方法,也会规避这种情况,保证${{\mathbf{S}}_{k+1}}$是正定的。
我们如何直观的验证,${{\mathbf{S}}_{k+1}}$是接近${{H}^{-1}}({{\mathbf{x}}_{k\text{+1}}})$的呢?我们先拿一个一元函数来试试,对于一元函数来说,它的Hessian阵可以写为:
\[H({{x}_{k+1}})={f}''({{x}_{k+1}})=\frac{{f}'({{x}_{k+1}})-{f}'({{x}_{k}})}{{{x}_{k+1}}-{{x}_{k}}}=\frac{{{\gamma }_{k}}}{{{\delta }_{k}}}\Rightarrow H({{x}_{k+1}})=\frac{{{\gamma }_{k}}}{{{\delta }_{k}}}\]
这里的${{\gamma }_{k}},{{\delta }_{k}}$和前面多元函数的含义一样,Hessian阵的逆矩阵${{H}^{-1}}({{x}_{k+1}})$可以写为:
\[{{H}^{-1}}({{x}_{k+1}})=\frac{{{\delta }_{k}}}{{{\gamma }_{k}}}\Rightarrow {{H}^{-1}}({{x}_{k+1}}){{\gamma }_{k}}={{\delta }_{k}}\]
由式(20)可见,Hessian阵的逆矩阵和${{\gamma }_{k}},{{\delta }_{k}}$之间有这样的关系,那么类比到${{\mathbf{S}}_{k+1}}$和${{\mathbf{\gamma }}_{k}},{{\mathbf{\delta }}_{k}}$之间的关系,如果${{\mathbf{S}}_{k+1}}$是非常接近${{H}^{-1}}({{\mathbf{x}}_{k\text{+1}}})$,那么一定有${{\mathbf{S}}_{k+1}}{{\mathbf{\gamma }}_{k}}={{\mathbf{\delta }}_{k}}$成立。(在工程上大多数情况下第二拨人的方法的效果比第一拨人好)。
可以自行验证${{\mathbf{S}}_{k+1}}{{\mathbf{\gamma }}_{k}}={{\mathbf{\delta }}_{k}}$:………….
Step3:通过Step2确定下降方向${{\mathbf{d}}_{k}}$之后,$f({{\mathbf{x}}_{k}}+{{\alpha }_{k}}{{\mathbf{d}}_{k}})$可以看成${{\alpha }_{k}}$的一维函数,这一步的主要方法有(Dichotomous search, Fibonacci search, Goldensection search, quadratic interpolation method, and cubic interpolation method);所确定一个步长${{\alpha }_{k}}>0$,${{\mathbf{x}}_{k+1}}={{\mathbf{x}}_{k}}+{{\alpha }_{k}}{{\mathbf{d}}_{k}}$;
Step4: if走一步的距离$\left\| {{\alpha }_{k}}{{\mathbf{d}}_{k}} \right\|<\varepsilon $,则停止并且输出解${{\mathbf{x}}_{k+1}}$;else $k:=k+1$并返回Step2,继续迭代。
02(d)多元无约束优化问题-拟牛顿法的更多相关文章
- 02(c)多元无约束优化问题-牛顿法
此部分内容接<02(a)多元无约束优化问题>! 第二类:牛顿法(Newton method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta })\text{ ...
- 02(b)多元无约束优化问题-最速下降法
此部分内容接02(a)多元无约束优化问题的内容! 第一类:最速下降法(Steepest descent method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta }) ...
- 02(a)多元无约束优化问题
2.1 基本优化问题 $\operatorname{minimize}\text{ }f(x)\text{ for }x\in {{R}^{n}}$ 解决无约束优化问题的一般步骤 ...
- 02(e)多元无约束优化问题- 梯度的两种求解方法以及有约束转化为无约束问题
2.1 求解梯度的两种方法 以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到: $\nabla f=\left[ \begin{aligned}& \frac{\pa ...
- 无约束优化方法(梯度法-牛顿法-BFGS- L-BFGS)
本文讲解的是无约束优化中几个常见的基于梯度的方法,主要有梯度下降与牛顿方法.BFGS 与 L-BFGS 算法. 梯度下降法是基于目标函数梯度的,算法的收敛速度是线性的,并且当问题是病态时或者问题规模较 ...
- MATLAB进行无约束优化
首先先给出三个例子引入fminbnd和fminuc函数求解无约束优化,对这些函数有个初步的了解 求f=2exp(-x)sin(x)在(0,8)上的最大.最小值. 例2 边长3m的正方形铁板,四角减去相 ...
- 01(b)无约束优化(准备知识)
1.解方程转化为优化问题 $n\left\{ \begin{aligned}& {{P}_{1}}(x)=0 \\ & {{P}_{2}}(x)=0 \\ & \text{ ...
- 无约束优化算法——牛顿法与拟牛顿法(DFP,BFGS,LBFGS)
简介:最近在看逻辑回归算法,在算法构建模型的过程中需要对参数进行求解,采用的方法有梯度下降法和无约束项优化算法.之前对无约束项优化算法并不是很了解,于是在学习逻辑回归之前,先对无约束项优化算法中经典的 ...
- 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法
065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...
随机推荐
- DB First EF中的存储过程、函数、视图
视图约等于表(属性)存储过程变为方法,方法中调用存储过程 EF可以调用存储过程,DB First的流程是刷新模型,获取存储过程,调用参考:http://blog.csdn.net/sudazf/art ...
- 在云中生成和模拟 iOS
原文:在云中生成和模拟 iOS 1.原文地址 https://msdn.microsoft.com/zh-cn/library/vs/alm/dn858446.aspx
- 教你如何快速使用Github
以前看过几篇github的使用教程,感觉还是不是很清晰,自从看到了这篇,通俗易懂,也学会基本的使用了,在此为大家推荐.(转自知乎,为了能让更多的人看到,请允许我使用 “原创”,如果侵权请联系.) Gi ...
- log4j-slf4j 典型用例
一.maven 配置 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j ...
- 开源代码分析工具 good
checkstyle - static code analysis tool for JavaPMD - A source code analyzer
- FMX+Win32,窗口无法保持原样,应该是个bug
从FMX发布开始,一直有这问题,大家看看是不是一个bug,应该如何修复? 新建一个FMX Application,运行后,点击窗口标题栏右上角的“最大化”按钮,此时窗口是最大化的.在windows最底 ...
- qtablewidget qss加上这个,QHeaderView::section
qtablewidget qss加上这个,QHeaderView::section { color: white; padding: 4px; height:24px; b ...
- 快速开发平台 WebBuilder 8 发布
快速开发平台 WebBuilder 8 发布 了解:http://www.putdb.com,官网:http://www.geejing.com 什么是WebBuilder? WebBuilder是 ...
- Redis EXISTS命令耗时过长case排查
一.背景 redis慢日志分析平台上线后,随便看了一下,发现onestore使用的缓存集群,存在大量的EXISTS命令慢查询的情况: 平均每个EXISTS命令需要13ms,最大耗时近20ms.这个结果 ...
- 教你做一个牛逼的DBA(在大数据下)
一.基本概念 大数据量下,搞mysql,以下概念需要先达成一致 1)单库,不多说了,就是一个库 2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表 3)复制(replication ...