監督學習的過程可以概括為:最小化誤差的同時規則化引數。最小化誤差是為了讓模型擬合訓練資料,規則化引數是為了防止過擬合。引數過多會導致模型複雜度上公升,產生過擬合,即訓練誤差很小,但測試誤差很大,這和監督學習的目標是相違背的。所以需要採取措施,保證模型盡量簡單的基礎上,最小化訓練誤差,使模型具有更好的泛化能力(即測試誤差也很小)。
範數規則化有兩個作用:
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範數的最優凸近似 實際上,還存在乙個更美...
機器學習中的範數規則化
在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...