機器學習中的範數與稀疏性

機器學習中的範數與稀疏性

 

監督機器學習問題無非就是“minimize your error while regularizing your parameters”,也就是在規則化參數的同時最小化誤差。最小化誤差是爲了讓我們的模型擬合我們的訓練數據,而規則化參數是防止我們的模型過分擬合我們的訓練數據。因爲參數太多,會導致我們的模型複雜度上升,容易過擬合,也就是我們的訓練誤差會很小。但訓練誤差小並不是我們的最終目標,我們的目標是希望模型的測試誤差小,也就是能準確的預測新的樣本。所以,我們需要保證模型“簡單”的基礎上最小化訓練誤差,這樣得到的參數才具有好的泛化性能(也就是測試誤差也小),而模型“簡單”就是通過規則函數來實現的。另外,規則項的使用還可以約束我們的模型的特性。這樣就可以將人對這個模型的先驗知識融入到模型的學習當中,強行地讓學習到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。


規則化符合奧卡姆剃刀(Occam's razor)原理。不過它的思想很平易近人:在所有可能選擇的模型中,我們應該選擇能夠很好地解釋已知數據並且十分簡單的模型。
從貝葉斯估計的角度來看,規則化項對應於模型的先驗概率。


統計學習角度

 

 

統計學習理論的核心爲泛化方程,也就是\mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]

\mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]

 

,其中左邊表示期望風險,就是你在測試集上的錯誤率,右邊第一項表示經驗風險,就是你在訓練集上的錯誤率,右邊第二項稱之爲泛化複雜度,它取決於訓練樣本數m和模型\mathcal{F}

\mathcal{F}


我們知道一般情況下,\mathcal{R}_{emp} \le \mathcal{R}_{ept}

\mathcal{R}_{emp} \le \mathcal{R}_{ept}

訓練集上的損失一定小於測試集上的損失。所以,結合起來有:\mathcal{R}_{emp} \le \mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]

\mathcal{R}_{emp} \le \mathcal{R}_{ept} \le \mathcal{R}_{emp} + \mathcal{G}_m[\mathcal{F}]

 

如果此時泛化複雜度爲0,那麼測試集上的效果就和訓練集上的效果一致,這時,學習機就具有了絕對的泛化能力。然而實際上,我們很難找到一個模型,其在訓練集上損失小並且同時泛化複雜度也小。
言歸正傳,我們對於線性模型或者說更爲廣泛意義下的線性模型(比如前饋神經網絡可以看做一種層疊的線性模型),有如下泛化方程:


\mathcal{R}_{ept} \le \mathcal{R}_{emp} + (RL)^{K-1}ln^{\frac{3}{2}(K-1)}(m)\sqrt{\frac{R^2N^2}{m}} + \sqrt{\frac{ln(\delta^{-1})}{m}}

\mathcal{R}_{ept} \le \mathcal{R}_{emp} + (RL)^{K-1}ln^{\frac{3}{2}(K-1)}(m)\sqrt{\frac{R^2N^2}{m}} + \sqrt{\frac{ln(\delta^{-1})}{m}}

其中:

R=||\vec w||_l

R=||\vec w||_l

,
L爲神經爲神經網絡激活函數的李普希茲係數,N爲樣本的最大範數,m 爲訓練集樣本數,K爲神經網絡層數,其中,一般的感知器可看做 1 層神經網絡(K=1)。依據我們上述對統計泛化的描述,我們知道右邊的第二項應該越小越好,越小的話,學習機泛化能力越強,測試集上的效果就越有保證!所以我們必須最小化 R,也就是最小化||\vec w||_l

||\vec w||_l

,這就是從統計泛化角度解釋了權係數範數的作用。
最小化權係數範數\min ||\vec w||_l

\min ||\vec w||_l

的統計學習本質是提高泛化能力。

 


求解可逆性角度,條件數,解的穩定性

線性迴歸有 closed-form 解法,例如 如下是 最小二乘法(嚴謹點是 ORDINARY least square,簡寫OLS) 求解線性迴歸時用到的 mse loss

L = \frac{1}{N}|Y - XW|^2

