非线性最优化方法
引言
最优化的问题的一般形式为:
minf(x), s.t.x∈X
f(x)为目标函数,X∈En
非线性特点:
无约束问题的最优条件:
minf(x),x∈Rn的最优性条件:
设g(x)=∇f(x),G(x)=Δf(x)分别为f的一阶和二阶导数。
定理(一阶必要条件):设f:D⊂Rn→R1在开集D上连续可微,若x∗∈D是局部极小点,则g(x∗)=0.
定理(二阶必要条件):设f:D⊂Rn→R1在开集D上二阶连续可微,若x∗∈D是局部极小点,则g(x∗)=0, G(x∗)≥0
- 给定一个初始点x0,
- 按照某一迭代规则产生一个点列{xk}, 使得
当{xk}是有穷点列时,其最后一个点是最优化模型问题的最优解。
当{xk}是无穷点列时,其极限点为最优解。
- 最优化方法的结构:
给定初始点x0
- 确定搜索方向dk,即依照一定规则构造f在xk点处的下降方向为搜索方向
- 确定步长因子αk,使目标函数值有某种意义下降
- 令xk+1=xk+αkdk
若xk+1满足某种终止条件,则停止迭代,得到近似最优解,否则重复以上步骤。
- 迭代点xk能稳定地接近局部极小点x*的邻域,然后迅速收敛于xk ;
- 当给定的某种收敛准则满足时,迭代即终止。
收敛速度:
一般认为,具有超线性和二阶收敛速度的方法是比较快速的。
一维搜索
- 确定包含问题最优解的搜索区间
- 再用某种分割技术或插值方法缩小这个区间,进
行搜索求解
- 搜索区间:包含最优值的闭区间。
- 确定搜索区间的简单方法——进退法。
- 从一点出发,试图确定出函数值呈现“高-低-高” 的三点。一个方向不成功,就退回来,再沿相反方向寻找。
改进
- 实际上所遇到的函数不一定是单峰函数,这时搜索出的值有可能大于初始区间的端点值。
- 改进:每次缩小区间时,不只比较两个内点处的函数值,而是比较两个内点和两个端点处的函数值:
- 当左边第一个或第二个点是这四个点中函数值最小的点时,丢弃 右端点;
- 否则,丢弃左端点。
0.618 法
Fibonacci法
插值法
插值法是一类重要的搜索方法,其基本思想是:
- 在搜索区间中不断用低次(通常不超过三次)多项式来近似目标函数,并逐步用插值多项式的极小点来逼近一维搜索问题的极小点。
- 当函数具有比较好的解析性质时,插值方法比直接方法(0.618 法或Fibonacci法)效果更好。
二次插值法:
- 一点二次插值(牛顿法)
- 利用一点处的函数值、一阶和二阶导数值构造二次插值函数。牛顿法的优点是收敛速度快,具有局部二阶收敛速度。
- 二点二次插值法
- 给出两点的函数值和其中一点的导数值,构造二次插值函数。二点二次插值法的收敛阶为1.618,超线性收敛。
- 三点二次法(抛物线法)
- 二点三次插值法
……
牛顿型方法
1. 最速下降法
以负梯度方向作为极小化算法的搜索方向,即
dk=−gk
- 具有总体收敛性:
产生的迭代点列的每一个聚点都是平稳点。
- 最速下降方向仅是局部性质
对于许多问题并非下降方向,而且下降非常缓慢;
接近极小点时,步长越小前进越缓慢。
2. 牛顿法
-
基本思想
利用目标函数的二次Taylor展开,并将其极小化。
函数 f(x) 在 xk处的二次Taylor展开为:
f(xk+s)≈q(k)(s)=f(xk)+∇f(xx)Ts+21sT∇2f(xk)s
其中 s=x−xk,将 q(k)(s)极小化,得到
xk+1=xk−[∇2f(xk)]−1∇f(xx)=xk−Gk−1gk
-
对于正定二次函数,一步即可得最优解。
-
由于目标函数在极点附近近似于二次函数,所以在初始点接近极小点时,牛顿法收敛速度较快。
-
牛顿法具有局部收敛性,为二阶收敛。
正定二次函数:
正定二次函数(positive definite quadratic function)是系数矩阵为对称正定矩阵的二次函数。设x∈Rn,A为n×n对称正定矩阵,b∈Rn为常向量,c为常数,则二次函数f(x)=21xTAx+bTx+c称为正定二次函数。
正定矩阵:
一个n×n的实对称矩阵M是正定的,当且仅当对于所有的非零实系数向量z,都有zTMz>0。其中zT表示z的转置。
- 牛顿法适用于初始点距离最优解很近的情况下,当初始解远离最优解时,Gk不一定是正定的,则牛顿方向不一定为下降方向,其收敛性不能保证。
- 说明恒取步长因子为1不合适,应采用一维搜索。(仅当步长因子{αk}收敛1时,牛顿法才是二阶收敛的。迭代公式:
dk=−Gk−1gk,Xk+1=Xk+αkdk
- 带步长因子的牛顿法是总体收敛的。
修正牛顿法
Gill-Murray稳定牛顿法
Goldfeld修正牛顿法
3.信赖域方法
Levenberg-Marquardt方法
-
最重要的一类的信赖域是取l2范数,此时原模型等效于
minq(k)(s)=fk+gkTs+21sTGks,s.t.∣∣s∣∣2≤hk
引入Lagrange函数
L(s,μ)=q(k)(s)+21μ(sTs−hk2)
根据约束最优化的最优性条件知:
∇sL=0, μ≥0
从而推出
L(s,μk)=q(k)(sk)+21(s−sk)T(Gk+μkI)(s−sk)
-
可以证明:
总体解的二阶必要条件为(Gk+μkI)半正定。
总体解严格最小的充分条件为(Gk+μkI)正定。
因此,LM方法都是要确定一个μk≥0,使得(Gk+μkI)正定,并用∇sL=0求解sk。同时可以证明∣∣s∣∣2随 μ单调减小。
-
算法步骤
- 给定初始点x0,μ0>0,k=1
- 计算gk和Gk
- 若∣∣gk∣∣<ϵ,停止
- 分解GK+μkI,若不正定,置μk=4μk,重复4直到正定
- 解(Gk+μkI)s=−gk,求出sk
- 求f(xk+sk),q(k)(sk)和rk=△q(k)△fk
- 若rk<0.25,置μk+1=4μk;若rk>0.75,置μk+1=μk/2;否则,μk+1=μk
- 若rk≤0,置xk+1=xk+sk
- 令k=k+1,转2
LM方法比较适合于x维度不高的非线性函数优化。
(未完待续)