MIT线性代数 30 奇异值分解

奇异值分解

全称Singular Value Decomposition,简称SVD分解
任意矩阵都可以进行的一种分解
A=U\Sigma V^T
其中U为正交矩阵\Sigma为对角矩阵 V为正交矩阵

我们知道正定矩阵的奇异值分解是
A=Q\Lambda Q^T ,也就是说对于正定矩阵不需要两个矩阵UV,这只需要一个Q就可以放在特征值\Lambda左右两边

而奇异值分解要研究的如下图,寻找矩阵A的行空间的正交向量如v_1,v_2,通过A的变换之后会转换到A的列空间的正交向量u_1,u_2

image.png

为啥教授说
A=U\Sigma V^T这个等式V在矩阵A的行空间,U在矩阵A的列空间

这里笔者做一个证明
对等式稍作整理可得AV=U\Sigma
根据我们之前的求解AX=b的解方程的经验,可以很明显的知道bA的列空间的线性组合时候有解,同样类比AV=U\Sigma即,A可以被这样分解的前提在于U向量的每一列都是A向量列空间的线性组合,因此U在矩阵A的列空间
V向量的分析同理
AV=U\Sigma取转置
V^TA^T=\Sigma^TU^T取转置
A^TU=V\Sigma^T,类比上面的分析,可见VA^T的列空间,即VA的行空间

上面我们没有提到零空间,如果把零空间补全等式大概是这样的
A\begin{bmatrix} v_1&v_2&...&v_r&v_{r+1}&...&v_n \end{bmatrix}= \begin{bmatrix} u_1&u_2&...&u_r&u_{r+1}&...&u_m \end{bmatrix} \begin{bmatrix} \sigma_1 \\&\sigma_2 \\&&\ddots \\&&&u_r \\&&&&u_{r+1} \\&&&&&\ddots \\&&&&&&u_m&0&0 \end{bmatrix}

其中
v_1,v_2,....v_r是矩阵A的行空间标准正交基
v_{r+1},...,v_n是矩阵的A的零空间,我们知道矩阵A的行空间和零空间是互为正交补的,他们共同补全了\mathbb{R}^n空间
再看
u_1,u_2,u_r 是矩阵A的列空间标准正交基
u_{r+1},...,u_m 是矩阵A的左零空间,它和矩阵A的列空间互为\mathbb{R}^m的正交补共同构成\mathbb{R}^m空间
这里再多做一点说明
右边\Sigma矩阵的0列数占几列取决于n-m的正值是多少,若为负或0,则不需要额外补0

接下来的问题是应该如何求矩阵ASVD分解的UV矩阵
基本的思路很简单
虽然A可能是长方形的,即不一定是对称矩阵,这会导致
A=U\Sigma V^T的左右两边的正交矩阵不是同一个
,但我们发现
A^TA是一个性质很好的对称矩阵
A^TA=V\Sigma^T U^TU\Sigma V^T=V\Sigma^T\Sigma V^T
我们发现这个V\Sigma^T\Sigma V^T很像对称矩阵的Q\Lambda Q^T,其实不能说像,因为它本来就是对称矩阵,而且我们发现它还是一个正定矩阵,因为特征值全为正的,这样只需要对A^TA进行特征值分解就可以把特征向量矩阵V和特征值矩阵\Sigma求出来

而对于另一个矩阵U,同理
AA^T也是一个性质很好的对称矩阵
AA^T=U\Sigma V^TV\Sigma^T U^T=U\Sigma \Sigma^TU^T
这同样是一个对称正定矩阵,对AA^T进行特征值分解即可得到特征向量矩阵U和特征值矩阵\Sigma

接下来来个实际的例子
A=\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix}进行SVD分解

  1. V

B=A^TA=V\Sigma^T\Sigma V^T=\begin{bmatrix} 4&-3 \\4&3 \end{bmatrix}\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix} =\begin{bmatrix} 25&7 \\7&25 \end{bmatrix}

特征值的乘积等于行列式\lambda_1 \lambda_2=25^2-7^2
特征值的和等于迹\lambda_1 + \lambda_2=50

于是\lambda_1=32,\lambda_2=18
代入(B-\lambda I)V=0
\lambda_1=32
(B-\lambda I)=\begin{bmatrix} 25-32&7 \\7&25-32 \end{bmatrix}
B的特征向量即是(B-\lambda I)零空间基向量v_1=\begin{bmatrix} 1/\sqrt{2} \\1/\sqrt{2} \end{bmatrix}(注意归一化)

\lambda_2=18
(B-\lambda I)=\begin{bmatrix} 25-18&7 \\7&25-18 \end{bmatrix}
B的特征向量即是(B-\lambda I)零空间基向量v_2=\begin{bmatrix} 1/\sqrt{2} \\-1/\sqrt{2} \end{bmatrix}

