数值优化(三、六)

线搜索方法

线搜索方法的基本过程都是在每一次迭代中先计算出一个优化方向\(p_k\),再在这个方向上对目标函数做一维优化,即选取合适的\(\alpha_k\),使\(x_{k+1}=x_k+\alpha p_k\)达到优化目的。一般来说,选取\(p_k=-B_k^{--1}\nabla f_k\),其中\(B_k\)是一个对称正定矩阵,\(B_k\)的选取有多种选择,比如在牛顿法中,\(B_k\)就是Hessian,而在逆牛顿法中,\(B_k\)是Hessian的近似。由于\(p_k=-B_k^{--1}\nabla f_k\),\(B_k\)正定,可以知道\(p_k\)确实是下降方向。

搜索步长

定义\[\Phi(\alpha)=f(x_k+\alpha p_k) \quad \alpha >0\]步长选取就是该函数的局部最优化问题,对此不需要太高的准确度,不能在这个问题上花费很多时间,所以只需要给出一个差不多的解就可以了。步长搜索过程分为两个阶段--bracketing-phase和bisection(or interpolation)-phase,前者找到一个包含期望步长的区间,后者在这个区间里面计算出一个好的步长。为此,先给搜索步长施加几个要求,首先就是搜索步长需要使得函数下降,但这显然不够,于是还有下面的条件。

Wolfe Condition

充分下降条件

\[f(x_k+\alpha p_k) \leq f(x_k)+c_1\alpha \nabla f_k^T p_k\]

示意图:

curvature condition

\[\nabla f (x_k+\alpha_k p_k)^Tp_k \geq c_2\nabla f_k^T p_k \quad 0 < c_1<c_2<1\]

示意图:

两个条件合起来称为Wolfe-condition,在实际应用中,\(c_1\)通常取得比较小,比如\(10^{-4}\)。\(c_2\)在牛顿和拟牛顿方法中通常取0.9,在共轭梯度法中通常取0.1。

将curvature condition改为\[|\nabla f (x_k+\alpha_k p_k)^Tp_k| \leq c_2|\nabla f_k^T p_k|\]得到的条件称为strong Wolfe condition

在Wolfe condition和strong Wolfe condition下,满足条件的步长是存在的:

The Goldstein condition

Goldstein condition和Wolfe condition出发点相同,都是在保证充足的下降情况下,又避免搜索步长过小。\[f(x_k)+(1-c)\alpha_k \nabla f_k^T p_k \leq f(x_k+\alpha_k p_k)\leq f(x_k)+c\alpha_k \nabla f_k^T p_k\quad 0<c<\frac{1}{2}\]Goldstein condition相对于Wolfe condition的缺点是,它的第一个不等式有可能排除了所有极小点。

backtracking

即使只对步长施加充分下降条件,只要适当选取步长,也是可以的,这里就要用到称为backtracking的方法。

在这个过程中,初始步长在牛顿和拟牛顿方法中取为1,在其他方法中可取为不同的值。

## 收敛理论

其中\(\theta_k\)是\(\nabla f_k\)与\(p_k\)的夹角。将这个定理中的wolfe condition换为goldstein 或strong wolfe定理任然成立。

最速下降法

可知最速下降法收敛速度是线性的

牛顿法

原文地址:https://www.cnblogs.com/mathematic-offering/p/9381284.html

时间: 2024-10-05 10:17:30

数值优化(三、六)的相关文章

Android 性能优化 三 布局优化ViewStub标签的使用

小黑与小白的故事,通过虚拟这两个人物进行一问一答的形式来共同学习ViewStub的使用 小白:Hi,小黑,ViewStub是什么?听说可以用来进行布局优化. 小黑:ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件.(更多详细的API等信息可以查看官方文档ViewStub),计算机行业一向是实践里面出真知,下面用一个例子演示下效果. 小黑:说说概念只是为了概括性的了解下,还是用个实例来演示下.先来创建一个Activity中使用的布局文件,文件名是:act

UVA 10883 - Supermean(组合数学+数值优化)

题目链接:10883 - Supermean 题意:求超级平均数,就是相邻两个算一个平均数,直到剩下一个数,求数值. 思路:画图很容易推断出公式.就拿最后一组样例来说 1     2      3      4      5 1.5  2.5   3.5   4.5 2       3      4 2.5   3.5 3 观察可以发现都是从顶到底,看又几条路线,就有几次,然后最后每个数字在除上相应次数的2,那几条路线就是C(n - 1, [0 - n - 1])的组合数. 所以ans = su

centos mysql 优化 第六节课

centos mysql  优化  第六节课 f

数值优化(Numerical Optimization)学习系列-文件夹

概述 数值优化对于最优化问题提供了一种迭代算法思路,通过迭代逐渐接近最优解,分别对无约束最优化问题和带约束最优化问题进行求解. 该系列教程能够參考的资料有 1. <Numerical Optimization 2nd>–Jorge Nocedal Stephen J. Wright 2. <凸优化>–Stephen Boyd 3. <非线性最优化基础>–Masao Fukushima(林贵华译) 4. <非线性最优化理论与方法>–王宜举 5. 凸优化在线课程

【SQL server初级】数据库性能优化三:程序操作优化

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一.操作符优化 1. IN.NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替IN . Not IN 不走索引的是绝对不能用的,可以用NOT EXISTS 代替 2. IS 

数据库性能优化三:程序操作优化

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一.操作符优化 1. IN.NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替IN . Not IN 不走索引的是绝对不能用的,可以用NOT EXISTS 代替 2. IS 

uva 10883 - Supermean(组合数学+数值优化)

题目链接:uva 10883 - Supermean 题目大意:给出n个数,每相邻两个数求平均数,将得到n-1个数,这n-1个数每相邻的两个数求平均值,将得到n-2个数.一次类推,求最后得到的那个数的值. 解题思路:类似与杨辉三角,第i个数起始被加了C(n?1i?1)次.总共有2n?1个数相加.但是因为n有50000,250000根本存不下,所以借助log函数. 例: 中间的2可以通过蓝色和红色两条路径影响最后的答案. #include <cstdio> #include <cstrin

【数值优化】基础

"数值"优化:设置算法时,要考虑舍入误差. 数值优化问题分类: 无约束优化  VS 约束优化 线性规划.目标函数和约束函数都是线性的 二次规划.目标函数为二次的,约束函数为线性. 凸优化.目标函数为凸的,约束函数为线性的. 局部解 VS 全局解 连续   VS  离散 确定  VS  随机 无约束优化问题基础 解的一阶必要条件: 解的二阶必要条件: 解的二阶充分条件: 迭代算法(如何构造下一个迭代点).终止条件 一阶.二阶.直接算法 直接算法无需使用导数,一阶算法需要使用一阶导数,二阶

数值优化:计算基本理论

1. 优化问题 最一般的优化问题的表述是这样的: 求解等式约束 $\boldsymbol{g}(\boldsymbol{x})=0$ 和不等式约束 $\boldsymbol{h}(\boldsymbol{x})\leq 0$ 下使得取得 $\min f(\boldsymbol{x})$ 的解 $\boldsymbol{x}$ 其中 $f:\mathbb{R}^n\Rightarrow \mathbb{R}$,$\boldsymbol{g}:\mathbb{R}^n\Rightarrow \mat