优化理论16----Armijo-Goldstein准则 Armijo-Goldstein搜索方法python实现
Posted 炫云云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化理论16----Armijo-Goldstein准则 Armijo-Goldstein搜索方法python实现相关的知识,希望对你有一定的参考价值。
不精确一维搜索——Armijo-Goldstein方法
最优化知识笔记整理汇总,超级棒
不精确一维搜索
不精确一维搜索法是求一维函数在区间 [ 0 , ∞ ) [0, \\infty) [0,∞) 上的近似极小值,而这个近似精度由一个可接受参数来度量,用不精确一维搜索能求得极值的条件是函数在零点处的导数小于0,即 f ′ ( 0 ) < 0 f^{\\prime}(0)<0 f′(0)<0 。主要有两种不精确一维搜索法:Armijo-Goldstein法和Wolfe-Powell法。
Armijo-Goldstein准则
Armijo-Goldstein准则的核心思想有两个:
①目标函数值应该有足够的下降;②一维搜索的步长 λ \\lambda λ不应该太小。
这两个思想的意图非常明显。由于最优化问题的目的就是寻找极小值,因此,让目标函数函数值“下降”是我们努力的方向,所以①正是想要保证这一点。
同理,②也类似:如果一维搜索的步长 λ \\lambda λ太小了,那么我们的搜索类似于在原地打转,可能也是在浪费时间和精力。
有了这两个指导思想,我们来看看Armijo-Goldstein准则的数学表达式:
f
(
x
k
+
λ
k
d
k
)
−
f
(
x
k
)
≤
λ
k
ρ
g
k
T
d
k
(1)
\\begin{array}{l} f\\left(x^{k}+\\lambda_{k} d^{k}\\right)-f\\left(x^{k}\\right) \\leq \\lambda_{k} \\rho g_{k}^{T} d^{k}\\\\ \\end{array}\\tag{1}
f(xk+λkdk)−f(xk)≤λkρgkTdk(1)
f ( x k + λ k d k ) − f ( x k ) ≥ λ k ( 1 − ρ ) g k T d k (2) \\begin{array}{l} f\\left(x^{k}+\\lambda_{k} d^{k}\\right)-f\\left(x^{k}\\right) \\geq \\lambda_{k}(1-\\rho) g_{k}^{T} d^{k} \\end{array}\\tag{2} f(xk+λkdk)−f(xk)≥λk(1−ρ)gkTdk(2)
其中, 0 < ρ < 1 2 0 < \\rho < \\frac{1}{2} 0<ρ<21
公式推导
在非精确一维搜索中,通常要求 f ( x k + 1 ) f(x^{k+1}) f(xk+1)比 f ( x k ) f(x^{k}) f(xk)下降一定的数量,从而使得 f ( x k + 1 ) − f ( x k ) f(x^{k+1})-f(x^{k}) f(xk+1)−f(xk)达到一个满意水平,此时的 λ k \\lambda_k λk,就是可接受步长。
如何选取可接受步长 λ k \\lambda_k λk呢?
(1)不等式的左边式子的泰勒展开式为:
f
(
x
k
+
λ
k
d
k
)
=
f
(
x
k
)
+
λ
k
g
k
T
d
k
+
o
(
∥
λ
k
d
k
∥
)
(3)
f({x^k} + {\\lambda_k}{d^k}) = f({x^k}) + {\\lambda_k}{g_k}^T{d^k} + o(\\|{\\lambda_k}{d_k}\\|)\\tag{3}
f(xk+λkdk)=f(xk)+λkgkTdk+o(∥λkdk∥)(3)
其中
g
k
=
▽
f
(
x
k
)
{g_k} = \\triangledown f({x^k})
gk=▽f(xk),我们已知了
g
k
T
d
k
<
0
{g_k}^T{d^k} < 0
gkTdk<0(这是
d
k
{d^k}
dk 为下降方向的充要条件),并且
0
<
ρ
<
1
2
0 < \\rho < \\frac{1}{2}
0<ρ<21
去掉高阶无穷小,剩下的部分为: f ( x k ) + λ k g k T d k f({x^k}) + {\\lambda_k}{g_k}^T{d^k} f(xk)+λkgkTdk
而(*)不等式右边与之只差一个系数 ρ \\rho ρ
因此,3式右边仍然是一个比
f
(
x
k
)
f({x^k})
f(xk) 小的数,即:
f
(
x
k
)
+
λ
k
ρ
g
k
T
d
k
<
f
(
x
k
)
f({x^k}) + {\\lambda_k}\\rho{g_k}^T{d^k}< f({x_k})
f(xk)+λkρgkTdk<f(xk)
也就是说函数值是下降的(下降是最优化的目标)。
由于
g
k
T
d
k
<
0
{g_k}^T{d^k} < 0
gkTdk<0,并且
0
<
ρ
<
1
2
0 < \\rho < \\frac{1}{2}
0<ρ<21,故
(
2
)
(2)
(2)式子右边比
(
1
)
(1)
(1)式子右边要小,即: 以上是关于优化理论16----Armijo-Goldstein准则 Armijo-Goldstein搜索方法python实现的主要内容,如果未能解决你的问题,请参考以下文章
λ
k
(
1
−
ρ