[非线性最优化方法](牛顿法、LM方法)(未完)

目录

  • 非线性最优化方法
    • 引言
  • 一维搜索
        • 0.618 法
        • Fibonacci法
        • 插值法
  • 牛顿型方法
    • 1. 最速下降法
    • 2. 牛顿法
        • 修正牛顿法
        • Gill-Murray稳定牛顿法
        • Goldfeld修正牛顿法
    • 3.信赖域方法
      • Levenberg-Marquardt方法

非线性最优化方法

引言

最优化的问题的一般形式为:
min ⁡ f ( x ) ,   s . t . x ∈ X \min f(\mathbf{x}) , \ s.t. \mathbf{x}\in X minf(x), s.t.xX
f ( x ) f(\mathbf{x}) f(x)为目标函数, X ∈ E n \mathbf{X\in E^n} XEn

非线性特点:

  • 不是线性
  • 复杂弯曲
  • 没有通解

无约束问题的最优条件:
min ⁡ f ( x ) , x ∈ R n \min f(\mathbf{x}),\mathbf{x} \in R^n minf(x),xRn的最优性条件:
g ( x ) = ∇ f ( x ) , G ( x ) = Δ f ( x ) g(x)=\nabla f(x),G(x)=\Delta f(x) g(x)=f(x),G(x)=Δf(x)分别为 f f f的一阶和二阶导数。
定理(一阶必要条件):设 f : D ⊂ R n → R 1 f:D \subset R^n \to R^1 f:DRnR1在开集 D D D上连续可微,若 x ∗ ∈ D x^* \in D xD是局部极小点,则 g ( x ∗ ) = 0. g(x^*)=0. g(x)=0.
定理(二阶必要条件):设 f : D ⊂ R n → R 1 f:D \subset R^n \to R^1 f:DRnR1在开集 D D D上二阶连续可微,若 x ∗ ∈ D x^* \in D xD是局部极小点,则 g ( x ∗ ) = 0 ,   G ( x ∗ ) ≥ 0 g(x^*)=0,\ G(x^*) \geq 0 g(x)=0, G(x)0

  • 迭代优化方法的基本思想
  1. 给定一个初始点 x 0 x_0 x0,
  2. 按照某一迭代规则产生一个点列 { x k } \{x_k\} {xk}, 使得
    { x k } \{x_k\} {xk}是有穷点列时,其最后一个点是最优化模型问题的最优解。
    { x k } \{x_k\} {xk}是无穷点列时,其极限点为最优解。
  • 最优化方法的结构:
    给定初始点 x 0 \mathbf{x}_0 x0
  1. 确定搜索方向 d k \mathbf{d}_k dk,即依照一定规则构造 f f f x k \mathbf{x}_k xk点处的下降方向为搜索方向
  2. 确定步长因子 α k \alpha_k αk,使目标函数值有某种意义下降
  3. x k + 1 = x k + α k d k \mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha_k\mathbf{d}_{k} xk+1=xk+αkdk
    x k + 1 \mathbf{x}_{k+1} xk+1满足某种终止条件,则停止迭代,得到近似最优解,否则重复以上步骤。
  • 一个好的算法应具备的典型特征为:
  1. 迭代点 x k x_k xk能稳定地接近局部极小点x*的邻域,然后迅速收敛于 x k x_k xk ;
  2. 当给定的某种收敛准则满足时,迭代即终止。

收敛速度:
一般认为,具有超线性和二阶收敛速度的方法是比较快速的。


一维搜索

  1. 确定包含问题最优解的搜索区间
  2. 再用某种分割技术或插值方法缩小这个区间,进
    行搜索求解
  • 搜索区间:包含最优值的闭区间。
  • 确定搜索区间的简单方法——进退法。
    • 从一点出发,试图确定出函数值呈现“高-低-高” 的三点。一个方向不成功,就退回来,再沿相反方向寻找。

改进

  • 实际上所遇到的函数不一定是单峰函数,这时搜索出的值有可能大于初始区间的端点值。
  • 改进:每次缩小区间时,不只比较两个内点处的函数值,而是比较两个内点和两个端点处的函数值:
    • 当左边第一个或第二个点是这四个点中函数值最小的点时,丢弃 右端点;
    • 否则,丢弃左端点。

0.618 法

Fibonacci法

插值法

