特征值与特征向量的计算——PCA的数学基础
特征值与特征向量
定义 令 A {\bm A} A为 n × n n \times n n×n矩阵,如果存在非零向量 x {\bm x} x使得
A x = λ x (1) {\bm A}{\bm x} = \lambda {\bm x}\tag{1} Ax=λx(1)
成立,则称数 λ \lambda λ是矩阵 A {\bm A} A的特征值,称非零向量 x {\bm x} x为属于(或对应于) λ \lambda λ的特征向量。
线性变换对特征向量的作用仅是进行某种程度的收缩或拉伸,特征值是收缩或拉伸的倍数(缩放因子)。
需要注意的是,定义中特征向量 x ≠ 0 \boldsymbol{x} \neq \boldsymbol{0} x=0; 矩阵 A \boldsymbol{A} A是方阵,也就是说,特征值问题只针对方阵而言。
例 设
A = [ 4 − 2 1 1 ] 及 x = [ 2 1 ] \boldsymbol{A} = \begin{bmatrix} 4 & -2 \\ 1 & 1 \end{bmatrix} \quad \text{及} \quad \boldsymbol{x} = \begin{bmatrix} 2 \\ 1 \end{bmatrix} A=[41−21]及x=[21]
由于
A x = [ 4 − 2 1 1 ] [ 2 1 ] = [ 6 3 ] = 3 [ 2 1 ] = 3 x \boldsymbol{A}\boldsymbol{x} = \begin{bmatrix} 4 & -2 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \end{bmatrix} = \begin{bmatrix} 6 \\ 3 \end{bmatrix} = 3 \begin{bmatrix} 2 \\ 1 \end{bmatrix} = 3\boldsymbol{x} Ax=[41−21][21]=[63]=3[21]=3x
可得, λ = 3 \lambda = 3 λ=3是 A \boldsymbol{A} A的一个特征值,且 x = ( 2 , 1 ) ⊤ \boldsymbol{x} = (2, 1)^\top x=(2,1)⊤为一个属于 λ \lambda λ的特征向量。
事实上,任何 x \boldsymbol{x} x的一个非零倍数都是一个特征向量,因为
A ( α x ) = α A x = α λ x = λ ( α x ) \boldsymbol{A}(\alpha \boldsymbol{x}) = \alpha \boldsymbol{A}\boldsymbol{x} = \alpha \lambda \boldsymbol{x} = \lambda (\alpha \boldsymbol{x}) A(αx)=αAx=αλx=λ(αx)
因此, ( 4 , 2 ) ⊤ (4, 2)^\top (4,2)⊤也是 λ = 3 \lambda = 3 λ=3的特征向量。
方程 A x = λ x \boldsymbol{A}\boldsymbol{x} = \lambda \boldsymbol{x} Ax=λx可写为
( A − λ I ) x = 0 (2) (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} \tag{2} (A−λI)x=0(2)
因此, λ \lambda λ为 A \boldsymbol{A} A的特征值的充要条件是式 (2) 有非零解。式 (2) 的解集为 V λ ( A ) = { x ∣ ( A − λ I ) x = 0 } V_{\lambda}(\boldsymbol{A}) = \{\boldsymbol{x} | (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0}\} Vλ(A)={x∣(A−λI)x=0},它是 R n \mathbb{R}^n Rn的一个子空间。因此,若 λ \lambda λ是 A \boldsymbol{A} A的一个特征值,则 V λ ( A ) ≠ { 0 } V_{\lambda}(\boldsymbol{A}) \neq \{\boldsymbol{0}\} Vλ(A)={0},且 V λ ( A ) V_{\lambda}(\boldsymbol{A}) Vλ(A)中的任何非零向量均为属于 λ \lambda λ的特征向量。子空间 V λ ( A ) = { x ∣ ( A − λ I ) x = 0 } V_{\lambda}(\boldsymbol{A}) = \{\boldsymbol{x} | (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0}\} Vλ(A)={x∣(A−λI)x=0}称为对应于特征值 λ \lambda λ的特征子空间。
式 (2) 有非零解的充要条件是 A − λ I \boldsymbol{A} - \lambda \boldsymbol{I} A−λI为奇异的,或等价地
det ( A − λ I ) = 0 (3) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = 0 \tag{3} det(A−λI)=0(3)
式 (3) 中的行列式展开后得到一个关于 λ \lambda λ的 n n n次多项式, λ 0 \lambda_0 λ0是 A \boldsymbol{A} A的特征值的充要条件是 λ 0 \lambda_0 λ0为多项式 det ( A − λ I ) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) det(A−λI)的根。因此,有如下定义:
定义 设 A = ( a i j ) n × n \boldsymbol{A} = (a_{ij})_{n \times n} A=(aij)n×n,则
p ( λ ) = det ( A − λ I ) = ∣ a 11 − λ a 12 ⋯ a 1 n a 21 a 22 − λ ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n − λ ∣ (4) p(\lambda) = \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = \begin{vmatrix} a_{11} - \lambda & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} - \lambda & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} - \lambda \end{vmatrix} \tag{4} p(λ)=det(A−λI)= a11−λa21⋮an1a12a22−λ⋮an2⋯⋯⋱⋯a1na2n⋮ann−λ (4)
称为 n n n阶方阵 A \boldsymbol{A} A的特征多项式,式 (3) 称为矩阵 A \boldsymbol{A} A的特征方程。
由定义可知,特征多项式的根即为方阵 A \boldsymbol{A} A的特征值。如果对重根也计数,则特征多项式恰有 n n n个根。因此 A \boldsymbol{A} A将有 n n n个特征值,其中某些可能会重复,特征值可能为实数,也可能会是复数。对后一种情形,需要在复数范围内进行讨论,允许向量和矩阵的元素可以是复数。
由上述讨论可得,求矩阵 A \boldsymbol{A} A的特征值和特征向量的步骤如下:
(1) 计算 n n n阶矩阵 A \boldsymbol{A} A的特征多项式 det ( A − λ I ) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) det(A−λI);
(2) 求特征方程 det ( A − λ I ) = 0 \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = 0 det(A−λI)=0所有的根 λ 1 , λ 2 , ⋯ , λ n \lambda_1, \lambda_2, \cdots, \lambda_n λ1,λ2,⋯,λn,即矩阵 A \boldsymbol{A} A的全部特征值;
(3) 对于每一个特征值 λ i \lambda_i λi,求解齐次线性方程组 ( A − λ i I ) x = 0 (\boldsymbol{A} - \lambda_i \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A−λiI)x=0的一个基础解系 x 1 , x 2 , ⋯ , x k \boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_k x1,x2,⋯,xk,于是 A \boldsymbol{A} A的属于特征值 λ i \lambda_i λi的全部特征向量为
x = c 1 x 1 + c 2 x 2 + ⋯ + c k x k , 其中 c 1 , c 2 , ⋯ , c k 是不全为零的数 \boldsymbol{x} = c_1 \boldsymbol{x}_1 + c_2 \boldsymbol{x}_2 + \cdots + c_k \boldsymbol{x}_k, \quad \text {其中 } c_1, c_2, \cdots, c_k \text{ 是不全为零的数} x=c1x1+c2x2+⋯+ckxk,其中 c1,c2,⋯,ck 是不全为零的数
例 求矩阵 A = [ 3 2 3 − 2 ] \boldsymbol{A} = \begin{bmatrix} 3 & 2 \\ 3 & -2 \end{bmatrix} A=[332−2]的特征值和特征向量。
解: A \boldsymbol{A} A的特征多项式为
∣ A − λ I ∣ = ∣ 3 − λ 2 3 − 2 − λ ∣ = λ 2 − λ − 12 |\boldsymbol{A} - \lambda \boldsymbol{I}| = \begin{vmatrix} 3 - \lambda & 2 \\ 3 & -2 - \lambda \end{vmatrix} = \lambda^2 - \lambda - 12 ∣A−λI∣= 3−λ32−2−λ =λ2−λ−12
所以 A \boldsymbol{A} A的特征值为 λ 1 = 4 , λ 2 = − 3 \lambda_1 = 4, \lambda_2 = -3 λ1=4,λ2=−3。
当 λ 1 = 4 \lambda_1 = 4 λ1=4时,解方程组 ( A − 4 I ) x = 0 (\boldsymbol{A} - 4 \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A−4I)x=0,由
A − 4 I = [ − 1 2 3 − 6 ] → [ 1 − 2 0 0 ] \boldsymbol{A} - 4 \boldsymbol{I} = \begin{bmatrix} -1 & 2 \\ 3 & -6 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & -2 \\ 0 & 0 \end{bmatrix} A−4I=[−132−6]→[10−20]
得基础解系为 x 1 = ( 2 , 1 ) ⊤ \boldsymbol{x}_1 = (2, 1)^\top x1=(2,1)⊤,因此 c 1 x 1 c_1 \boldsymbol{x}_1 c1x1( c 1 ≠ 0 c_1 \neq 0 c1=0)为 A \boldsymbol{A} A的属于特征值 4 的特征向量。
当 λ 2 = − 3 \lambda_2 = -3 λ2=−3时,解方程组 ( A + 3 I ) x = 0 (\boldsymbol{A} + 3 \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A+3I)x=0,由
A + 3 I = [ 6 2 3 1 ] → [ 3 1 0 0 ] \boldsymbol{A} + 3 \boldsymbol{I} = \begin{bmatrix} 6 & 2 \\ 3 & 1 \end{bmatrix} \rightarrow \begin{bmatrix} 3 & 1 \\ 0 & 0 \end{bmatrix} A+3I=[6321]→[3010]
得基础解系为 x 2 = ( − 1 , 3 ) ⊤ \boldsymbol{x}_2 = (-1, 3)^\top x2=(−1,3)⊤,因此 c 2 x 2 c_2 \boldsymbol{x}_2 c2x2( c 2 ≠ 0 c_2 \neq 0 c2=0)为 A \boldsymbol{A} A的属于特征值 -3 的特征向量。
例 求矩阵
[ 2 − 3 1 1 − 2 1 1 − 3 2 ] \begin{bmatrix} 2 & -3 & 1 \\ 1 & -2 & 1 \\ 1 & -3 & 2 \end{bmatrix} 211−3−2−3112
的特征值和特征向量。
解: A \boldsymbol{A} A的特征多项式为
∣ A − λ I ∣ = ∣ 2 − λ − 3 1 1 − 2 − λ 1 1 − 3 2 − λ ∣ = − λ ( λ − 1 ) 2 | \boldsymbol{A} - \lambda \boldsymbol{I} | = \begin{vmatrix} 2 - \lambda & -3 & 1 \\ 1 & -2 - \lambda & 1 \\ 1 & -3 & 2 - \lambda \end{vmatrix} = -\lambda (\lambda - 1)^2 ∣A−λI∣= 2−λ11−3−2−λ−3112−λ =−λ(λ−1)2
所以 A \boldsymbol{A} A的特征值为 λ 1 = 0 , λ 2 = λ 3 = 1 \lambda_1 = 0, \lambda_2 = \lambda_3 = 1 λ1=0,λ2=λ3=1。
当 λ 1 = 0 \lambda_1 = 0 λ1=0时,解方程组 A x = 0 \boldsymbol{A}\boldsymbol{x} = \boldsymbol{0} Ax=0,由
A = [ 2 − 3 1 1 − 2 1 1 − 3 2 ] → [ 1 0 − 1 0 1 − 1 0 0 0 ] \boldsymbol{A} = \begin{bmatrix} 2 & -3 & 1 \\ 1 & -2 & 1 \\ 1 & -3 & 2 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 0 & -1 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{bmatrix} A= 211−3−2−3112 → 100010−1−10
得基础解系为 x 1 = ( 1 , 1 , 1 ) ⊤ \boldsymbol{x}_1 = (1, 1, 1)^\top x1=(1,1,1)⊤,因此 c 1 x 1 c_1 \boldsymbol{x}_1 c1x1( c 1 ≠ 0 c_1 \neq 0 c1=0)为 A \boldsymbol{A} A的属于特征值 0 的特征向量。
当 λ 2 = λ 3 = 1 \lambda_2 = \lambda_3 = 1 λ2=λ3=1时,解方程组 ( A − I ) x = 0 (\boldsymbol{A} - \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A−I)x=0,由
A − I = [ 1 − 3 1 1 − 3 1 1 − 3 1 ] → [ 1 − 3 1 0 0 0 0 0 0 ] \boldsymbol{A} - \boldsymbol{I} = \begin{bmatrix} 1 & -3 & 1 \\ 1 & -3 & 1 \\ 1 & -3 & 1 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & -3 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} A−I= 111−3−3−3111 → 100−300100
得基础解系为 x 2 = ( 3 , 1 , 0 ) ⊤ \boldsymbol{x}_2 = (3, 1, 0)^\top x2=(3,1,0)⊤和 x 3 = ( − 1 , 0 , 1 ) ⊤ \boldsymbol{x}_3 = (-1, 0, 1)^\top x3=(−1,0,1)⊤,因此 c 2 x 2 + c 3 x 3 c_2 \boldsymbol{x}_2 + c_3 \boldsymbol{x}_3 c2x2+c3x3( c 2 , c 3 c_2, c_3 c2,c3不全为 0)为 A \boldsymbol{A} A的属于特征值 1 的特征向量。