奇异值分解

概述

  奇异值分解(Singular Value Decomposition,SVD)是线性代数中一种重要的矩阵分解方法,区别于只适用于实对称矩阵的特征分解方法,奇异值分解可对任意实矩阵进行分解。

特征分解

 特征分解(eigendecomposition)又叫谱分解(Spectral decomposition),是把一个矩阵根据其特征值和特征向量分解的过程,只有可以正交化的矩阵才可以进行特征分解。

An阶方阵,若存在n维非零向量x使得:
Ax = \lambda x
则称\lambda为矩阵A的特征值,xA属于\lambda的特征向量(eigenvector)。

  有了上述定义,接下来讨论如何计算一个矩阵的特征值和特征向量。由定义可知:
Ax-\lambda x=0 \Rightarrow (A-\lambda I)x=0
  其中I为单位矩阵,显然上式的推导结果是一个nn次的齐次线性方程组,x为该方程组的一个非零解,则有r(A-\lambda I)=r < n \Leftrightarrow |A-\lambda I|=0,其中|A-\lambda I|=0称为A的特征方程,|A-\lambda I|称为A的特征多项式。基于此,可得到求解方阵A特征值和特征向量的步骤如下:

1、计算方阵A的特征多项式|A-\lambda I|

2、求出特征方程|A-\lambda I|=0的所有根(包括复根和重根),这些根\lambda_1,\lambda_2,\cdots,\lambda_n即为A的所有特征值;

3、对于A的每一个特征值\lambda_i(1\leq i\leq n),求解齐次线性方程组(A-\lambda_i I)x=0,该方程组的每一个非零解都是A属于特征值\lambda_i的特征向量;

  求出矩阵A的特征值和特征向量后,若矩阵An个线性独立的特征向量,那么 A是可以正交化的,此时 A 的特征分解为:
A = WDW^{-1}
其中Wn个特征向量所组成的n \times n维矩阵,D为以这n个特征值为主对角线元素的对角阵。

奇异值分解

  • 定义

    M为一个m \times n阶的矩阵,则存在一个分解,使得:
    M = UDV^T
    其中Um阶酉矩阵、Vn阶酉矩阵、Dm\times n的非负实对角矩阵。称此分解为奇异值分解,一般我们将V中的每一个特征向量叫做M的右奇异向量,将U中的每个特征向量叫做左奇异向量,D对角线上的元素称为M的奇异值,当规定奇异值降序排列时,可唯一确定一个D

      有了定义,接下来需要确定奇异值分解的三个矩阵U、D、V。比较直观的想法是通过M来构造一个方阵来进行特征分解,间接计算U、D、V,由于MM^T,M^TM分别为m\times mn\times n的方阵,则有:
    \begin{equation} \begin{split} MM^T=UDV^T(UDV^T)^T=UDV^TVD^TU^T = UDD^TU^T=U\sum_1 U^T \\ M^TM = (UDV^T)^TUDV^T=VD^TU^TUDV^T=VDD^TV^T=V\sum_2 V^T \end{split} \end{equation}
    注意到:
    M = UDV^T \Rightarrow MV = UDV^TV \Rightarrow MV= UD \Rightarrow Mv_i = \delta_iu_i \Rightarrow \delta_i = \frac{Mv_i}{u_i}
    其中,v_i,u_i分别为V,U中第i个特征向量。这个式子提供了一种计算奇异值的方法,另一种思路是结合式(5):
    \sum = DD^T=D^2 \Rightarrow \delta_i = \sqrt{\lambda_i}
    即,特征值矩阵为奇异值矩阵的平方,故可以通过计算M^TM的特征值取平方根来计算奇异值。

  • SVD的计算步骤

    1.计算MM^TM^TM

    2.分别计算MM^TM^TM的特征向量和特征值;

    3.MM^T的特征向量组成U,而M^TM的特征向量组成V

    4.对MM^TM^TM的非零特征值求平方根,对应上述特征向量的位置,填入对角阵D的位置;

  • 计算示例

      接下来以计算矩阵A=\begin{pmatrix}0&1 \\ 1& 1 \\1&0\end{pmatrix}的奇异值分解为例,来进一步熟悉:

    第一步,先计算A的两个转置积:
    \begin{equation} \begin{split} &A^TA=\begin{pmatrix} 0 & 1 & 1 \\ 1 & 1 & 0 \end{pmatrix}\begin{pmatrix} 0 & 1 \\ 1 & 1 \\ 1 & 0\end{pmatrix} = \begin{pmatrix}2 & 1 \\ 1& 2\end{pmatrix} \\ &AA^T = \begin{pmatrix}0 & 1 \\ 1 & 1 \\ 1 & 0\end{pmatrix}\begin{pmatrix}0 & 1 &1 \\ 1 & 1 & 0\end{pmatrix}=\begin{pmatrix}1 & 1 & 0 \\ 1 & 2 & 1 \\ 0 & 1 & 1\end{pmatrix} \end{split} \end{equation}
    第二步,分别计算两个转置积的特征值和特征向量:
    \begin{equation} \begin{split} &\color{#F00}{(A^TA-\lambda I)x = 0} \Rightarrow |A^TA-\lambda I|=0 \\ &\Rightarrow \begin{vmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{vmatrix} = 0 \Rightarrow \lambda^2-4\lambda+3=0 \end{split} \end{equation}
    容易得到式(9)中一元二次方程的根为\lambda_1 = 3,\lambda_2=1,当\lambda=3时,将特征根分别带入式(1)中,得到:
    \begin{equation} \begin{split} &&(A^TA-3I)x = 0 \Rightarrow\begin{pmatrix}-1 & 1 \\ 1 & -1\end{pmatrix}x= 0 \Rightarrow\begin{pmatrix}-1 & 1 \\ 1 & -1\end{pmatrix}\begin{pmatrix}x_1 \\ x_2\end{pmatrix}= 0 \\ \end{split} \end{equation}
    此时的单位特征向量为:

    同理得到:
    x_{\lambda=1} = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}}\end{pmatrix}
    同理计算AA^T的特征根和特征向量:
    \begin{equation} \begin{split} &\lambda_1=3,u_1= \begin{pmatrix} \frac{1}{\sqrt{6}} \\ \frac{2}{\sqrt{6}} \\ \frac{1}{\sqrt{6}} \end{pmatrix}; &\lambda_2 = 1,u_2 = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ 0 \\ -\frac{1}{\sqrt{2}} \end{pmatrix}; &\lambda_3 = 0,u_3 = \begin{pmatrix} \frac{1}{\sqrt{3}} \\ -\frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{3}} \end{pmatrix} \end{split} \end{equation}

    第三步,使用两个转置积的单位特征向量构造U,V矩阵:
    \begin{equation} \begin{split} &U =(u_1,u_2,u_3)= \begin{pmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \\ \frac{2}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \end{pmatrix} \\ &V^T = (v_1,v_2)^T= \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix} \end{split} \end{equation}
    第四步,计算奇异值,直接使用\delta_i = \sqrt{\lambda_i}计算奇异值并组成对角阵D
    D = \begin{pmatrix} \sqrt{3} & 0\\ 0 & 1\\ 0 & 0 \end{pmatrix}
    最终得到矩阵A的奇异值分解:
    A= UDV^T =\begin{pmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \\ \frac{2}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \end{pmatrix}\begin{pmatrix} \sqrt{3} & 0\\ 0 & 1\\ 0 & 0 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix}

