奇异值分解(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(矩阵的奇异值分解)
令(或
),则存在正交或酉矩阵
(或
)和
(或
)使得
(或
) (1)
其中,U是大小为的矩阵,对应着
的m个特征向量;V是大小为
的矩阵,对应着
的n个特征向量;
,且
,其对角元素(矩阵A的奇异值)按照顺序
排列。对角线上的元素对应着矩阵或
的非负特征值的的平方根。
但是公式(1)不实用,SVD要实现降维需要对矩阵做截断处理。
当矩阵A的秩r<min{m,n}时,奇异值分解简化为:
(2)
称为矩阵A的截断奇异值分解(truncated SVD)。这样能大大的减少计算机的存储能力。
参考资料:
1、张贤达著《矩阵分析与应用》(第2版)。