L = \frac{1}{N}|Y - XW|^2


由於 L 是凸的,所以直接求導可以得出W的最優解,
W = (X^TX)^{-1}X^TY

W = (X^TX)^{-1}X^TY


這裏需要求個 逆, 然而若干年前的統計學家在實際操作中經常發現由於ill-conditioned problem**這個逆求不了, 也就是說下面這個行列式是等於0的,
|X^TX| = 0

|X^TX| = 0


那不妨稍稍修整一下,得到了下面這個L
L = \frac{1}{N}|Y-XW|^2 + \lambda|W|^2

L = \frac{1}{N}|Y-XW|^2 + \lambda|W|^2


就是加了個 L2 norm,然後 L還是凸的,繼續求導得到W如下
W = (X^TX - \lambda I)^{-1}X^TY

W = (X^TX - \lambda I)^{-1}X^TY


這樣就好比是在之前行列式等於0的那個矩陣的對角線上減去了\lambda

\lambda

,希望可以求逆,可得到僞逆解。

 


規則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項(regularizer)或懲罰項(penalty term)。
一般來說,監督學習可以看做最小化下面的目標函數:

 

 

其中,第一項L(yi,f(xi;w)) 衡量我們的模型(分類或者回歸)對第i個樣本的預測值f(xi;w)和真實的標籤yi之前的誤差。因爲我們的模型是要擬合我們的訓練樣本的,所以我們要求這一項最小,也就是要求我們的模型儘量的擬合我們的訓練數據。但正如上面說言,我們不僅要保證訓練誤差最小,我們更希望我們的模型測試誤差小,所以我們需要加上第二項,也就是對參數w的規則化函數Ω(w)去約束我們的模型儘量的簡單。

到這裏,你會發現,機器學習的大部分帶參模型都和這個不但形似,而且神似。是的,其實大部分無非就是變換這兩項而已。對於第一項Loss函數,如果是Square loss,那就是最小二乘;如果是Hinge Loss,那就是著名的SVM;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;還有等等。不同的loss函數,具有不同的擬合特性,這個也得就具體問題具體分析的。

規則化函數Ω(w)也有很多種選擇,一般是模型複雜度的單調遞增函數,模型越複雜,規則化值就越大。比如,規則化項可以是模型參數向量的範數。然而,不同的選擇對參數w的約束不同,取得的效果也不同,但常見的都聚集在:零範數、一範數、二範數、跡範數、Frobenius 範數和核範數等等。


一、L0範數與L1範數

L0範數是指向量中非0的元素的個數。如果我們用L0範數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0。換句話說,讓參數W是稀疏的。

L1範數是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則算子”(Lasso regularization)。爲什麼L1範數會使權值稀疏?有人可能會這樣給你回答“它是L0範數的最優凸近似”。實際上,還存在一個更美的回答:任何的規則化算子,如果他在Wi=0的地方不可微,並且可以分解爲一個“求和”的形式,那麼這個規則化算子就可以實現稀疏。這說是這麼說,W的L1範數是絕對值,|w|在w=0處是不可微,但這還是不夠直觀。這裏因爲我們需要和L2範數進行對比分析。

既然L0可以實現稀疏,爲什麼不用L0,而要用L1呢?個人理解
一是因爲L0範數很難優化求解(NP難問題),
二是L1範數是L0範數的最優凸近似,而且它比L0範數要容易優化求解。
所以大家才把目光和萬千寵愛轉於L1範數。

 

OK,來個一句話總結:L1範數和L0範數可以實現稀疏,L1因具有比L0更好的優化求解特性而被廣泛應用。

參數稀疏有什麼好處

1)特徵選擇(Feature Selection):
      大家對稀疏規則化趨之若鶩的一個關鍵原因在於它能實現特徵的自動選擇。一般來說,xi的大部分元素(也就是特徵)都是和最終的輸出yi沒有關係或者不提供任何信息的,在最小化目標函數的時候考慮xi這些額外的特徵,雖然可以獲得更小的訓練誤差,但在預測新的樣本時,這些沒用的信息反而會被考慮,從而干擾了對正確yi的預測。稀疏規則化算子的引入就是爲了完成特徵自動選擇的光榮使命,它會學習地去掉這些沒有信息的特徵,也就是把這些特徵對應的權重置爲0。

