一、太长不看版
1、(定义)优化问题的解是寻找一个向量
x
∗
x^*
x∗ 使得函数
f
(
x
)
f(x)
f(x)对任意定义域内的向量
x
x
x 都有
f
(
x
∗
)
≤
f
(
x
)
f(x^*)\leq f(x)
f(x∗)≤f(x)。
2、(定义)局部最小值点:在
x
∗
x^*
x∗的定义域的邻域内对向量 x 都有
f
(
x
∗
)
≤
f
(
x
)
f(x^*)\leq f(x)
f(x∗)≤f(x)。
3、(定义)严格局部最小值点:在
x
∗
x^*
x∗的定义域的邻域内对向量
x
≠
x
∗
x\neq x^*
x=x∗ 都有
f
(
x
∗
)
<
f
(
x
)
f(x^*)< f(x)
f(x∗)<f(x)。
4、如果函数
f
(
x
)
f(x)
f(x) 是凸函数,那么
f
(
x
)
f(x)
f(x) 的任何一个局部最小值点都是
f
(
x
)
f(x)
f(x) 在定义域内的最小值。
5、如果函数
f
(
x
)
f(x)
f(x) 是凸函数,且
f
(
x
)
f(x)
f(x)可微,那么
f
(
x
)
f(x)
f(x)的任何一个不动点都是
f
(
x
)
f(x)
f(x) 在定义域内的最小值。
6、局部最小值点一阶必要条件:
∇
f
(
x
∗
)
=
0
\nabla f(x^*)=0
∇f(x∗)=0
7、局部最小值点二阶必要条件:
∇
f
(
x
∗
)
=
0
\nabla f(x^*)=0
∇f(x∗)=0 且
∇
2
f
(
x
∗
)
\nabla^2 f(x^*)
∇2f(x∗) 正定。
8、局部最小值点二阶充分条件:
∇
2
f
(
x
)
在
x
∗
\nabla^2 f(x) 在x^*
∇2f(x)在x∗的开邻域内连续,
∇
f
(
x
∗
)
=
0
\nabla f(x^*)=0
∇f(x∗)=0并且
∇
2
f
(
x
∗
)
\nabla^2 f(x^*)
∇2f(x∗) 正定,那么
x
∗
x^*
x∗是
f
(
x
)
f(x)
f(x) 的严格局部最小值点。
二、详细推导
第一部分给出的1、2、3均为定义,所以我们从4开始证明。
Proof 4:
反证法
如果在满足4的条件下 $x^* $ 不是全局最小值,那么我们假设真实的全局最小值为
z
z
z 。那么一定有
f
(
z
)
<
f
(
x
∗
)
f(z)<f(x^*)
f(z)<f(x∗) 。
(在定义1中我们定义全局最小值用的是小于等于号,是因为可能有多个向量
x
∗
x^*
x∗使得
f
(
x
∗
)
=
m
i
n
f
(
x
)
f(x^*)=min f(x)
f(x∗)=minf(x)。但是这里我们已经假设
x
∗
x^*
x∗ 不是全局最小值了,那么一定有
f
(
x
∗
)
>
m
i
n
f
(
x
)
f(x^*)> min f(x)
f(x∗)>minf(x) 所以这里取小于号。)
假设 定义域上的点
x
x
x ,位于
x
∗
x^*
x∗与
z
z
z 之间的连线上,那么我们可以得到:
x
=
λ
z
+
(
1
−
λ
)
x
∗
x = \lambda z + (1-\lambda)x^*
x=λz+(1−λ)x∗ for some
λ
∈
(
0
,
1
]
\lambda \in (0,1]
λ∈(0,1] (1)
那么根据
f
(
x
)
f(x)
f(x) 的凸性,可以得到:
f
(
x
)
=
f
(
λ
z
+
(
1
−
λ
)
x
∗
)
≤
λ
f
(
z
)
+
(
1
−
λ
)
f
(
x
∗
)
<
f
(
x
∗
)
f(x) = f(\lambda z + (1-\lambda)x^*) \le \lambda f(z )+(1-\lambda)f(x^*)<f(x^*)
f(x)=f(λz+(1−λ)x∗)≤λf(z)+(1−λ)f(x∗)<f(x∗) (2)
其中第一个等式由方程(1)获得,第一个不等式由函数的凸性获得,第二个不等式由:
λ
f
(
z
)
<
λ
f
(
x
∗
)
\lambda f(z)<\lambda f(x^*)
λf(z)<λf(x∗) 所以
λ
f
(
z
)
+
(
1
−
λ
)
f
(
x
)
<
λ
f
(
x
)
+
(
1
−
λ
)
f
(
x
)
=
f
(
x
)
\lambda f(z)+(1-\lambda)f(x) < \lambda f(x) +(1-\lambda)f(x) = f(x)
λf(z)+(1−λ)f(x)<λf(x)+(1−λ)f(x)=f(x) 获得。
回溯方程(2),我们可以得到
f
(
x
)
<
f
(
x
∗
)
f(x) <f(x^*)
f(x)<f(x∗) ,对任意
x
=
λ
z
+
(
1
−
λ
)
x
∗
x = \lambda z + (1-\lambda)x^*
x=λz+(1−λ)x∗ 成立。且
lim
λ
→
0
x
=
x
∗
\lim_{\lambda \rightarrow 0} x=x^*
limλ→0x=x∗ 。那么也就是说,在
x
∗
x^*
x∗ 的邻域内,
x
∗
x^*
x∗不是局部最小值点。
与假设相反,所以原结论正确
Q.E.D
Proof 5:
反证法
(假设与 z 的定义与上述中一样)
利用凸性我们可以得到:
∇
f
(
x
∗
)
T
(
z
−
x
∗
)
=
d
d
λ
f
(
x
∗
+
λ
(
z
−
x
∗
)
)
∣
λ
=
0
=
lim
λ
→
0
f
(
x
∗
+
λ
(
z
−
x
∗
)
)
−
f
(
x
∗
)
λ
≤
lim
λ
→
0
λ
f
(
z
)
+
(
1
−
λ
)
f
(
x
∗
)
−
f
(
x
∗
)
λ
=
f
(
z
)
−
f
(
x
∗
)
<
0
\nabla f(x^*)^T(z-x^*) = \frac{d}{d\lambda}f(x^*+\lambda(z-x^*))|_{\lambda=0} \\ = \lim_{\lambda \rightarrow0}\frac{f(x^*+\lambda(z-x^*))-f(x^*)}{\lambda}\\ \le \lim_{\lambda \rightarrow0}\frac{\lambda f(z)+(1-\lambda)f(x^*)-f(x^*)}{\lambda}\\ =f(z)-f(x^*)<0
∇f(x∗)T(z−x∗)=dλdf(x∗+λ(z−x∗))∣λ=0=limλ→0λf(x∗+λ(z−x∗))−f(x∗)≤limλ→0λλf(z)+(1−λ)f(x∗)−f(x∗)=f(z)−f(x∗)<0 (3)
(没找到公式对齐的方式,大家凑合着看吧。。。。)
这个公式唯一需要解释的是第一个等式,我们从右往左推。令
g
(
λ
)
=
f
(
x
∗
+
λ
(
z
−
x
∗
)
)
g(\lambda) = f(x^*+\lambda(z-x^*))
g(λ)=f(x∗+λ(z−x∗)) ,对
g
(
λ
)
g(\lambda)
g(λ) 关于
λ
\lambda
λ 求导可以得到
∇
g
(
λ
)
=
∇
f
(
x
∗
+
λ
(
z
−
x
∗
)
)
T
(
z
−
x
∗
)
\nabla g(\lambda) = \nabla f(x^*+\lambda(z-x^*))^T(z-x^*)
∇g(λ)=∇f(x∗+λ(z−x∗))T(z−x∗) ,所以
∇
g
(
0
)
=
∇
f
(
x
∗
)
T
(
z
−
x
∗
)
\nabla g(0) = \nabla f(x^*)^T(z-x^*)
∇g(0)=∇f(x∗)T(z−x∗) ,从而得到了第一个等式。
所以我们得到了
∇
f
(
x
∗
)
T
(
z
−
x
∗
)
<
0
\nabla f(x^*)^T(z-x^*) <0
∇f(x∗)T(z−x∗)<0 ,那么必然有
∇
f
(
x
∗
)
≠
0
\nabla f(x^*) \neq 0
∇f(x∗)=0 ,所以与假设相违背,原结论成立。
Q.E.D