最优化理论学习笔记_2(非精确线性搜索)
来源:互联网 发布:米折是淘宝网的吗 编辑:程序博客网 时间:2024/06/10 11:47
当优化函数的维度n非常大或者f(x)非常复杂的时候,精确线性搜索的计算量是非常大的,并且在离最优解尚远的时候,并没有做精确线性搜索的必要。这使得我们不得不考虑非精确线性搜索。
非精确线性搜索:
如果我们不适用精确线性搜索的话,我们要如何选择步长呢?取步长alpha使得下式成立是否可以呢?
f(x_k+alpha_k*d_k)<f(x_k);
有例子告诉我们,这个准则未必行得通。
优化问题 min f(x)=x^2
初始迭代点x_1=2;
方法1:alpha_k=2+2(k+1)/(K^2+k) 则x_k=(-1)^(k+1)(1+1/k)
方法2:alpha_k=1/(k(k+1)) 则x_k=1+1/k
可以看到两种方法选取的alpha均能使得上述准则成立,但是,两者均不能收敛到最优解。
造成不收敛的原因分别在于,步长选取的过大或者过小;
由此可以看出,我们需要寻求更加细致的准则来寻找非精确线性搜索的步长以至于它们不至于太大或者太小;
Armijo准则:
选取alpha_k使得:
f(x_k+alpha*d_k)<=f(x_k)+p*transpose(g_k)*d_k*alpha其中0<p<1;
一般来说,只要下降方向d_k的选取没有问题,transpose(g_k)*d_k<0是恒成立的,所以只要alpha选取的不是太大,都可以保证上式的成立:
关于如何使得步长如何不取的太小,又有许多准则,它们与上述准则一起构成了不同的准则;
Goldstein准则;
f(x_k+alpha*d_k)<=f(x_k)+p*transpose(g_k)*d_k*alpha其中0<p<1/2;
f(x_k+alpha*d_k)>=f(x_k)+(1-p)*transpose(g_k)*d_k*alpha
Wolfe准则:
f(x_k+alpha*d_k)<=f(x_k)+p*transpose(g_k)*d_k*alpha其中0<q<p<1;
Transpose(g(x_k+alpha*d_k))*d_k>=q*transpose(g_k)*d_k;
Wolfe准则无法保证在q取很小或者接近0的时候,非精确线性搜索的解接近精确线性搜索的结果,于是有了强Wolfe准则来保证这一点;
强Wolfe准则:
f(x_k+alpha*d_k)<=f(x_k)+p*transpose(g_k)*d_k*alpha其中0<q<p<1;
abs(Transpose(g(x_k+alpha*d_k))*d_k)<=-q*transpose(g_k)*d_k;
由于强Wolfe准则控制了斜率的绝对值,因此当q取的越小,非精确线性搜索的结果可以充分接近精确线性搜索的结果。
定理:(非精确线性搜索的解的存在性)
设f(x_k+alpha*d_k)在alpha>0时有下界,且transpose(g_k)*d_k<0,则必存在alpha_k使得x_(k+1)满足Wolfe(强Wolfe)或者Goldstein准则。
- 最优化理论学习笔记_2(非精确线性搜索)
- 最优化理论学习笔记_1(精确线性搜索)
- 漫步最优化三十——非精确线搜索
- 非精确线搜索
- 算法设计和复杂性理论学习笔记_2(数学基础)
- 机器学习笔记_ 数值最优化_2:最优化算法
- 算法_11:线性优化_2: 整数规划
- 非精确线搜索之Armijo搜索
- 使用非精确线搜索Armijo算法确定步长的最速下降法(MATLAB)
- 最优化理论学习———问题汇总
- 最优化学习笔记(二)一维搜索
- 数据结构与算法学习笔记02_2(线性表)
- 自动机理论学习笔记
- 操作系统理论学习笔记
- HDFS的理论学习笔记
- 最优化问题-线性优化(LP)
- 精确搜索
- Stanford cs231n笔记(二)线性分类器损失函数与最优化
- 新开一个cmd窗口,并cd 至d:\project 的批处理文件
- boost ---- timer
- easyhadoop初识以及各种问题
- Steps to write a simple batch bat file
- Git操作总结
- 最优化理论学习笔记_2(非精确线性搜索)
- DateTimePicker同时修改日期和时间的实现
- 解决 安卓SDK无法下载的问题
- 1003_(2)我要通过
- 习近平:坚持用好批评和自我批评的武器
- 深度分析define预处理指令
- 陕西安康数百人被毒蜂蜇伤 已有21人死亡
- 汉字转化为拼音
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]