2)可解釋性(Interpretability):
       另一個青睞於稀疏的理由是,模型更容易解釋。例如患某種病的概率是y,然後我們收集到的數據x是1000維的,也就是我們需要尋找這1000種因素到底是怎麼影響患上這種病的概率的。假設我們這個是個迴歸模型:y=w1*x1+w2*x2+…+w1000*x1000+b(當然了,爲了讓y限定在[0,1]的範圍,一般還得加個Logistic函數)。通過學習,如果最後學習到的w*就只有很少的非零元素,例如只有5個非零的wi,那麼我們就有理由相信,這些對應的特徵在患病分析上面提供的信息是巨大的,決策性的。也就是說,患不患這種病只和這5個因素有關,那醫生就好分析多了。但如果1000個wi都非0,醫生面對這1000種因素,累覺不愛。

二、L2範數
L2範數: ||W||2也不遜於L1範數,它有兩個美稱,在迴歸裏面,有人把有它的迴歸叫“嶺迴歸”(Ridge Regression),有人也叫它“權值衰減weight decay”。它的強大功效是改善機器學習裏面一個非常重要的問題:過擬合。至於過擬合是什麼,就是模型訓練時候的誤差很小,但在測試的時候誤差很大,也就是我們的模型複雜到可以擬合到我們的所有訓練樣本了,但在實際預測新的樣本的時候,糟糕的一塌糊塗。通俗的講就是應試能力很強,實際應用能力很差。擅長背誦知識,卻不懂得靈活利用知識。例如下圖所示(來自Ng的course):


上面的圖是線性迴歸,下面的圖是Logistic迴歸,也可以說是分類的情況。從左到右分別是欠擬合(underfitting,也稱High-bias)、合適的擬合和過擬合(overfitting,也稱High variance)三種情況。可以看到,如果模型複雜(可以擬合任意的複雜函數),它可以讓我們的模型擬合所有的數據點,也就是基本上沒有誤差。對於迴歸來說,就是我們的函數曲線通過了所有的數據點,如上圖右。對分類來說,就是我們的函數曲線要把所有的數據點都分類正確,如下圖右。這兩種情況很明顯過擬合了。


OK,那現在到非常關鍵的問題了,爲什麼L2範數可以防止過擬合?回答這個問題之前,我們得先看看L2範數是個什麼東西。

 

L2範數是指向量各元素的平方和然後求平方根。我們讓L2範數的規則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1範數不同,它不會讓它等於0,而是接近於0,這裏是有很大的區別的哦。而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。爲什麼越小的參數說明模型越簡單?我也不懂,我的理解是:限制了參數很小,實際上就限制了多項式某些分量的影響很小(看上面線性迴歸的模型的那個擬合的圖),這樣就相當於減少參數個數。
這裏也一句話總結下:通過L2範數,我們可以實現了對模型空間的限制,從而在一定程度上避免了過擬合。

L2範數的好處

1)學習理論的角度:

       從學習理論的角度來說,L2範數可以防止過擬合,提升模型的泛化能力。

2)優化計算的角度:

       從優化或者數值計算的角度來說,L2範數有助於處理 condition number不好的情況下矩陣求逆很困難的問題。

優化有兩大難題,一是:局部最小值,二是:ill-condition病態問題。我們要找的是全局最小值,如果局部最小值太多,那我們的優化算法就很容易陷入局部最小而不能自拔,這很明顯不是觀衆願意看到的劇情。那下面我們來聊聊ill-condition。ill-condition對應的是well-condition。那他們分別代表什麼?假設我們有個方程組AX=b,我們需要求解X。如果A或者b稍微的改變,會使得X的解發生很大的改變,那麼這個方程組系統就是ill-condition的,反之就是well-condition的。我們具體舉個例子吧:


