目录
1 前言
内容为自己的学习总结,其中多有借鉴他人的地方,最后一并给出链接。如果影响了相关作者,请私信我,我会加以修改。
2 通俗解释
定义:对于任意可逆方阵,存在一个向量,用该矩阵乘以该向量后,向量的大小发生变化而方向不变。也就是说,对于
n
×
n
n×n
n×n矩阵
M
M
M,存在一个非
0
0
0的
n
n
n维向量
V
1
,
V
2
,
.
.
.
.
.
.
V
n
V_1,V_2,......V_n
V1,V2,......Vn使下式成立:
M
V
i
=
λ
i
V
i
MV_i=\lambda_iV_i
MVi=λiVi
其中,比例系数
λ
i
\lambda_i
λi成为矩阵
M
M
M的特征值,向量
V
i
V_i
Vi成为该特征值对应的特征向量。
对于一个可逆方阵可以存在一组特征值与特征向量。将上面的公式简化之后为:
A
x
=
λ
x
Ax=\lambda x
Ax=λx
其中
A
A
A是矩阵
x
x
x值特征向量
λ
\lambda
λ是特征值。特征值是一个数字,而向量的
λ
x
\lambda x
λx数乘本质上是向量的缩放。如
λ
=
2
\lambda =2
λ=2,
x
=
[
2
,
3
]
T
x=[2, 3]^T
x=[2,3]T, 则
λ
x
=
[
4
,
6
]
T
\lambda x =[4, 6]^T
λx=[4,6]T。变换后与原向量相比向量
x
x
x的大小变为原来的两倍而方向没有发生变化。再由于上面的二式左右相等,因此矩阵乘以一个向量的效果是让该向量进行了一个方向不变的伸缩。【参考文献1】
所以特征值和特征向量的通俗解释是:
- 矩阵是一个向量的变换方式。
- 特征向量就是该向量经过某一矩阵变换之后其方向不变的向量。
- 特征值 λ \lambda λ是一个伸缩倍数。
这里再补充一下特征值和特征向量的性质:
特征值:
A
A
A是
n
n
n阶矩阵
λ
1
,
λ
2
,
λ
3
.
.
.
.
.
.
λ
n
\lambda_1 ,\lambda_2, \lambda_3......\lambda_n
λ1,λ2,λ3......λn是
A
A
A的
n
n
n个特征值则有:
∑
i
n
λ
i
=
λ
1
+
λ
2
+
λ
3
+
.
.
.
.
.
.
+
λ
n
=
a
11
+
a
22
+
a
33
+
.
.
.
.
.
.
+
a
n
n
=
t
r
(
A
)
∏
i
=
1
n
λ
1
λ
2
.
.
.
.
.
.
λ
n
=
∣
A
∣
\sum_i^n \lambda _i = \lambda_1 + \lambda_2+ \lambda_3+......+\lambda_n=a_{11}+a_{22}+a_{33}+......+a_{nn}=tr(A)\\ \prod_{i=1}^{n}\lambda_1 \lambda_2......\lambda_n=|A|
i∑nλi=λ1+λ2+λ3+......+λn=a11+a22+a33+......+ann=tr(A)i=1∏nλ1λ2......λn=∣A∣
特征向量:
n
n
n阶矩阵
A
A
A的互不相等的特征值
λ
1
,
λ
2
,
λ
3
.
.
.
.
.
.
λ
n
\lambda_1 ,\lambda_2, \lambda_3......\lambda_n
λ1,λ2,λ3......λn对应的特征向量
x
1
,
x
2
,
.
.
.
.
.
.
,
x
n
x_1, x_2, ......,x_n
x1,x2,......,xn线性无关。注意:实对称矩阵特征值不等的特征向量正交。
3 矩阵从运动的角度理解
如果阅读过理解矩阵(一)(二)(三)系列的文章,可以从变换的角度理解特征值与特征向量。以 M a = b Ma=b Ma=b为例介绍矩阵 M M M的含义 :
- 从变换的角度来说,矩阵 M M M可以理解为对向量 a a a做变换得到了 b b b
- 从坐标系的角度来说, M M M可以理解成是一个坐标系(常用的坐标是笛卡尔坐标系,即 I I I),向量 a a a就是在 M M M这个坐标系下的坐标, a a a对应到 I I I坐标系下的坐标是向量 b b b。
那特征值和特征向量具体是什么含义呢?
我们假设矩阵
A
A
A的某个特征值为
m
1
m_1
m1, 对应的特征向量是
x
1
x_1
x1。根据定义和上面对矩阵的理解可以知道,
x
1
x_1
x1是以
A
A
A为坐标系的坐标向量,将其变换到以
I
I
I为坐标系后得到的坐标向量 与 它原来的坐标向量 永远存在一个
m
1
m_1
m1倍的伸缩关系。
为了方便理解举一个简单的例子,假如矩阵
A
A
A如下,可以看到它的特征值有
2
2
2个,分别是
1
,
100
1,100
1,100,分别对应
2
2
2个特殊的特征向量,即
[
1
,
0
]
,
[
0
,
1
]
[1,0],[0,1]
[1,0],[0,1]。
A
=
[
1
0
0
100
]
A=\left[\begin{array}{cc} 1 & 0 \\ 0 & 100 \end{array}\right]
A=[100100]
所以矩阵
A
A
A左乘任意的一个向量
x
x
x,其实都可以理解成是把向量
x
x
x沿着这
2
2
2个特征向量的方向进行伸缩,伸缩比例就是对应的特征值。可以看到这
2
2
2个特征值差别是很大的,最小的只有
1
1
1,最大的特征值为
100
100
100。
图片来自【参考文献3】
4 特征值和特征向量的意义
意义就在于如果我们知道了特征值的大小,有时为了减少计算了,我们可以只保留特征值较大的,比如上面的图片中,我们可以看到变换后的向量 x x x轴适合原来一样的,而 y y y轴方向拉伸了 100 100 100倍,所以通常为了实现压缩算法,我们可以只保留 y y y轴方向的变换即可。 对应到高维情况也是类似的,多维矩阵会把向量沿着多个方向拉伸,有的方向可能拉伸幅度很小,而有的很大,我们只需要保留幅度大的即可达到压缩的目的。【参考文献3】
5 从计算的角度理解
举个例子:矩阵
A
A
A的特征值为
2
,
1
2, 1
2,1,特征向量为
[
1
,
1
]
T
和
[
2
,
3
]
T
[1, 1]^T和[2, 3]^T
[1,1]T和[2,3]T。
A
=
[
4
−
2
3
−
1
]
A=\left[\begin{array}{ll} 4 & -2 \\ 3 & -1 \end{array}\right]
A=[43−2−1]
假设存在向量
x
=
[
1
,
2
]
T
,
则
y
=
A
x
为
[
0
,
1
]
T
x=[1, 2]^T,则y=Ax为[0, 1]^T
x=[1,2]T,则y=Ax为[0,1]T。下面采用另一种方法计算:首先将
x
x
x表示成特征向量的线性组合
x
=
(
1
2
)
=
−
1
∗
(
1
1
)
+
1
∗
(
2
3
)
x=\left(\begin{array}{l} 1 \\ 2 \end{array}\right)=-1 *\left(\begin{array}{l} 1 \\ 1 \end{array}\right)+1 *\left(\begin{array}{l} 2 \\ 3 \end{array}\right)
x=(12)=−1∗(11)+1∗(23)
然后,将特征值和对应的系数相乘,得到:
y
=
−
1
∗
2
∗
(
1
1
)
+
1
∗
1
∗
(
2
3
)
=
−
2
∗
(
1
1
)
+
1
∗
(
2
3
)
y=-1 * 2 *\left(\begin{array}{l} 1 \\ 1 \end{array}\right)+1 * 1 *\left(\begin{array}{l} 2 \\ 3 \end{array}\right)=-2 *\left(\begin{array}{l} 1 \\ 1 \end{array}\right)+1 *\left(\begin{array}{l} 2 \\ 3 \end{array}\right)
y=−1∗2∗(11)+1∗1∗(23)=−2∗(11)+1∗(23)
显然
y
=
[
0
,
1
]
T
y=[0, 1]^T
y=[0,1]T。(好好领悟理解)
到这里为止,我们再次总结一下前面的结论:
- 矩阵的乘法可以理解为对应向量的坐标系的变换(从坐标系角度理解)
- 从特征向量的性质看,矩阵对应的一组特征向量是线性无关的,因此可以作为一组基。
重点来了,从上面的计算我们可以看出,矩阵左乘一个向量的结果等价于矩阵的特征向量的线性组合的伸缩对对应向量的表示(好好理解下这句话)。也就是说对应向量在以矩阵特征向量为基的坐标系下进行了伸缩。也可以理解为,矩阵所充当的映射,实际上就是对特征向量的缩放,每个特征向量的缩放程度就是特征值。【参考文献5】的评论可以理解特征值和特征向量是矩阵本身的属性。
6 理解其它结论
6.1 对角化分解
参考文献【5】理解的不是很透彻,理解好了再来补充
7深入理解特征值与特征向量
7. 1 特征值与特征向量有两个十分重要的亮点
- 特征向量具有线性不变性
简单从公式理解,在矩阵作用下不变方向只变长度,不变方向的特性就被称为线性不变量。(有网友说不变量实际是特征空间的不变性,特征值再怎么变也不会离开特征空间【个人理解此处的特征空间应该是特征向量张成的空间】,这个说法应是正解,因为这同时解释了复数矩阵) - 特征值是振动的谱
如果矩阵持续的迭代作用于一个向量,那么特征值就会周期性的增强或减弱特征向量的作用,从这个角度讲特征值为矩阵的谱。 举个例子,一个物理系统,其特性可以被一个矩阵所描述,那么这个系统的物理特性就可以被这个矩阵的特征值所决定,各种不同的信号(向量)进入这个系统中后,系统输出的信号(向量)就会发生相位滞后、放大、缩小等各种纷乱的变化。但只有特征信号(特征向量)被稳定的发生放大(或缩小)的变化。如果把系统的输出端口接入输入端口,那么只有特征信号(特征向量)第二次被放大(或缩小)了,其他的信号如滞后的可能滞后也可能超前同时缩小,放大的可能被继续放大也可能被缩小同时滞后,缩小的可能被继续缩小也可能被放大同时滞后等。经过N次的循环后,显然,乱七八糟的大量的向量群众们终不能成气候,只有特征向量们,心往一处想,劲往一处使,要么成功出人头地,要么失败杀身成仁。因此我们就可以因此在时间域上观察输出,就会得到一个或几个超级明显的特征信号出来(特征向量)。 ——《线性代数的几何意义》
从计算的角度理解,也可以结合Part3理解(【图机器学习】图神经网络入门(一)谱图理论)。
假设矩阵
A
A
A是一个
n
×
n
n\times n
n×n的满秩矩阵,其单位特征向量为
v
1
,
v
2
,
.
.
.
.
.
.
v
n
v_1, v_2,......v_n
v1,v2,......vn,特征值为
λ
1
,
λ
2
,
.
.
.
.
.
.
λ
n
\lambda_1,\lambda_2,......\lambda_n
λ1,λ2,......λn。对任意向量
x
=
x
1
v
1
+
x
2
v
2
+
⋯
+
x
n
v
n
x=x_{1} v_{1}+x_{2} v_{2}+\cdots+x_{n} v_{n}
x=x1v1+x2v2+⋯+xnvn,有
A
x
=
A
(
x
1
⋅
ν
1
+
x
2
⋅
ν
2
+
…
+
x
n
⋅
ν
n
)
=
x
1
(
A
ν
1
)
+
x
2
(
A
ν
2
)
+
…
+
x
n
(
A
ν
n
)
=
x
1
(
λ
1
ν
1
)
+
x
2
(
λ
2
ν
2
)
+
…
+
x
n
(
λ
n
ν
n
)
\begin{aligned} A x &=A\left(x_{1} \cdot \nu_{1}+x_{2} \cdot \nu_{2}+\ldots+x_{n} \cdot \nu_{n}\right) \\ &=x_{1}\left(A \nu_{1}\right)+x_{2}\left(A \nu_{2}\right)+\ldots+x_{n}\left(A \nu_{n}\right) \\ &=x_{1}\left(\lambda_{1} \nu_{1}\right)+x_{2}\left(\lambda_{2} \nu_{2}\right)+\ldots+x_{n}\left(\lambda_{n} \nu_{n}\right) \end{aligned}
Ax=A(x1⋅ν1+x2⋅ν2+…+xn⋅νn)=x1(Aν1)+x2(Aν2)+…+xn(Aνn)=x1(λ1ν1)+x2(λ2ν2)+…+xn(λnνn)
经过
k
k
k次迭代
A
k
x
=
x
1
(
λ
1
k
ν
1
)
+
x
2
(
λ
2
k
ν
2
)
+
…
+
x
n
(
λ
n
k
ν
n
)
=
λ
1
k
[
x
1
ν
1
+
x
2
(
λ
2
λ
1
)
k
ν
2
+
…
+
x
n
(
λ
n
λ
1
)
k
ν
n
]
\begin{aligned} A^{k} x &=x_{1}\left(\lambda_{1}^{k} \nu_{1}\right)+x_{2}\left(\lambda_{2}^{k} \nu_{2}\right)+\ldots+x_{n}\left(\lambda_{n}^{k} \nu_{n}\right) \\[6mm] &=\lambda_{1}^{k}\left[x_{1} \nu_{1}+x_{2}\left(\frac{\lambda_{2}}{\lambda_{1}}\right)^{k} \nu_{2}+\ldots+x_{n}\left(\frac{\lambda_{n}}{\lambda_{1}}\right)^{k} \nu_{n}\right] \end{aligned}
Akx=x1(λ1kν1)+x2(λ2kν2)+…+xn(λnkνn)=λ1k[x1ν1+x2(λ1λ2)kν2+…+xn(λ1λn)kνn]
由于
λ
1
>
λ
2
>
…
>
λ
n
\lambda_{1}>\lambda_{2}>\ldots>\lambda_{n}
λ1>λ2>…>λn(不考虑两个特征值相等的情况,因为太少见了)。所以经过
k
k
k次迭代 后,
lim
k
→
+
∞
(
λ
i
/
λ
1
)
k
=
0
(
i
≠
1
)
\lim _{k \rightarrow+\infty}\left(\lambda_{i} / \lambda_{1}\right)^{k}=0(i \neq 1)
limk→+∞(λi/λ1)k=0(i=1) 。所以:
lim
k
→
+
∞
A
k
x
=
λ
1
k
x
1
ν
1
\lim _{k \rightarrow+\infty} A^{k} x=\lambda_{1}^{k} x_{1} \nu_{1}
k→+∞limAkx=λ1kx1ν1
也就是说,经过
k
k
k次迭代后,我们将得到矩阵主特征向量的线性放缩,只要把这个向量归一化,就得到了该矩阵的单位主特征向量,进而可以解出矩阵的主特征值。
7.2 特征值和特征向量的性质
- 只有方阵才有特征值和特征向量
- 方阵总有特征值,但不是所有方阵都有实数特征解
- 实方阵一定有实数特征解
- 不同特征值对应的特征向量是线性无关的
- 对于实对称矩阵或埃尔米特矩阵来说,不同特征值对应的特征向量必定正交(相互垂直)
7.3 特征向量空间
特征向量所在直线上的向量都是特征向量。 这样的直线可能不止一条。 我们称矩阵A所有特征向量对应的直线的集合为特征空间。
8 参考文献
[1]特征值和特征向量的通俗解释
[2]Python计算特征值与特征向量案例
[3]特征值和特征向量到底是个啥?能做什么用?
[4]如何理解矩阵特征值和特征向量?
[5]特征值和特征向量的理解 浅显易懂 肯定有收获
[6]对称矩阵 特征向量正交
[7]一文解释 矩阵特征分解