优化理论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式子右边要小,即:
λ k ( 1 − ρ

以上是关于优化理论16----Armijo-Goldstein准则 Armijo-Goldstein搜索方法python实现的主要内容,如果未能解决你的问题,请参考以下文章

最优化理论与算法第二版陈宝林课后习题答案

最优化理论基础

[理论篇]深度理解Powell优化算法

MySql学习 —— 数据库优化理论 —— 查询优化技术

数值优化:计算基本理论

最优化理论与技术