咱們先看左邊的那個。第一行假設是我們的AX=b,第二行我們稍微改變下b,得到的x和沒改變前的差別很大,看到吧。第三行我們稍微改變下係數矩陣A,可以看到結果的變化也很大。換句話來說,這個系統的解對係數矩陣A或者b太敏感了。又因爲一般我們的係數矩陣A和b是從實驗數據裏面估計得到的,所以它是存在誤差的,如果我們的系統對這個誤差是可以容忍的就還好,但系統對這個誤差太敏感了,以至於我們的解的誤差更大,那這個解就太不靠譜了。所以這個方程組系統就是ill-conditioned病態的,不正常的,不穩定的,有問題的。右邊那個就叫well-condition的系統了。

 

對於一個ill-condition的系統,我的輸入稍微改變下,輸出就發生很大的改變,這不好啊,這表明我們的系統不能實用啊。你想想看,例如對於一個迴歸問題y=f(x),我們是用訓練樣本x去訓練模型f,使得y儘量輸出我們期待的值,例如0。那假如我們遇到一個樣本x’,這個樣本和訓練樣本x差別很小,面對他,系統本應該輸出和上面的y差不多的值的,例如0.00001,最後卻給我輸出了一個0.9999,這很明顯不對呀。就好像,你很熟悉的一個人臉上長了個青春痘,你就不認識他了,那你大腦就太差勁了,哈哈。所以如果一個系統是ill-conditioned病態的,我們就會對它的結果產生懷疑。那到底要相信它多少呢?我們得找個標準來衡量吧,因爲有些系統的病沒那麼重,它的結果還是可以相信的,不能一刀切吧。終於回來了,上面的condition number就是拿來衡量ill-condition系統的可信度的。condition number衡量的是輸入發生微小變化的時候,輸出會發生多大的變化,也就是系統對微小變化的敏感度。****condition number值小的就是well-conditioned的,大的就是ill-conditioned的。
如果方陣A是非奇異的,那麼A的conditionnumber定義爲:


也就是矩陣A的norm乘以它的逆的norm。所以具體的值是多少,就要看你選擇的norm是什麼了。如果方陣A是奇異的,那麼A的condition number就是正無窮大了。實際上,每一個可逆方陣都存在一個condition number。但如果要計算它,我們需要先知道這個方陣的norm(範數)和Machine Epsilon(機器的精度)。爲什麼要範數?範數就相當於衡量一個矩陣的大小,我們知道矩陣是沒有大小的,當上面不是要衡量一個矩陣A或者向量b變化的時候,我們的解x變化的大小嗎?所以肯定得要有一個東西來度量矩陣和向量的大小吧?對了,他就是範數,表示矩陣大小或者向量長度。OK,經過比較簡單的證明,對於AX=b,我們可以得到以下的結論:


也就是我們的解x的相對變化和A或者b的相對變化是有像上面那樣的關係的,其中k(A)的值就相當於倍率,看到了嗎?相當於x變化的界。
對condition number來個一句話總結:condition number是一個矩陣(或者它所描述的線性系統)的穩定性或者敏感度的度量,如果一個矩陣的condition number在1附近,那麼它就是well-conditioned的,如果遠大於1,那麼它就是ill-conditioned的,如果一個系統是ill-conditioned的,它的輸出結果就不要太相信了。
從優化或者數值計算的角度來說,L2範數有助於處理 condition number不好的情況下矩陣求逆很困難的問題。因爲目標函數如果是二次的,對於線性迴歸來說,那實際上是有解析解的,求導並令導數等於零即可得到最優解爲:


然而,如果當我們的樣本X的數目比每個樣本的維度還要小的時候,矩陣XTX將會不是滿秩的,也就是XTX會變得不可逆,所以w*就沒辦法直接計算出來了。或者更確切地說,將會有無窮多個解(因爲我們方程組的個數小於未知數的個數)。也就是說,我們的數據不足以確定一個解,如果我們從所有可行解裏隨機選一個的話,很可能並不是真正好的解,總而言之,我們過擬合了。

 

但如果加上L2規則項,就變成了下面這種情況,就可以直接求逆了:

 

 

