特征值的理解
其实刚上大学的时候上的线性代数课上,也只是简单讲解了特征值和特征向量是怎么求的。但是并不知道特征值和特征向量有什么含义,能做什么,也就是我为什么要求它们。
这几天抽空查了很多的资料,在这里记录一下学习心得吧!
特征值 、特征向量、方阵的关系
我们都知道,它们三者满足如下的关系
A
∗
X
=
λ
∗
X
A* X=\lambda*X
A∗X=λ∗X
其中,A是方正,一般是已知的。 X是特征向量,
λ
\lambda
λ是特征值,这两个是捆绑存在的,待定的。
从整个式子上看,可以简单的理解:X特征向量在经过 转换矩阵A的转化后,在另一个空间维度和方向不变,只是被拉伸或缩短了。
几何意义
说明下,矩阵和向量线性变换总是在不同的基对之间变化的。所以下面我会申明一下基是什么。
- 从V不动,A不断变化的角度看:
在 i ⃗ \vec{i} i, j ⃗ \vec{j} j 向量为基的坐标系中,存在一个 向量 v ⃗ \vec{v} v,
- 先用转化矩阵对 向量进行位移, A 1 ∗ v ⃗ A_1*\vec{v} A1∗v如下,没有发现和 v ⃗ \vec{v} v 有什么特殊的关系。
- 变化矩阵A,不断调整
A
∗
v
⃗
A*\vec{v}
A∗v的位置,可以发现出现如下情况。
3. A 2 ∗ v ⃗ A_2*\vec{v} A2∗v与 v ⃗ \vec{v} v重合了。可以观察到, v ⃗ \vec{v} v是 A 2 A_2 A2的特征向量, A 2 ∗ v ⃗ A_2*\vec{v} A2∗v的长度是 v ⃗ \vec{v} v的 λ \lambda λ倍
- 从A不变,V不断变化的角度看
依旧是在
i
⃗
、
j
⃗
\vec{i}、\vec{j}
i、j的坐标系下,存在一个
v
⃗
\vec{v}
v,给v左乘一个矩阵
A
A
A,位置关系如下,也没什么特殊的
调整了一下KaTeX parse error: Expected '}', got 'EOF' at end of input: \vec{v]的方向,图像渐渐特殊了:
可以观察到,
v
⃗
\vec{v}
v是
A
∗
v
⃗
A*\vec{v}
A∗v重合了。此时我们称
v
⃗
\vec{v}
v是
A
A
A的特征向量,
A
∗
v
⃗
A*\vec{v}
A∗v的长度是
v
⃗
\vec{v}
v的
λ
\lambda
λ倍
其实,向量v就是一个方向,表示在这个方向上,矩阵A(运动)相对稳定,因为方向不变化。
而在这个方向上的所有特征都是特征向量。
这也就说明了,为什么 λ \lambda λ和v是一对的,因为 有了长度和方向,这个向量的也就确定了,即特征向量就是固定的了。
物理意义
一般来说,矩阵我们可以看成是一种运动,而向量可以看作是平面上的一个方向。而在这里,特征值和特征向量就像是 运动 的速度和 方向。
- 特征值就是运动的速度
- 特征向量就是运动的方向
既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(即矩阵)的特征。而运动是不能直接观察的,例如走路,我们只会人在走,猪在走,熊再走… 只有了载体我们才会说这个动作。
上面说的运动太抽象了,我来举一个具体点的例子:烧水。
- 烧一壶斐波那契的水
如果我要烧一壶水,且水得温度假设 按照斐波那契数列增加,那么就有 下一秒的水温度 T t + ! T_{t+!} Tt+!,当前水温 T T T,前一秒水温 T t − 1 T_t{-1} Tt−1的关系为:
T t + 1 = T t + T t − 1 T_{t+1}=T_t+T_{t-1} Tt+1=Tt+Tt−1
因为每次计算,我都需要连续两个时间片的温度,因此可以用矩阵表示为
[ T t + 1 T t ] = [ 1 1 1 0 ] [ T t T t − 1 ] \begin{bmatrix} T_{t+1}\\ T_t \end{bmatrix} = \begin{bmatrix} 1&1\\ 1&0 \end{bmatrix} \begin{bmatrix} T_t\\ T_{t-1} \end{bmatrix} [Tt+1Tt]=[1110][TtTt−1]
其中,烧水这个动作我们抽象为 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\ 1&0\end{bmatrix} A=[1110],反复这个运动就可以把水烧开。根据斐波那契数列, T 1 = 1 , T 2 = 1 T_1=1,T_2=1 T1=1,T2=1开始,通过之前的相互调整阐述,可以得到如下结果:
实际上,这壶水会沿着 A A A 的特征值最大的特征向量方向飞快增长,在理想情况下,温度会不断突破,甚至上百亿度。这时,我们就说 这个矩阵是不稳定。
拉格朗日发现,原来特征向量就是方向
我们知道了特征向量和特征值的含以后,会想为什么会这样??
特征分解
从某种层面来看,特征就是“不变”。不管v怎么变,都满足这样一个式子
A
∗
X
=
λ
∗
X
A* X=\lambda*X
A∗X=λ∗X
共线。
一般来说,一个向量在某个矩阵的作用下,其空间变换体现为 长度和 方向 的变化,即旋转和、平移和拉伸,有些情况下,向量的维度都会发生变化。而 这里的特殊指出在于,矩阵作用与它的特征向量,只是导致它的长度发生变化。
对于方阵而言,它的维度不会变化,所以矩阵作用到特征向量上的运动实际上只有两种:
- 拉伸
- 旋转
特征值也就是对特征向量 进行伸缩和旋转程度的度量。 如果 λ \lambda λ是
- 实数R那么特征向量就只进行了 伸缩
- 虚数那么特征向量就只进行了 旋转
- 复数C那么特征向量就只进行了 伸缩和旋转
- 推荐教材 《linear algebra and its application》
其实矩阵的分解,就用有一个现成的知识点:对角化
A
=
P
Λ
P
−
1
A=P\Lambda P^{-1}
A=PΛP−1
其中
Λ
\Lambda
Λ是对角阵,由特征值组成。
P
−
1
P^{-1}
P−1的列向量是单位化的特征向量
我们再回头看下刚才的特征值分解,实际上把运动给分解开了:
我们来看几何上做了什么:观察基的变化。
初始时
左乘
P
=
[
−
2
2
2
2
2
2
2
2
]
P=\begin{bmatrix} -\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix}
P=[−22222222]
继续左乘
Λ
=
[
3
0
0
1
]
\Lambda =\begin{bmatrix} 3&0\\ 0&1\end{bmatrix}
Λ=[3001]
相当于,之前的旋转是指明了拉伸的方向,所以我们理解了:特征值就是拉伸的大小,特征向量指明了拉伸的方向
之前说的运动,特征值就是运动的速度,而特征向量就是运动的方向,而其余方向的运动就由 特征向量方向的运动合成。所以最大的特征值 对于的特征向量指明了运动速度的最大方向。
最后左乘 P − 1 = [ − 2 2 2 2 2 2 2 2 ] P^{-1}=\begin{bmatrix} -\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} P−1=[−22222222]
特征值和特征向量的含义的应用
从线性空间的角度上看,在一个定义了内积的线性空间里,对一个N阶对称的方阵进行 特征分解,就是产生了该空间 的N个标准正交基,然后把矩阵投影在N个基上。
N个特征向量就是N个正交基,而特征值的绝对值 则是代表矩阵在每个基上的投影长度
一般而言,特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。
应用到 最优化中,意思就是 R的二次型。 自变量在这个方向上变化的时候,对函数值的影响最大,也就是在该方向上的导数最大。
应用到数据挖掘中,意思就是最大的特征值 对应的特征向量的方向上包含的信息量度,而特征值小的对应的特征向量方向上的信息很小,可以删除,从而达到降维的目的。也就是保留特征值大的方向对于的数据。
可以查看我的另一篇:数据降维的一个栗子:葡萄酒分类
补充一点
准确地来说,所有的方阵都有特征值和特征向量。
矩阵特征值的求法是写出特征方程lλE-Al=0
左边解出含有λ的特征多项式,比如说是含有λ的2次多项式,我们学过,是可能没有实数解的,(Δ<0)
这个时候我们说这个矩阵没有【实特征值】
但是如果考虑比如Δ<0时,有虚数的解,,也就是有虚数的特征值的
这样说来就必有特征值啦!