在機器學習的特征選擇中,利用選擇矩陣的范數對選擇矩陣進行約束,即是正則化技術,是一種稀疏學習。
矩陣的L0,L1范數
為了度量稀疏矩陣的稀疏性,則定義矩陣的一種范數,為: ∥W∥1=∑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)。它的作用是改善過擬合。過擬合是:模型訓練時候的誤差很小,但是測試誤差很大,也就是說模型復雜到可以擬合到所有訓練數據,但在預測新的數據的時候,結果很差。
L2范數是指向量中各元素的平方和然后開根。我們讓L2范數的規則項||W||2最小,可以使得W的每個元素都很小,都接近於0。而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。
L1是絕對值最小,L2是平方最小:L1會趨向於產生少量的特征,而其他的特征都是0,而L2會選擇更多的特征,這些特征都會接近於0。
矩陣的L2,1范數
而為了進一步說明矩陣的稀疏性,來說明特征選擇中矩陣L2,1范數的作用。
在特征選擇中,通過稀疏化的特征選擇矩陣來選取特征,即相當於是一種線性變換。
對於特征選擇矩陣W,每一行(即行向量)用向量的2-范數描述,即。那么,描述化之后即為向量
,那么對整個選擇矩陣W還需要用范數對
進行描述,因為損失函數中的正則項,或稱為正則化的項是一個數,而不是一個向量。因此再用1-范數對
描述,即是W的L2,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