這裏面,專業點的描述是:要得到這個解,我們通常並不直接求矩陣的逆,而是通過解線性方程組的方式(例如高斯消元法)來計算。考慮沒有規則項的時候,也就是λ=0的情況,如果矩陣XTX的 condition number 很大的話,解線性方程組就會在數值上相當不穩定,而這個規則項的引入則可以改善condition number。
另外,如果使用迭代優化的算法,condition number 太大仍然會導致問題:它會拖慢迭代的收斂速度,而規則項從優化的角度來看,實際上是將目標函數變成λ-strongly convex(λ強凸)的了。哎喲喲,這裏又出現個λ強凸,啥叫λ強凸呢?
當f滿足:

 


時,我們稱f爲λ-stronglyconvex函數,其中參數λ>0。當λ=0時退回到普通convex 函數的定義。
在直觀的說明強凸之前,我們先看看普通的凸是怎樣的。假設我們讓f在x的地方做一階泰勒近似(一階泰勒展開忘了嗎?f(x)=f(a)+f'(a)(x-a)+o(||x-a||).):

 

直觀來講,convex 性質是指函數曲線位於該點處的切線,也就是線性近似之上,而 strongly convex 則進一步要求位於該處的一個二次函數上方,也就是說要求函數不要太“平坦”而是可以保證有一定的“向上彎曲”的趨勢。專業點說,就是convex 可以保證函數在任意一點都處於它的一階泰勒函數之上,而strongly convex可以保證函數在任意一點都存在一個非常漂亮的二次下界quadratic lower bound。當然這是一個很強的假設,但是同時也是非常重要的假設。可能還不好理解,那我們畫個圖來形象的理解下。

 

大家一看到上面這個圖就全明白了吧。我們取我們的最優解w的地方。如果我們的函數f(w),見左圖,也就是紅色那個函數,都會位於藍色虛線的那根二次函數之上,這樣就算wt和w離的比較近的時候,f(wt)和f(w)的值差別還是挺大的,也就是會保證在我們的最優解w附近的時候,還存在較大的梯度值,這樣我們纔可以在比較少的迭代次數內達到w。但對於右圖,紅色的函數f(w)只約束在一個線性的藍色虛線之上,假設是如右圖的很不幸的情況(非常平坦),那在wt還離我們的最優點w很遠的時候,我們的近似梯度(f(wt)-f(w))/(wt-w)就已經非常小了,在wt處的近似梯度∂f/∂w就更小了,這樣通過梯度下降wt+1=wt-α(∂f/∂w),我們得到的結果就是w的變化非常緩慢,像蝸牛一樣,非常緩慢的向我們的最優點w爬動,那在有限的迭代時間內,它離我們的最優點還是很遠。

所以僅僅靠convex 性質並不能保證在梯度下降和有限的迭代次數的情況下得到的點w會是一個比較好的全局最小點w的近似點(插個話,有地方說,實際上讓迭代在接近最優的地方停止,也是一種規則化或者提高泛化性能的方法)。正如上面分析的那樣,如果f(w)在全局最小點w周圍是非常平坦的情況的話,我們有可能會找到一個很遠的點。但如果我們有“強凸”的話,就能對情況做一些控制,我們就可以得到一個更好的近似解。至於有多好嘛,這裏面有一個bound,這個 bound 的好壞也要取決於strongly convex性質中的常數α的大小。看到這裏,不知道大家學聰明瞭沒有。如果要獲得strongly convex怎麼做?最簡單的就是往裏面加入一項(α/2)||w||2。
實際上,在梯度下降中,目標函數收斂速率的上界實際上是和矩陣XTX的 condition number有關,XTX的 condition number 越小,上界就越小,也就是收斂速度會越快。這一個優化說了那麼多的東西。還是來個一句話總結吧:
L2範數不但可以防止過擬合,還可以讓我們的優化求解變得穩定和快速。*

好了,這裏兌現上面的承諾,來直觀的聊聊L1和L2的差別,爲什麼一個讓絕對值最小,一個讓平方最小,會有那麼大的差別呢?我看到的有兩種幾何上直觀的解析:

1)下降速度:
我們知道,L1和L2都是規則化的方式,我們將權值參數以L1或者L2的方式放到代價函數裏面去。然後模型就會嘗試去最小化這些權值參數。而這個最小化就像一個下坡的過程,L1和L2的差別就在於這個“坡”不同,如下圖:L1就是按絕對值函數的“坡”下降的,而L2是按二次函數的“坡”下降。所以實際上在0附近,L1的下降速度比L2的下降速度要快。所以會非常快得降到0。不過我覺得這裏解釋的不太中肯,當然了也不知道是不是自己理解的問題。