于是V=\begin{bmatrix} v_1 &v_2 \end{bmatrix}=\begin{bmatrix} 1/\sqrt{2}&1/\sqrt{2} \\1/\sqrt{2}&-1/\sqrt{2} \end{bmatrix}

  1. U

C=AA^T=U\Sigma \Sigma^T U^T=\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix}\begin{bmatrix} 4&-3 \\4&3 \end{bmatrix} =\begin{bmatrix} 32&0 \\0&18 \end{bmatrix}

其实特征值和特征向量一眼就看出来了,不过我们还是算一算
特征值的乘积等于行列式\lambda_1 \lambda_2=32*18
特征值的和等于迹\lambda_1 + \lambda_2=50

于是\lambda_1=32,\lambda_2=18
代入(C-\lambda I)U=0
\lambda_1=32
(C-\lambda I)=\begin{bmatrix} 32-32&0 \\0&18-32 \end{bmatrix}
C的特征向量即是(C-\lambda I)零空间基向量u_1=\begin{bmatrix} 1 \\0 \end{bmatrix}(注意归一化)

\lambda_2=18
(C-\lambda I)=\begin{bmatrix} 32-18&0 \\0&18-18 \end{bmatrix}
C的特征向量即是(C-\lambda I)零空间基向量u_2=\begin{bmatrix} 0 \\1 \end{bmatrix}

于是U=\begin{bmatrix}u_1 &u_2 \end{bmatrix}=\begin{bmatrix} 1&0 \\0&1 \end{bmatrix}

最后
A=\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix}=U\Sigma V^T把上面算的V,U\Sigma代入发现
=\begin{bmatrix} 1&0 \\0&1 \end{bmatrix}\begin{bmatrix} \sqrt{32}&0 \\0&\sqrt{18} \end{bmatrix}\begin{bmatrix} 1/\sqrt{2}&1/\sqrt{2} \\1/\sqrt{2}&-1/\sqrt{2} \end{bmatrix}
=\begin{bmatrix} 4&4 \\3&-3 \end{bmatrix}
我们发现结果并不一致,出现问题的原因是因为选择的特征基向量组V和特征向量组U没有形成关联,即前面我们提到的,给定v_1,v_2,通过AV的方式得到正交的u_1,u_2,即,u_1应该是由v_1关联而来,u_2应该由v_2关联而来,而像上面这种分开计算的方法虽然特征向量没问题,但是特征向量的方向性就无法确定了
U\Sigma =AV
u_1\sigma_1=Av_1\Longrightarrow \sqrt{32}u_1=\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix}\begin{bmatrix} 1/\sqrt{2} \\1/\sqrt{2} \end{bmatrix}=1/\sqrt{2}\begin{bmatrix} 8 \\0 \end{bmatrix}\Longrightarrow u_1=\begin{bmatrix} 1 \\0 \end{bmatrix}
u_2\sigma_2=Av_2\Longrightarrow \sqrt{18}u_2=\begin{bmatrix} 4&4 \\-3&3 \end{bmatrix}\begin{bmatrix} 1/\sqrt{2} \\-1/\sqrt{2} \end{bmatrix}=1/\sqrt{2}\begin{bmatrix} 0 \\-6 \end{bmatrix}\Longrightarrow u_2=\begin{bmatrix} 0 \\-1 \end{bmatrix}
所以正确的U=\begin{bmatrix} 1&0 \\0&-1 \end{bmatrix}

=========================
接下里看第二个例子,秩1矩阵的分解
A=\begin{bmatrix} 4&3 \\8&6 \end{bmatrix}
在开始之前我们先分析一下这个矩阵,因为秩为1,所以矩阵的行空间和列空间都是一维的
我们选择行空间基v_1=\frac{1}{5}\begin{bmatrix} 4\\3 \end{bmatrix},列空间基u_1=\frac{1}{\sqrt{5}}\begin{bmatrix} 1\\2 \end{bmatrix}
V矩阵的另一列v_2怎么找呢,没错它在矩阵A的零空间,零空间和行空间垂直,我们利用正交性直接写出v_2=\frac{1}{5}\begin{bmatrix} 3\\-4 \end{bmatrix}
同理U矩阵的第二列怎么找,和上面一样,它在A的左零空间,即A^T的零空间,于是也可以直接根据正交性写出u_2=\frac{1}{\sqrt{5}}\begin{bmatrix} 2\\-1 \end{bmatrix}

于是
V=\frac{1}{5}\begin{bmatrix} 4&3 \\3&-4 \end{bmatrix}

