研究奇异值分解的动机和其应用确实是两个不同的问题。估计大家对奇异值分解的应用更感兴趣一点,这个问题不会有多少人关注。不过这是个好问题,值得认真回答一下。
人们研究矩阵分解有两类动机。一类是为了求解线性方程组
这类矩阵分解有LU分解(高斯消去法),Cholesky分解,QR分解(Gram-Schmidt正交化过程)等等,本质上是为了更方便更稳定的求解矩阵A的逆
另外一类是为了研究双线性形式(bilinear form)
其中 , 和 是两个向量空间, 是一个数域。这类矩阵分解有Jordan分解,Schur三角分解,特征值分解,奇异值分解等等。研究双线性形式的目的之一是为了寻找标准型(canonical form)。我们分别从 和 中找到一组标准正交基 和 ,那么任意向量 和 就可以用基下的坐标来表示:
那么
令 。如果我们能找到一组 和 ,使得 尽可能结构简单(对角矩阵,上三角矩阵,块对角矩阵),那么我们就可以称 为标准型。奇异值分解,就可以从研究双线性形式的极值问题中得到。
记上述等式约束的极大值优化问题为(1)式。我们写出它的KKT条件:
记上式为(2)。则我们可以得到最大值为
同理
所以 。
联立(2)式中的两个等式为线性方程组形式
记上式为(3)。我们需要找(3)的非零解,这说明系数矩阵必然奇异,也就是说其行列式为0
记上式多项式为(4)。假设 是多项式的一个根,则我们可以带入(3)式中,找到一组解
现在把 和 这两个单位向量分别扩充成向量空间 和 的一组标准正交基(用Gram-Schmidt正交化过程就可以实现):
那么向量空间 和 中任意的向量都可以用 和 下的坐标分别表示:
并且双线性形式和(2)式也可以相应表示成
记上式为(5)。我们想知道新双线性形式中 的结构。注意到
把 , 和 带入(5)式中可以得到
这说明 的第一行和第一列只有第(1,1)个元素是非零元
因此
对矩阵 不断重复上面这个过程,最终可以得到一个对角矩阵 ,使得 。
上述这个推导过程是由Camille Jordan提出的(我稍微修改了部分),他和Eugenio Beltrami各自独立的对奇异值分解作出开创性的研究工作。除了这两位数学家之外,Sylvester,Schmidt和Weyl也各自对奇异值分解进行研究。后两位数学家是从积分方程的角度研究,奇异值这个词实际上是从积分中得名的。Sylvester最早是把奇异值称为标准乘子(canonical multipliers),也就是标准型上的对角元素。其他的推导方式参考最后文献。
数学家为什么会对标准型的研究如此热衷呢?原因之一我们对数学结构中的不变量很感兴趣,而标准型则是在保持不变量的前提下,将形式化归为最简。如果我们能得知一个矩阵 的奇异值分解,那么 和 的核空间(null space)和像空间(range space)都可以非常容易被表示出来,给关于矩阵的理论分析带来极大的便利。并且,在实际数值计算上,存在高效稳定的算法,用来进行奇异值分解。这一点要归功于数学家Gene Golub在40多年前的伟大工作。
参考文献:G. W. Stewart, On the Early History of the Singular Value Decomposition,SIAM Rev., 35(4), 551–566.
这篇回答节选自我在专栏《机器学习中的数学:线性代数》中的一篇文章,我们一起来谈谈奇异值分解的来龙去脉。
欢迎关注我的知乎账号 @石溪 ,将持续发布机器学习数学基础及算法应用等方面的精彩内容。
在介绍奇异值分解(SVD)之前,我们先回顾一下特征值分解的几何意义。
1.1.分解过程回顾
我们最开始获得的是一组原始的 数据样本矩阵 ,其中, 表示特征的个数, 表示样本的个数。通过与自身转置相乘: 得到了样本特征的 阶协方差矩阵 ,通过求取协方差矩阵 的一组标准正交特征向量 以及对应的特征值 。
我们这里处理的就是协方差矩阵 ,对 进行特征值分解,将矩阵分解成了 。
最终,我们选取前 个特征向量构成数据压缩矩阵 的各行,通过 达到数据压缩的目的。
1.2.几何意义剖析
以上是回顾之前的内容,不难发现,为了完成矩阵的特征值分解,最最关键还是要回归到这个基本性质上来: 。
我们为什么又提这个呢?结合主成分分析的推导过程我们知道,协方差矩阵 之所以能够分解,是因为在原始空间 中,我们原本默认是用 这组默认基向量来表示我们空间中的任意一个向量 ,如果我们采用基变换,将 用 这组标准正交基来表示后, 的乘法运算就变得很简单了,只需要在各个基向量的方向上对应伸长 倍即可,如图1所示:
实际上,我们之前也重点分析过,因为协方差矩阵具备对称性、正定性,保证了他可以被对角化,并且特征值一定为正,从而使得特征值分解的过程一定能够顺利完成。
因此利用特征值分解进行主成分分析,核心就是获取协方差矩阵,然后对其进行矩阵分解,获得一组特征值和其对应的方向。
但是,如果我们不进行协方差矩阵 的求取,绕开它直接对原始的数据采样矩阵 进行矩阵分解,从而进行降维操作,行不行?
如果继续沿用上面的办法,显然是不行的,特征值分解对矩阵的要求很严,首先得是一个方阵,其次在方阵的基础上,还得满足可对角化的要求。但是原始的 数据采样矩阵 连方阵这个最基本的条件都不满足,是根本无法进行特征值分解的。
找不到类似 的核心等式了,岂不是无能为力了?怎料,天无绝人之路,这里,我首先给大家介绍一个对于任意 矩阵的更具普遍意义的一般性质:
对于一个 ,秩为$r$的矩阵 ,这里我们暂且假设 ,于是就有 的不等关系。我们在 空间中一定可以找到一组标准正交向量 ,在 空间中一定可以找到另一组标准正交向量 ,使之满足 组相等关系: ,其中( 取 ~ )。
,这个等式非常神奇,我们仔细的揭开里面的迷雾,展现他的精彩之处:
矩阵 是一个 的矩阵,他所表示的线性变换是将 维原空间中的向量映射到更高维的 维目标空间中,而 这个等式意味着,在原空间中找到一组新的标准正交向量 ,在目标空间中存在着对应的一组标准正交向量 ,此时 与 线性无关。当矩阵 作用在原空间上的某个基向量 上时,其线性变换的结果就是:对应在目标空间中的 向量沿着自身方向伸长 倍,并且任意一对 向量都满足这种关系(显然特征值分解是这里的一种特殊情况,即两组标准正交基向量相等)。如图2所示:
在 的基础上,我们明白该如何往下走了:
,转换成:
。
关注 @石溪 知乎账号,分享更多机器学习数学基础精彩内容。
此时感觉还差一点,因为我们发现 并没有包含在式子里,我们把他们加进去,把 加到矩阵右侧,形成完整的 阶方阵 ,在对角矩阵下方加上 个全零行,形成 的矩阵 ,很明显由于 矩阵最下面的 行全零,因此右侧的计算结果不变,等式依然成立。
此时就有: ,由于 的各列是标准正交向量,因此 ,移到等式右侧,得到了一个矩阵分解的式子:
,其中 和 是由标准正交向量构成的 阶和 阶方阵,而 是一个 的对角矩阵(注意,不是方阵)。
从大的框架宏观来看,这个结论非常漂亮,在原空间和目标空间中各找一组标准正交基,就轻轻松松的把对角化的一系列要求轻松化解。直接得到了数据采样矩阵 的矩阵分解形式。
但是此时还有一个最关键的地方似乎没有明确:就是方阵 和方阵 该如何取得,以及 矩阵中的各个值应该为多少,我们借助在对称矩阵那一节中储备的基础知识来一一化解。
我们还是从 式子入手。首先,获取转置矩阵 ,我们在此基础上可以获取两个对称矩阵:
第一个对称矩阵是: ,由于 的各列是标准正交向量,因此 ,式子最终化简为了: 。
同理,第二个对称矩阵: 。
这里我们结合对称矩阵那一节中的一个重要结论,揭示一下这里面的所有细节: 是 阶对称方阵, 是 阶对称方阵。他们的秩相等,为 。因此他们拥有完全相同的 个非零特征值,从大到小排列为: ,两个对称矩阵的剩余 个和 个特征值为 。这进一步也印证了 和 对角线上的非零特征值是完全一样的。
同时,由对称矩阵的性质可知: 一定含有 个标准正交特征向量,对应特征值从大到小的顺序排列为: ,而 也一定含有 个标准正交特征向量,对应特征值从大到小依次排列为 。这里的 和 一一对应。
对应的 矩阵也很好求,求出 或 的非零特征值,从大到小排列为: , 矩阵中对角线上的非零值 则依次为: 。因此, 矩阵对角线上 以后的元素均为 了。
整个推导分析过程结束,我们隐去零特征值,最终得到了最完美的SVD分解结果:
,这里 。
我们用一个抽象图来示意一下分解的结果,有助于大家加深印象,如图3所示:
由此,我们顺利的得到了任意 矩阵 的SVD分解形式。
当然还有《机器学习中的数学-全集》系列专栏,欢迎大家阅读,配合食用,效果更佳~
有订阅的问题可咨询微信:zhangyumeng0422