日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性代数应该这样讲(四)-奇异值分解与主成分分析

發(fā)布時(shí)間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性代数应该这样讲(四)-奇异值分解与主成分分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在《線性代數(shù)這樣講(二)》(以下簡稱「二」)中,小夕詳細(xì)講解了特征值與特征向量的意義,并且簡單描述了一下矩陣的特征值分解的意義和原理。本文便基于對這幾個(gè)重要概念的理解來進(jìn)一步講解SVD分解。

?

回顧一下,在「二」中,小夕講過一個(gè)方陣W可以分解為它的特征向量矩陣eVec與特征值矩陣eVal相乘的形式,即用 eVec * eVal * eVec-1?來近似原方陣W。

?

那么問題來啦,如果我們的矩陣不是方陣呢,比如是一個(gè)m*n(m≠n)的矩陣呢?可不可以也分解成特征值和特征向量的形式呢?

顯然,嚴(yán)格的特征值和特征向量當(dāng)然不可以啦,由于分解后,存在eVec的逆矩陣eVec-1,因此eVec一定是方陣,而eVec是方陣的話,eVec * eVal * eVec-1的結(jié)果也肯定是方陣?yán)?#xff0c;當(dāng)然不能近似原矩陣。但是我們可以定義一個(gè)意義類似,但是數(shù)學(xué)上行得通的定義:

?

對于維度為m*n且m≠n的矩陣W,我們可以將其分解為U*∑*V的形式,其中U的維度為m*m,∑的維度為m*n,V的維度是n*n,這樣讓U依然代表著“特征向量”的意思,V也代表“特征向量”的意思,∑就代表“特征值”的意思,可以嗎?

等等!在《線性代數(shù)這樣講(一)》中講過矩陣乘法,那么在計(jì)算U*∑的時(shí)候,是拿U中的每一去乘以特征值矩陣,因此U中的每一就是一個(gè)特征向量(回顧一下,每個(gè)特征向量對應(yīng)一個(gè)特征值。還不理解的童鞋用筆和紙?bào)w會一下),但是到了(U*∑)的結(jié)果去乘V的時(shí)候,是拿V的每一列去跟之前的結(jié)果相乘,因此顯然V的每一行是一個(gè)特征向量,所以這里為了避免分解后在使用U和V時(shí)發(fā)生歧義,我們用U*∑*VT來描述分解的結(jié)果,這樣U和V就都是一一個(gè)“特征向量”啦。

?

這里,U里的向量我們定義為左奇異向量,V里的向量我們定義為右奇異向量,它們的意義就暫且理解為跟特征向量差不多。顯然,∑就可以理解為跟之前的特征值矩陣意義差不多啦,因此∑的對角線上的值就相當(dāng)于之前的特征值,這里叫做奇異值,對角線之外的值也跟以前一樣,全為0。這個(gè)分解過程就叫奇異值分解

?

好啦,定義好了,那么如何將一個(gè)m*n的矩陣分解成這三個(gè)奇異矩陣呢?

?

前方低能預(yù)警!下面這部分可看可不看,純數(shù)學(xué)過程我們就不多care啦,不感興趣的童鞋可以快速往下劃~

對于m*n的矩陣W,其轉(zhuǎn)置W-T當(dāng)然就是n*m啦,所以WT*W就是n*n的方陣,然后利用「二」中提到的特征值分解將其分解出若干特征值及其特征向量,因此對于分解出的每個(gè)特征值\lambda_i及其對應(yīng)的特征向量,都有:

?

?

這里的每個(gè)特征向量就是右奇異矩陣中的一個(gè)奇異向量,即右奇異向量。

?

然后我們對每個(gè)開根號,得到,這里得到的每個(gè)就是奇異值矩陣∑中的一個(gè)奇異值。

?

然后我們對于每個(gè)及其對應(yīng)的,都令,這樣得到的每個(gè)就是左奇異矩陣中的一個(gè)奇異向量,即左奇異向量。

?

Over。

?

那么奇異值分解得到的奇異值和左右奇異向量跟特征值與特征向量相比,除了意義相似,有沒有什么不同呢?

?

這里很重要的一點(diǎn)性質(zhì)就是,將奇異值從大到小排序后,大部分情況下,前幾個(gè)奇異值(約前10%甚至前1%)的和就占據(jù)了全部奇異值之和的99%!

而在「二」中,我們講過,特征值越接近0,就代表這個(gè)特征值對應(yīng)的特征向量越?jīng)]有意義(越?jīng)]有存在感),當(dāng)特征值為0時(shí),直接表示可以刪掉這個(gè)特征向量(這個(gè)坐標(biāo)軸),刪掉后不會給原矩陣(原映射)帶來任何信息量損失。因此,奇異值分解的這個(gè)性質(zhì)在非常多的機(jī)器學(xué)習(xí)場合下可以發(fā)揮重要的作用。

?

比如我們的機(jī)器學(xué)習(xí)任務(wù)中,由專家選取或者深度學(xué)習(xí)的前幾層學(xué)習(xí)到了10000個(gè)特征,而這10000個(gè)特征完全有可能是高度冗余的,(比如某一維度x1與另一維度x2恒滿足x1=2*x2,這時(shí)就完全可以刪掉其中一個(gè)維度,因?yàn)橐粋€(gè)維度的值完全可以由另一維度計(jì)算出來,因此刪掉后不會損失任何信息),那么我們想要除掉其中的冗余特征,或者說我們僅僅想用100個(gè)特征去描述這10000個(gè)特征所描述的東西,怎么辦呢?

?

用奇異值分解就會非常簡單。假如我們有9000個(gè)樣本,那么樣本及其對應(yīng)的特征就組成了一個(gè)9000*10000的矩陣X,那么我們用U*∑*VT去逼近X,并且將U限制為9000*100,∑為100*100,VT為100*10000(標(biāo)準(zhǔn)的、一定無信息損耗的奇異值分解是U為9000*9000,∑為9000*10000,VT為10000*10000),這時(shí)運(yùn)用奇異值分解后,就得到了9000*100的左奇異矩陣,顯然這就代表著用100維的新特征去重新描述這9000個(gè)樣本。而右奇異矩陣就代表著如何將100維的新特征映射回10000維的舊特征。顯然,奇異值矩陣中的每個(gè)奇異值就代表著每個(gè)新特征對于描述樣本的重要性啦。

?

這樣就成功的完成了降維的操作。

?

當(dāng)然啦,實(shí)際中,我們往往不知道降到多少維是性價(jià)比最高的,因此,我們可以選擇保留舊特征描述的99%的信息量。

這時(shí),比如10000維的舊特征,通過前面所述的計(jì)算和排序奇異值,算出保留99%的信息量(即前n個(gè)奇異值之和除以總奇異值之和大于99%)時(shí)需要保留前多少個(gè)奇異值,比如算出來的值是前87個(gè)大奇異值,那么我們就可以將原來10000維的舊特征空間用僅有87維的新特征空間描述啦~而僅僅會丟失1%的信息量哦。

?

誒?我好想不小心把PCA給講完了。。。沒錯(cuò),通過上面的方式將SVD應(yīng)用于維度的壓縮的方法,就是每個(gè)學(xué)機(jī)器學(xué)習(xí)的人一定聽說過的主成分分析(PCA)

?

(走過路過不要錯(cuò)過~買SVD送PCA啦~還送美美的老板娘哦)

總結(jié)

以上是生活随笔為你收集整理的线性代数应该这样讲(四)-奇异值分解与主成分分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。