几乎从本科开始接触特征值与特征向量时,每次都是背一个公式,而不知其所以然,因此在结束模式识别课程后,又对其进行了梳理,总结了特征值与特征向量的物理意义(经矩阵变换后方向不变而长度发生变化)、常用公式和两个实际应用。
目录
1-矩阵与线性变换
我们学习矩阵总是从方程组开始,通过线性组合一个向量产生新的向量,将所有的系数写在一起就形成了矩阵,方程组可以表示为
A
x
=
b
Ax=b
Ax=b,若
A
A
A为方阵,则原来的坐标系下一点
[
x
1
,
x
2
,
⋯
,
x
n
]
T
[x_1,x_2, \cdots, x_n]^T
[x1,x2,⋯,xn]T经过A的变换变为同一坐标系下另一点
[
b
1
,
b
2
,
⋯
,
b
n
]
T
[b_1,b_2,\cdots,b_n]^T
[b1,b2,⋯,bn]T,
[
x
1
x
2
⋮
x
n
]
→
[
b
1
b
2
⋮
b
n
]
\begin{bmatrix} x_1\\x_2\\ \vdots \\ x_n\end{bmatrix} \rightarrow \begin{bmatrix} b_1\\b_2\\ \vdots \\ b_n\end{bmatrix}
⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤→⎣⎢⎢⎢⎡b1b2⋮bn⎦⎥⎥⎥⎤若
A
A
A 不是方阵,则原来的点被变为另一个坐标系下(维度增加或减少)的点。讨论特征值与特征向量是以方阵为条件的。
举个简单例子:二维坐标系下
(
1
,
1
)
T
(1,1)^T
(1,1)T点经过
[
3
1
0
2
]
\begin{bmatrix}3&1\\0&2\end{bmatrix}
[3012]变换成
(
4
,
2
)
T
(4,2)^T
(4,2)T,方阵A的每一行对应由原始坐标进行线性组合形成的新的坐标的一个维度的值,即
b
1
=
a
11
x
1
+
a
12
x
2
b
2
=
a
21
x
1
+
a
22
x
2
b_1 = a_{11}x_1 + a_{12}x_2\\ b_2 = a_{21}x_1 + a_{22}x_2
b1=a11x1+a12x2b2=a21x1+a22x2可见,对应坐标下某个维度的数值相较于原始坐标的相同维度进行了
a
i
i
a_{ii}
aii的缩放,同时也加入了其他维度值的影响,反映在坐标轴上,就是发生了旋转。 因此,一个矩阵对应一个线性变换,其实就是将原始坐标点进行旋转和伸缩到另一个点上的变换。 当矩阵A为对角阵时,只有伸缩变换,否则,二者均有。示意图如下:
2-特征值与特征向量的物理意义
那么给定一个方阵 A A A,我们能干什么呢?同样是上面例子中的矩阵 A A A,我们在n维(矩阵 A A A的维度)坐标系中任意选取一个向量,矩阵 A A A都会将其进行伸缩与旋转,如下图: x x x为长度为1,角度360变换的向量, A x Ax Ax为经过 A A A变换后的向量,经过一周旋转后,可以看到在 0 o 0^o 0o和 13 5 0 135^0 1350方向上,向量x与变换后的向量Ax的方向一致,但长度发生变换。 即作为二维空间变换阵的A有两个方向是保证不发生旋转而只进行伸缩的。 用数学表示为 A x = λ x Ax=\lambda x Ax=λx,当然若保证x方向不变, A x Ax Ax相对x的伸缩倍数是不变的,即 α A x = α λ x \alpha Ax = \alpha \lambda x αAx=αλx,其中 α \alpha α是实数。
我们称经过矩阵A变换后只发生伸缩变换的向量x为特征向量,伸缩的程度称为特征值。如果特征值为负,则表示变换后的向量与原始向量方向相反,特征值的个数为n个(n为矩阵 A A A的维度),特征向量的个数原则上有无数个,只要满足在某个方向即可。
3-特征值特征向量的定义与公式
下面对矩阵的特征值与特征向量进行一些数学上的表示,对n阶方阵
A
A
A,若存在一个n维非零列向量与实数
λ
\lambda
λ,使得满足方程
A
x
=
λ
x
Ax = \lambda x
Ax=λx,则
λ
\lambda
λ为矩阵A的特征值,x称为矩阵A的对应特征值
λ
\lambda
λ的特征向量。引用张宇对该公式的表述:一个块乘以一个列等于一个数乘以一个列。
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
]
[
x
1
x
2
⋮
x
n
]
=
λ
[
x
1
x
2
⋮
x
n
]
\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots &\ a_{2n}\\ \vdots& \vdots& \ddots& \vdots \\ a_{n1}& a_{n2}& \cdots& a_{nn}\end{bmatrix} \begin{bmatrix} x_1\\x_2\\ \vdots\\ x_n\end{bmatrix}=\lambda \begin{bmatrix} x_1\\x_2\\ \vdots\\ x_n\end{bmatrix}
⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1n a2n⋮ann⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤=λ⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤
3.1-特征值与特征向量的求解
将等式右侧改为
λ
I
x
\lambda I x
λIx亦保证结果不变,其中
I
I
I为单位阵,它乘以列向量
x
x
x仍然是其本身。然后将等式右侧移到左侧,可化简为
(
A
−
λ
I
)
x
=
0
(A-\lambda I)x = 0
(A−λI)x=0从方程角度考虑,x为非零列向量,因此
A
−
λ
I
A-\lambda I
A−λI的行列式值应为0,即
d
e
t
(
A
−
λ
I
)
=
0
det(A-\lambda I)=0
det(A−λI)=0;
从矩阵角度考虑,其次方程有非零解,因此
A
−
λ
I
A-\lambda I
A−λI应为奇异阵,即
r
a
n
k
(
A
−
λ
I
)
≠
n
rank(A-\lambda I)\neq n
rank(A−λI)=n。
两种理解是等价的。求出
λ
\lambda
λ后再返回去带入方程求解特征向量。
以
A
=
[
3
1
0
2
]
A=\begin{bmatrix}3&1\\0&2\end{bmatrix}
A=[3012]为例求解:
1、
d
e
t
(
A
−
λ
I
)
=
0
→
(
3
−
λ
)
(
2
−
λ
)
=
0
→
λ
1
=
3
,
λ
2
=
2
det(A-\lambda I)=0 \rightarrow (3-\lambda)(2-\lambda)=0\rightarrow \lambda_1=3, \quad \lambda_2=2
det(A−λI)=0→(3−λ)(2−λ)=0→λ1=3,λ2=2
2、代入原公式求解:
对
λ
1
=
3
\lambda_1=3
λ1=3,
[
0
1
0
−
1
]
x
=
0
→
x
=
[
1
,
0
]
T
\begin{bmatrix}0&1\\0&-1\end{bmatrix}x=0\rightarrow x=[1,0]^T
[001−1]x=0→x=[1,0]T
对
λ
2
=
2
\lambda_2=2
λ2=2,
[
1
1
0
0
]
x
=
0
→
x
=
[
−
1
,
1
]
T
\begin{bmatrix}1&1\\0&0\end{bmatrix}x=0\rightarrow x=[-1,1]^T
[1010]x=0→x=[−1,1]T
3.2-矩阵A的常用变换的特征值与特征向量
A A A | a A + b I aA+bI aA+bI | A k A^k Ak | f ( A ) f(A) f(A) | A − 1 A^{-1} A−1 | A ∗ A^* A∗ | P − 1 A P P^{-1}AP P−1AP |
---|---|---|---|---|---|---|
λ \lambda λ | a λ + b a\lambda+b aλ+b | λ k \lambda^k λk | f ( λ ) f(\lambda) f(λ) | 1 λ \frac{1}{\lambda} λ1 | ∥ A ∥ λ \frac{\|A\|}{\lambda} λ∥A∥ | λ \lambda λ |
x x x | x x x | x x x | x x x | x x x | x x x | P − 1 x P^{-1}x P−1x |
3.3- 常用矩阵形式公式
前面提到特征值特征向量定义式时我们说一个块(
n
×
n
n\times n
n×n)乘以一个列(
n
×
1
n\times1
n×1)还是一个列(
n
×
1
n\times1
n×1),我们知道一个
n
n
n维方阵
A
A
A有
n
n
n个特征向量,我们将其用一个矩阵乘法表示,就是一个块(
n
×
n
n\times n
n×n)乘以一个块(
n
×
n
n\times n
n×n)还是一个块(
n
×
n
n\times n
n×n),即用矩阵
A
A
A同时对
n
n
n个特征列向量进行变换可以得到每个列向量都与
n
n
n个特征向量的每一列成倍数关系的新的
n
n
n个列向量。用公式表示如下:
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
]
[
x
11
x
12
⋯
x
1
n
x
21
x
22
⋯
x
2
n
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
x
n
n
]
=
[
x
11
x
12
⋯
x
1
n
x
21
x
22
⋯
x
2
n
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
x
n
n
]
[
λ
1
0
⋯
0
0
λ
2
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
λ
n
]
\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots &\ a_{2n}\\ \vdots& \vdots& \ddots& \vdots \\ a_{n1}& a_{n2}& \cdots& a_{nn}\end{bmatrix} \begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\ \vdots&\vdots& \ddots& \vdots\\ x_{n1}&x_{n2}&\cdots&x_{nn}\end{bmatrix} = \begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\ \vdots&\vdots& \ddots& \vdots\\ x_{n1}&x_{n2}&\cdots&x_{nn}\end{bmatrix}\begin{bmatrix} \lambda_1&0&\cdots&0\\ 0&\lambda_2&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}
⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1n a2n⋮ann⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1nx2n⋮xnn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1nx2n⋮xnn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎤
将特征值构成的对角阵用
Λ
\Lambda
Λ表示,将特征向量构成的矩阵用
ϕ
\phi
ϕ表示,上述方程可以写为
A
ϕ
=
ϕ
Λ
A\phi=\phi\Lambda
Aϕ=ϕΛ方程两端同时右乘
ϕ
−
1
\phi^{-1}
ϕ−1可得
A
=
ϕ
Λ
ϕ
−
1
A = \phi \Lambda \phi^{-1}
A=ϕΛϕ−1,即矩阵A可以用特征值和特征向量来表示;
方程两端同时左乘
ϕ
−
1
\phi^{-1}
ϕ−1可得
Λ
=
ϕ
−
1
A
ϕ
\Lambda=\phi^{-1}A\phi
Λ=ϕ−1Aϕ,即使用特征向量可以将矩阵A进行对角化。
由 A = ϕ Λ ϕ − 1 A = \phi \Lambda \phi^{-1} A=ϕΛϕ−1可知,矩阵A可以表示为特征向量构成的矩阵与特征值构成的矩阵的变换, Λ \Lambda Λ为特征值构成的对角阵,数值大小可以衡量相应特征向量的重要程度。很容易理解,例如如果A对某个特征向量 x 1 x_1 x1的变换等于该特征向量的100倍,而对另一个特征向量 x 2 x_2 x2的变换等于该特征向量的0.01倍,显然 x 1 x_1 x1比 x 2 x_2 x2重要得多。
3.4-实对称阵的性质
实际应用中矩阵A常化为对称阵,即 A T = A A^T=A AT=A,因为其具有一些非常好的性质:
4-特征值与特征向量的应用
前面提到矩阵A的特征向量指的是那些经过A变换后方向仍然不发生变化的向量,这也是特征值与特征向量的几何意义。那么在实际中如何使用这个性质呢?由 A = ϕ Λ ϕ − 1 A = \phi \Lambda \phi^{-1} A=ϕΛϕ−1可知,我们可以扔掉一些不重要的特征值,使得 A A A有了一定的变化。
4.1-主成分分析
主成分分析是特征降维的经典方法,其操作过程可以简单用“旋转坐标系,扔掉一些基”来描述,至于取用哪些基就要根据特征值大小来选取。
主成分分析中最关键的一环就是对协方差矩阵(对称阵)特征值与特征向量的求解,PCA的形象理解与理论推导,参看博文。
4.2-图像压缩
图像可以看成是一个矩阵,矩阵元素为像素大小。对图像进行特征值分解,并只选用一些较大的特征值复原图像,以此来进行图像压缩。一般使用SVD分解进行压缩,但原理相同。关于奇异值分解以及图像逼近(压缩),请参考博文。
参考
[1] 张宇考研数学-特征值与特征向量
[2] 特征值与特征向量(动画分析)
[3] 特征值与特征向量的实际意义