【数值优化之线搜索方法】

本文参考书籍《最优化计算方法》,部分图片来自最优化:建模、算法与理论/最优化计算方法 (pku.edu.cn),若侵权请联系删除

目录

1 线搜索方法简介

2 单调线搜索准则

2.1 Armijo准则

2.2 Goldstein准则

2.3 Wolfe准则

3 非单调线搜索准则

4 线搜索算法

​5 收敛性分析


1 线搜索方法简介

对于无约束优化问题,寻求最小值的过程相当于盲人下山的过程,为了下山,需要做两个判断,第一,需要知道朝哪个方向走,第二,需要知道走几步,而通过不断重复这两个判断就能达到迭代的效果,不断逼近最优值。

【数值优化之线搜索方法】_第1张图片

注意:上面的搜索方向只要和梯度方向夹角大于90度,那么就会是下降方向。但是走了过多的步数又会使下降效果不好,甚至不降反升,因为负梯度方向仅是迭代点的最快下降方向,一旦偏离就会产生新的最快下降方向。虽然步子卖得小能保证函数值降低,但是算法的效率就很低,下降得慢。所以下面主要讨论如何恰当的选取步长。

首先我们构造辅助函数:关于步长的一元函数

 这样就相当于可以判断步长取什么值时,下降的最多,但是为了得到最好的步长,往往需要花很多的时间,这种线搜索算法称为精确线搜索算法。但耗费大量的计算量与时间的算法并不实用,于是,创造出了另一种算法,每次不让步长取到最优而是比较好,也就是满足一定不等式,这样就使得计算量小,这种算法称为非精确线搜索算法

2 单调线搜索准则

上述需要满足一定不等式,也就是所谓线搜索准则,但是这个准则的合适与否决定了算法的收敛性,下面举一个例子

【数值优化之线搜索方法】_第2张图片

2.1 Armijo准则

【数值优化之线搜索方法】_第3张图片

下面解释一下这个准则 

w(\alpha )=\phi (0)+\phi {}'(0)(\alpha -0)=\phi (0)+\alpha \bigtriangledown f(x^{k})^{T}d^{k}  

w(\alpha )< l(\alpha )< 0

\therefore l(\alpha )=c_{1}w(\alpha ),c_{1}\in (0,1)

夹在水平线和切线之间的线能保持函数值下降【数值优化之线搜索方法】_第4张图片【数值优化之线搜索方法】_第5张图片

【数值优化之线搜索方法】_第6张图片

此外我们一般还会对步长设置一个下界,防止步长过小的近似无效迭代。Armijo准则是最重要的准则,后面的很多准则都是改进Armijo准则或者以其为基础

2.2 Goldstein准则

【数值优化之线搜索方法】_第7张图片Goldstein准则能去掉过小的步长【数值优化之线搜索方法】_第8张图片

2.3 Wolfe准则

Wolfe准则最关键的点是让步长范围包含最优步长

【数值优化之线搜索方法】_第9张图片【数值优化之线搜索方法】_第10张图片

【数值优化之线搜索方法】_第11张图片

3 非单调线搜索准则

上面三种准则有个共同点,也就是迭代点序列是单调的,因为他们的核心都是要求函数值不断下降

【数值优化之线搜索方法】_第12张图片

【数值优化之线搜索方法】_第13张图片

4 线搜索算法

【数值优化之线搜索方法】_第14张图片

【数值优化之线搜索方法】_第15张图片5 收敛性分析

【数值优化之线搜索方法】_第16张图片

【数值优化之线搜索方法】_第17张图片 【数值优化之线搜索方法】_第18张图片

【数值优化之线搜索方法】_第19张图片 【数值优化之线搜索方法】_第20张图片

【数值优化之线搜索方法】_第21张图片

你可能感兴趣的:(数值优化,大数据,性能优化,算法)