乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      一文讀懂機(jī)器學(xué)習(xí)中奇異值分解SVD

       InfoRich 2020-05-24

      快速獲得最新干貨

      目錄:

      1. 矩陣分解

        1.1 矩陣分解作用

        1.2 矩陣分解的方法一文讀懂機(jī)器學(xué)習(xí)中奇異值分解SVD

        1.3 推薦學(xué)習(xí)的經(jīng)典矩陣分解算法

      2. SVD具體介紹

        2.1 特征值、特征向量、特征值分解

        2.2 SVD分解

        2.3 SVD分解的應(yīng)用

      1. 矩陣分解

      1.1 矩陣分解作用

      • 矩陣填充(通過(guò)矩陣分解來(lái)填充原有矩陣,例如協(xié)同過(guò)濾的ALS算法就是填充原有矩陣)

      • 清理異常值與離群點(diǎn)

      • 降維、壓縮

      • 個(gè)性化推薦

      • 間接的特征組合(計(jì)算特征間相似度)

        1.2 矩陣分解的方法

      • 特征值分解。

      • PCA(Principal Component Analysis)分解,作用:降維、壓縮。

      • SVD(Singular Value Decomposition)分解,也叫奇異值分解。

      • LSI(Latent Semantic Indexing)或者叫LSA(Latent Semantic Analysis),隱語(yǔ)義分析分解。

      • PLSA(Probabilistic Latent Semantic Analysis),概率潛在語(yǔ)義分析。PLSA和LDA都是主題模型,PLSA是判別式模型。

      • NMF(Non-negative Matrix Factorization),非負(fù)矩陣分解。非負(fù)矩陣分解能夠廣泛應(yīng)用于圖像分析、文本挖掘和語(yǔ)言處理等領(lǐng)域。

      • LDA(Latent Dirichlet Allocation)模型,潛在狄利克雷分配模型。LDA是一種主題模型,將文檔集中每篇文檔的主題以概率的形式給出,可以用于主題聚類(lèi)或者文本分類(lèi),是生成式模型。LDA作為主題模型可以應(yīng)用到很多領(lǐng)域,比如:文本情感分析、文本分類(lèi)、個(gè)性化推薦、社交網(wǎng)絡(luò)、廣告預(yù)測(cè)等方面。

      • MF(Matrix Factorization)模型,矩陣分解模型。矩陣分解其實(shí)可以分為很多種:

      • 基本矩陣分解(Basic Matrix Factorization),basic MF分解。

      • 正則化矩陣分解(Regularized Matrix Factorization)。

      • 概率矩陣分解(Probabilistic Matrix Factorization),PMF。

      • 非負(fù)矩陣分解(Non-negative Matrix Factorization),NMF。

      • 正交非負(fù)矩陣分解(Orthogonal Non-negative Matrix Factorization)。

      • PMF(Probabilistic Matrix Factorization),概率矩陣分解。

      • SVD++

      關(guān)于矩陣分解的方法大概就是上面這些。矩陣分解的主要應(yīng)用是:降維、聚類(lèi)分析、數(shù)據(jù)預(yù)處理、低維度特征學(xué)習(xí)、特征學(xué)習(xí)、推薦系統(tǒng)、大數(shù)據(jù)分析等。上面把主要的矩陣分解方法給列出來(lái)了,比較混亂,再給大家擺上一張矩陣分解發(fā)展的歷史:

      1.     圖1:矩陣分解發(fā)展歷史

      1.3 推薦學(xué)習(xí)的經(jīng)典矩陣分解算法

      矩陣分解的算法這么多,給大家推薦幾個(gè)經(jīng)典的算法來(lái)學(xué)習(xí):

      1) 經(jīng)典的PCA、SVD是機(jī)器學(xué)習(xí)入門(mén)必學(xué)算法。

      2)2003年提出的主題模型LDA,在當(dāng)年提出的時(shí)候,也是大紅大紫,現(xiàn)在也在廣泛的應(yīng)用,可以學(xué)習(xí)一下。

      3)概率矩陣分解(PMF),主要應(yīng)用到推薦系統(tǒng)中,在大規(guī)模的稀疏不平衡Netflix數(shù)據(jù)集上取得了較好的結(jié)果。

      4)非負(fù)矩陣分解,也很重要。非負(fù)矩陣分解及其改進(jìn)版本應(yīng)用到很多領(lǐng)域中。

      2.SVD具體介紹

      2.1 特征值、特征向量、特征值分解

      特征值分解和奇異值分解在機(jī)器學(xué)習(xí)中都是很常見(jiàn)的矩陣分解算法。兩者有著很緊密的關(guān)系,特征值分解和奇異值分解的目的都是一樣,就是提取出一個(gè)矩陣最重要的特征。

      1)特征值、特征向量

      如果一個(gè)向量v是矩陣A的特征向量,將一定可以表示成下面的形式:

      其中,λ是特征向量v對(duì)應(yīng)的特征值,一個(gè)矩陣的一組特征向量是一組正交向量。

      思考:為什么一個(gè)向量和一個(gè)數(shù)相乘的效果與一個(gè)矩陣和一個(gè)向量相乘的效果是一樣的呢?

      答案:矩陣A與向量v相乘,本質(zhì)上是對(duì)向量v進(jìn)行了一次線(xiàn)性變換(旋轉(zhuǎn)或拉伸),而該變換的效果為常數(shù)λ乘以向量v。當(dāng)我們求特征值與特征向量的時(shí)候,就是為了求矩陣A能使哪些向量(特征向量)只發(fā)生伸縮變換,而變換的程度可以用特征值λ表示。

      2)特征值與特征向量的幾何意義

      一個(gè)矩陣其實(shí)就是一個(gè)線(xiàn)性變換,因?yàn)橐粋€(gè)矩陣乘以一個(gè)向量后得到的向量,其實(shí)就相當(dāng)于將這個(gè)向量進(jìn)行了線(xiàn)性變換。比如說(shuō)下面的這個(gè)矩陣:

      它其實(shí)對(duì)應(yīng)的線(xiàn)性變換是圖2的形式:

      圖2:矩陣M的線(xiàn)性變換

      因?yàn)檫@個(gè)矩陣M乘以一個(gè)向量(x,y)的結(jié)果是:

      上面的矩陣是對(duì)稱(chēng)的,所以這個(gè)變換是一個(gè)對(duì)x、y軸的方向一個(gè)拉伸變換(每一個(gè)對(duì)角線(xiàn)上的元素將會(huì)對(duì)一個(gè)維度進(jìn)行拉伸變換,當(dāng)值大于1時(shí)是拉伸,當(dāng)值小于1時(shí)是縮短),如圖2所示。當(dāng)矩陣不是對(duì)稱(chēng)的時(shí)候,假如說(shuō)矩陣是下面的樣子:

      它所描述的變換是下面的樣子:

      圖3:M是非對(duì)稱(chēng)矩陣變換

      這其實(shí)是在平面上對(duì)一個(gè)軸進(jìn)行的拉伸變換,如圖3藍(lán)色的箭頭所示,藍(lán)色的箭頭是一個(gè)最主要的變換方向(變換的方向可能不止一個(gè))。如果想要描述好一個(gè)變換,那我們就需要描述好這個(gè)變換主要的變化方向。

      2)特征值分解

      對(duì)于矩陣A,有一組特征向量v,將這組向量進(jìn)行正交化單位化,就能得到一組正交單位向量。特征值分解,就是將矩陣A分解為如下式:

      其中,Q是矩陣A的特征向量組成的矩陣,則是一個(gè)對(duì)角陣,對(duì)角線(xiàn)上的元素就是特征值。

      我們來(lái)分析一下特征值分解的式子,分解得到的Σ矩陣是一個(gè)對(duì)角矩陣,里面的特征值是由大到小排列的,這些特征值所對(duì)應(yīng)的特征向量就是描述這個(gè)矩陣變換方向(從主要的變化到次要的變化排列)。

      當(dāng)矩陣是高維的情況下,那么這個(gè)矩陣就是高維空間下的一個(gè)線(xiàn)性變換,這個(gè)線(xiàn)性變換可能沒(méi)法通過(guò)圖片來(lái)表示,但是可以想象,這個(gè)變換也同樣有很多的變化方向,我們通過(guò)特征值分解得到的前N個(gè)特征向量,就對(duì)應(yīng)了這個(gè)矩陣最主要的N個(gè)變化方向。我們利用這前N個(gè)變化方向,就可以近似這個(gè)矩陣變換。也就是之前說(shuō)的:提取這個(gè)矩陣最重要的特征。

      總結(jié):特征值分解可以得到特征值與特征向量,特征值表示的是這個(gè)特征到底有多么重要,而特征向量表示這個(gè)特征是什么,可以將每一個(gè)特征向量理解為一個(gè)線(xiàn)性的子空間,我們可以利用這些線(xiàn)性的子空間干很多事情。不過(guò),特征值分解也有很多的局限,比如說(shuō)變換的矩陣必須是方陣。

      以上圖文的方式介紹特征值特征向量?jī)?nèi)容來(lái)自:

      http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html

      3)特征值分解的例子

      這里我們用一個(gè)簡(jiǎn)單的方陣來(lái)說(shuō)明特征值分解的步驟。我們的方陣A定義為:

      首先,由方陣A的特征方程,求出特征值。

      特征值為重?cái)?shù)是2)。

      然后,把每個(gè)特征值λ帶入線(xiàn)性方程組,求出特征向量。

      當(dāng)λ=2時(shí),解線(xiàn)性方程組 。

      解得特征向量為:。

      當(dāng)λ=1時(shí),解線(xiàn)性方程組

      。特征向量為:。

      最后,方陣A的特征值分解為:

      2.2 SVD分解

      1)特征值分解矩陣的缺點(diǎn)

      我們前面講了很多特征值、特征向量和特征值分解,而且基于我們以前學(xué)習(xí)的線(xiàn)性代數(shù)知識(shí),利用特征值分解提取特征矩陣是一個(gè)容易理解且便于實(shí)現(xiàn)的方法。但是為什么還存在奇異值分解呢?特征值分解最大的問(wèn)題是只能針對(duì)方陣,即n*n的矩陣。而在實(shí)際的應(yīng)用中,我們分解的大部分都不是方陣。

      舉個(gè)例子:

      關(guān)系型數(shù)據(jù)庫(kù)中的某一張表的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)就類(lèi)似于一個(gè)二維矩陣,假設(shè)這個(gè)表有m行,有n個(gè)字段,那么這個(gè)表數(shù)據(jù)矩陣規(guī)模就是m*n。很明顯,在絕大部分情況下,m與n是不相等的。如果這個(gè)時(shí)候要對(duì)這個(gè)矩陣進(jìn)行特征提取,特征值分解的方法明顯就不行了。此時(shí),就可以用SVD對(duì)非方陣矩陣進(jìn)行分解。

      2)奇異值分解

      奇異值分解是一個(gè)能適用于任意矩陣的一種分解的方法,對(duì)于任意矩陣A總是存在一個(gè)奇異值分解:

      假設(shè)A是一個(gè)m*n的矩陣,那么得到的U是一個(gè)m*m的方陣,U里面的正交向量被稱(chēng)為左奇異向量。Σ是一個(gè)m*n的矩陣,Σ除了對(duì)角線(xiàn)其它元素都為0,對(duì)角線(xiàn)上的元素稱(chēng)為奇異值。是v的轉(zhuǎn)置矩陣,是一個(gè)n*n的矩陣,它里面的正交向量被稱(chēng)為右奇異值向量。而且一般來(lái)講,我們會(huì)將Σ上的值按從大到小的順序排列。上面矩陣的維度變化可以參照?qǐng)D4所示。

      圖4:奇異值分解中各個(gè)矩陣維度變化

      思考:雖說(shuō)上面奇異值分解等式成立,但是如何求得左奇異向量、右奇異向量和奇異值呢?

      答案:由上面的奇異值分解等式,我們是不知道如何拆分矩陣A的。我們可以把奇異值和特征值聯(lián)系起來(lái)。

      首先,我們用矩陣A的轉(zhuǎn)置乘以A,得到一個(gè)方陣,用這樣的方陣進(jìn)行特征分解,得到的特征值和特征向量滿(mǎn)足下面的等式:

      這里的是我們要求的右奇異向量。

      其次,我們將A和A的轉(zhuǎn)置做矩陣的乘法,得到一個(gè)方陣,用這樣的方陣進(jìn)行特征分解,得到的特征和特征向量滿(mǎn)足下面的等式:

      這里的 就是左奇異向量。

      思考:上面我們說(shuō) 的特征向量組成的矩陣就是我們SVD中的V矩陣,而的特征向量組成的就是我們SVD中的U矩陣,這有什么根據(jù)么?我們來(lái)證明一下,以V矩陣的證明為例。

      上式證明中使用了可以看出,的特征向量

      組成的矩陣就是我們SVD中的V矩陣,而的特征向量組成的就是我們SVD中的U矩陣。

      補(bǔ)充定義:

      此外,我們還可以得到奇異值,奇異值求法有兩種:

      a) 第一種:

      b)第二種:

      通過(guò)上面*式的證明,我們還可以看出,特征值矩陣等于奇異值矩陣的平方,也就是說(shuō)特征值和奇異值滿(mǎn)足如下關(guān)系:

      這里的就是奇異值,奇異值跟特征值類(lèi)似,在矩陣Σ中也是從大到小排列。

      思考:我們已經(jīng)知道如何用奇異值分解任何矩陣了,那么問(wèn)題又來(lái)了,一個(gè)m*n的矩陣A,你把它分解成m*m的矩陣U、m*n的矩陣Σ和n*n的矩陣。。這三個(gè)矩陣中任何一個(gè)的維度似乎一點(diǎn)也不比A的維度小,而且還要做兩次矩陣的乘法,這不是沒(méi)事找事干嘛!把簡(jiǎn)單的事情搞復(fù)雜了么!并且我們知道矩陣乘法的時(shí)間復(fù)雜度為。O那奇異值分解到底要怎么做呢?

      補(bǔ)充:兩個(gè)矩陣A:m*n,B:n*p相乘,時(shí)間復(fù)雜度(O(nmp))。分析偽代碼如下:

      1. input:int A[m,n],B[n,p]

      2. Let C be a new matrix of the appropriate size

      3.      for i in 1 to n    

      4.        for j in 1 to p

      5.            Let sum = 0  

      6.            for k in 1 to m    

      7.                sum += A[i,k]*B[k,j]  

      8.            Set Cij = sum

      所以?xún)蓚€(gè)矩陣相乘的時(shí)間復(fù)雜度是。

      答案:在奇異值分解矩陣中Σ里面的奇異值按從大到小的順序排列,奇異值從大到小的順序減小的特別快。在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上。也就是說(shuō),剩下的90%甚至99%的奇異值幾乎沒(méi)有什么作用。因此,我們可以用前面r個(gè)大的奇異值來(lái)近似描述矩陣,于是奇異值分解公式可以寫(xiě)成如下:

      其中r是一個(gè)遠(yuǎn)遠(yuǎn)小于m和n的數(shù),右邊的三個(gè)矩陣相乘的結(jié)果將會(huì)使一個(gè)接近A的矩陣。如果r越接近于n,則相乘的結(jié)果越接近于A(yíng)。如果r的取值遠(yuǎn)遠(yuǎn)小于n,從計(jì)算機(jī)內(nèi)存的角度來(lái)說(shuō),右邊三個(gè)矩陣的存儲(chǔ)內(nèi)存要遠(yuǎn)遠(yuǎn)小于矩陣A的。所以在奇異值分解中r的取值很重要,就是在計(jì)算精度和時(shí)間空間之間做選擇。

      3)SVD計(jì)算舉例

      這里我們用一個(gè)簡(jiǎn)單的矩陣來(lái)說(shuō)明奇異值分解的步驟。我們的矩陣A定義為:

      2.3 SVD分解的應(yīng)用

      異值分解的應(yīng)用有很多,比如:用SVD解PCA、潛在語(yǔ)言索引也依賴(lài)于SVD算法。可以說(shuō),SVD是矩陣分解、降維、壓縮、特征學(xué)習(xí)的一個(gè)基礎(chǔ)的工具,所以SVD在機(jī)器學(xué)習(xí)領(lǐng)域相當(dāng)?shù)闹匾?/span>

      1)降維。

      通過(guò)奇異值分解的公式,我們可以很容易看出來(lái),原來(lái)矩陣A的特征有n維。經(jīng)過(guò)SVD分解后,可以用前r個(gè)非零奇異值對(duì)應(yīng)的奇異向量表示矩陣A的主要特征,這樣就把矩陣A進(jìn)行了降維。

      2)壓縮。

      通過(guò)奇異值分解的公式,我們可以看出來(lái),矩陣A經(jīng)過(guò)SVD分解后,要表示原來(lái)的大矩陣A,我們只需要存儲(chǔ)U、Σ、V三個(gè)較小的矩陣即可。而這三個(gè)較小規(guī)模的矩陣占用內(nèi)存上也是遠(yuǎn)遠(yuǎn)小于原有矩陣A的,這樣SVD分解就起到了壓縮的作用。

      Reference:

      1.https://blog.csdn.net/u011081315/article/details/76252524

      2.https://blog.csdn.net/weixin_37589896/article/details/78423493

      3.http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html

      4.https://blog.csdn.net/bitcarmanlee/article/details/52068118

      5.http://www.cnblogs.com/pinard/p/6251584.html

      交流群

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多