奇异值分解(一)

      奇异值分解(Singular Value Decomposition,简称SVD)是机器学习领域应用最广泛的算法。被广泛应用在降维算法、推荐系统以及自然语言处理等领域。

1、SVD的发展历史

Beltrami(1835-1899)和Jordan(1838-1921)被公认是奇异值分解的创始人。

1873年Beltrami提出了实正方矩阵的奇异值分解:

1874年Jordan发表了对奇异值分解的独立推导;

1902年Autonne将奇异值分解推广到复正方矩阵;

1939年Eckart与Young将奇异值分解推广到了一般复长方形矩阵。

所以又将任意复长方矩阵的奇异值分解又称为Autonee-Eckart-Young定理。

2、奇异值分解的定义

定理1(矩阵的奇异值分解)

A\in R^{m\times n}(或C^{m\times n}),则存在正交或酉矩阵U\in R^{m\times n}(或C^{m\times m})和V\in R^{n\times n}(或C^{n\times n})使得

A=U\Sigma V^{T}(或U\Sigma V^{H})                                                            (1)

其中,U是大小为m\times m的矩阵,对应着AA^{T}的m个特征向量;V是大小为n\times n的矩阵,对应着A^{T}A的n个特征向量;\sum =\begin{bmatrix} \sum _{1} & O\\ O& O \end{bmatrix},且\sum _{1}=diag(\sigma _{1},\sigma _{2},...,\sigma _{r}),其对角元素(矩阵A的奇异值)按照顺序

\sigma ^{_{1}}\geqslant \sigma _{2}\geqslant ...\geqslant \sigma _{r}> 0,r=rank(A)

排列。对角线上的元素对应着矩阵AA^{T}A^{T}A的非负特征值的的平方根。

但是公式(1)不实用,SVD要实现降维需要对矩阵做截断处理。

 当矩阵A的秩r<min{m,n}时,奇异值分解简化为:

A=U_{r}\sum _{r}V_{r}^{H}                                                                          (2)

称为矩阵A的截断奇异值分解(truncated SVD)。这样能大大的减少计算机的存储能力。

参考资料:

1、张贤达著《矩阵分析与应用》(第2版)。

2、浅谈张量分解(三):如何对稀疏矩阵进行奇异值分解? - 知乎 (zhihu.com)

猜你喜欢

转载自blog.csdn.net/xfsong2012/article/details/121314731