定义

特征向量演示(图来自马同学)

首先,对于给定的方阵 $\mathbf{A}$ 来说,若存在向量 $\vec{v}$ 满足当 $\vec{v}$ 经过线性变换 $\mathbf{A}$ 之后,得到的新向量与 $\vec{v}$ 保持同向,则我们称 $\vec{v}$ 为 $\mathbf{A}$ 的 特征向量(Eigenvector),并称 $\vec{v}$ 在此线性变换下缩放的比例 $\lambda$ 为 $\mathbf{A}$ 的 特征值(Eigenvalue),即 $$ \mathbf{A}\vec{v} = \lambda\vec{v} $$

事实上,$n$ 阶方阵 $\mathbf{A}$ 一定有 $n$ 个特征值(包括重根,可能是复根),每个特征值 $\lambda$ 对应了一个向量方向,该方向上的所有向量都是 $\mathbf{A}$ 在特征值 $\lambda$ 下对应的特征向量,并且与一个同维数的零向量的集合被称为 $\mathbf{A}$ 中以 $\lambda$ 为特征值的 特征空间(Eigenspace),表示为 $$ E_\lambda = \{ \vec{u} \in V | \mathbf{A}\vec{u}=\lambda\vec{u} \} $$

如上图所示,方阵 $\mathbf{A}$ 对应了两个特征值 $\lambda$ 和它们对应的特征向量方向(灰色直线),这两个方向上的所有向量实际上都是 $\mathbf{A}$ 的特征向量。

还有一些性质值得注意:

  • $\mathbf{A}$ 必须是 方阵,才能保证 $\mathbf{A}\vec{v}$ 与 $\vec{v}$ 维度一致。
  • 特征值 $\lambda$ 可为正、负、0,正负指示了 $\vec{v}$ 经过线性变换 $\mathbf{A}$ 后 方向是否反转

理解

矩阵 = 变换

特征向量与特征值到底有什么作用呢?

直观上,「矩阵」可以被理解为一个线性变换,而此时 特征向量表示了变换的方向,特征值则表示了变换的幅度

特征值分解

手动分解

我们尝试按照定义计算一下方阵 $\mathbf{A}$ 的特征值与特征向量。假设我们有方阵 $\mathbf{A}$: $$ \mathbf{A} = \left[\begin{matrix} 2 &3 \\ 2 &1 \\ \end{matrix}\right] $$ 那么根据特征值、特征向量的定义,我们有: $$ \begin{aligned} \mathbf{A}\vec{v} &= \lambda\vec{v} \\ \mathbf{A}\vec{v} - \lambda\vec{v} &= 0 \\ (\mathbf{A} - \lambda)\vec{v} &= 0 \\ \end{aligned} $$ 若 $\vec{v}$ 不为零向量,那么只有当 $\det{(\mathbf{A} - \lambda\mathbf{I})} = 0$ 时,在 $\vec{v}$ 上施加变换 $(\mathbf{A} - \lambda)$ 才会得到 $0$。因此我们下一步的求解为: $$ \det{(\mathbf{A} - \lambda\mathbf{I})} = 0 $$ 我们把具体值代入,并求解特征值 $\lambda$: $$ \begin{aligned} \det{\left(\left[\begin{matrix} 2-\lambda &3 \\ 2 &1-\lambda \\ \end{matrix}\right]\right)} &= 0 \\ (2 - \lambda)(1 - \lambda) - 2\times 3 &= 0 \\ \lambda &= \begin{cases} -1 \\ 4 \end{cases} \end{aligned} $$ 设特征向量 $\vec{v} = [\begin{matrix}x&y\end{matrix}]^\mathrm{T}$,将特征值 $\lambda=-1$ 代入 $\mathbf{A}\vec{v} = \lambda\vec{v}$ 可得 $y=-x$;代入 $\lambda=4$ 可得 $y=\frac{2}{3}x$。这两个结果分别对应这两个特征值对应的特征向量的方向。

综上,方阵 $\mathbf{A}$ 的两个特征值如下:

  1. 特征值 $\lambda=-1$,特征向量为方向 $\vec{v}=[\begin{matrix}1&-1\end{matrix}]^\mathrm{T}$ 上的任意向量;
  2. 特征值 $\lambda=4$,特征向量为方向 $\vec{v}=[\begin{matrix}3&2\end{matrix}]^\mathrm{T}$ 上的任意向量。

公式推导

所谓 特征值分解(Eigen Value Decomposition,EVD)就是分解 $n$ 阶方阵 $\mathbf{A}$ 得到其特征值与特征向量的过程。

我们先回到定义:

$$ \mathbf{A}\vec{v} = \lambda\vec{v} $$

其中 $n$ 阶方阵 $\mathbf{A}$ 一定具有 $n$ 个特征值($\lambda_1, \lambda_2, \cdots, \lambda_n$),每个特征值又对应了各自的特征向量($\vec{v_1}, \vec{v_2}, \cdots, \vec{v_n}$),也就是说

$$ \begin{aligned} \mathbf{A}\vec{v_1} &= \lambda\vec{v_1} \\ \mathbf{A}\vec{v_2} &= \lambda\vec{v_2} \\ &\cdots \\ \mathbf{A}\vec{v_n} &= \lambda\vec{v_n} \\ \end{aligned} $$

将 $n$ 个列向量 $\vec{v_i}$ 按列拼接成一个矩阵,我们可以将上式改写为:

$$ \mathbf{A} \cdot [\begin{matrix}\vec{v_1}&\vec{v_2}&\cdots&\vec{v_n}\end{matrix}] = [\begin{matrix}\vec{v_1}&\vec{v_2}&\cdots&\vec{v_n}\end{matrix}] \cdot \left[\begin{matrix} \lambda_1 &&& \\ &\lambda_2 && \\ &&\cdots & \\ &&&\lambda_n \\ \end{matrix}\right] $$

我们令

$$ \begin{aligned} \mathbf{Q} &= [\begin{matrix}\vec{v_1}&\vec{v_2}&\cdots&\vec{v_n}\end{matrix}] \\ \mathbf{\Lambda} &= \left[\begin{matrix} \lambda_1 &&& \\ &\lambda_2 && \\ &&\cdots & \\ &&&\lambda_n \\ \end{matrix}\right] \end{aligned} $$

可以得到

$$ \begin{aligned} \mathbf{A} \cdot \mathbf{Q} &= \mathbf{Q} \cdot \mathbf{\Lambda} \\ \mathbf{A} &= \mathbf{Q} \cdot \mathbf{\Lambda} \cdot \mathbf{Q}^{-1} \\ \end{aligned} $$

其中 $\mathbf{\Lambda}$ 为特征值,$\mathbf{Q}$ 为对应的特征向量,它们都是 $n \times n$ 维矩阵。

特征值分解(Eigen Value Decomposition,EVD) $$ A_{(n\times{n})} = Q_{(n\times{n})} \Lambda_{(n\times{n})} Q_{(n\times{n})}^{-1} $$

  • 其中
    • $A$ 必须为可对角化矩阵,即 $A$ 为 $n$ 阶方阵且特征空间维度为 $n$
    • $Q$ 为正交矩阵, $Q$ 的第 $i$ 列为 $A$ 的特征向量 $q_i$($q_i$ 一般被正交单位化,但不是必须的)
    • $\Lambda$ 为对角矩阵,对角线上的元素为对应的特征值,即 $\Lambda_{ii}=\lambda_i$
  • 若 $A$ 为对称矩阵:
    • 可以直接分解为 $A=Q\Lambda Q^T$

参考