插值法是一类重要的搜索方法,其基本思想是:

  • 在搜索区间中不断用低次(通常不超过三次)多项式来近似目标函数,并逐步用插值多项式的极小点来逼近一维搜索问题的极小点。
  • 当函数具有比较好的解析性质时,插值方法比直接方法(0.618 法或Fibonacci法)效果更好。

二次插值法:

  • 一点二次插值(牛顿法)
    • 利用一点处的函数值、一阶和二阶导数值构造二次插值函数。牛顿法的优点是收敛速度快,具有局部二阶收敛速度。
  • 二点二次插值法
    • 给出两点的函数值和其中一点的导数值,构造二次插值函数。二点二次插值法的收敛阶为1.618,超线性收敛。
  • 三点二次法(抛物线法)
  • 二点三次插值法
    ……

牛顿型方法

1. 最速下降法

以负梯度方向作为极小化算法的搜索方向,即
d k = − g k \mathbf{d}_k=-\mathbf{g}_k dk=gk

  • 具有总体收敛性:
    产生的迭代点列的每一个聚点都是平稳点。
  • 最速下降方向仅是局部性质
    对于许多问题并非下降方向,而且下降非常缓慢;
    接近极小点时,步长越小前进越缓慢。

2. 牛顿法

  • 基本思想
    利用目标函数二次Taylor展开,并将其极小化。
    函数   f ( x ) \ f(x)  f(x)   x k \ x_k  xk处的二次Taylor展开为:
    f ( x k + s ) ≈ q ( k ) ( s ) = f ( x k ) + ∇ f ( x x ) T s + 1 2 s T ∇ 2 f ( x k ) s f(x_k+s)\approx q^{(k)}(s)=f(x_k)+\nabla f(x_x)^Ts+\frac{1}{2}s^T\nabla^2f(x_k)s f(xk+s)q(k)(s)=f(xk)+f(xx)Ts+21sT2f(xk)s
    其中   s = x − x k \ s=x-x_k  s=xxk,将   q ( k ) ( s ) 极 小 化 , 得 到 \ q^{(k)}(s)极小化,得到  q(k)(s)
    x k + 1 = x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x x ) = x k − G k − 1 g k x_{k+1}=x_k-[\nabla^2 f(x_k)]^{-1}\nabla f(x_x)=x_k-G_k^{-1}g_k xk+1=xk[2f(xk)]1f(xx)=xkGk1gk

  • 对于正定二次函数,一步即可得最优解。

  • 由于目标函数在极点附近近似于二次函数,所以在初始点接近极小点时,牛顿法收敛速度较快。

  • 牛顿法具有局部收敛性,为二阶收敛。

正定二次函数
正定二次函数(positive definite quadratic function)是系数矩阵为对称正定矩阵的二次函数。设 x ∈ R n x\in R_n xRn A A A n × n n×n n×n对称正定矩阵, b ∈ R n b\in R_n bRn为常向量, c c c为常数,则二次函数 f ( x ) = 1 2 x T A x + b T x + c f(x)=\frac{1}{2}x^TAx+b^Tx+c f(x)=21xTAx+bTx+c称为正定二次函数。

