method_Robust PCA

PCA(主成分分析)方法可以有效的找出數據中最“主要”的元素和結構,去除噪音和冗餘,將原有的複雜數據降維,揭示隱藏在複雜數據背後的簡單結構。我們知道,最簡單的主成分分析方法就是PCA了。從線性代數的角度看,PCA的目標就是使用另一組基去重新描述得到的數據空間。希望在這組新的基下,能儘量揭示原有的數據間的關係。這個維度即最重要的“主元”。PCA的目標就是找到這樣的“主元”,最大程度的去除冗餘和噪音的干擾。


魯棒主成分分析(Robust PCA)考慮的是這樣一個問題:一般我們的數據矩陣X會包含結構信息,也包含噪聲。那麼我們可以將這個矩陣分解爲兩個矩陣相加,一個是低秩的(由於內部有一定的結構信息,造成各行或列間是線性相關的),另一個是稀疏的(由於含有噪聲,而噪聲是稀疏的),則魯棒主成分分析可以寫成以下的優化問題:

這裏寫圖片描述

與經典PCA問題一樣,魯棒PCA本質上也是尋找數據在低維空間上的最佳投影問題。對於低秩數據觀測矩陣X,假如X受到隨機(稀疏)噪聲的影響,則X的低秩性就會破壞,使X變成滿秩的。所以我們就需要將X分解成包含其真實結構的低秩矩陣和稀疏噪聲矩陣之和。找到了低秩矩陣,實際上就找到了數據的本質低維空間。那有了PCA,爲什麼還有這個Robust PCA呢?Robust在哪?因爲PCA假設我們的數據的噪聲是高斯的,對於大的噪聲或者嚴重的離羣點,PCA會被它影響,導致無法正常工作。而Robust PCA則不存在這個假設。它只是假設它的噪聲是稀疏的,而不管噪聲的強弱如何。


由於rank和L0範數在優化上存在非凸和非光滑特性,所以我們一般將它轉換成求解以下一個鬆弛的凸優化問題:

這裏寫圖片描述

說個應用吧。考慮同一副人臉的多幅圖像,如果將每一副人臉圖像看成是一個行向量,並將這些向量組成一個矩陣的話,那麼可以肯定,理論上,這個矩陣應當是低秩的。但是,由於在實際操作中,每幅圖像會受到一定程度的影響,例如遮擋,噪聲,光照變化,平移等。這些干擾因素的作用可以看做是一個噪聲矩陣的作用。所以我們可以把我們的同一個人臉的多個不同情況下的圖片各自拉長一列,然後擺成一個矩陣,對這個矩陣進行低秩和稀疏的分解,就可以得到乾淨的人臉圖像(低秩矩陣)和噪聲的矩陣了(稀疏矩陣),例如光照,遮擋等等。至於這個的用途,你懂得。

這裏寫圖片描述

This website provides MATLAB packages to solve the RPCA optimization problem by different methods. All of the codes are Copyright 2009 Perception and Decision Lab, University of Illinois at Urbana Champaign, and Microsoft Research Asia, Beijing. (For more information: http://perception.csl.illinois.edu/matrix-rank/sample_code.html)

            <link rel="stylesheet" href="http://s.csdnimg.cn/static/markdown/markdown_views.css?v=2.0">
                </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章