来源:人工智能大讲堂
本文约4500字,建议阅读10+分钟
特征值和特征向量可能是线性代数中最重要的概念之一。
谁能想到一个简单的方程 Av = λv 如此重要呢?从机器学习到量子计算,许多问题可以通过找到矩阵的特征值和特征向量来解决。在本文中,我们将解释它为什么如此重要以及如何应用它。我们还将深入探讨 Google PageRank,这是 Google 搜索引擎的核心部分,看看它与特征向量的关系。根据定义,标量 λ 和向量 v 是矩阵 A 的特征值和特征向量,如果...
从视觉上看,Av 与特征向量 v 沿着同一条直线。
Ax 通常不等于 λx。只有一些特殊的向量满足这个条件。下面是一些特征向量的例子。
如果特征值大于1,则相应的 Avᵢ 会扩大。如果特征值小于1,则会缩小。
应用
在深入了解细节之前,让我们先停下来欣赏这样一个抽象概念的美丽之处。具体而言,许多问题都可以用线性代数建模,并从特征值和特征向量中得出解决方案。
让我们先从一个抽象的例子开始,然后再进入一个真正的亿万美元点子——Google 的 PageRank。在许多系统中,我们可以用一个向量来表达其状态,其变化率与当前状态线性相关(例如,人口增长率与当前人口和 GDP 成正比)。一般的方程式为:
其中,u 由 n 个属性组成。那么让我们猜测一下满足上述方程的 u(t) 的解。由于指数函数的导数等于它本身,我们可以从一个 t 的指数函数开始猜测,并将其乘以一个向量 x。输出也将是一个向量,接下来我们将计算 x 和 λ 的值。
从上面的计算可以得知,如果 x 和 λ 是 A 的特征向量和特征值,那么我们的猜测将满足 du/dt = Au,即:
在我的系统中,问题可以通过特征值和特征向量来重新表述和解决。
接下来,让我们找到它的完整解。我们的一阶导数方程是一个线性函数。
对于线性函数,完整的解是特定解的线性组合。如果 u 和 v 是解,那么 C₁u + C₂v 也是解。根据我们之前的特征值为 λ = 4、-2 和 -2 的例子,完整的解将是:
如果一个系统将达到稳定状态,则所有特征值都必须为负数。否则,非负项将持续变化。在时间 t=0 时,我们可以测量初始状态 u(0),比如 [u₀₁, u₀₂, u₀₃]ᵀ,并解出常数 C₁、C₂ 和 C₃。
让我们用一个谐振子来说明这个想法。我们选择这个例子,因为谐振子及其近亲量子谐振子在研究粒子物理学、量子力学、弦理论或物理学等方面是基础的。让我们从著名的 F=ma 方程开始,利用特征值和特征向量来解决二阶导数。由于我们可以自由选择质量的单位,物理学家通常将 m=1 来简化讨论,即:
我们可以将谐振子问题改写成下面右下角的矩阵形式:
这与我们上一个例子具有相同的形式,因此,我们可以使用 A 的特征值和特征向量来形成完整的解。
这不是演示特征值的威力的唯一例子。自然似乎在制造设计时有一个特征向量的配方。著名的时间无关的薛定谔方程用特征值和特征向量表示。在量子力学中,所有观测到的性质都是由特征值建模的。还有许多其他的例子,包括机器学习。其中最大的特征向量之一是谷歌 PageRank,它是谷歌搜索的核心部分。
基本上,许多系统都可以建模为:
为了进行机器学习,让我们研究下面的时间序列模型。
首先,我们假设初始状态 u₀ 是 A 的特征向量。因此,它的未来状态可以计算为:
通过用一个易于计算的标量的幂次代替矩阵的幂次 (Aᵏ),可以简化这个方程。接下来,让我们将问题推广到包括任何初始状态。假设 A 有 n 个线性无关的特征向量,形成 Rⁿ 的一组基。我们可以将 Rⁿ 中的任何向量分解为这个基。同样,我们可以通过再次计算特征值的幂次来简化时间序列计算。
如果一个系统将达到稳定状态,我们应该期望 λᵢ 小于或等于 1。此外,为了计算这个稳定状态,我们可以忽略 λᵢᵏ 小于 1 的项。随着时间的推移,这些项会逐渐趋近于 0。因此,要找到一个稳定状态,我们只需要关注与 λᵢ = 1 相关的特征向量。
让我们讨论一个真正的亿万美元点子,以充分发挥其潜力。让我们简化我们的讨论,假设整个互联网只包含三个网页。矩阵 A 的元素 Aᵢⱼ 是当用户在页面 j 上时,用户访问页面 i 的概率。
对于一个特定的页面,如果我们对下一页的所有可能性进行求和,结果应该等于 1。也就是说,A 的所有列之和都为 1.0,这种矩阵称为随机矩阵、转移矩阵或马尔可夫矩阵。
马尔可夫矩阵具有一些重要的性质。Ax 或 Aᵏx 的结果总是与它的列之和为 1。右边的项是每次点击后分别在页面 1、2 和 3 上的概率。因此,显然它们应该加起来等于 1。
任何马尔可夫矩阵 A 都有一个特征值为 1,并且其他非 1 特征值的绝对值小于 1。这种行为非常重要。在我们的例子中,
对于一个马尔可夫矩阵,我们可以选择特征值为 λ=1 的特征向量,使其元素之和为 1.0。因此,向量 v0 可以使用 A 的特征向量分解,其中 c₁ 等于 1,如下所示:
由于 u₁、u₂、… 和 un 是特征向量,Aᵏ 可以被 λᵏ 替代。除了特征值 λ=1,马尔可夫矩阵的特征值的幂次 (λᵏ)将逐渐减小。因此,无论初始状态 v0 如何,系统都会达到接近特征向量 u₁ 的稳定状态。稳态将等于特征向量 u₁,如下所示。
从我们的例子中可以看出,我们落在页面 1、2 和 3 上的概率分别约为 0.41、0.34 和 0.44。这个概念有许多潜在的应用。例如,许多问题可以通过马尔可夫过程和马尔可夫/转移矩阵轻松建模。
谷歌 PageRank
当我说这是一个亿万美元的点子时,并不是夸张。以谷歌联合创始人拉里·佩奇为名的 PageRank 算法就是基于类似的概念。这是谷歌搜索排名算法中的第一个,尽管现在已经大量修改,添加了排名算法以改善用户体验和避免操纵。
核心思想可以概括如下。PageRank 输出了一个概率分布,表示在按下一个网页上的链接后,你可能会落在哪些页面上,经过多次点击后计算得出。这个概率将作为一个网页的排名。当许多页面链接到你的网页时,谷歌会将其排名提高,认为这是受欢迎度的一个良好指标。
在我们之前的例子中,我们没有讨论如何推导出马尔可夫矩阵中的值。对于 PageRank,我们计算值为与该页面链接的其他页面排名之和除以它的所有出站页面的数量。
在数学上,PageRank 试图解决以下方程中的 PageRank 向量 R(一个特征向量)。它在开始时使用相等的概率初始化 R,并迭代地执行计算,直到达到稳态。
上面的矩阵元素 lᵢⱼ 是从页面 j 到页面 i 的出站页面数与 j 的所有出站页面数之比。l 的每一列之和为 1,它是一个马尔可夫矩阵。如果我们忽略阻尼因子 d,这个方程与我们之前讨论的例子有很大的相似之处。引入这个因子是因为我们不希望随机游走永远进行下去。
对于谷歌,他们不直接计算特征向量。在我们之前的例子中,A 的幂迅速收敛,A³ 的列已经收敛到特征向量 u₁。
PageRank 论文证明,对于 3.22 亿个页面链接,解决方案在 52 次迭代中收敛到可接受的极限。因此,这个解决方案的规模出乎意料地好。
马尔可夫矩阵导致了下面的方程,稳态取决于一个主要成分。
在机器学习中,信息被缠结在原始数据中。智能基于提取一堆干草中信息的主要成分的能力。数学上,特征值和特征向量提供了一种识别它们的方法。特征向量识别组件,特征值量化其重要性。预览一下,下面的方程将 A 中的信息分解成组件。我们可以根据特征值的平方根对它们进行优先级排序,并忽略小 α 值的项。这减少了噪声,帮助我们提取 A 中的核心信息。(有关详细信息,请参见后面的文章。)
解决方案
希望你现在能看到 Ax = λx 的美。让我们看看如何解决它。特征值和特征向量可以通过求解 (A - λI) v = 0 来计算。为了得到 Ax = λx 的非零解,矩阵 (A - λI) 不能是可逆的。也就是说,它是奇异的。其行列式为零。det(A - λI) = 0 被称为特征多项式,特征值是这个多项式的根。
Example
特征值是:
应用 Av = λv,我们可以解出:
让我们用一个更复杂的例子详细说明这个过程:
为了找到特征值λ:
16 的可能因子是 1、2、4、8、16。
让我们通过行变换计算特征值 λ = 4 对应的特征向量。
我们有两个方程和三个变量。我们将 x₃ 任意设为 1,并计算出另外两个变量的值。因此,当 λ=4 时,特征向量为:
我们对 λ=-2 进行重复计算,得到:
对于有三个变量和一个方程的情况,我们的解法有两个自由度。我们可以在其中一个自由度上设定值为 1,而其他自由度为 0。也就是分别将 x₂=1,x₃=0 和 x₂=0,x₃=1 代入方程,计算相应的特征向量:
请注意,特征值和特征向量的解集并不唯一。我们可以对特征向量进行缩放,也可以在上述方程中设置不同的 x₂、x₃ 值。因此,选择满足特定条件的特征向量是可能且有益的。例如,对于对称矩阵,总是可以选择特征向量具有单位长度并且彼此正交。
在我们的例子中,我们有一个重复的特征值“-2”。它产生了两个不同的特征向量。然而,这并不总是成立——有些情况下,重复的特征值只有一个特征向量。
对角化:
假设矩阵 A 具有两个特征值和特征向量。
我们可以将它们拼接在一起,然后将方程重写为矩阵形式。
我们可以将其推广到任意数量的特征向量:
since
其中,V 拼接所有的特征向量,Λ(大写的 λ)是包含特征值的对角矩阵。
如果我们可以将一个方阵 A 转换为对角矩阵,如
即
一个 n×n 方阵是可对角化的,当且仅当它有 n 个线性无关的特征向量。如果一个矩阵是对称的,那么它一定是可对角化的。如果一个矩阵没有重复的特征值,它总是可以生成足够数量的线性无关的特征向量来对角化一个矩阵。如果它有重复的特征值,那么就无法保证我们有足够的特征向量可以对角化矩阵了。有些矩阵是不可对角化的。
特征分解:
如果 A 是一个具有 N 个线性无关特征向量(v₁, v₂, … & vn)和对应特征值(λ₁, λ₂, … & λn)的方阵,我们可以将其重新排列为:
into
例如,
然而,特征分解存在一些严重的限制。首先,A 需要是一个方阵。其次,V 可能无法求逆。作为预览,奇异值分解(SVD)解决了这两个问题,将一个矩阵分解为易于操作的正交矩阵。但对于像对称矩阵这样的矩阵,这并不是一个问题。对于可对角化的矩阵 A,它的幂可以很容易地计算。
这展示了将一个矩阵分解成易于操作的形式的威力。
回顾一下,对于可以表示为下面形式的状态,
Aᵏ 可以用特征值计算。
特征值和特征向量的性质:
Ax 与特征向量 x 处于同一条直线上(同一方向或相反方向)。
特征值之和等于矩阵的迹(对角线元素之和)。
特征值之积等于行列式。
以上两个条件作为特征值计算的良好检查。
如果没有重复的特征值,则所有特征向量都是线性无关的。这样的 n×n 矩阵将有 n 个特征值和 n 个线性无关的特征向量。
如果特征值重复,我们可能有或没有所有 n 个线性无关的特征向量来对角化方阵。
正特征值的数量等于主元的数量。对于 Ax = λx,
如果 A 是奇异矩阵,则它具有一个特征值为 0。可逆矩阵的所有特征值均非零。
特征值和特征向量可以是复数。
投影矩阵的特征值始终为 1 和 0。反射矩阵的特征值为 1 和 -1。
更多的想法:
特征值量化了沿特征向量线的信息的重要性。有了这些信息,我们就知道哪部分信息可以忽略,以及如何压缩信息(奇异值分解、降维和主成分分析)。它也帮助我们在开发机器学习模型时提取特征。有时,它使模型更容易训练,因为可以减少纠缠的信息。它还可以用于可视化复杂的原始数据。其他应用包括推荐系统或金融风险分析。例如,我们根据您的个人观看行为和其他人的观看行为推荐电影。我们还可以使用特征向量来理解数据之间的相关性,发展信息趋势,并聚类信息以找到共同因素,例如触发某种疾病的基因组合。所有这些都始于简单的方程式:
矩阵并不是平等创建的。了解机器学习中一些常见矩阵的特性非常重要。接下来,我们将详细了解它们。
编辑:黄继彦