说明:今天10.24,祝程序员们节日快乐,呜啦啦啦
爱上一个人后,
发现自己变得主动了,
感觉什么都值得去做。
我想大声宣布,
我对你依依不舍,
我想牵着你的手不放开,
我想简简单单爱。
我的肩膀任你依靠,
我的胸口任你锤锤,
永远单纯没有悲哀,
像这样一直走下去。
——畅宝宝的傻逼哥哥
在多维算法中,大部分计算量都用在执行线搜索时函数与梯度的运算上,因此所需要的运算量主要依赖于所用线搜索的效率与精度。如果需要高精度的线搜索,那么计算量就比较大。如果非精确线搜索不影响算法的收敛,那么我们可能减少计算量。
实际发现许多优化算法可以容忍不精确的线搜索,正由于此,对于这些方法我们使用非精确线搜索。
假设
其中
dk
是给定的方向向量且
α
是无关的搜索参数,存在某个正值
α
,使得函数
f(xk+1)
有唯一的极小值,泰勒级数的线形近似为
其中
上面等式表示图1中的直线
A
,等式
表示直线
B
,其中
表示直线
C
,其斜率从
如图2所示。显然当
ρ
从0到
12
时,
θ
从
−gTkdk
到0,当固定
ρ
为范围内的某个值时,两条直线与曲线
f(xk+1)
相交可以得出两个
α
值,
α1,α2
,如图2所示。
图1
令 α0 是最小化 f(xk+αdk) 得到的 α 估计值,对于 α=α0 ,如果 f(xk+1) 等于或小于直线 B 相应的
那么我们可以判定 α0 为 α∗ 的一个估计值,这时候 α1≤α0≤α2 ,如图2所示, α1,α2 组成了包含最小值 α0 的区间,上面的两个不等式称为Goldstein条件,他们是非精确线搜索的基础。该方法基于可利用的信息生成估计值 α0 ,并检查Goldstein条件,如果都满足,那么接受 f(xk+1) 的减少并终止该过程。另一方面,如果任何一个条件不满足,那么 f(xk+1) 的减少是不充分的,我们需要进一步改善 α∗ 的估计值,用 αˇ0 表示。假设第一个不等式不满足,那么 α0>α2 如图3所示,因为 αL<α∗<α0 ,所以新的 αˇ0 可以用内插来确定。另一方面,如果第二个不等式不满足,那么 α0<α1 如图4所示,因为 α0 在 αL<α0<α∗ 之间,所以 α0ˇ 可以用外插来确定。
如果
f(xk+αdk)
在
α=αL,α=α0
处的函数值以及导数值均已知的话,那么对于
α0>α2
,
α0ˇ
的一个好估计用内插公式
得出,对于
α0>α2
用外插公式
确定,其中
图2
重复上面的过程直到产生的 αˇ0 满足 α1<αˇ0<α2 ,那么终止非精确线搜索。
图3
图4