1. 程式人生 > >l1正則化的稀疏表示和l2正則化的協同表示

l1正則化的稀疏表示和l2正則化的協同表示

這些天一直在看稀疏表示和協同表示的相關論文,特此做一個記錄:
這篇文章將主要討論以下的問題:
1.稀疏表示是什麼?
2.l1正則化對於稀疏表示的幫助是什麼,l0,l1,l2,無窮範數的作用?
3.稀疏表示的robust為什麼好?
4.l2正則化的協同表示是不是比稀疏表示更好?

好的,內容開始。

稀疏表示是什麼?

稀疏表示的基本思想來自壓縮感知,即我們能用最少的樣本來代表測試資料。同時,更主要的源頭來自:一個樣本可以被其他同類樣本線性表示
這裡寫圖片描述
Naseem I, Togneri R, Bennamoun M. Linear regression for face recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2010, 32(11):2106-2112.

那我們現在嘗試一下,我們不單單是同類的訓練樣本來進行線性表示,而是用全部的訓練樣本來線性表示。
我們用公式化的語言表示出來就是:

(6)y=αi,1vi,1+αi,2vi,2+...+αi,nivi,ni,
i表示第i類,n表示一共有n類
簡化一下
(7)A=[A1,A2,...,Ak]=[vi,1,vi,1,...,vk,nk]
(8)y=Ax0
所得到的向量x就是我們的稀疏表示的字典,根據我們上面提到的一個樣本可以被其他同類樣本線性表示。那麼,其他不同類樣本所對應字典裡面的值應該為0。同時,根據我們壓縮感知的原理,我們應該用更少的樣本來代表測試樣本,這就要我們所獲得的字典
x0
中的值更可能多的為0,也就是更可能稀疏,這也就是我們稀疏表示的基本思想。
具體的演算法流程為:
這裡寫圖片描述

l1正則化對於稀疏表示的幫助是什麼,l0,l1,l2,無窮範數的作用?

剛剛說到我們要讓得到的稀疏表示的字典儘量多的值為0,那顯然正則化的操作可以滿足我們,要想所有值儘可能為0,最理想的肯定是L0正則化哦,我們先把目標函式寫出:
這裡寫圖片描述
為什麼這裡說明L0正則化溼最理想的約束方式,請看下面幾張關於l0,l1,l2,無窮範數在幾何上的表示:

這裡寫圖片描述
From:https://www.zhihu.com/people/CharelsLiu/activities
這裡的q的值就相當正則化的值,雖然這裡沒有說明q=0的情況,我相信有心的讀者一定推斷出來,在q=0的時候,綠線幾乎靠近座標系,當q接近正無窮的時候,綠線的範圍就接近方形,再來一張隨處都能找到的圖:
這裡寫圖片描述


橙色的範圍就是的正則約束,圓圈就是我們的解空間,相交的地方就是我們的解,由於l0正則化的範圍近乎在座標軸上,相交得到的解就會近可能為0,所有所得的解是稀疏的,甚至能夠得到人臉的pose,光照之類的關鍵維度。但是由於求解l_0正則化是一個NP-hard問題。所有一般不解l0正則化,我們通常用l1正則化來代替l0正則化,其實在上圖也可以看到,l0正則化一般的到的點也大多在座標系上,所以得到的解也是稀疏的。接下來,我們也用同樣的公式將l1-norm表示出來:
這裡寫圖片描述

稀疏表示的robust為什麼好?

對於人臉識別問題來說,人臉影象出現遮擋或者噪音是一件很普通的時間。我們的稀疏表示則可以增加人臉識別演算法的魯棒性。
這裡寫圖片描述
正如這張圖所示,每張遮擋的人臉可以看做是原來的人臉的線性表示+遮擋的誤差項,即用式子表示出來為:

(9)y=y0+e0=Ax0+e0
我們在原來的稀疏表示的基礎上加入了誤差項來解決我們遮擋和噪音問題,由於加入了誤差項,我們的目標函式,以及我們的原來的矩陣都要進行修改,修改為:
(10)y=[A,I][x0e0]
我們最後進行分類的殘差項也要進行修改,修改得到的結果為:
這裡寫圖片描述
有了誤差項的幫助,我們的稀疏表示便能增加其的魯棒性。
下面是一張在出現遮擋的情況選擇對應訓練集頂點的示意圖:
這裡寫圖片描述

l2正則化的協同表示是不是比稀疏表示更好?

關於l1正則化是不是稀疏表示效果好的主要原因,還是如果用l2正則化的效果會不會更好的討論,主要來自這篇論文:
Sparse Representation or Collaborative Representation: Which Helps Face Recognition?
從實驗的角度來說明了,即使我們使用了l2-norm的正則化的協同表示,在人臉的識別精度而言依舊不輸於l1-norm的稀疏表示。其實,l1-norm正則化有兩個主要的缺點:
一. l1-norm 所得到的字典必須是over-complete.這就要求我們的訓練樣本數量要儘可能的大。但是,在實際做人臉識別的時候,不具備這麼完備的訓練樣本資料。
二. l1-norm過於嚴格,不夠平滑。導致l1-norm往往只關注到了跟自己同類樣本的相關性,但是卻忽略了不同類樣本的人臉資料的共性。
針對於問題一,由於同為人臉資料,即使為不同類的樣本也具有共性,比如鼻子、眼睛等共性特徵。在訓練樣本不夠的情況下完全可以利用其他不同類樣本的特徵,也就是這就要求我們應該使用l2-norm更加平滑的約束來獲取不同類樣本的共性。
同時,由於l2-norm的目標函式如下:
這裡寫圖片描述
這是一個明顯的最小二乘問題,我們可以很快的得到解析解為:
這裡寫圖片描述
我們可以完全採用相同準確率,並且計算複雜度更低的l2-norm

l2-norm的協同表示程式碼如下:
這裡寫圖片描述

Reference:
Sparse Representation or Collaborative Representation: Which Helps Face Recognition?
Linear Regression for Face Recognition
Robust Face Recognition via Sparse Representation