基础知识
在开始介绍优化方法之前,我们先介绍一些基础知识
收敛速度
如果一种方法(这里指算法),是以前一次迭代的一阶幂乘以一个小于1的因子的速度收敛,则称这种方法为线性收敛(例如二分法),而以高阶幂收敛的方法称为超线性收敛。
具体描述:
设算法产生点列 { x ( x ) } \{x^{(x)}\} {
x(x)},收敛到解 x ∗ x^* x∗,且 { x ( x ) } ≠ x ∗ , ∀ k \{x^{(x)}\} \neq x^* ,\forall k {
x(x)}̸=x∗,∀k,则
- 线性收敛:当 k k k充分大时有
∥ x ( x + 1 ) − x ∗ ∥ ∥ x ( x ) − x ∗ ∥ < 1 \frac{\|x^{(x+1)}-x^*\|}{\|x^{(x)}-x^*\|} < 1 ∥x(x)−x∗∥∥x(x+1)−x∗∥<1- 超线性收敛: lim k → ∞ ∥ x ( x + 1 ) − x ∗ ∥ ∥ x ( x ) − x ∗ ∥ = 0 \lim_{k\rightarrow\infty} \frac{\|x^{(x+1)}-x^*\|}{\|x^{(x)}-x^*\|} = 0 k→∞lim∥x(x)−x∗∥∥x(x+1)−x∗∥=0
- 二阶收敛: ∃ α > 0 \exists \alpha>0 ∃α>0,当 k k k充分大时有: ∥ x ( x + 1 ) − x ∗ ∥ ∥ x ( x ) − x ∗ ∥ ≤ α \frac{\|x^{(x+1)}-x^*\|}{\|x^{(x)}-x^*\|} \leq\alpha ∥x(x)−x∗∥∥x(x+1)−x∗∥≤α
我们知道上面的符号 ∥ ⋯ ∥ \|\cdots\| ∥⋯∥是范数的符号,范数可以用来度量向量之间的距离。对最简单的情况——一维向量来说——上面的各个相减的式子就可以表示两点之间的距离。
凸集 (convex set)
凸集在最优化领域占有重要地位。其数学定义是:
设有 N N N维空间的子集 D D D,如果对于任意的向量(也可以说是 N N N维空间中的点) X 1 、 X 2 ∈ D X_1、X_2 \in D X1、X2∈D,以及任意的实数 a ∈ [ 0 , 1 ] a \in [0, 1] a∈[0,1],都有 a X 1 + ( 1 − a ) X 2 ∈ D aX_1+(1-a)X_2 \in D aX1+(1−a)X2∈D,那么则称 D D D为凸集。
凸集的几何意义是:
如果 D D D为非空集合,则连接 D D D中任意两个点 X 1 、 X 2 X_1、X_2 X1、X2的线段仍属于该集合。
这似乎有点令人费解: a X 1 + ( 1 − a ) X 2 ∈ D aX_1+(1-a)X_2 \in D aX1+(1−a)X2∈D与两点之间的连线有什么关系呢?它表示连接这两点的线段上的任意一点。简单推导如下:
假设X为线段 X 1 X 2 X_1X_2 X1X2上的任一点,则向量 X 2 X ⃗ \vec{X_2X} X2X平行于向量 X 2 X 1 ⃗ \vec{X_2X_1} X2X1,且 0 ≤ ∣ X 2 X ⃗ ∣ ≤ ∣ X 2 X 1 ⃗ ∣ 0 \leq |\vec{X_2X}|\leq|\vec{X_2X_1}| 0≤∣X2X∣≤∣X2X1∣ 。
因此,存在数 a ∈ [ 0 , 1 ] a \in [0, 1] a∈[0,1],使得 X 2 X ⃗ = a X 2 X 1 ⃗ \vec{X_2X}= a\vec{X_2X_1} X2X=aX2X1,即: X − X 2 = a ( X 1 − X 2 ) X-X_2= a(X_1-X_2) X−X2=a(X1−X2),即 X = a X 1 + ( 1 − a ) X 2 X = aX_1+(1-a)X_2 X=aX1+(1−a)X2。由于X是线段 X 1 X 2 X_1X_2 X1X2上任一点,因此前面的结论不言自明。
正定矩阵 (positive definite matrix)
设 M \bf{M} M 是 n \bf{n} n阶方阵,如果对任何非零列向量 x ∈ R n \bf{x}\in R^n x∈Rn,都有 x T M x > 0 \bf{x^TMx}>0 xTMx>0,就称 M \bf{M} M为正定矩阵。
当 x T M x > 0 \bf{x^TMx}>0 xTMx>0 弱化为 x T M x ≥ 0 \bf{x^TMx} \geq 0 x