目录
非线性最优化方法
引言
最优化的问题的一般形式为:
min
f
(
x
)
,
s
.
t
.
x
∈
X
\min f(\mathbf{x}) , \ s.t. \mathbf{x}\in X
minf(x), s.t.x∈X
f
(
x
)
f(\mathbf{x})
f(x)为目标函数,
X
∈
E
n
\mathbf{X\in E^n}
X∈En
非线性特点:
- 不是线性
- 复杂弯曲
- 没有通解
无约束问题的最优条件:
min
f
(
x
)
,
x
∈
R
n
\min f(\mathbf{x}),\mathbf{x} \in R^n
minf(x),x∈Rn的最优性条件:
设
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:D⊂Rn→R1在开集
D
D
D上连续可微,若
x
∗
∈
D
x^* \in D
x∗∈D是局部极小点,则
g
(
x
∗
)
=
0.
g(x^*)=0.
g(x∗)=0.
定理(二阶必要条件):设
f
:
D
⊂
R
n
→
R
1
f:D \subset R^n \to R^1
f:D⊂Rn→R1在开集
D
D
D上二阶连续可微,若
x
∗
∈
D
x^* \in D
x∗∈D是局部极小点,则
g
(
x
∗
)
=
0
,
G
(
x
∗
)
≥
0
g(x^*)=0,\ G(x^*) \geq 0
g(x∗)=0, G(x∗)≥0
- 迭代优化方法的基本思想
- 给定一个初始点 x 0 x_0 x0,
- 按照某一迭代规则产生一个点列
{
x
k
}
\{x_k\}
{xk}, 使得
当 { x k } \{x_k\} {xk}是有穷点列时,其最后一个点是最优化模型问题的最优解。
当 { x k } \{x_k\} {xk}是无穷点列时,其极限点为最优解。
- 最优化方法的结构:
给定初始点 x 0 \mathbf{x}_0 x0
- 确定搜索方向 d k \mathbf{d}_k dk,即依照一定规则构造 f f f在 x k \mathbf{x}_k xk点处的下降方向为搜索方向
- 确定步长因子 α k \alpha_k αk,使目标函数值有某种意义下降
- 令
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满足某种终止条件,则停止迭代,得到近似最优解,否则重复以上步骤。
- 一个好的算法应具备的典型特征为:
- 迭代点 x k x_k xk能稳定地接近局部极小点x*的邻域,然后迅速收敛于 x k x_k xk ;
- 当给定的某种收敛准则满足时,迭代即终止。
收敛速度:
一般认为,具有超线性和二阶收敛速度的方法是比较快速的。
一维搜索
- 确定包含问题最优解的搜索区间
- 再用某种分割技术或插值方法缩小这个区间,进
行搜索求解
- 搜索区间:包含最优值的闭区间。
- 确定搜索区间的简单方法——进退法。
- 从一点出发,试图确定出函数值呈现“高-低-高” 的三点。一个方向不成功,就退回来,再沿相反方向寻找。
改进
- 实际上所遇到的函数不一定是单峰函数,这时搜索出的值有可能大于初始区间的端点值。
- 改进:每次缩小区间时,不只比较两个内点处的函数值,而是比较两个内点和两个端点处的函数值:
- 当左边第一个或第二个点是这四个点中函数值最小的点时,丢弃 右端点;
- 否则,丢弃左端点。
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+21sT∇2f(xk)s
其中 s = x − x k \ s=x-x_k s=x−xk,将 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)]−1∇f(xx)=xk−Gk−1gk -
对于正定二次函数,一步即可得最优解。
-
由于目标函数在极点附近近似于二次函数,所以在初始点接近极小点时,牛顿法收敛速度较快。
-
牛顿法具有局部收敛性,为二阶收敛。
正定二次函数:
正定二次函数(positive definite quadratic function)是系数矩阵为对称正定矩阵的二次函数。设 x ∈ R n x\in R_n x∈Rn, A A A为 n × n n×n n×n对称正定矩阵, b ∈ R n b\in R_n b∈Rn为常向量, 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=−Gk−1gk,Xk+1=Xk+αkdk - 带步长因子的牛顿法是总体收敛的。
修正牛顿法
Gill-Murray稳定牛顿法
Goldfeld修正牛顿法
3.信赖域方法
-
不仅可以用来代替一维搜索,而且也可以解决Hessen矩阵不正定等困难。
-
主要思想:
- 首选选择一个步长r,使得在 ∣ ∣ x − x k ∣ ∣ < r ||\mathbf{x}-\mathbf{x}_k||<r ∣∣x−xk∣∣<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.∣∣s∣∣2≤hk
引入 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μ(sTs−hk2)
根据约束最优化的最优性条件知:
∇ 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(s−sk)T(Gk+μkI)(s−sk) -
可以证明:
总体解的二阶必要条件为 ( 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 μk≥0,使得 ( 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 ∣∣s∣∣2随 μ \ \mu μ单调减小。 -
算法步骤
- 给定初始点 x 0 , μ 0 > 0 , k = 1 x_0, \mu_0>0, k=1 x0,μ0>0,k=1
- 计算 g k g_k gk和 G k G_k Gk
- 若 ∣ ∣ g k ∣ ∣ < ϵ ||g_k||<\epsilon ∣∣gk∣∣<ϵ,停止
- 分解 G K + μ k I G_K+\mu_kI GK+μkI,若不正定,置 μ k = 4 μ k \mu_k=4\mu_k μk=4μk,重复4直到正定
- 解 ( G k + μ k I ) s = − g k (G_k+\mu_kI)s=-g_k (Gk+μkI)s=−gk,求出 s k s_k sk
- 求 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
- 若 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
- 若 r k ≤ 0 r_k\leq0 rk≤0,置 x k + 1 = x k + s k x_{k+1}=x_k+s_k xk+1=xk+sk
- 令k=k+1,转2
LM方法比较适合于x维度不高的非线性函数优化。
(未完待续)