万能的 SVD 分解是哪位牛人提出来的?
奇异值分解(SVD)在机器学习、信号处理、统计学以及金融等领域中具有广泛应用。
但你有没有想过它是怎么来的呢?我猜十有八九没看到过吧,没关系,本文很快就告诉你。
在 1870 年代由意大利数学家贝尔特拉米(Beltrami)和法国数学家若尔当(Jordan)引入。英国数学家西尔维斯特(Sylvester)于 1889 年独立于贝尔特拉米和若尔当提出了对矩阵进行了奇异值分解。
在刚提出的那个时候,都是针对实数方阵而言的。1902 年,由 Autonne 引入了复数矩阵,并在 1939 年由 Eckhart 和 Young 引入了一般矩阵(即实数/复数和方阵/非方阵)。
而本文主要看一看在早期提出 SVD 的时候,有哪些数学家分别做了什么工作。目的是加深对 SVD 的了解,以便能更好地应用这个线代中的强大工具。
1引言
矩阵理论中最重要的思想之一就是矩阵分解。矩阵分解的理论实用性早已受到数学家们的肯定。而随着计算机的发明,它们逐渐成为数值线性代数的支柱,它们已经成为可以解决各种问题的计算平台。
而矩阵分解的发展离不开所谓的规范型。为了理清这一发展思路,让我们从简要介绍相关的历史背景开始。
大多数经典的矩阵分解方法的提出时间是要早于矩阵概念得到广泛使用的年代。矩阵分解法是随着行列式、线性方程组,尤其是双线性形式和二次型等问题的研究而提出来的。
高斯可以说是做了一些早期工作。他在 1823 年撰写的论文中使用他早在 1801 年就使用的消元法来实现如下任务,
具体而言,可以将函数
其中,除数
从中我们可以看到高斯这里的方法将二次型
高斯这里的
另外,高斯通过消元法还能有效地获得矩阵的逆,从而将方程组
随后,针对不同的问题出现了一系列进展,
1829 年,柯西(Cauchy)通过考虑二次型和相应的齐次方程组,建立了对称矩阵的特征值和特征向量的特性。 1846 年,雅可比(Jacobi)给出了著名的对称矩阵对角化算法,在 1857 年的遗作中,他通过以高斯形式分解双线性形式获得了 LU 分解。 1868 年,魏尔斯特拉斯(Weierstrass)为一对双线性函数建立了规范型,该问题现在被称为广义特征值问题。因此,从一定角度看来,1873 年提出的奇异值分解被视为规范型上取得的众多成果之一。
2预备知识
双线性形式
向量空间
坐标表示
令
由
同一个双线性形式在不同的基上对应不同的矩阵。但是,一个双线性形式在不同的基上的矩阵相互之间是合同的。换句话说,假设
其中
3三位作者的独立工作
1、 问题
我们将使用现代矩阵符号来描述有关奇异值分解的早期工作。与高斯对其分解的描述一样,大多数内容都很容易转化为使用矩阵术语。
你要知道的是,使用现代矩阵记法可能会让你觉得他们的成就貌似微不足道。但是完全以原始的标量形式来表示的话,对于现代的读者来说会不习惯。这里,为了便以阅读,我们将几位作者的标记符号等统一起来。
在本文中,我们将针对如下所示的奇异值分解问题,
其中
是对角矩阵,其对角线元素非负,并且按从大到下排列。而矩阵
都是正交矩阵。后面用到的函数
要知道,三位作者的论文在内容上比这里提到的精华要丰富得多,如果想看作者们详尽的论述,建议读者参考原始论文资料。
2、Beltrami,1873 年
Beltrami 和 Jordan 被认为是奇异值分解的共同开创者,Beltrami 第一个发表相关论文,而 Jordan 稍晚一点发表,但后者的贡献在于问题处理的完整性和优雅性。Beltrami 的贡献发表在意大利大学学生使用的数学杂志上,其目的是鼓励学生熟悉双线性形式。
推导
Beltrami 从如下双线性形式开始,
其中,
则有,
其中,
Beltrami 观察到,如果要求
假设
然后从式
同样的有,
从式
类似地,我们可以得到,
因此,
和
请注意,Beltrami 这里的推导假设
Beltrami 现在认为两个函数
Beltrami 接下来声明,根据一个众所周知的定理,式
这里需要用到两个等式,由式
Beltrami 给出如下对角化的算法步骤,
1、计算式 的根。 2、从式 确定出 。Beltrami 在此处指出, 的列是可以决定的,只差一个 因子,但实际上这是在所有 不相同时才成立。他还默认生成的 是正交的,这也要求 是不同的。 3、根据式 得出 ,这步要求 非奇异。
讨论
从前面的内容可以明显看出,Beltrami 对于一个非奇异的、具有不同奇异值的实方阵推导出了奇异值分解。他的推导有一个小缺陷就是缺少了对于退化情况的处理。Beltrami 省略了这些额外情况,可能是在为他的学生简化过程,但也有可能他确实没有考虑到这些问题。
3、Jordan,1874 年
Jordan 可以称为奇异值分解的共同提出者。尽管他在 Beltrami 出版一年后才发表他的著作,但很显然,他的这项工作是由不同问题导出的独立工作。
推导
Jordan 从如下双线性形式开始,
并计算
最大值由如下公式确定
而该式对于满足下式的所有
Jordan 然后断言: 方程
以及
从式
同样地,最大值也为
上面是 Jordan 的推导,但感觉到有些地方或许并不是很清晰。
为了大家更好地理解,本文改用拉格朗日乘子法。先构造如下拉格朗日函数,
为了下文方便,上式两个乘子分别除以 2。
上面最后的式子两边左乘
可见,目标双线性形式的最大值为
上面最后的式子两边右乘
同样地,最大值也为
接下来看由式
若尔当观察到,
要有非零解,该行列式必须为零。他显示该行列式仅包含
令
是正交的,并令
通过这样的代换,得
当
这意味着
于是,令
其中
最后,Jordan 指出,当特征方程
讨论
Jordan 以简洁、优雅的手法来处理该问题。在数学上可以称为 deflation。他先解决一部分问题,从而成功将问题的规模缩小,以至于用归纳法解决整个问题,也避免了 Beltrami 方法中的的退化问题。
顺便说一句,舒尔(Schur)后来使用同样的策略建立了对一般矩阵的三角化。
另外,形成行列式
也得到了广泛使用。
4、Sylvester,1889 年
Sylvester 就奇异值分解的主题写了一个 Note 和两篇论文。Sylvester 在一篇论文中提出了一种将二次型简化为标准型的迭代算法,他指出,类似的迭代方法可以用于对角化双线性形式。在 1889 年的一篇论文中,Sylvester 提出了迭代算法和具体法则。
法则
Sylvester 从如下双线性形式开始
并考虑二次型
令
为了找到代换,Sylvester 引入矩阵
无穷小迭代
Sylvester 提出此方法是为了对角化二次型,后来他将其推广到双线性形式。对于二次型,它已经足够复杂,这里将限于这种情况。
Sylvester 使用归纳法,即先假定已经解决阶为
左上角蓝色的
Sylvester 建议进行以下形式的所谓无穷小
正交变换
其中矩阵非对角线的元素非常小,因此比 1 次高的幂次项可以忽略。然后,转换矩阵
中第
而
如果
Sylvester 现在声称,这些无穷小转换的无穷序列将使
讨论
Sylvester 在当时并不了解上面 Jordan 在 1874 年的工作以及雅可比(Jacobi)在 1846 年提出的针对二次型对角化问题的迭代算法(该算法在 1954 年被 Kogbetliantz 推广到了奇异值分解)。Sylvester 在没有证明的情况下将其描述出来,从而给读者留下了太多细节。
4小结
由前文我们知道,数学家从二次型的研究导出了矩阵特征值问题以及特征值分解。而从本文可以知道,从双线性形式的规范型问题导出了矩阵的奇异值分解这一强大的理论和应用工具。
本文主要就早期提出奇异值分解的几位数学家的工作做了简单介绍,目的是对它有更多的了解。但我们学习这一理论的主要目的还是在于应用,这也是这个主题接下来的重点,敬请关注这个系列。