一、太长不看版
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