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

非线性最优化方法

引言

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

非线性特点:

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

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

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

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


一维搜索

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

改进

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

0.618 法

Fibonacci法

插值法

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

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

二次插值法:

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

牛顿型方法

1. 最速下降法

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

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

2. 牛顿法

  • 基本思想
    利用目标函数二次Taylor展开,并将其极小化。
    函数  f(x)\ f(x) xk\ x_k处的二次Taylor展开为:
    f(xk+s)q(k)(s)=f(xk)+f(xx)Ts+12sT2f(xk)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
    其中  s=xxk\ s=x-x_k,将 q(k)(s)\ q^{(k)}(s)极小化,得到
    xk+1=xk[2f(xk)]1f(xx)=xkGk1gk x_{k+1}=x_k-[\nabla^2 f(x_k)]^{-1}\nabla f(x_x)=x_k-G_k^{-1}g_k

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

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

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

正定二次函数
正定二次函数(positive definite quadratic function)是系数矩阵为对称正定矩阵的二次函数。设xRnx\in R_nAAn×nn×n对称正定矩阵,bRnb\in R_n为常向量,cc为常数,则二次函数f(x)=12xTAx+bTx+cf(x)=\frac{1}{2}x^TAx+b^Tx+c称为正定二次函数。

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

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

修正牛顿法

Gill-Murray稳定牛顿法

Goldfeld修正牛顿法


3.信赖域方法

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

  • 主要思想:

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

Levenberg-Marquardt方法

  • 最重要的一类的信赖域是取l2l_2范数,此时原模型等效于
    minq(k)(s)=fk+gkTs+12sTGks,s.t.s2hk 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
    引入LagrangeLagrange函数
    L(s,μ)=q(k)(s)+12μ(sTshk2) L(\mathbf{s},\mu)=q^{(k)}(\mathbf{s})+\frac{1}{2}\mu(\mathbf{s}^T\mathbf{s}-h_k^2)
    根据约束最优化的最优性条件知:
    sL=0, μ0 \nabla_sL=0,\ \mu\geq 0
    从而推出
    L(s,μk)=q(k)(sk)+12(ssk)T(Gk+μkI)(ssk) 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)

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

  • 算法步骤

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

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

(未完待续)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章