



机器学习和数据科学的核心在于从大量高维数据中发现模式。输入是高维空间中的特征向量(在2.1节中介绍)。每个特征向量可以被视为输入实例的特征空间描述符中的一个点。有时我们会转换这些特征向量,将特征点映射到一个更友好的空间,通过降低维度来简化数据。这是通过消除数据中变化很小的方向轴来实现的。对于机器学习工程师和数据科学家而言,特征值和特征向量是用来实现此目的所使用的宝贵工具。在第4章中,我们将研究如何使用这些工具来简化大量多维的数据并发现其中广泛的模式。
让我们先来非正式地了解一下特征向量。它们具有方阵的属性。如前所述,矩阵可以被视作将一个空间中的向量(点)映射到同一空间或不同空间中的其他向量(点)的线性变换。但是,对于典型的线性变换,空间中会有一些点几乎不受影响。这些点被称为特征向量。它们是变换的重要物理特性。来看一个简单的例子,假设我们正在绕 Z 轴(见图2.13)旋转三维空间中的点。位于 Z 轴上的点即使经过旋转也会保持原位。一般来说,旋转轴上的点(在本例中是 Z 轴)在旋转后不会发生变化。因此,旋转轴是旋转变换的特征向量。
扩展这一概念,当使用矩阵
A
对向量
x
进行变换时,是否存在一些向量,至少在方向上保持不变?答案是肯定的。这些向量被称为特征向量,即在经过矩阵
A
的线性变换后,方向保持不变。确切地说,如果
e
是方阵
A
的一个特征向量
,则在变换后,其方向保持不变。
图2.13 在旋转过程中,旋转轴上的点位置不变
Ae =λ e
因此线性变换(乘以矩阵 A )改变了 e 的长度,但没有改变其方向,所以 λ e 与 e 平行。
那么,我们该如何求解 λ 和 e ?参考以下推导过程,
Ae =λ e
⇔ Ae - λ e = 0
⇔ ( A - λ I ) e = 0
其中 I 表示单位矩阵。
显然,我们只对非平凡解感兴趣,即 e ≠ 0 。在这种情况下, A - λ I 不能是可逆的,否则,我们将得到矛盾的解 e =( A - λ I ) -1 0 = 0 。因此,( A - λ I )不可逆,这意味着其行列式为0,即
det ( A - λ I )= 0
对于一个 n × n 的矩阵 A ,这会产生一个关于未知数 λ 的 n 次多项式方程,该方程有 n 个解。因此,一个 n × n 的矩阵有 n 个特征值,但这些特征值并不一定都是不同的。
让我们计算一个3×3矩阵的特征值和特征向量。该矩阵是我们精心挑选的,很快你就会明白原因。但现在,可以把它当作一个任意矩阵:
计算矩阵 A 的特征值和特征向量:
因此
这里,
。如有必要,建议读者复习一下高中代数中虚数和复数的知识。
因此,我们得到了(正如预期)三个特征值:1、
和
。每一个都将产生一个特征向量。以特征值1为例,其对应的特征向量为:
因此,
是矩阵
A
对应于特征值1的特征向量。同理,对于任意实数
k
,其特征向量为
。事实上,如果
λ
,
e
是矩阵
A
的特征值-特征向量对,则有
Ae =λ e ⇔ A (k e )=λ(k e )
也就是说, λ ,( k e )也是 A 的一个特征值-特征向量对。换句话说,我们只能确定特征向量至一个固定的比例因子。因此,在不失一般性的情况下,我们取具有单位长度( e T e =1)的特征向量。
对于我们的示例矩阵,其特征向量恰好是 Z 轴。这并非偶然。实际上,矩阵 A 是一个绕 Z 轴的旋转矩阵。因此,旋转矩阵总是有一个特征值为1,其对应的特征向量即为旋转轴。在三维空间中,其他两个特征值将是复数,用于产生旋转角度,该部分内容将在2.14节中进行详细说明。
矩阵的不同特征值对应的特征向量是线性无关的。让我们通过证明这一点来加深对其的理解。设 λ 1 , e 1 和 λ 2 , e 2 是矩阵的特征值-特征向量对,其中 λ 1 ≠ λ 2 ,因此
Ae 1 =λ 1 e 1
Ae 2 =λ 2 e 2
假设存在两个常数 α 1 和 α 2 ,使得
即假设这两个特征向量是线性相关的,我们将证明该假设不成立。
将式(2.24)乘以 A ,得到
α 1 Ae 1 +α 2 Ae 2 = 0
⇔ α 1 λ 1 e 1 +α 2 λ 2 e 2 = 0
同样,我们可以将式(2.24)乘以 λ 2 ,得到
α 1 λ 1 e 1 +α 2 λ 2 e 2 = 0
α 1 λ 2 e 1 +α 2 λ 2 e 2 = 0
将两个等式相减,得到
α 1 (λ 1 - λ 2 ) e 1 = 0
根据假设, α 1 ≠0, λ 1 ≠ λ 2 ,并且 e 1 不全为零。因此,它们的乘积不可能为零。因此,我们最初的假设(即两个特征向量是线性相关的)不成立。
对称矩阵的不同特征值对应的特征向量是互相正交的。让我们通过数学证明来加深对这一概念的理解。如果 A T = A ,则 A 是对称矩阵。如果 λ 1 , e 1 和 λ 2 , e 2 是对称矩阵 A 的特征值-特征向量对,则有
对式(2.25)进行转置,得到
方程两侧同时右乘 e 2 后,得到
其中,最后一个等式的推导依据是矩阵的对称性。同样,对式(2.26)左乘
,得到
因此
将两个等式相减,得到
由于
λ
1
≠
λ
2
,则
,这意味着两个特征向量是正交的。因此,如果
A
是一个具有特征向量
e
1
,
e
2
,…,
e
n
的
n
×
n
对称矩阵,那么对于所有满足
λ
i
≠
λ
j
的
i
,
j
,都有
。
注 :本小节的完整代码可以从http://mng.bz/1rEZ获取,并且可以使用Jupyter Notebook执行。代码清单2.13展示了用于计算特征值和特征向量的PyTorch代码。
代码清单2.13 特征值及其对应的特征向量