一、定理
局部最小值点一阶必要条件: ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 ∇f(x∗)=0
局部最小值点二阶必要条件: ∇ f ( x ∗ ) = 0 且 ∇ 2 f ( x ∗ ) \nabla f(x^*)=0 且 \nabla^2 f(x^*) ∇f(x∗)=0且∇2f(x∗) 正定。
局部最小值点二阶充分条件: ∇ 2 f ( x ) \nabla^2 f(x) ∇2f(x) 在 x ∗ 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) 的严格局部最小值点。
二、证明
Proof 1
反证法
假设当 x ∗ x^* x∗ 为局部最小值时 ∇ f ( x ∗ ) ≠ 0 \nabla f(x^*)\neq0 ∇f(x∗)=0 ,那么定义 p = − ∇ f ( x ∗ ) p = -\nabla f(x^*) p=−∇f(x∗) 。这样我们可以得到:
p T ∇ f ( x ∗ ) = − ∇ f ( x ∗ ) T ∇ f ( x ∗ ) = − ∥ ∇ f ( x ∗ ) ∥ < 0 p^T\nabla f(x^*)=-\nabla f(x^*)^T\nabla f(x^*)=-\|\nabla f(x^*)\|<0 pT∇f(x∗)=−∇f(x∗)T∇f(x∗)=−∥∇f(x∗)∥<0 (1)
根据函数的连续性,必然可以得到,存在一个足够小的正数 T T T ,使得:
p T ∇ f ( x ∗ + t p ) < 0 p^T\nabla f(x^*+tp)<0 pT∇f(x∗+tp)<0 for all t ∈ [ 0 , T ] t\in[0,T] t∈[0,T] (2)
考虑 \overline{t} \in(0,T] ,并对 f(x)$ 在 x ∗ x^* x∗ 点处做泰勒展开,我们可以得到:
f ( x ∗ + t ‾ p ) = f ( x ∗ ) + t ‾ p T ∇ f ( x ∗ + t p ) f o r s o m e t ∈ ( 0 , t ‾ ) f(x^*+\overline{t}p) = f(x^*)+\overline{t}p^T\nabla f(x^*+tp) for some t\in (0,\overline{t}) f(x∗+tp)=f(x∗)+tpT∇f(x∗+tp)forsomet∈(0,t) (3)
观察公式(3)的第二项, t ‾ \overline{t} t 是一个正实数,根据公式(2)我们又可以知道 p T ∇ f ( x ∗ + t p ) p^T\nabla f(x^*+tp) pT∇f(x∗+tp) 是一个负数。那么我们可以我们一定可以找到一个正数 β \beta β ,使得:
f ( x ∗ + t ‾ p ) = f ( x ∗ ) − β f(x^*+\overline{t}p) = f(x^*)-\beta f(x∗+tp)=f(x∗)−β
也就是:
f ( x ∗ + t ‾ p ) < f ( x ∗ ) f(x^*+\overline{t}p) < f(x^*) f(x∗+tp)<f(x∗)
那么 x^* 不是局部最小值点,与假设相反,原结论成立。
Q.E.D
Proof 2:
由Proof 1我们已经证明了前半部分,现在证明后半部分,也就是 ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) ∇2f(x∗) 正定。
反证法
假设 ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) ∇2f(x∗) 不是正定的,那么肯定可以找到一个向量 p p p 使得 p T ∇ 2 f ( x ∗ ) p < 0 p^T\nabla^2 f(x^*)p<0 pT∇2f(x∗)p<0 。同样由连续性,可以得到,存在一个正数 T T T 使得:
p T ∇ 2 f ( x ∗ + t p ) p < 0 p^T\nabla^2f(x^*+tp)p<0 pT∇2f(x∗+tp)p<0 for all t ∈ [ 0 , T ] t\in[0,T] t∈[0,T]
考虑 t ‾ ∈ ( 0 , T ] \overline{t} \in(0,T] t∈(0,T] ,并对 f ( x ) f(x) f(x) 在 x ∗ x^* x∗ 点处做二阶泰勒展开,我们可以得到:
f ( x ∗ + t ‾ p ) = f ( x ∗ ) + t ‾ p T ∇ f ( x ∗ + t p ) + 1 2 t ‾ 2 p T ∇ 2 f ( x ∗ + t p ) p < f ( x ∗ ) f(x^*+\overline{t}p) = f(x^*)+\overline{t}p^T\nabla f(x^*+tp)+\frac{1}{2}\overline{t}^2p^T\nabla^2f(x^*+tp)p<f(x^*) f(x∗+tp)=f(x∗)+tpT∇f(x∗+tp)+21t2pT∇2f(x∗+tp)p<f(x∗)
同理我们可以得到假设错误,原结论成立。
Q.E.D
Proof 3
由于 ∇ 2 f ( x ) \nabla^2f(x) ∇2f(x) 的连续性,我们可以知道,在 x ∗ x^* x∗ 的一个足够小的邻域内, ∇ 2 f ( x ) \nabla^2f(x) ∇2f(x) 可以保持正定性。假设这个邻域的半径为 r r r ,那么这个邻域内所有点的集合 为 D = { z ∣ ∥ z − x ∗ ∥ < r } \mathcal{D} =\{z| \|z-x^*\|<r\} D={ z∣∥z−x∗∥<r} 。我们假设 p p p 为任意满足 ∥ p ∥ < r \|p\|<r ∥p∥<r 的向量。那么我们可以得到 x ∗ + p ∈ D x^*+p\in \mathcal{D} x∗+p∈D 。
(这里做一点简要的解释,在 x ∗ x^* x∗ 附近满足正定性条件的点不一定都在集合 D \mathcal{D} D 里面,之所以引入集合 D \mathcal{D} D 的概念主要是为了简化描述。对于单一变量而言, D \mathcal{D} D是一个以 x ∗ x^* x∗为中点的线段,这个线段中任何一点都能使二阶导正定。这个线段可能不是最长的线段,但是他必须是以 x ∗ x^* x∗为中点的,二维的话就是以 x ∗ x^* x∗ 为圆心的圆,三维就是以 x ∗ x^* x∗ 为球心的球。)
同样我们做泰勒展开:
f ( x ∗ + p ) = f ( x ∗ ) + p T ∇ f ( x ∗ ) + 1 2 p T ∇ 2 f ( z ) p = f ( x ∗ ) + 1 2 p T f ( z ) p f(x^*+p) = f(x^*) +p^T \nabla f(x^*) + \frac{1}{2}p^T\nabla^2 f(z) p\\=f(x^*) + \frac{1}{2} p^T f(z) p f(x∗+p)=f(x∗)+pT∇f(x∗)+21pT∇2f(z)p=f(x∗)+21pTf(z)p
这里需要解释的有两点。1、第二个等式是因为在 x ∗ x^* x∗ 处 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 ∇f(x∗)=0 。2、根据泰勒定理,这里的 z = x ∗ + t p z=x^*+tp z=x∗+tp for some t ∈ ( 0 , 1 ) t \in (0,1) t∈(0,1) 。对于最后一个等式的最后一项,根据正定的定义我们可以知道 p T f ( z ) p p^T f(z) p pTf(z)p 是一个正数。
我们可以得到:
f ( x ∗ + p ) > f ( x ∗ ) f(x^*+p) > f(x^*) f(x∗+p)>f(x∗)
由于 x ∗ + p x^*+p x∗+p 可以认为是一个在超平面上以 x ∗ x^* x∗ 为球心的开球域。这也就是说,在 x ∗ x^* x∗ 附近所有的函数值都比 x ∗ x^* x∗ 点处的大。
Q.E.D
来源:oschina
链接:https://my.oschina.net/u/4409965/blog/4650282