機器學習中的範數規則化 L0,L1和L2正規化

2021-08-16 03:11:33 字數 2865 閱讀 9466

監督學習的過程可以概括為:最小化誤差的同時規則化引數。最小化誤差是為了讓模型擬合訓練資料,規則化引數是為了防止過擬合。引數過多會導致模型複雜度上公升,產生過擬合,即訓練誤差很小,但測試誤差很大,這和監督學習的目標是相違背的。所以需要採取措施,保證模型盡量簡單的基礎上,最小化訓練誤差,使模型具有更好的泛化能力(即測試誤差也很小)。

範數規則化有兩個作用:

1)保證模型盡可能的簡單,避免過擬合。

2)約束模型特性,加入一些先驗知識,例如稀疏、低秩​等。

一般來說,監督學習中最小化的目標函式結構如下:

其中第一項l​用於計算模型**值與樣本真實值之間的誤差,優化目標是希望該項盡可能小(即訓練誤差盡可能小)。第二項ω用於對引數進行規則化,保證模型盡可能簡單,避免過擬合。

規則化函式ω有多重選擇,不同的選擇效果也不同,不過一般是模型複雜度的單調遞增函式——模型越複雜,規則化值越大​。例如,可以是模型中引數向量的範數。常見的選擇包括零範數,一範數,二範數等。下面挑選部分範數簡單說明。

1 l0範數和l1範數

l0範數是指向量中非零元素的個數。如果用l0規則化乙個引數矩陣w,就是希望w中大部分元素是零,實現稀疏。

l1範數是指向量中各個元素的絕對值之和,也叫」係數規則運算元(lasso regularization)「。l1範數也可以實現稀疏,通過將無用特徵對應的引數w置為零實現。

l0和l1都可以實現稀疏化,不過一般選用l1而不用l0,原因包括:1)l0範數很難優化求解(np難);2)l1是l0的最優凸近似,比l0更容易優化求解。(這一段解釋過於數學化,姑且當做結論記住)

稀疏化的好處是是什麼?

1)特徵選擇

​實現特徵的自動選擇,去除無用特徵。稀疏化可以去掉這些無用特徵,將特徵對應的權重置為零。

2)可解釋性(interpretability)​

例如判斷某種病的患病率時,最初有1000個特徵,建模後引數經過稀疏化,最終只有5個特徵的引數是非零的,那麼就可以說影響患病率的主要就是這5個特徵。

​2 l2範數

l2範數​​是指向量各元素的平方和然後開方,用在回歸模型中也稱為嶺回歸(ridge regression)。

l2避免過擬合的原理是:讓l2範數的規則項||w||2 盡可能小,可以使得w每個元素都很小,接近於零,但是與l1不同的是,不會等於0;這樣得到的模型抗干擾能力強,引數很小時,即使樣本資料x發生很大的變化,模型**值y的變化也會很有限。

l2範數除了避免過擬合問題,還有乙個優點是有助於處理condition number不好的情況下,矩陣求解困難的問題。condition number是對系統ill-condition程度的乙個衡量標準。假設有方程組ax=b,需要求解x。如果a或者b發生輕微改變,就會使得x的解發生很大變化,那麼這個方程組系統就是ill-condition的,反之就是well-condition的。下圖為例說明:

​第一行是兩個原始的方程式系統;第二行對系統的b做出輕微修改,左側方程組的解發生較大變化,右側的變化不明顯;第三行對系統的a做出輕微修改,同樣左側系統的解發生較大變化,右側的變化不明顯。這說明左側的系統是ill-condition的,右側的是well-condition的。

具體到通過訓練資料建立的模型中時,ill-condition可以說就是不穩定的,當輸入的樣本資料發生變化時,**結果就會不準確。​condition number就是用來對系統的ill-condition程度進行衡量的,condition number值小的就是well-condition,反之為ill-condition。

3 l1和l2的差別

1)下降速度

建立模型的過程中,會嘗試最小化損失函式,這個過程就像乙個下坡的過程,l1和l2的差別在於坡的斜率,如下圖所示。

​2)模型空間的限制

使用l1,l2正規化建立模型時,損失函式可以寫成如下形式:

可以說成是將模型空間限制在w的某個範圍內,如下圖所示,在(w1,w2)空間上可以畫出目標函式的等高線,約束條件則是平面上半徑為c的乙個norm ball,等高線與norm ball首次相交的地方就是最優解。

​通過對比可以看出,l1-ball和l2-ball的不同在於l1在和每個座標軸相交的地方都有」角「出現,與目標函式相交的地方也是在角的位置。角的位置就容易產生稀疏性,例如圖中的交點處w1=0。l2就沒有這樣的性質,因為沒有角,相交的位置有稀疏性的概率就非常低,從直觀上解釋了為什麼l1能夠產生稀疏性而l2就不行。

總結一下就是:l1正規化會趨向於產生較少的特徵,在特徵選擇時很有用;l2會選擇更多特徵,但對應權值接近零。​

4 規則化引數的選擇

再來看模型的目標函式

這其中除了損失函式,規則項以外,還包括引數λ,稱為hyper-parameters​(超參)。該引數用於平衡損失函式和規則項的,λ越大,則規則項的作用越重要,就是說相比於擬合訓練資料,更希望模型能夠滿足約束條件ω(w)的特性,反之亦然。舉個極端的例子,如果λ=0,規則化項不起作用,就是希望模型能夠最小化損失函式項,當模型擬合了所有訓練資料時損失函式項最小,但這樣得到的模型對於新的資料泛化能力就非常差,產生了過擬合。​由此可知,需要協調λ的值,使得模型即具有較小的訓練誤差,又具有很好的泛化能力。最常用的方法是交叉驗證,實驗不同的λ值。

深度學習 L0 L1及L2範數

在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差 最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此 我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...

機器學習中的範數規則化

機器學習中的範數規則化之 一 l0 l1與l2範數 l1範數是指向量中各個元素絕對值之和,也有個美稱叫 稀疏規則運算元 lasso regularization 現在我們來分析下這個價值乙個億的問題 為什麼l1範數會使權值稀疏?有人可能會這樣給你回答 它是l0範數的最優凸近似 實際上,還存在乙個更美...

機器學習中的範數規則化

在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...