1. 介绍
本文的主题是奇异值分解,它应该是标准数学本科课程的一部分,但往往被忽视。除了相当直观外,这些分解非常有用。例如,在线电影租赁公司Netflix目前为任何能够将其电影推荐系统的准确性提高10%的人提供100万美元的奖金。令人惊讶的是,这个看似简单的问题实际上相当具有挑战性,参与的团队现在正在使用相当复杂的技术。所有这些技术的核心都是奇异值分解。
奇异值分解提供了一种方便的方法来将一个矩阵分解为更简单、更有意义的部分,这个矩阵可能包含一些我们感兴趣的数据。在本文中,我们将对奇异值分解进行几何解释,并研究它们的一些应用。
2. 线性变化的几何意义
让我们先来看一些简单的矩阵,即两行两列的矩阵。第一个例子是对角矩阵
从几何上讲,我们可以把这样的矩阵看作是平面上的一个点(x,y),并通过矩阵乘法把它转换成另一个点:
这个变换的效果如下:平面在水平方向上拉伸了3倍,而垂直方向上没有变化。
对于
产生如下效果:
如何简单地描述转换的几何效果并不清楚。然而,让我们将网格旋转45度角,看看会发生什么。
我们现在看到,这个新网格的变换方式与原始网格通过对角矩阵变换的方式相同:网格在一个方向上拉伸了 3倍。
这是一种非常特殊的情况,因为矩阵 M 是对称的;也就是说,M(通过绕对角线翻转条目获得的矩阵)的转置等于 M。如果我们有一个对称的 2*2 矩阵,事实证明我们总是可以在域中旋转网格,使得矩阵通过拉伸并可能在两个方向上反射来起作用。换句话说,对称矩阵的行为类似于对角矩阵。
更精确地说,给定一个对称矩阵M,我们可以找到一组正交向量,使得是的标量倍数;那是
其中是标量。从几何角度来说,这意味着向量在乘以 M 时会被简单地拉伸和/或反射。由于这个属性,我们将向量称为M的特征向量;标量称为特征值。一个很容易验证的重要事实是,不同特征值对应的对称矩阵的特征向量是正交的。
如果我们使用对称矩阵的特征向量来对齐网格,则矩阵会以与特征向量相同的方式拉伸并反映网格。
我们对这种线性变换给出的几何描述很简单:网格只是在一个方向上拉伸。对于更一般的矩阵,我们会问是否可以找到一个变换为另一个正交网格的正交网格。让我们考虑使用不对称矩阵的最后一个示例:
该矩阵产生称为剪切的几何效应。
沿着水平轴很容易找到一族特征向量。然而,我们上图显示这些特征向量不能用于创建一个正交网格并转换为另一个正交网格。尽管如此,让我们看看当我们先将网格旋转30度时会发生什么。
请注意,右侧红色平行四边形在原点处形成的角度已增大。接下来让我们将网格旋转60度。
看起来右侧的网格现在几乎是正交的。事实上,通过将域中的网格旋转大约58.28度的角度,两个网格现在都是正交的。
3. 奇异值分解
这就是2 x 2 矩阵的奇异值分解的几何本质:对于任何2 x 2矩阵,我们可能会找到一个正交网格变换成另一个正交网格。
我们将使用向量来表达这一事实:通过适当选择正交单位向量和,向量和是正交的。
我们将使用和来表示和方向上的单位向量。 和的长度(用和表示)描述了网格在这些特定方向上拉伸的量。这些数字称为 M 的奇异值。(在本例中,奇异值是黄金比例及其倒数,但这在这里并不那么重要。)
得到
现在我们可以简单描述一下矩阵 M 如何处理一般向量 x。由于向量和是正交单位向量,因此我们有
这意味着
请记住,可以使用向量转置来计算点积
得到
这通常通过写作来表达
其中U是一个矩阵,其列为向量和,是一个对角矩阵,其条目为和,V是一个矩阵,其列为和。矩阵V上的上标T表示V的矩阵转置。
这展示了如何将矩阵M分解为三个矩阵的乘积:V描述域中的正交基,U描述共域中的正交基,Σ描述 V中的向量被拉伸多少以给出U中的向量
4. 如何找到奇异值分解?
奇异值分解的强大之处在于我们可以为任何矩阵找到它。我们该怎么做呢?让我们看一下前面的示例,并在域中添加单位圆。它的图像将是一个椭圆,其长轴和短轴定义了共域中的正交网格。
请注意,长轴和短轴由和定义。因此,这些向量是单位圆上所有向量图像中最长和最短的向量。
换句话说,函数 |Mx|单位圆上的最大值位于 v1,最小值位于 v2。这将问题简化为相当标准的微积分问题,我们希望在单位圆上优化函数。事实证明,该函数的临界点出现在矩阵 MTM 的特征向量处。由于该矩阵是对称的,因此不同特征值对应的特征向量将是正交的。这给出了向量 vi 族。
然后奇异值由给出,并且获得向量作为方向上的单位向量。但为什么向量是正交的呢?
为了解释这一点,我们假设和是不同的奇异值。我们有
让我们首先查看表达式并为方便起见假设奇异值非零。一方面,该表达式为零,因为向量(对称矩阵的特征向量)彼此正交:
另一方面,有
因此,和是正交的,因此我们找到了一组正交向量,并将其变换为另一个正交集。奇异值描述了不同方向上的拉伸量。
实际上,这不是用于查找矩阵奇异值分解的过程,因为它在数值上不是特别有效或表现良好。
5. 另一个例子
看这样一个奇异矩阵
该矩阵的几何效应如下:
在这种情况下,第二个奇异值为零,因此我们可以写:
换句话说,如果某些奇异值为零,则相应的项不会出现在M的分解中。这样,我们看到 M 的秩(即线性变换图像的维数)为等于非零奇异值的数量。
6. 数据压缩
奇异值分解可用于有效地表示数据。例如,假设我们希望传输以下图像,该图像由15×25个黑色或白色像素的阵列组成。
由于该图像中只有三种类型的列,如下所示,因此应该可以以更紧凑的形式表示数据。
我们将图像表示为 15 x 25 矩阵,其中每个条目要么是 0(代表黑色像素),要么是 1(代表白色)。因此,矩阵中有 375 个条目。
如果我们对M进行奇异值分解,我们发现只有三个非零奇异值。
σ1 = 14.72
σ2 = 5.22
σ3 = 3.31
因此,矩阵可以表示为
这意味着我们有三个向量,每个向量有15个条目,三个向量,每个向量有25个条目,以及三个奇异值。这意味着我们可以仅使用123个数字而不是矩阵中出现的375个数字来表示矩阵。通过这种方式,奇异值分解发现了矩阵中的冗余并提供了消除冗余的格式。
为什么只有三个非零奇异值?因为非零奇异值的数量等于矩阵的秩。在这种情况下,我们看到矩阵中有三个线性独立的列,这意味着秩将为3。
7. 降噪
前面的例子展示了我们如何利用许多奇异值为零的情况。通常来说,大的奇异值表明有趣的信息在哪里。例如,假设我们使用扫描仪将此图像输入到我们的计算机中。然而,我们的扫描仪在图像中引入了一些缺陷(通常称为“噪声”)。
我们可以以相同的方式进行:使用 15 x 25 矩阵表示数据并执行奇异值分解。我们发现以下奇异值:
σ1 = 14.15
σ2 = 4.67
σ3 = 3.00
σ4 = 0.21
σ5 = 0.19
...
σ15 = 0.05
显然,前三个奇异值是最重要的,因此我们假设其他奇异值是由于图像中的噪声造成的,并进行近似。
得到下图中的改进图片。
Noisy image | Improved image |
8. 数据分析
每当我们收集数据时,也会产生噪音:无论仪器有多好,测量结果总会存在一些误差。如果我们还记得大的奇异值指向矩阵中的重要特征这一主题,那么一旦收集到数据,使用奇异值分解来研究数据似乎很自然。
举个例子,假设我们收集一些数据,如下所示:
我们可以将数据放入矩阵中:
-1.03 | 0.74 | -0.02 | 0.51 | -1.31 | 0.99 | 0.69 | -0.12 | -0.72 | 1.11 |
-2.23 | 1.61 | -0.02 | 0.88 | -2.39 | 2.02 | 1.62 | -0.35 | -1.67 | 2.46 |
并进行奇异值分解。我们找到奇异值
σ1 = 6.04
σ2 = 0.22
由于一个奇异值比另一个大得多,因此可以安全地假设的小值是由于数据中的噪声造成的,并且该奇异值理想情况下为零。在这种情况下,矩阵的排名为一,这意味着所有数据都位于定义的线上。
这个简短的示例指出了主成分分析领域的开端,这是一组使用奇异值来检测数据中的依赖性和冗余性的技术。
以类似的方式,奇异值分解可用于检测数据中的分组,这解释了为什么奇异值分解被用于尝试改进 Netflix 的电影推荐系统。您观看过的电影的评级允许程序将您分为与您评级相似的其他组。可以通过选择小组中其他人评价较高的
9. 总结
正如本文开头所提到的,奇异值分解应该是本科数学专业线性代数课程的核心部分。除了有一个相当简单的几何解释外,奇异值分解还提供了将线性代数思想应用于实践的极其有效的技术。然而,在本科线性代数课程中似乎经常缺少适当的处理。 本文有点印象主义:我的目标是提供一些对奇异值分解背后中心思想的直观见解,然后说明如何充分利用这一思想。更严谨的解释可能很容易找到。