矩陣範數及其求導

在機器學習的特徵選擇中,利用選擇矩陣的範數對選擇矩陣進行約束,便是正則化技術,是一種稀疏學習。機器學習

矩陣的L0,L1範數

爲了度量稀疏矩陣的稀疏性,則定義矩陣的一種範數,爲:  W1=i,j|Wi,j|。即爲矩陣全部元素的絕對值之和,可以描述接矩陣的稀疏性,可是在優化時,難度較大,是將狀況向矩陣中元素儘量是0的方向優化。函數

1)L0範數是指向量中非0的元素的個數。若是咱們用L0範數來規則化一個參數矩陣W的話,就是但願W的大部分元素都是0。換句話說,讓參數W是稀疏的。學習

2)L1範數是指向量中各個元素絕對值之和。L1範數是L0範數的最優凸近似。任何的規則化算子,若是他在Wi=0的地方不可微,而且能夠分解爲一個「求和」的形式,那麼這個規則化算子就能夠實現稀疏。W的L1範數是絕對值,|w|在w=0處是不可微。測試

3)雖然L0能夠實現稀疏,可是實際中會使用L1取代L0。由於L0範數很難優化求解,L1範數是L0範數的最優凸近似,它比L0範數要容易優化求解。優化

矩陣的L2範數

L2範數,又叫「嶺迴歸」(Ridge Regression)、「權值衰減」(weight decay)。它的做用是改善過擬合。過擬合是:模型訓練時候的偏差很小,可是測試偏差很大,也就是說模型複雜到能夠擬合到全部訓練數據,但在預測新的數據的時候,結果不好。atom

 L2範數是指向量中各元素的平方和而後開根。咱們讓L2範數的規則項||W||2最小,可使得W的每一個元素都很小,都接近於0。而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。spa

L1是絕對值最小,L2是平方最小:L1會趨向於產生少許的特徵,而其餘的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。.net

矩陣的L2,1範數

而爲了進一步說明矩陣的稀疏性,來講明特徵選擇中矩陣L2,1範數的做用。 orm

在特徵選擇中,經過稀疏化的特徵選擇矩陣來選取特徵,即至關因而一種線性變換。 視頻

對於特徵選擇矩陣W,每一行(即行向量)用向量的2-範數描述,即。那麼,描述化以後即爲向量,那麼對整個選擇矩陣W還須要用範數對進行描述,由於損失函數中的正則項,或稱爲正則化的項是一個數,而不是一個向量。所以再用1-範數對描述,便是WL2,1範數。 

 

這即是矩陣的L2,1範數的實際描述過程。矩陣的L2,1範數知足矩陣範數的自反性、非負性、對稱性和三角不等式關係,是一個範數。

先看上面L21範數的定義,注意原始矩陣是d行n列的,根號下平方是對列求和,也就是說是在同一行中進行操做的,根號部分就至關於一個L2範數,由此能夠看出L2,1範數實則爲矩陣X每一行的L2範數之和。在矩陣稀疏表示模型中,把它做爲正則化項有什麼做用呢?前面說到它是每一行的L2範數之和,在最小化問題中,只有每一行的L2範數都最小總問題才最小。而每個行範數取得最小的含義是,當行內儘量多的元素爲0時,約束纔可能取得最小。行內出現儘量多的0元素,儘量稀疏,也稱爲行稀疏。綜上能夠這樣解釋,不一樣於L1範數(矩陣元素絕對值之和)的稀疏要求,l21範數還要求行稀疏!

 那麼,在線性學習模型,損失函數如:

  