U=\frac{1}{\sqrt{5}}\begin{bmatrix} 1&2 \\2&-1 \end{bmatrix}
那么\Sigma怎么求,
我们来计算A^TA=\begin{bmatrix} 4&8 \\3&6 \end{bmatrix}\begin{bmatrix} 4&3 \\8&6 \end{bmatrix}
=\begin{bmatrix}80&60\\60&45 \end{bmatrix}
考虑到A是秩1矩阵,A^TA并不会改变矩阵A的秩,因此其中一个特征值肯定是0,因为特征值之和等于迹,所以另一个特征值肯定是125
因此A=U\Sigma V^T=\frac{1}{\sqrt{5}}\begin{bmatrix} 1&2 \\2&-1 \end{bmatrix}\begin{bmatrix} \sqrt{125}&0 \\0&0 \end{bmatrix}\frac{1}{5}\begin{bmatrix} 4&3 \\3&-4 \end{bmatrix}
一般而言可以这么做,当然实际情况下,要自己稍微验算以下,以防符号出错
以上的等式也充分说明了四个基本子空间之间的关系

题外话:笔者最近看slam关于求AH=0的解的问题

在slam话题中,A矩阵是由一系列匹配点生成的矩阵,问题在于如何求解对AH=0的问题,实际上因为误差关系,AH=0的解一般是不存在的,即不存在一个精确解H使得等式成立,
但是我们会想,既然不存在这样的精确解,但可以肯定是存在一个H使得AH=b,即,我们希望这里的b的模长尽量足够小,
不过这里也需要做一些限定,毕竟如果H直接为0向量,其实就是最优解了,因此需要限定H是非零向量,我们限定||H||=1
于是问题就转换为求||AH||的最小值
于是
||AH||=\sqrt{(AH)^TAH}
=\sqrt{H^TA^TAH}
根据奇异值分解的知识
A^TA=V\Sigma^TU^TU\Sigma V^T=V\Sigma^T\Sigma V^T
于是||AH||=\sqrt{H^TV\Sigma^T\Sigma V^TH}
Y=V^TH
||AH||^2=Y^T\Sigma^T\Sigma Y
=\begin{bmatrix}y_1&y_2&...&y_n\end{bmatrix} \begin{bmatrix}\sigma_1^2\\&\sigma_2^2\\&&\ddots\\&&&\sigma_n^2\end{bmatrix} \begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}
=\begin{bmatrix}\sigma_1^2y_1^2+\sigma_2^2y_2^2+...+\sigma_n^2y_n^2\end{bmatrix}
假设\sigma_n<=\sigma_2<=...<=\sigma_1
那么(\sigma_n^2y_1^2+\sigma_n^2y_2^2+...+\sigma_n^2y_n^2)<=(\sigma_1^2y_1^2+\sigma_2^2y_2^2+...+\sigma_n^2y_n^2)<=(\sigma_1^2y_1^2+\sigma_1^2y_2^2+...+\sigma_1^2y_n^2)
\sigma_n^2(y_1^2+y_2^2+...+y_n^2)<=(\sigma_1^2y_1^2+\sigma_2^2y_2^2+...+\sigma_n^2y_n^2)<=\sigma_1^2(y_1^2+y_2^2+...+y_n^2)
\sigma_n^2Y^TY<=(\sigma_1^2y_1^2+\sigma_2^2y_2^2+...+\sigma_n^2y_n^2)<=\sigma_1^2Y^TY
因为Y^TY=H^TVV^TH=||H||=1
所以\sigma_n^2<=(\sigma_1^2y_1^2+\sigma_2^2y_2^2+...+\sigma_n^2y_n^2)<=\sigma_1^2
上面这段什么意思呢,
其实就是说,
当对A矩阵执行A^TA的分解的所有\sigma^2其实就是原来矩阵A的SVD分解的所有的奇异值\sigma,即
Av_1=\sigma_1u_1
Av_2=\sigma_2u_2
...
Av_n=\sigma_nu_n
v_i,u_i都是单位向量,如果分别取
\sigma_n<=(||Av_i||=||\sigma_iu_i||=\sigma_i)<=\sigma_1
可见最小的那个奇异值对应的v_i,,即就是我们需要找的最小的目标向量,反之,最大的那个奇异值对应的v_i则是误差最大的目标向量,一般在SVD的分解中\Sigma会按\sigma从大到小排序,因此最优解一般是V矩阵的最后一列,也就是V^T的最后一行
这其实表明了一个事实,任意一个矩阵对单位圆上的向量执行左乘,比如这里的AX,假设AX=Y,那么目标向量Y的模长是和A的奇异值相关的,即Y的模长不会小于A的最小的奇异值,也不会大于A的最大的奇异值

下面找了一张图方便理解,椭圆长轴向量模长表示大的奇异值,椭圆的短轴向量模长表示小的奇异值,而其他方向向量的模长都在二者之间

image.png

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容