应用

  对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵:
A_{m \times n} = U_{m \times m}D_{m \times n}V^T_{n \times n} \approx U_{m \times k} D_{k \times k} V^T_{k \times n}
这样处理的好处是,我们可以用三个较小的矩阵U_{m \times k},D_{k \times k},V_{k \times n}^T来表示一个大矩阵A,如下图所示,使用三个灰色部分的小矩阵来表示大矩阵。

SVD

  由于这个重要的性质,SVD可以用于PCA降维,来做图片数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。

Note:

  需要注意的是,奇异值分解中特征值的求解是比较核心的地方,在工程应用中,往往需要进行奇异值分解都是大矩阵,对这类大矩阵,如果采用上面的方法求解特征值需要花费较多的时间和资源。对此,可以采用乘幂法反幂法或者QR方法来近似求解矩阵的特征根,在此不做进一步展开,有兴趣的读者可以进一步了解一下。

基本概念说明

  • 矩阵的子式

      设有m \times n矩阵A,在A中任意取定k个行和k个列(k \leq \min\{m,n\}),位于这些行与列交叉处的元素按原来的相对顺序排成一个k阶行列式,称它为矩阵A的一个k阶子式,特别地,A中每一个元素就是A的一阶子式。
      对于确定的k,在m \times n矩阵A中,总共有C_m^k \times C_n^kk阶子式,这些子式的值有的可能是零,也可能不为零,把值不为零的子式称为非零子式。

  • 矩阵的秩

      在m\times n矩阵A中,非零子式的最高阶数称为矩阵A的秩,记为r(A)或秩规定零矩(A),规定零矩阵的秩为零。

    推论1:

    r(A)=r \Leftrightarrow A中所有r+1阶子式(如果有的话)全为零,而A中至少有一个r阶子式非零。

  • 矩阵的谱半径

      An阶方阵,\lambda_i(1\leq i\leq n)为其特征值,则A的谱半径定义如下:
    \rho(r) = max\{|\lambda_1|,|\lambda_2|,\dots,|\lambda_n|\}
    即方阵A的谱半径为A特征值中绝对值最大的那个值。

  • 正定矩阵

      如果对于所有的非零实系数向量 z,都有 z^TAz>0,则称矩阵 A 是正定的。正定矩阵的行列式必然大于0, 所有特征值也必然大于0。相对应的,半正定矩阵的行列式必然 ≥ 0。

  • 正交矩阵

      若一个方阵其行与列皆为正交的单位向量(即二者的内积为0),则该方阵为正交矩阵。

  • 酉矩阵

      酉矩阵(unitary matrix)是一种特殊的方阵,它满足UU^H=U^HU=I_nU^HU的共轭转置,其在转置的基础上,增加了复数的共轭)。酉矩阵实际上是推广的正交矩阵(orthogonal matrix);当酉矩阵中的元素均为实数时,酉矩阵实际就是正交矩阵。另一方面,由于U^{-1}U=UU^{-1}=I_n,所以酉矩阵 U满足U^{−1}=U^H;事实上,这是一个矩阵是酉矩阵的充分必要条件。

  • 正规矩阵

      同酉矩阵一样,正规矩阵(normal matrix)也是一种特殊的方阵,它要求在矩阵乘法的意义下与它的共轭转置矩阵满足交换律,即MM^H=M^HM。显然,复系数的酉矩阵和实系数的正交矩阵都是正规矩阵。

  • 谱定理和谱矩阵

      矩阵的对角化是线性代数中的一个重要命题。谱定理(spectral theorem)给出了方阵对角化的一个结论:若矩阵M是一个正规矩阵,则存在酉矩阵 U,以及对角矩阵 \sum,使得M=U\sum U^H。也就是说,正规矩阵,可经由酉变换,分解为对角矩阵;这种矩阵分解的方式,称为谱分解(spectral decomposition)。


    参考文章

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

推荐阅读更多精彩内容