在優化中,矩陣的範數該如何求導?關於矩陣的F範數求導,能夠參考矩陣的 Frobenius 範數及其求偏導法則(https://blog.csdn.net/txwh0820/article/details/46392293)。而矩陣L2,1範數求導以下推導: 

對於一個矩陣W=[w1,⋯,wd]T , 其中wi 是W 的第i 行。由矩陣的定義有

那麼,L2,1範數的求導爲

矩陣通常化L2,P範數的求導

就矩陣通常化L2,P範數給出推導: 

矩陣的核範數Nuclear Norm

核範數||W||*是指矩陣奇異值的和,用於約束Low-Rank(低秩)。

從物理意義上講,矩陣的秩度量的就是矩陣的行列之間的相關性。若是矩陣的各行或列是線性無關的,矩陣就是滿秩的,也就是秩等於行數。秩能夠度量相關性,而矩陣的相關性實際上有帶有了矩陣的結構信息。若是矩陣之間各行的相關性很強,那麼就表示這個矩陣實際能夠投影到更低維的線性子空間,也就是用幾個向量就能夠徹底表達了,它就是低秩的。因此:若是矩陣表達的是結構性信息,例如圖像、用戶-推薦表等,那麼這個矩陣各行之間存在這必定的相關性,那這個矩陣通常就是低秩的。低秩矩陣每行或每列均可以用其餘的行或列線性表出,可見它包含大量的冗餘信息。利用這種冗餘信息,能夠對缺失數據進行恢復,也能夠對數據進行特徵提取。rank()是非凸的,在優化問題裏面很難求解,rank(w)的凸近似就是核範數||W||*。

1)矩陣填充(Matrix Completion):

矩陣填充即矩陣補全,是低秩矩陣重構問題,例如推薦系統。其模型表述:已知數據是一個給定的m*n矩陣A,若是其中一些元素由於某種緣由丟失了,可否根據其餘行和列的元素,將這些元素恢復?固然,若是沒有其餘的參考條件,想要肯定這些數據很困難。但若是已知A的秩rank(A)<<m且rank(A)<<n,那麼能夠經過矩陣各行(列)之間的線性相關將丟失的元素求出。這種假定「要恢復的矩陣是低秩的」是十分合理的,好比一個用戶對某電影評分是其餘用戶對這部電影評分的線性組合。因此,經過低秩重構就能夠預測用戶對其未評價過的視頻的喜愛程度。從而對矩陣進行填充。

2)魯棒主成分分析(Robust PCA):

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

Robust PCA考慮的是這樣一個問題:通常狀況下數據矩陣X會包含結構信息,也包含噪聲。那麼能夠將這個矩陣分解爲兩個矩陣相加,一個是低秩的(因爲內部有必定的結構信息,形成各行或列間是線性相關的),另外一個是稀疏的(因爲含有噪聲,而噪聲是稀疏的),則Robust PCA能夠寫成優化問題:

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

因爲rank和L0範數在優化上存在非凸和非光滑特性,因此通常將它轉換成求解如下一個鬆弛的凸優化問題:

具體應用:考慮同一副人臉的多幅圖像,若是將每一副人臉圖像當作是一個行向量,並將這些向量組成一個矩陣的話,那麼能夠確定,理論上,這個矩陣應當是低秩的。可是,因爲在實際操做中,每幅圖像會受到必定程度的影響,例如遮擋,噪聲,光照變化,平移等。這些干擾因素的做用能夠看作是一個噪聲矩陣的做用。因此能夠把同一我的臉的多個不一樣狀況下的圖片各自拉長一列,而後擺成一個矩陣,對這個矩陣進行低秩和稀疏的分解,就能夠獲得乾淨的人臉圖像(低秩矩陣)和噪聲的矩陣了(稀疏矩陣),例如光照,遮擋等等。

矩陣的跡範數Trace Norm

Schatten範數:

令p = 1 ,獲得跡範數:

 

本文爲本身學習過程當中對其餘資源的學習整理而得的學習筆記,內容源自:https://blog.csdn.net/lqzdreamer/article/details/79676305;https://blog.csdn.net/zchang81/article/details/70208061;https://blog.csdn.net/lj695242104/article/details/38801025

相關文章
相關標籤/搜索