正定矩阵:
一个 n × n n\times n n×n的实对称矩阵 M M M是正定的,当且仅当对于所有的非零实系数向量 z z z,都有 z T M z > 0 z^TMz > 0 zTMz>0。其中 z T z^T zT表示 z z z的转置。

  • 牛顿法适用于初始点距离最优解很近的情况下,当初始解远离最优解时, G k G_k Gk不一定是正定的,则牛顿方向不一定为下降方向,其收敛性不能保证。
  • 说明恒取步长因子为1不合适,应采用一维搜索。(仅当步长因子{ α k α_k αk}收敛1时,牛顿法才是二阶收敛的。迭代公式:
    d k = − G k − 1 g k , X k + 1 = X k + α k d k d_k=-G_k^{-1}g_k, X_{k+1}=X_k+α_kd_k dk=Gk1gk,Xk+1=Xk+αkdk
  • 带步长因子的牛顿法是总体收敛的。

修正牛顿法

Gill-Murray稳定牛顿法

Goldfeld修正牛顿法


3.信赖域方法

  • 不仅可以用来代替一维搜索,而且也可以解决Hessen矩阵不正定等困难。

  • 主要思想:

    • 首选选择一个步长r,使得在 ∣ ∣ x − x k ∣ ∣ < r ||\mathbf{x}-\mathbf{x}_k||xxk<r范围内(信赖域
    • 目标函数用n维二次模型来逼近,并以此选择一个搜索方向 s k \mathbf{s_k} sk,取 x k + 1 = x k + s k \mathbf{x_{k+1}}=\mathbf{x_k}+\mathbf{s_k} xk+1=xk+sk
  • 具有牛顿法的快速局部收敛性,又具有理想的总体收敛性。

Levenberg-Marquardt方法

  • 最重要的一类的信赖域是取 l 2 l_2 l2范数,此时原模型等效于
    m i n q ( k ) ( s ) = f k + g k T s + 1 2 s T G k s , s . t . ∣ ∣ s ∣ ∣ 2 ≤ h k minq^{(k)}(\mathbf{s})=f_k+\mathbf{g}_k^T\mathbf{s}+\frac{1}{2}\mathbf{s}^TG_k\mathbf{s},\quad s.t.||\mathbf{s}||_2\leq h_k minq(k)(s)=fk+gkTs+21sTGks,s.t.s2hk
    引入 L a g r a n g e Lagrange Lagrange函数
    L ( s , μ ) = q ( k ) ( s ) + 1 2 μ ( s T s − h k 2 ) L(\mathbf{s},\mu)=q^{(k)}(\mathbf{s})+\frac{1}{2}\mu(\mathbf{s}^T\mathbf{s}-h_k^2) L(s,μ)=q(k)(s)+21μ(sTshk2)
    根据约束最优化的最优性条件知:
    ∇ s L = 0 ,   μ ≥ 0 \nabla_sL=0,\ \mu\geq 0 sL=0, μ0
    从而推出
    L ( s , μ k ) = q ( k ) ( s k ) + 1 2 ( s − s k ) T ( G k + μ k I ) ( s − s k ) L(\mathbf{s},\mu_k)=q^{(k)}(\mathbf{s}_k)+\frac{1}{2}(\mathbf{s}-\mathbf{s}_k)^T(G_k+\mu_kI)(s-s_k) L(s,μk)=q(k)(sk)+21(ssk)T(Gk+μkI)(ssk)

  • 可以证明:
    总体解的二阶必要条件为 ( G k + μ k I ) (G_k+\mu_kI) (Gk+μkI)半正定。
    总体解严格最小的充分条件为 ( G k + μ k I ) (G_k+\mu_kI) (Gk+μkI)正定。
    因此,LM方法都是要确定一个 μ k ≥ 0 \mu_k\geq 0 μk0,使得 ( G k + μ k I ) (G_k+\mu_kI) (Gk+μkI)正定,并用 ∇ s L = 0 \nabla_sL=0 sL=0求解 s k \mathbf{s}_k sk。同时可以证明 ∣ ∣ s ∣ ∣ 2 ||\mathbf{s}||_2 s2   μ \ \mu  μ单调减小。

  • 算法步骤

  1. 给定初始点 x 0 , μ 0 > 0 , k = 1 x_0, \mu_0>0, k=1 x0,μ0>0,k=1
  2. 计算 g k g_k gk G k G_k Gk
  3. ∣ ∣ g k ∣ ∣ < ϵ ||g_k||<\epsilon gk<ϵ,停止
  4. 分解 G K + μ k I G_K+\mu_kI GK+μkI,若不正定,置 μ k = 4 μ k \mu_k=4\mu_k μk=4μk,重复4直到正定
  5. ( G k + μ k I ) s = − g k (G_k+\mu_kI)s=-g_k (Gk+μkI)s=gk,求出 s k s_k sk
  6. f ( x k + s k ) , q ( k ) ( s k ) f(x_k+s_k), q^{(k)}(s_k) f(xk+sk),q(k)(sk) r k = △ f k △ q ( k ) r_k=\frac{\triangle f_k}{\triangle q^{(k)}} rk=q(k)fk
  7. r k < 0.25 r_k<0.25 rk<0.25,置 μ k + 1 = 4 μ k \mu_{k+1}=4\mu_k μk+1=4μk;若 r k > 0.75 r_k>0.75 rk>0.75,置 μ k + 1 = μ k / 2 \mu_{k+1}=\mu_k/2 μk+1=μk/2;否则, μ k + 1 = μ k \mu_{k+1}=\mu_k μk+1=μk
  8. r k ≤ 0 r_k\leq0 rk0,置 x k + 1 = x k + s k x_{k+1}=x_k+s_k xk+1=xk+sk
  9. 令k=k+1,转2

LM方法比较适合于x维度不高的非线性函数优化。

(未完待续)

你可能感兴趣的:(计算机数学)