L1在江湖上人稱Lasso,L2人稱Ridge。不過這兩個名字還挺讓人迷糊的,看上面的圖片,Lasso的圖看起來就像ridge,而ridge的圖看起來就像lasso。

 

2)模型空間的限制:
實際上,對於L1和L2規則化的代價函數來說,我們可以寫成以下形式:


也就是說,我們將模型空間限制在w的一個L1-ball 中。爲了便於可視化,我們考慮兩維的情況,在(w1, w2)平面上可以畫出目標函數的等高線,而約束條件則成爲平面上半徑爲C的一個 norm ball 。等高線與 norm ball 首次相交的地方就是最優解:

 

可以看到,L1-ball 與L2-ball 的不同就在於L1在和每個座標軸相交的地方都有“角”出現,而目標函數的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置就會產生稀疏性,例如圖中的相交點就有w1=0,而更高維的時候(想象一下三維的L1-ball 是什麼樣的?)除了角點以外,還有很多邊的輪廓也是既有很大的概率成爲第一次相交的地方,又會產生稀疏性。

相比之下,L2-ball 就沒有這樣的性質,因爲沒有角,所以第一次相交的地方出現在具有稀疏性的位置的概率就變得非常小了。這就從直觀上來解釋了爲什麼L1-regularization 能產生稀疏性,而L2-regularization 不行的原因了。

因此,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。Lasso在特徵選擇時候非常有用,而Ridge就只是一種規則化而已。

三、核範數
核範數 ||W||* 是指矩陣奇異值的和,英文稱呼叫Nuclear Norm。這個相對於上面火熱的L1和L2來說,可能大家就會陌生點。那它是幹嘛用的呢?霸氣登場:約束Low-Rank(低秩)。OK,OK,那我們得知道Low-Rank是啥?用來幹啥的?
我們先來回憶下線性代數裏面“秩”到底是啥?舉個簡單的例子吧:


對上面的線性方程組,第一個方程和第二個方程有不同的解,而第2個方程和第3個方程的解完全相同。從這個意義上說,第3個方程是“多餘”的,因爲它沒有帶來任何的信息量,把它去掉,所得的方程組與原來的方程組同解。爲了從方程組中去掉多餘的方程,自然就導出了“矩陣的秩”這一概念。

 

既然秩可以度量相關性,而矩陣的相關性實際上有帶有了矩陣的結構信息。如果矩陣之間各行的相關性很強,那麼就表示這個矩陣實際可以投影到更低維的線性子空間,也就是用幾個向量就可以完全表達了,它就是低秩的。所以我們總結的一點就是:如果矩陣表達的是結構性信息,例如圖像、用戶-推薦表等等,那麼這個矩陣各行之間存在這一定的相關性,那這個矩陣一般就是低秩的。

如果X是一個m行n列的數值矩陣,rank(X)是X的秩,假如rank (X)遠小於m和n,則我們稱X是低秩矩陣。低秩矩陣每行或每列都可以用其他的行或列線性表出,可見它包含大量的冗餘信息。利用這種冗餘信息,可以對缺失數據進行恢復,也可以對數據進行特徵提取。

好了,低秩有了,那約束低秩只是約束rank(w)呀,和我們這節的核範數有什麼關係呢?他們的關係和L0與L1的關係一樣。因爲rank()是非凸的,在優化問題裏面很難求解,那麼就需要尋找它的凸近似來近似它了。對,你沒猜錯,rank(w)的凸近似就是核範數||W||*。

四、規則化參數的選擇

