一维线搜索确定最优步长
目录
- 一维搜索问题
- 进退法确定搜索区间
- 分割技术(0.618)减小搜索区间
- wolfe条件确定步长
4.1 梯度与函数下降的关系?
4.2 wolfe条件
1.一维搜索问题
一维线搜索,就是指单变量函数的最优化,它是专门针对单峰函数设计的:
如上一篇文章所述,多变量函数中,迭代格式为:
x_{k+1} = x_k + \alpha_k d_k其中的关键就在于找到合适的步长 αk,和搜索方向dk.\alpha_k,和搜索方向d_k.可以设:
\phi(\alpha) =f(x_k + \alpha d_k)从初始点 xkx_k出发,以步长 αk\alpha_k沿着搜索方向搜索,使得:
\phi(\alpha_k) 的问题,就是所谓的关于 α\alpha的一维搜索问题。
如果能找到 αk\alpha_k使得:
f(x_k + \alpha_k d_k) = \min_{\alpha>0} f(x_k + \alpha d_k)其中 αk\alpha_k就是最优的步长因子。
关键还是怎么得到这样的αk\alpha_k,在一维搜索中,其主要的想法就是先确定一个搜索区间,然后采用插值法或者分割技术逐渐减小这个区间,直到找到最优的αk\alpha_k.
2.进退法确定搜索区间
搜索区间,相当于满足α∗>0的同时,\alpha^*>0的同时,使得:
\phi(\alpha^*) = \min_{\alpha>0}\phi(\alpha)的 α∗\alpha^*所在的区间[a,b]( α∗∈[a,b]\alpha^* \in [a,b]),且该区间必定会大于0,称该区间称为搜索区间。
其中确定搜索区间的方法之一就是进退法:
- 从一点出发,试图确定函数值的高-低-高三点,沿着搜索方向搜索,如果一个方向不成功,就退回来,沿着相反方向搜索。这样只需比较一个点的函数值大小,就可以确定了。
算法步骤如下:
- α0∈[0,+∞),h0>0,k:=0,计算ϕ(α0)\alpha_0 \in [0,+\infty),h_0>0,k:=0,计算\phi(\alpha_0)
- 比较目标函数值,令αk+1=αk+hk\alpha_{k+1} = \alpha_k + h_k,计算ϕ(αk+1),若ϕ(αk+1)<ϕ(αk)\phi(\alpha_{k+1}),若\phi(\alpha_{k+1}) ,转到第三步
- 加大搜索步长hk−1:=t∗hk(t一般取2),α:=αk,αk:=αk+1,ϕ(αk):=ϕ(αk+1)h_{k-1} := t*h_k(t一般取2),\alpha:=\alpha_k,\alpha_k := \alpha_{k+1},\phi(\alpha_k) :=\phi(\alpha_{k+1})转至第二步
- 反向搜索;若k=0,令hk:=−hk,αk:=αk+1,转至第二步。否则停止迭代,h_k := - h_k,\alpha_k :=\alpha_{k+1},转至第二步。否则停止迭代,得到
a=min(α,αk+1),b=max(α,αk+1)
a = min(\alpha,\alpha_{k+1}),b = max(\alpha,\alpha_{k+1})输出,a,b
过程如图所示:
3.分割技术(0.618)减小搜索区间
前面介绍了怎么用进退法确定我们的搜索区间,但区间那么大,也不好求出最优化,因此可以通过切割区间,来减小区间,0.618和Fibonacci就是这样的分割方法。
- 它们的基本思想都是通过取试探点,进行函数值比较,使包含极小点的搜索区间逐渐减小,当区间长度缩小到一定程度时,可以认为区间内的点均为极小点的近似。
0.618法是针对以上的单峰函数的,可以设
\phi(\alpha) = f(x_k + \alpha d_k)是搜索区间 [a0,b0][a_0,b_0]上的单峰函数
第一步迭代:
1. 要求 λk,μk\lambda_k,\mu_k到搜索区间的两个端点等距;
2. 每次迭代,要求搜索区间的缩短率相同;
用数学表达式表达出来如下:
第二次迭代:
由此得到
迭代到一定条件之后,可以求出我们最初要求的参数:
\alpha_k ={ (\lambda_k + \mu_k)\over 2}
此外,还有一些分割方法,比如Fibonacci,它和0.618法的主要区别是它的缩短率不是采用黄金分割数,而是采用了Fibonacci数,Fibonacci数列满足:
F_0 = F_1=1,F_{k+1 }= F_k + F_{k-1},详细的推导请参考袁亚湘老师的 最优化理论与方法p73.
4.wolfe条件确定步长
在一些实际问题中,目标函数如果不可微,就可以采用0.618法来确定步长,但也有很多情况下目标函数是可微的,一旦可微,我们就可以计算他们的梯度了。
4.1 梯度与函数下降的关系?
很多人有这样的疑问,梯度有什么用?
如图所示为梯度方向,如果梯度小于0,则必然是相反方向,也就是函数下降的方向,这是一个直观的看法,下面用公式证明这个结论。
定义:设ff是Rn上的实函数,d∈Rn。R^n上的实函数,d\in R^n。若存在某个正数α⎯⎯>0使得\overline\alpha>0使得
f(x+\alpha d) 则称d是f在x处的一个下降方向,相关系数α\alpha称为一个步长。(这个是下降方向的数学表达式,满足这个条件的就是下降方向)
再给出一个定理:设f:是Rn→Rf:是R^n \rightarrow R在x处可微,若存在d∈Rnd \in R^n使得
\nabla f(x)^Td 则d必为f(x)f(x)在x处的一个下降方向。
为了看一下这个的准确性,现在给出证明。
证明:由Taylor定理,对于任意的α>0,\alpha>0,我们有
f(x+ \alpha d) = f(x) + \alpha \nabla f(x)^Td + o(||\alpha d||)既然 ∇f(x)Td<0,从而必然存在α⎯⎯>0,\nabla f(x)^Td 0,使得当 α∈(0,α⎯⎯)\alpha \in (0,\overline \alpha)时,
\nabla f(x)^Td + \frac{o(||\alpha d||)}{\alpha} 于是
f(x+ \alpha d) = f(x) + \alpha \nabla f(x)^Td + o(||\alpha d||) 得证。
由此我们发现,只要∇f(x)≠0,\nabla f(x) \neq 0,那么下降方向dd一定存在,因为即使∇f(x)>0,\nabla f(x)>0,我们可以取它的负方向作为下降方向。
4.2 wolfe条件
大于0的正数α\alpha作为步长,在函数下降方向总有:
Armijo条件: f(x + \alpha d) = f(x) + c\alpha \nabla f(x)^T d, \ \ \ 0
但直接用该条件确定步长有可能使得步长太小,故使用后退技巧:选取0<t<10,找到一个最小的非负整数j,使得
f(x + t^j d) \leq f(x) + ct^j \nabla f(x)^T d,令步长为 α=tj\alpha = t^j.
如果该条件加上曲率条件,就构成了Wolfe条件:
Armijo条件: f(x + \alpha d) = f(x) + c_1\alpha \nabla f(x)^T d,
曲率条件:\nabla f(x + \alpha d)^Td \geq c_2 \nabla f(x)^Td,其中 0<c1<c2<1.0
参考
最优化理论与方法 –袁亚湘
最优化选讲
一维线搜索确定最优步长相关推荐
- 非精确一维线搜索(Armijo-Goldstein Rule 和 Wolfe-Powell Rule)
非精确一维线搜索(Armijo-Goldstein Rule 和 Wolfe-Powell Rule) Armijo-Goldstein Rule 算法步骤 Wolfe-Powell Rule 算法步 ...
- el-select 多选取值_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
上一节笔记传送门: 学弱猹:数值优化|笔记整理(2)--线搜索:步长选取条件的收敛性zhuanlan.zhihu.com ------------------------------------ 大 ...
- 回溯法采用的搜索策略_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
上一节笔记传送门: 学弱猹:数值优化|笔记整理(2)--线搜索:步长选取条件的收敛性zhuanlan.zhihu.com ------------------------------------ 大 ...
- 机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则
本系列文章主要是我在学习<数值优化>过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程<机器人中的数值优化>和高立编著的<数值最优化方法>等,本系列文 ...
- 漫步最优化三十——非精确线搜索
说明:今天10.24,祝程序员们节日快乐,呜啦啦啦\textbf{说明:今天10.24,祝程序员们节日快乐,呜啦啦啦} 爱上一个人后,\textbf{爱上一个人后,} 发现自己变得主动了,\textb ...
- 无约束优化:线搜索最速下降
文章目录 无约束优化:线搜索最速下降 无约束优化问题 线搜索最速下降 精确线搜索 非精确线搜索 Armijo准则 Goldstein准则 Wolfe准则 参考文献 无约束优化:线搜索最速下降 无约束优 ...
- 线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则
转载请注明出处:http://www.codelast.com/ line search(一维搜索,或线搜索)是最优化(Optimization)算法中的一个基础步骤/算法.它可以分为精确的一维搜索以 ...
- matlab wolfe准则,[原创]用“人话”解释不精确线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则...
line search(一维搜索,或线搜索)是最优化(Optimization)算法中的一个基础步骤/算法.它可以分为精确的一维搜索以及不精确的一维搜索两大类. 在本文中,我想用"人话&qu ...
- 用“人话”解释不精确线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则
转载请注明出处:http://www.codelast.com/ line search(一维搜索,或线搜索)是最优化(Optimization)算法中的一个基础步骤/算法.它可以分为精确的一维搜索以 ...
最新文章
- 一笔画 (25 分)
- 偏见方差的权衡(Bias Variance Tradeoff)
- Python的sort()
- 数据库 SQL语法一
- Android之INSTALL_FAILED_UPDATE_INCOMPATIBLE(pacakge:...do not match the previously installed version)
- 双向链表中插入结点并输出
- php重写curl_setopt函数,PHP curl_share_setopt函数
- Google Chrome,另类的邪恶垄断?
- 一次失败的做题经历(HDU2112)
- tar.bz2 解压命令
- android apk更新下载以及安装
- 多序列比对---ClustalX比对GeneDoc美化
- Git——详解操作码云
- 2021年中国频谱分析仪行业市场规模、格局及专利情况分析:行业规模不断扩大,国外企业占据主导地位,国产企业发展空间较大[图]
- STL之string篇
- Unity之多场景自动化打包研究
- 黄一孟:骑着电驴找金矿
- python对象和对象名
- 初链(true)混合共识算法分析与评估
- 修改TrustedInstaller权限文件
热门文章
- 使用压缩软件对文件夹进行加密和解密过程
- Django实战小型图书人物信息网页(MVT的综合运用)
- 想要买房,一定要先了解清楚CAD户型图纸
- 修改html不显示效果图,html图片不显示怎么办
- 预测贷款用户是否逾期-数据预处理
- c语言经典程序100例 - 百度,经典C语言程序100例(51-80)_绝望之家_百度空间
- 本草纲目pdf彩图版下载_本草纲目彩图版(全二册)
- sublime安装json格式化插件
- Linux常用命令(Hadoop)
- SQL server 数据库获取datetime2(7)类型的年月日时分秒及其他时间格式