QR分解虽然很有用,而且具有较为稳定的性质,但也有不足之处:QR分解只能提供原矩阵A的列的一组正交基。

现在介绍的SVD分解可以分别提供对应原矩阵的行、列的正交基。

SVD分解 岭回归 svd分解和qr分解优缺点_去噪


矩阵U、矩阵V的列向量都是奇异向量;

中间的对角矩阵的对角元是奇异值。

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_02


上图中的两种表示方法展现了两种SVD,前者为FULL型的,后者为THIN型的(也称经济型的)

% MATLAB函数
[U,S,V]=svd(A) %第一种的SVD分解
[U,S,V]=svd(A,0) %第二种的SVD分解,也就是thin型的SVD

矩阵的二范数保酉不变性:对矩阵A乘上酉矩阵U(也就是正交阵),前后的矩阵二范数不变。

(注:可以利用矩阵二范数||A||22=tr(ATA)+相似变换不改变矩阵的迹,相似变换不改变矩阵特征值来证明。)

于是有了以下结论,彩色笔涂的是重点。

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_03


SVD分别给出了原矩阵A的值域、零空间的正交基,如下图。

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_04


下面这张图告诉我们:SVD分解出的中间的那个对角矩阵中提供的奇异值可以反映出原矩阵A的秩。

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解_05


SVD还可以用来给矩阵去噪:

A=A0+N,其中A是我们实际得到的,A0是真实中不加噪声的原数据,N表示噪声,噪声比较小。我们考虑使用SVD的方法除去噪声,取出或者说近似的得出原始矩阵A0。具体方法是对矩阵A进行SVD分解,并舍弃其中较小的奇异值和对应的奇异向量,如下图,又称为”截断SVD“,低秩近似分解,图中AK就是原矩阵A的近似矩阵。

SVD分解 岭回归 svd分解和qr分解优缺点_去噪_06


低秩近似的二范数误差是:第k+1个奇异值

SVD分解 岭回归 svd分解和qr分解优缺点_去噪_07


低秩近似的F范数的误差是:

SVD分解 岭回归 svd分解和qr分解优缺点_MATLAB_08


下面的引理给出了矩阵内积的定义:

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解_09


SVD分解出的左右奇异向量证明了,矩阵A可以表示成几个秩为1的矩阵的和。

SVD分解 岭回归 svd分解和qr分解优缺点_MATLAB_10


而且,这里的秩1矩阵相互正交,如下图:

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_11


只有当i=k且j=l时,两个秩1矩阵的内积才不为0,是1.

下图是,低秩近似结果的示意图:

SVD分解 岭回归 svd分解和qr分解优缺点_MATLAB_12


SVD解最小二乘问题:

  1. 列满秩的情况

    证明过程,如下图:

  2. 原矩阵A列秩亏(行数>列数)的情况
    此时,没有唯一解,但有最小范数解:


    证明过程如下:
  3. SVD解欠定方程(行数<列数)
    首先,给出欠定方程的定义:

    结论:
%MATLAB程序
[U,S,V]-svds(A,K) %针对大型稀疏矩阵所作的部分SVD分解。
%取前K个奇异值和奇异向量。

SVD的缺点是代价比较高,更新时可复用性比较差(比如,需要在其中添加新矩阵的行、列)

考虑完全正交分解:

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_13


如果使用截断SVD方法,那么怎么确认取多少项的奇异值和奇异向量呢(也就是如何确定k)?

SVD分解 岭回归 svd分解和qr分解优缺点_矩阵_14


采用降秩模型:

SVD分解 岭回归 svd分解和qr分解优缺点_矩阵_15


SVD分解 岭回归 svd分解和qr分解优缺点_去噪_16


使用案例:

根据前文建立的文本词条矩阵,现在寻找距离查询向量q1、q2的各自低秩近似的k.

SVD分解 岭回归 svd分解和qr分解优缺点_去噪_17


绿色字体表示使用了上述的降秩模型:

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_18


SVD分解 岭回归 svd分解和qr分解优缺点_矩阵_19


取不同的k值对这两个查询向量的逼近程度(用相对误差来衡量),结果如下:

SVD分解 岭回归 svd分解和qr分解优缺点_SVD分解 岭回归_20