現在我們回過頭來看看我們的目標函數:

 

 

裏面除了loss和規則項兩塊外,還有一個參數λ。它也有個霸氣的名字,叫hyper-parameters(超參)。你不要看它勢單力薄的,它非常重要。它的取值很大時候會決定我們的模型的性能,事關模型生死。它主要是平衡loss和規則項這兩項的,λ越大,就表示規則項要比模型訓練誤差更重要,也就是相比於要模型擬合我們的數據,我們更希望我們的模型能滿足我們約束的Ω(w)的特性。反之亦然。舉個極端情況,例如λ=0時,就沒有後面那一項,代價函數的最小化全部取決於第一項,也就是集全力使得輸出和期待輸出差別最小,那什麼時候差別最小啊,當然是我們的函數或者曲線可以經過所有的點了,這時候誤差就接近0,也就是過擬合了。它可以複雜的代表或者記憶所有這些樣本,但對於一個新來的樣本泛化能力就不行了。畢竟新的樣本會和訓練樣本有差別的嘛。


1.png


L1範數正則項使解稀疏的解釋
L2正則項使解收縮的解釋
如何讓神經網絡收斂得更快.pdf
矩陣求導.pdf


L1正則化的另一個新意在於引入了稀疏性,從而給模型帶來了解釋性(Model interpretability),即根據非零係數所對應的基的實際意義來解釋模型的實際意義

稀疏表達的作用:

1. 稀疏表達的意義在於降維,且這個降維並不侷限於節省空間,稀疏表達後的特徵向量各維之間的依賴性變低,更爲獨立。
2. 稀疏表達求取時所加的稀疏約束,使得計算後得到的各個“基”對於解釋數據具有相同的重要性,其目的正是嘗試找出隱藏在數據背後的解釋因子。

在Machine Learning,Signal/Image Processing等衆多領域,很多反問題(Inverse Problem)都是不適定/病態的(under-determined, ill-posed)。如

y = Ax + \varepsilon, x \in \mathbb{R}^n, A:\mathbb{R}^n \to \mathbb{R}^m, y\in\mathbb{R}^m, m<n, \varepsilon \textrm{ is noise}

y = Ax + \varepsilon, x \in \mathbb{R}^n, A:\mathbb{R}^n \to \mathbb{R}^m, y\in\mathbb{R}^m, m<n, \varepsilon \textrm{ is noise}

爲了能獲得比較好的解,人們需要x的先驗知識。而稀疏性便是衆多先驗知識中,最爲主要的一種。這種降維主要表現於雖然原始信號x的維度很高,但實際的有效信息集中在一個低維的空間裏。這種性質使得不適定的問題變得適定(well-posed),進而獲得“好的解”成爲可能。

 

[1] E. J. Candès, J. Romberg, T. Tao, Robust uncertainty principles: Exact signal reconstruction from highly incomplete frequency information**, IEEE Transactions on Information Theory
[2] D. L. Donoho, Compressed Sensing, IEEE Transactions on Information Theory


梯度下降爲什麼不適合求解稀疏問題?
稀疏問題一般加一範數正則項,而一範數不可導,所以就要用次梯度來替代。
L1雖然是convex但是不differentiable(不可導)。所以無法直接按照常規的descent來做。比如steepest descent,你需要gradient。
解決L1的方法有很多。比較popular的包括Lasso,把L1 constraint(或者sparse constraint)做成一個regularizer。proximal descent是基於gradient descent但是又兼顧了L1 regularizer。


降維和稀疏表達的本質區別
降維是將原space裏的數據在某一個subspace裏進行表達;而稀疏表達則relax了subspace這一條,變成在a union of subspaces裏進行表達。

inverse problem方面,sparse presentation往往有更加優異的表現.
Sparse Model相對於Subspace Model(比如降維)而言,更加relaxed,因而具有更強的表達能力。再加上自然信號,天然具備可稀疏性,所以在很多問題中,Sparsity是一個更有效的regularizier。



作者:jiandanjinxin
鏈接:https://www.jianshu.com/p/8025b6c9f6fa
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章