婚纱摄影东莞网站建设技术支持,下载空间大的网站建设,做语文课文网站的好处,视频网站直播怎么做的奇异值分解(SVD)原理与在降维中的应用 奇异值分解(Singular Value Decomposition#xff0c;以下简称SVD)是在机器学习领域广泛应用的算法#xff0c;它不光可以用于降维算法中的特征分解#xff0c;还可以用于推荐系统#xff0c;以及自然语言处理等领域。是很多机器学习算…奇异值分解(SVD)原理与在降维中的应用 奇异值分解(Singular Value Decomposition以下简称SVD)是在机器学习领域广泛应用的算法它不光可以用于降维算法中的特征分解还可以用于推荐系统以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结并讨论在在PCA降维算法中是如何运用运用SVD的。
1. 回顾特征值和特征向量
我们首先回顾下特征值和特征向量的定义如下AxλxAx\lambda xAxλx
其中A是一个n×nn \times nn×n的矩阵x是一个n维向量则我们说λ\lambdaλ是矩阵A的一个特征值而x是矩阵A的特征值λ\lambdaλ所对应的特征向量。
求出特征值和特征向量有什么好处呢 就是我们可以将矩阵A特征分解。如果我们求出了矩阵A的n个特征值λ1≤λ2≤...≤λn\lambda_1 \leq \lambda_2 \leq ... \leq \lambda_nλ1≤λ2≤...≤λn,以及这n个特征值所对应的特征向量{w1,w2,...wn}\{w_1,w_2,...w_n\}{w1,w2,...wn}那么矩阵A就可以用下式的特征分解表示AWΣW−1AW\Sigma W^{-1}AWΣW−1
其中W是这n个特征向量所张成的n×nn \times nn×n维矩阵而Σ\SigmaΣ为这n个特征值为主对角线的n×nn \times nn×n维矩阵。
一般我们会把W的这n个特征向量标准化即满足∣∣wi∣∣21||w_i||_2 1∣∣wi∣∣21, 或者说wiTwi1w_i^Tw_i 1wiTwi1此时W的n个特征向量为标准正交基满足WTWIW^TWIWTWI即WTW−1W^TW^{-1}WTW−1, 也就是说W为酉矩阵。
这样我们的特征分解表达式可以写成AWΣWTAW\Sigma W^TAWΣWT
注意到要进行特征分解矩阵A必须为方阵。那么如果A不是方阵即行和列不相同时我们还可以对矩阵进行分解吗答案是可以此时我们的SVD登场了。
2. SVD的定义
SVD也是对矩阵进行分解但是和特征分解不同SVD并不要求要分解的矩阵为方阵。假设我们的矩阵A是一个m×nm \times nm×n的矩阵那么我们定义矩阵A的SVD为AUΣVTA U\Sigma V^TAUΣVT
其中U是一个m×mm \times mm×m的矩阵Σ\SigmaΣ是一个m×nm \times nm×n的矩阵除了主对角线上的元素以外全为0主对角线上的每个元素都称为奇异值V是一个n×nn \times nn×n的矩阵。U和V都是酉矩阵即满足UTUI,VTVIU^TUI, V^TVIUTUI,VTVI。下图可以很形象的看出上面SVD的定义 那么我们如何求出SVD分解后的U, Σ\SigmaΣ, V这三个矩阵呢
如果我们将A的转置和A做矩阵乘法那么会得到n×nn \times nn×n的一个方阵ATAA^TAATA。既然ATAA^TAATA是方阵那么我们就可以进行特征分解得到的特征值和特征向量满足下式(ATA)viλivi(A^TA)v_i \lambda_i v_i(ATA)viλivi
这样我们就可以得到矩阵ATAA^TAATA的n个特征值和对应的n个特征向量v了。将ATAA^TAATA的所有特征向量张成一个n×nn \times nn×n的矩阵V就是我们SVD公式里面的V矩阵了。一般我们将V中的每个特征向量叫做A的右奇异向量。
如果我们将A和A的转置做矩阵乘法那么会得到m×mm \times mm×m的一个方阵AATAA^TAAT。既然AATAA^TAAT是方阵那么我们就可以进行特征分解得到的特征值和特征向量满足下式(AAT)uiλiui(AA^T)u_i \lambda_i u_i(AAT)uiλiui
这样我们就可以得到矩阵AATAA^TAAT的m个特征值和对应的m个特征向量u了。将AATAA^TAAT的所有特征向量张成一个m×mm \times mm×m的矩阵U就是我们SVD公式里面的U矩阵了。一般我们将U中的每个特征向量叫做A的左奇异向量。
U和V我们都求出来了现在就剩下奇异值矩阵Σ\SigmaΣ没有求出了。由于Σ\SigmaΣ除了对角线上是奇异值其他位置都是0那我们只需要求出每个奇异值σ\sigmaσ就可以了。
我们注意到:AUΣVT⇒AVUΣVTV⇒AVUΣ⇒Aviσiui⇒σiAviuiAU\Sigma V^T \Rightarrow AVU\Sigma V^TV \Rightarrow AVU\Sigma \Rightarrow Av_i \sigma_i u_i \Rightarrow \sigma_i \frac {Av_i} {u_i}AUΣVT⇒AVUΣVTV⇒AVUΣ⇒Aviσiui⇒σiuiAvi
这样我们可以求出我们的每个奇异值进而求出奇异值矩阵Σ\SigmaΣ。
上面还有一个问题没有讲就是我们说ATAA^TAATA的特征向量组成的就是我们SVD中的V矩阵而AATAA^TAAT的特征向量组成的就是我们SVD中的U矩阵这有什么根据吗这个其实很容易证明我们以V矩阵的证明为例。AUΣVT⇒ATVΣUT⇒ATAVΣUTUΣVTVΣ2VTAU\Sigma V^T \Rightarrow A^TV\Sigma U^T \Rightarrow A^TA V\Sigma U^TU\Sigma V^T V\Sigma^2V^TAUΣVT⇒ATVΣUT⇒ATAVΣUTUΣVTVΣ2VT
上式证明使用了:UTUI,ΣTΣU^TUI, \Sigma^T\SigmaUTUI,ΣTΣ。可以看出ATAA^TAATA的特征向量组成的的确就是我们SVD中的V矩阵。类似的方法可以得到AATAA^TAAT的特征向量组成的就是我们SVD中的U矩阵。
进一步我们还可以看出我们的特征值矩阵等于奇异值矩阵的平方也就是说特征值和奇异值满足如下关系σiλi\sigma_i \sqrt{\lambda_i}σiλi
这样也就是说我们可以不用σiAviui\sigma_i \frac {Av_i}{u_i}σiuiAvi来计算奇异值也可以通过求出ATAA^TAATA的特征值取平方根来求奇异值。
3. SVD计算举例
这里我们用一个简单的例子来说明矩阵是如何进行奇异值分解的。我们的矩阵A定义为
A(011110)\mathbf{A} \left( \begin{array}{ccc} 0 1\\ 1 1\\ 10 \end{array} \right)A011110
我们首先求出ATAA^TAATA和AATAA^TAAT
ATA(011110)(011110)(2112)\mathbf{A^TA} \left( \begin{array}{ccc} 0 1 1\\ 110 \end{array} \right) \left( \begin{array}{ccc} 0 1\\ 1 1\\ 10 \end{array} \right) \left( \begin{array}{ccc} 2 1 \\ 12 \end{array} \right)ATA(011110)011110(2112)
AAT(011110)(011110)(110121011)\mathbf{AA^T} \left( \begin{array}{ccc} 0 1\\ 1 1\\ 10 \end{array} \right) \left( \begin{array}{ccc} 0 1 1\\ 110 \end{array} \right) \left(\begin{array}{ccc} 1 1 0\\1 2 1\\ 0 11 \end{array} \right)AAT011110(011110)110121011
进而求出ATAA^TAATA的特征值和特征向量λ13;v1(1212);λ21;v2(−1212)\lambda_1 3; v_1 \left( \begin{array}{ccc} \frac {1} {\sqrt{2}} \\ \frac {1} {\sqrt{2}}\end{array} \right); \lambda_2 1; v_2 \left( \begin{array}{ccc} \frac {-1}{\sqrt{2}} \\ \frac {1} {\sqrt{2}}\end{array} \right)λ13;v1(2121);λ21;v2(2−121)
接着求AATAA^TAAT的特征值和特征向量
λ13;u1(162616);λ21;u2(120−12);λ30;u3(13−1313)\lambda_1 3; u_1 \left( \begin{array}{ccc} \frac {1} {\sqrt{6}}\\ \frac {2} {\sqrt{6}} \\ \frac {1} {\sqrt{6}}\end{array} \right); \lambda_2 1; u_2 \left( \begin{array}{ccc} \frac {1} {\sqrt{2}} \\ 0 \\ \frac {-1} {\sqrt{2}}\end{array} \right); \lambda_3 0; u_3 \left( \begin{array}{ccc} \frac {1} {\sqrt{3}} \\ \frac {-1} {\sqrt{3}}\\ \frac {1} {\sqrt{3}}\end{array} \right)λ13;u1616261;λ21;u22102−1;λ30;u3313−131
利用Aviσiui,i1,2Av_i \sigma_i u_i, i1,2Aviσiui,i1,2求奇异值
(011110)(1212)σ1(162616)⇒σ13\left(\begin{array}{ccc} 0 1\\1 1\\ 10 \end{array} \right) \left( \begin{array}{ccc} \frac {1} {\sqrt{2}} \\ \frac {1} {\sqrt{2}}\end{array} \right) \sigma_1 \left( \begin{array}{ccc} \frac {1} {\sqrt{6}} \\\frac {2} {\sqrt{6}} \\ \frac {1} {\sqrt{6}}\end{array} \right)\Rightarrow \sigma_1\sqrt{3}011110(2121)σ1616261⇒σ13
(011110)(−1212)σ2(120−12)⇒σ21\left( \begin{array}{ccc} 0 1\\1 1\\10 \end{array} \right) \left( \begin{array}{ccc} \frac {-1} {\sqrt{2}}\\ \frac {1} {\sqrt{2}} \end{array} \right) \sigma_2 \left( \begin{array}{ccc} \frac {1} {\sqrt{2}} \\ 0 \\ \frac {-1} {\sqrt{2}}\end{array} \right)\Rightarrow \sigma_21011110(2−121)σ22102−1⇒σ21
当然我们也可以用σiλi\sigma_i \sqrt{\lambda_i}σiλi直接求出奇异值为3\sqrt{3}3和1.
最终得到A的奇异值分解为AUΣVT(161213260−1316−1213)(300100)(1212−1212)AU\Sigma V^T \left( \begin{array}{ccc} \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{array} \right) \left( \begin{array}{ccc} \sqrt{3} 0 \\ 0 1\\ 0 0 \end{array} \right) \left( \begin{array}{ccc} \frac {1} {\sqrt{2}} \frac {1} {\sqrt{2}}\\ \frac {-1} {\sqrt{2}} \frac {1} {\sqrt{2}}\end{array} \right)AUΣVT6162612102−1313−131300010(212−12121)
4. SVD的一些性质
上面几节我们对SVD的定义和计算做了详细的描述似乎看不出我们费这么大的力气做SVD有什么好处。那么SVD有什么重要的性质值得我们注意呢
对于奇异值,它跟我们特征分解中的特征值类似在奇异值矩阵中也是按照从大到小排列而且奇异值的减少特别的快在很多情况下前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。也就是说Am×nUm×mΣm×nVn×nT≈Um×kΣk×kVk×nTA_{m \times n} U_{m \times m}\Sigma_{m \times n} V^T_{n \times n} \approx U_{m \times k}\Sigma_{k \times k}V^T_{k \times n}Am×nUm×mΣm×nVn×nT≈Um×kΣk×kVk×nT
其中k要比n小很多也就是一个大的矩阵A可以用三个小的矩阵Um×k,Σk×k,Vk×nTU_{m \times k},\Sigma_{k \times k} ,V^T_{k \times n}Um×k,Σk×k,Vk×nT来表示。如下图所示现在我们的矩阵A只需要灰色的部分的三个小矩阵就可以近似描述了。 由于这个重要的性质SVD可以用于PCA降维来做数据压缩和去噪。也可以用于推荐算法将用户和喜好对应的矩阵做特征分解进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法比如潜在语义索引LSI。下面我们就对SVD用于PCA降维做一个介绍。
5. SVD用于PCA
在主成分分析PCA原理总结中我们讲到要用PCA降维需要找到样本协方差矩阵XTXX^TXXTX的最大的d个特征向量然后用这最大的d个特征向量张成的矩阵来做低维投影降维。可以看出在这个过程中需要先求出协方差矩阵XTXX^TXXTX当样本数多样本特征数也多的时候这个计算量是很大的。
注意到我们的SVD也可以得到协方差矩阵XTXX^TXXTX最大的d个特征向量张成的矩阵但是SVD有个好处有一些SVD的实现算法可以不求先求出协方差矩阵XTXX^TXXTX也能求出我们的右奇异矩阵V。也就是说我们的PCA算法可以不用做特征分解而是做SVD来完成。这个方法在样本量很大的时候很有效。实际上scikit-learn的PCA算法的背后真正的实现就是用的SVD而不是我们我们认为的暴力特征分解。
另一方面注意到PCA仅仅使用了我们SVD的右奇异矩阵没有使用左奇异矩阵那么左奇异矩阵有什么用呢
假设我们的样本是m×nm \times nm×n的矩阵X如果我们通过SVD找到了矩阵XXTXX^TXXT最大的d个特征向量张成的m×dm\times dm×d维矩阵U则我们如果进行如下处理Xd×n′Ud×mTXm×nX_{d\times n} U_{d \times m}^TX_{m \times n}Xd×n′Ud×mTXm×n
可以得到一个d×nd \times nd×n的矩阵X‘,这个矩阵和我们原来的m×nm\times nm×n维样本矩阵X相比行数从m减到了k可见对行数进行了压缩。也就是说左奇异矩阵可以用于行数的压缩。相对的右奇异矩阵可以用于列数即特征维度的压缩也就是我们的PCA降维。
6. SVD小结
SVD作为一个很基本的算法在很多机器学习算法中都有它的身影特别是在现在的大数据时代由于SVD可以实现并行化因此更是大展身手。SVD的原理不难只要有基本的线性代数知识就可以理解实现也很简单因此值得仔细的研究。当然SVD的缺点是分解出的矩阵解释性往往不强有点黑盒子的味道不过这不影响它的使用。 文章转载自: http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.sjqpm.cn.gov.cn.sjqpm.cn http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.jyknk.cn.gov.cn.jyknk.cn http://www.morning.txlxr.cn.gov.cn.txlxr.cn http://www.morning.fqtdz.cn.gov.cn.fqtdz.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.kpcdc.cn.gov.cn.kpcdc.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.ykswq.cn.gov.cn.ykswq.cn http://www.morning.mfrb.cn.gov.cn.mfrb.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn http://www.morning.byzpl.cn.gov.cn.byzpl.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.skdrp.cn.gov.cn.skdrp.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.zxybw.cn.gov.cn.zxybw.cn http://www.morning.tldfp.cn.gov.cn.tldfp.cn http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn http://www.morning.tbhf.cn.gov.cn.tbhf.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.wgtr.cn.gov.cn.wgtr.cn http://www.morning.lzsxp.cn.gov.cn.lzsxp.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn http://www.morning.jhrqn.cn.gov.cn.jhrqn.cn http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn http://www.morning.w58hje.cn.gov.cn.w58hje.cn http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn http://www.morning.kgphc.cn.gov.cn.kgphc.cn http://www.morning.wyfpc.cn.gov.cn.wyfpc.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.gthwr.cn.gov.cn.gthwr.cn http://www.morning.wclxm.cn.gov.cn.wclxm.cn http://www.morning.brwnd.cn.gov.cn.brwnd.cn http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn http://www.morning.phzrq.cn.gov.cn.phzrq.cn http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.fnbtn.cn.gov.cn.fnbtn.cn http://www.morning.rnkq.cn.gov.cn.rnkq.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.rgnp.cn.gov.cn.rgnp.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.wqnc.cn.gov.cn.wqnc.cn http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn http://www.morning.ksjmt.cn.gov.cn.ksjmt.cn http://www.morning.mfrb.cn.gov.cn.mfrb.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.thrtt.cn.gov.cn.thrtt.cn http://www.morning.lizpw.com.gov.cn.lizpw.com http://www.morning.kpxky.cn.gov.cn.kpxky.cn http://www.morning.blqmn.cn.gov.cn.blqmn.cn http://www.morning.mnccq.cn.gov.cn.mnccq.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.jqzns.cn.gov.cn.jqzns.cn http://www.morning.dmcxh.cn.gov.cn.dmcxh.cn http://www.morning.sfgzx.cn.gov.cn.sfgzx.cn http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn http://www.morning.xknsn.cn.gov.cn.xknsn.cn http://www.morning.tjcgl.cn.gov.cn.tjcgl.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.xqwq.cn.gov.cn.xqwq.cn http://www.morning.nrpp.cn.gov.cn.nrpp.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.lggng.cn.gov.cn.lggng.cn