本文討論了機器學習中正則化這個話題,對於l1正則項為什麼稀疏也是面試中經常涉及的。
正則化是機器學習中防止過擬合的一種重要技術。從數學上講,它增加了乙個正則化項,以防止係數如此完美地擬合而過度擬合。
定義樣本,為樣本空間,模型函式,故**值為,損失函式為。因此機器學習的訓練過程可以轉換為乙個在泛函空間內,找到乙個使得全域性損失最小的模型,此時的損失函式又叫做「經驗風險」(empirical risk),即損失函式的期望:
但上述損失函式只考慮了訓練集上的經驗風險,會出現過擬合的現象。為什麼會出現過擬合?因為「模型引數過多或者結構過於複雜」。故我們需要乙個函式來「描述模型的複雜程度」,即,也就是機器學習中常說到的「正則化項」(regularizer)。為了對抗過擬合,我們需要結合損失函式和正則化項,使他們的和最小,就可以將經驗風險最小化問題轉化為結構風險最小化,即機器學習中定義的「目標函式」(objective function):
其中,目標函式,用於控制正則項的引數。若模型過度複雜使得更小,但正則化項卻更大,總體的目標函式值不一定會降低。所以,總結來說,「正則化項起到了平衡偏差與方差的作用」。
以上便是以機器學習的角度,來講述為什麼需要正則化。總的來說主要是在原有的損失中加入描述模型複雜度的項,將經驗風險(損失函式)轉化為結構風險(目標函式),「綜合考慮模型**與真實的差距和模型複雜度」,以達到抑制過擬合的作用。接下來將具體的講述範數與正則化的關係。
一般來說,「損失函式是乙個具有下確界的函式」,當**值與真實值足夠接近時,則損失值也會越接近下確界,這保證我們可以求出模型的最優解。當我們加入正則化項,變成目標函式,則也需要能夠進行最優化求解。這也就要求「正則化項也應該是乙個具有下確界的函式」,而範數則很好的滿足了這個條件。
❝我們假設某向量為,範數滿足長度的三條基本性質:範數(norm):是具有「長度」概念的函式。簡單來說,就是將向量投影到的值。
❞
因此,範數也是乙個具有下確界的函式,這是由「非負性和齊次性」所保證的。這一特性使得-範數天然適合做正則項,因為目標函式仍可用梯度下降等方式求解最優化問題。-範數作為正則項時被稱為-正則項。
❝-範數定義如下:範數的非負性保證了範數有下界。當齊次性等式中的取零時可知,零向量的範數是零,這保證了範數有下確界。
❞
其中,應用較多的是範數(taxicab distance,也稱曼哈頓距離)、範數(歐幾里得距離)。兩者的區別,簡單用一幅曼哈頓街道圖來說明:
範數對應的是兩點之間的移動,有多個解,而範數是歐幾里得距離,關於如何最快到達兩點之間總是有乙個正確答案。
接下來介紹範數對應的正則化項,首先從正則化開始。
以下對進行描述。其中,這裡討論的稀疏性只從最能理解的【導數的角度】進行解釋。當然最為常見的應該是從優化的角度,還有一種是從概率論的角度(正則項相當於為加入拉普拉斯分布的先驗,正則項相當於加入高斯分布的先驗),具體見[3]。
我們簡單定義乙個線性模型:
其中,為樣本的個數,為特徵的個數,。
當訓練集中存在統計雜訊時(這裡我們假設一種可能會發生過擬合的條件),冗餘的特徵可能會成為過擬合的**。
❝為了對抗過擬合,如上述所說,我們可以通過降低模型的複雜度。最簡單的方法就是令某些學習到的特徵引數為0,即。因此,可以引入-範數。統計雜訊:指的是某些特徵為統計特徵,如均值、求和、標準差等。它們加入在特徵中,會在一定程度上加快模型的收斂,但它們也同樣可以在乙個線性模型中得到,對於統計雜訊,模型無法從有效特徵當中提取資訊進行擬合,故而會轉向冗餘特徵。
❞
❝-正則項為:-範數:指的是向量中不為0的個數。
❞
通過引入-正則項,則對原優化過程加入了一種我們常說的「懲罰機制」:當優化演算法希望增加模型複雜度(此處特指將原來為零的引數更新為非零的情形)以降低模型的經驗風險(即降低損失函式的)時,在結構風險上進行大小為(因為增加了1個非零引數)。由於結構風險(目標函式)是綜合考慮損失函式和正則化項,「若當增加模型複雜度在經驗風險的收益不足時,則結構化風險依舊會上公升,而此時優化演算法也會拒絕此更新」。
引入-正則化項會使模型引數稀疏化,使得模型易於解釋。但是正常機器學習中並不使用-正則化項,因為它有無法避免的問題:非連續、非凸、不可微。所以,我們引入了-範數。
-正則項(亦稱lasso-正則項)為:
目標函式為:
我們對目標函式進行對求偏導,計算其梯度:
❝如下圖所示【簡單起見,僅有乙個引數組成】:sgn:符號函式,
❞
故引數更新為:
可以觀察最後項,我們發現它始終讓(,為負,,為正),因此l1正則化將「以相同的步長」(注意這裡)將任何權重移向0,而不管權重的值是多少。所以可以「實現引數稀疏化」。
對於上圖,我們忽略原損失函式對引數的梯度,當,,迭代多次,發現最終。
所以正則項的特點是:
如上圖所示,我們發現,當模型發生過擬合時,模型相對於其他模型,曲線函式更加的彎曲,這說明在「區域性彎曲的部分,切線斜率特別大」,(即模型導數的絕對值特別大),對於整個模型來說,我們可以理解為所有的引數的絕對值之和特別大【梯度計算】。因此,如果我們有辦法「使得這些引數的值,比較稠密均勻地集中在零附近」,就能有效地抑制過擬合。於是,便引入了範數。
-正則項為:
目標函式為:
對求偏導:
故引數更新為:
我們可以通過調整學習率和正則化引數,使得為0~1之間的數,從而衰減的權重,所有的引數接近於0,從而抑制過擬合。
如上圖所示,解釋了為什麼不會像那樣產生稀疏解,而只是讓權值接近0(當權值接近0時,它會採取越來越小的步驟)。
正則項的特點是:
[1]
[2]
[3]
往期精彩回顧
ML 範數與正則化懲罰
l1範數是我們經常見到的一種範數,它的定義如下 表示向量x中非零元素的絕對值之和。l1範數有很多的名字,例如我們熟悉的曼哈頓距離 最小絕對誤差等。使用l1範數可以度量兩個向量間的差異,如絕對誤差和 sum of absolute difference 由於l1範數的天然性質,對l1優化的解是乙個稀疏...
機器學習 正則化項L1範數與L2範數的關係
在學習機器學習過程中,我自己糾結了很久的乙個問題是 l1 norm 和 l2 norm 到底是什麼關係,有什麼區別。l1 和 l2 都是深度學習中常用的正則化項 regularizer 描述的是模型的複雜度,它的作用在於模型越複雜,正則化項越大,將它加在損失函式 loss function 後面作為...
機器學習正則化
設p 1的實 數,p norm 定義為 x i 1 n xi p 1 p 1.1 這裡寫描述 如果方陣a是非奇異的,那麼a的conditio nnumber定義為 a a a 1 condition number是乙個矩陣穩定性或者敏感度的度量。矩陣的condition number在1附近,那麼它...