对于一个方阵 $\mathbf A$,如果存在一个非零向量 $\mathbf v$ 满足:
$$ \mathbf {Av}=\lambda\mathbf v $$则称 $\mathbf v$ 是 $\mathbf A$ 的一个特征向量(eigenvector
),$\lambda$ 是 $\mathbf A$ 的一个特征值(eigenvalue
)。
事实上,这种形式的特征向量叫做右特征向量,我们也可以定义左特征向量为:$ \mathbf {v^\top A}=\lambda\mathbf v^\top $,不过不是很常用。
如果 $\mathbf v$ 是 $\mathbf A$ 的一个特征向量,则它的数乘 $s\mathbf v$ 也是 $\mathbf A$ 的一个特征向量,所以我们通常只考虑单位特征向量。
如果一个$n\times n$ 矩阵 $\bf A$ 有 $n$ 组线性无关的单位特征向量 $\{\mathbf v^{(1)}, \dots, \mathbf v^{(n)}\}$,以及对应的特征向量 $\lambda_1,\dots,\lambda_n$。将这些特征向量按列拼接成一个矩阵:$\mathbf V = [\mathbf v^{(1)}, \dots, \mathbf v^{(n)}]$,并将对应的特征值拼接成一个向量:$\mathbf \lambda = [\lambda_1,\dots,\lambda_n]$。
$\bf A$ 的特征值分解(eigendecomposition
)为:
注意:
在机器学习中,通常我们只对实对称矩阵进行特征值分解,而实对称矩阵的特征值分解总是存在的,而且都是特征值和特征向量都是实数,而且,我们可以将其分解为:
$$ \mathbf {A = Q \Lambda Q}^{\top} $$其中 $\bf Q$ 是特征向量组成的正交矩阵 $\bf \Lambda$ 是特征值构成的对角矩阵。
考虑到存在排列顺序的问题,通常我们按照特征值递减的顺序排列这些特征值和特征向量。
矩阵是奇异的等价于有一个特征值为 0。
对于实对称矩阵,求特征值的问题相当于优化这个问题:
$$ f(\mathbf x) = \mathbf{x^\top A x}, \|x\|_2=1 $$$f(\mathbf x)$ 的最大值为特征值的最大值,最小值为特征值的最小值。
半正定和正定矩阵都满足:$\forall x, f(\mathbf x) = \mathbf{x^\top A x} \geq 0$;正定矩阵还满足 $\mathbf{x^\top A x} = 0 \Rightarrow \mathbf{x = 0}$。