非线性优化技术简介
梯度和一阶泰勒展开式
假设
f
(
x
)
=
f
(
x
1
,
x
2
,
x
3
,
.
.
.
,
x
n
)
f(x) = f(x_1, x_2, x_3,...,x_n)
f(x)=f(x1,x2,x3,...,xn)是连续可导的,我们用一个(n x 1)向量表示f的梯度:
∇
f
(
x
)
=
(
δ
f
(
x
1
)
δ
x
1
;
δ
f
(
x
2
)
δ
x
2
;
δ
f
(
x
3
)
δ
x
3
;
.
.
.
;
δ
f
(
x
n
)
δ
x
n
)
\nabla f(x) = \Big(\frac{\delta f(x_1)}{\delta x_1}; \frac{\delta f(x_2)}{\delta x_2};\frac{\delta f(x_3)}{\delta x_3}; ... ; \frac{\delta f(x_n)}{\delta x_n} \Big)
∇f(x)=(δx1δf(x1);δx2δf(x2);δx3δf(x3);...;δxnδf(xn))
得到一阶泰勒展开式:
f
(
x
+
t
d
)
=
f
(
x
)
+
t
∇
f
(
x
)
T
d
+
o
(
t
)
t
→
0
f(x + td) = f(x) + t \nabla f(x)^\mathrm{T} d+ o(t) \quad t\rightarrow 0
f(x+td)=f(x)+t∇f(x)Td+o(t)t→0
如果是
f
(
x
)
f(x)
f(x)两次可导的,
f
(
x
)
f(x)
f(x)的海森矩阵(相当于二次导数)为:
∇
2
f
(
x
)
=
(
δ
f
(
x
)
δ
x
i
δ
x
j
)
i
,
j
\nabla^2 f(x) = \Big(\frac{\delta f(x)}{\delta x_i \delta x_j}\Big)_{i,j}
∇2f(x)=(δxiδxjδf(x))i,j
通过二阶泰勒展开式,我们得到了:
f
(
x
+
t
d
)
=
f
(
x
)
+
t
∇
f
(
x
)
d
+
1
2
t
2
d
T
∇
2
f
(
x
)
d
+
o
(
t
2
)
t
→
0
f(x+td) = f(x) +t \nabla f(x) d + \frac{1}{2}t^2d^T\nabla^2 f(x)d + o(t^2) \quad t \rightarrow 0
f(x+td)=f(x)+t∇f(x)d+21t2dT∇2f(x)d+o(t2)t→0
例子
f ( x 1 , x 2 , x 3 ) = x 1 2 + x 1 x 2 + x 1 e x 3 + x 2 l n x 3 f(x_1, x_2, x_3) = x_1^2+ x_1x_2 + x_1e^{x_3} + x_2lnx_3 f(x1,x2,x3)=x12+x1x2+x1ex3+x2lnx3
∇ f ( x ) = [ 2 x 1 + x 2 + e x 3 x 1 + l n x 3 x 1 e x 3 + x 2 x 3 ] \begin{equation} \nabla f(x)=\left[ \begin{array}{c} 2x_1 + x_2 + e^{x_3}\\ x_1 + lnx_3 \\ x_1e^{x_3} + \frac{x_2}{x_3} \end{array} \right] \end{equation} ∇f(x)= 2x1+x2+ex3x1+lnx3x1ex3+x3x2
∇
2
f
(
x
)
=
[
2
1
e
x
3
1
0
1
x
3
e
x
3
1
x
3
x
1
e
x
3
−
x
2
x
3
2
]
\begin{equation} \nabla^2 f(x)=\left[ \begin{array}{ccc} 2 & 1 & e^{x_3} \\ 1 & 0 & \frac{1}{x_3} \\ e^{x_3} & \frac{1}{x_3} &x_1e^{x_3} -\frac{x_2}{{x_3}^2} \end{array} \right] \end{equation}
∇2f(x)=
21ex310x31ex3x31x1ex3−x32x2
注:海森矩阵有对称性,只需计算一半即可。
无约束问题的最优性条件-一阶条件
在下面,我们首先研究一个最优解必须满足的条件:一阶和二阶(必要的) 最优性条件。我们将首先从局部最优解开始。
最优性条件:无约束问题
如果我们以整个实数集
R
n
R^n
Rn为可行集(feasible set)
Ω
\Omega
Ω, 也就是:
min
x
∈
R
n
f
(
x
)
\begin{alignat}{2} \min_{x \in R^n} \quad f(x) \\ \end{alignat}
x∈Rnminf(x)
最优条件(必要):
∇
f
(
x
)
=
0
\nabla f(x) = 0
∇f(x)=0
证明:如果
∇
f
(
x
)
≠
0
\nabla f (x) \neq 0
∇f(x)=0且
f
(
x
)
f(x)
f(x)是最小值,那么我们可以找到一个向量
d
=
−
∇
f
(
x
)
d = -\nabla f (x)
d=−∇f(x),
∇
f
(
x
)
T
d
=
−
∥
∇
f
(
x
)
∥
2
<
0
\nabla f (x)^\mathrm{T}d = -\Vert \nabla f (x) \Vert^2 < 0
∇f(x)Td=−∥∇f(x)∥2<0。因此,通过泰勒展开式:
f
(
x
+
t
d
)
=
f
(
x
)
+
t
∇
f
(
x
)
T
d
+
o
(
t
)
t
→
0
f(x + td) = f(x) + t \nabla f(x)^\mathrm{T} d+ o(t) \quad t\rightarrow 0
f(x+td)=f(x)+t∇f(x)Td+o(t)t→0
∵ ∇ f ( x ) T d < 0 , o ( t ) < 0 \because \nabla f (x)^\mathrm{T}d < 0, o(t) < 0 ∵∇f(x)Td<0,o(t)<0 ⇒ f ( x + t d ) < f ( x ) \Rightarrow f(x+td) < f(x) ⇒f(x+td)<f(x)
通过选择足够小的 t t t,我们可以找到一个在 x x x附近的点 x ˉ = x + t d \bar x = x + td xˉ=x+td使 f ( x ˉ ) < f ( x ) f(\bar x) < f( x) f(xˉ)<f(x),与题设矛盾
一阶必要条件 First-Order Necessary Conditions (FONC)
一阶必要条件: 如果
x
⋆
x^\star
x⋆是无约束问题
m
i
n
x
∈
R
n
f
(
x
)
min_{x \in R^n} f (x)
minx∈Rnf(x)的局部极小值,那么我们必须有
∇
f
(
x
⋆
)
=
0
\nabla f(x^\star)=0
∇f(x⋆)=0。
备注:
∇
f
(
x
)
=
0
\nabla f (x)=0
∇f(x)=0的点
x
x
x都是局部极小点的候选点
例子:
f
(
x
)
=
x
1
2
−
x
1
x
2
+
x
2
2
−
3
x
2
f(x) = x_1^2 - x_1x_2 + x_2^2 - 3x_2
f(x)=x12−x1x2+x22−3x2
一阶必要条件为:
2
x
1
−
x
2
=
0
,
−
x
1
+
2
x
2
=
0
2x_1 - x_2 = 0, -x_1 + 2x_2 = 0
2x1−x2=0,−x1+2x2=0
有一个唯一的解
(
x
1
=
1
,
x
2
=
2
)
(x_1 = 1,x_2 = 2)
(x1=1,x2=2),它是
f
f
f的全局最小点。
示例:最小二乘问题
假设一个变量 y y y是由 n n n个因子 x 1 , . . . , x n ∈ R m x_1, ..., x_n \in R^m x1,...,xn∈Rm决定的。我们知道它们近似地有一个线性关系:
y ≈ β 1 x 1 + β 2 x 2 + . . . + β n x n β i ∈ R y \approx \beta_1x_1 + \beta_2 x_2 + ... + \beta_n x_n \quad \beta_i \in R y≈β1x1+β2x2+...+βnxnβi∈R
现在,我们要确定这个关系(找到参数
β
\beta
β)。
我们有
m
m
m个观测值
(
m
>
n
)
(m>n)
(m>n) 这些观测值可以组成一个数据矩阵
X
X
X
{
x
i
T
=
(
x
i
1
,
x
i
2
,
.
.
.
x
i
n
)
,
y
i
}
,
i
=
1
,
2
,
.
.
.
,
m
\{ x_i^T = (x_{i1},x_{i2},...x_{in}), y_i\}, \quad i = 1, 2, ...,m
{xiT=(xi1,xi2,...xin),yi},i=1,2,...,m
其中,
x
i
T
x_i^T
xiT是数据矩阵
X
X
X 的第
i
i
i 行.
理想情况下,我们想找到
β
=
(
β
1
,
β
2
,
.
.
.
β
n
)
T
\beta = (\beta_1,\beta_2,... \beta_n)^\mathrm{T}
β=(β1,β2,...βn)T,使 $ y = X \beta $ 。然而,这可能是不可能的(例如,方程y = Xβ可以是一个过确定的线性系统(overdetermined system))。通常情况下,观测不遵循
y
=
X
β
y = X\beta
y=Xβ,所以我们需要完全噪声观测(noisy observations)。
相反,我们试图最小化误差的平方和:
min
β
∑
i
=
0
n
(
y
i
−
x
i
T
β
i
)
2
\begin{alignat}{2} \min_{\beta}\quad \sum_{i = 0}^n(y_i - x_i^T\beta_i)^2 \\ \end{alignat}
βmini=0∑n(yi−xiTβi)2
这个问题的矩阵形式为:
min
β
∥
X
β
−
y
∥
2
=
X
β
β
T
X
−
2
β
T
X
T
y
+
y
T
y
\begin{alignat}{2} \min_{\beta}\quad \Vert X\beta - y\Vert^2 = X\beta\beta^\mathrm{T}X - 2\beta^\mathrm{T}X^\mathrm{T}y + y^\mathrm{T}y \\ \end{alignat}
βmin∥Xβ−y∥2=XββTX−2βTXTy+yTy
其中
∥
ω
∥
2
=
ω
1
2
+
ω
2
2
+
.
.
.
+
ω
n
2
\Vert \omega \Vert^2 = \omega_1^2 + \omega_2^2 + ... + \omega_n^2
∥ω∥2=ω12+ω22+...+ωn2
事实:1.如果 f ( x ) = x T M x f (x) = x^TMx f(x)=xTMx( M M M是对称的),那么: ∇ f ( x ) = 2 M x \nabla f (x)=2Mx ∇f(x)=2Mx。2.如果 f ( x ) = c T x f (x) = c^Tx f(x)=cTx,那么 ∇ f ( x ) = c \nabla f (x) = c ∇f(x)=c。
因此,最小二乘问题的一阶必要条件(FONC)为:
X
T
X
β
=
X
T
y
X^TX\beta = X^Ty
XTXβ=XTy
求解这个方程给出了局部极小点的候选项。
一阶必要条件的非充分性
反例
f
(
x
)
=
x
4
−
9
x
2
+
4
x
−
1
f(x) = x^4 - 9x^2 + 4x - 1
f(x)=x4−9x2+4x−1的导数是
f
′
(
x
)
=
4
x
3
−
18
x
+
4
=
0
f^{'}(x)=4x^3 − 18x +4 = 0
f′(x)=4x3−18x+4=0
他的解包括
x
1
=
−
1
+
6
2
,
x
2
=
−
1
−
6
2
,
x
3
=
2
x_1 = -1 + \frac{\sqrt{6}}{2}, x_2 = -1 - \frac{\sqrt{6}}{2}, x_3 = 2
x1=−1+26,x2=−1−26,x3=2。
我们可以发现FONC是不充分的。事实上,每个局部最大值也满足FONC。或者它既不能是局部的最小值,也不能是最大值(如
f
(
x
)
=
x
3
f(x) = x^3
f(x)=x3 当
x
=
0
x = 0
x=0)
内容来自cuhksz mat3007的ppt Professor Li Xiao,翻译为中文,修改了小部分,加入了一些笔者自己的理解。