本系列共四篇,爲林軒田機器學習基礎篇學習筆記。主要內容可以總結概括爲:線性模型通過非線性的變換可以得到非線性的模型,增強了模型對數據的擬合能力,但這樣導致了在機器學習領域中一個很常見的問題,過擬合。爲了解決這個問題引入了正則化因子(規則化因子)。而爲了解決正則化因子的選擇,模型的選擇以及超參數的選擇等問題引入了validation 的相關方法。
1 - Regularized Hypothesis Set
上一篇中說到,在機器學習中最大的危險是過擬合。 當使用的模型的複雜度過高,資料量不多,資料存在噪聲或者是目標函數很複雜的時候都有可能會出現過擬合的情況。Regularization 可以看成是對付過擬合的一個方法。首先會介紹其數學推導,然後將其延伸到不同的方法上。
1.1 - 正則化
右圖是一個典型的過擬合的情形,資料量大小爲5 ,當我們使用一個四次甚至是更高次的多項式去擬合的時候,紅色的線Ein 很低,完美的穿過了所有的點,但是Eout 很高,離target function 即那條藍色的線很遠。所以很顯然發生了過擬合。我們想要做的是將右圖中的紅色的線變爲左圖中的紅線regularized fit 。 很明顯,左圖中紅線相比右圖中的紅線平滑了很多, 所以比較貼近target function 。
左圖中的紅線是比較低次的多項式擬合的結果,右邊的紅線是比較高次的多項式擬合的結果。
從上圖看到使用高次的多項式(大的Hypothesis Set )會出現過擬合的情形,使用低次多項式可能可以避免過擬合,而高次多項式(大的Hypothesis Set )包含低次多項式(小的Hypothesis Set ),如下圖所示,所以我們考慮從大的Hypothesis Set退回到小的Hypothesis Set 中的話,這樣可能就不會有overfitting 的發生。
- regularization 的思想來自早期做function approximation ,當需要逼近某個函數(其實regression 也是在逼近某個函數)的時候,通常很多問題是ill-postd 的,也就是很多函數都滿足解的條件, 導致不知道該選哪個作爲最終的解,這個時候就需要加一些限制條件。同樣我們現在做regression 也是一個解太多的問題,因爲能夠穿過這些點的函數有無窮多個,regularization 就是要加一些限制從中得到最好的結果。
如何從高次的多項式變爲低次的多項式呢,這裏以二維空間中的線性迴歸+Q 次多項式的特徵轉換ΦQ(x)=(1,x,x2,x3,⋯,xQ)爲學習問題,以從十次的多項式變爲二次的多項式爲例來進行討論。
十次多項式的假設集爲:
Hypothesis w in H10:w0+w1x+w2x2+w3x3+⋯+w10x10
二次多項式的假設集爲:
Hypothesis w in H2:w0+w1x+w2x2
我們看得出來,所有的2 次多項式就等價於10 次多項式加上一些條件,這些條件可以表示爲w3=w4=⋯=w10=0 。那麼上面講到的想要從十次多項式退回到二次多項式就可以通過這樣的方式做到,即,加限制條件:w3=w4=⋯=w10=0 。
考慮兩個問題:
找一個最好的十次多項式來使得Ein 最小,也就是找一個最好的11 個維度的向量w 來使得Ein 最小。
第二個問題是:找一個最好的二次多項式來使得Ein 最小,但是考慮的假設集和上一個問題一樣,都是考慮找最好的11 維度的向量w 來最小化Ein ,但是有條件限制,w3=w4=⋯=w10=0 。
之所以這樣做是爲了之後的推導更加順理成章一點(因爲第二個問題很明顯饒了一個沒有必要的圈子)。
現在我們把上述的第二個問題的條件放寬鬆一點:原來我們要求的是w3=w4=⋯=w10=0 ,現在我們要求只要有大於8 個權重等於 0 就可以了。這樣的話就不一定是二次多項式,而可能是一個高於二次的多項式了。 不過由於這個高次的多項式中只有很少的係數不爲0 , 那麼可能就擁有了和二次多項式一樣的簡單性質。那麼原來的問題和新的問題分別表示如下:
原問題:
假設集: 最優化問題:H2={w∈R10+1while w3=w4=⋯=w10=0}minw∈R10+1Ein(w)s.t.w3=w4=⋯=w10=0(36)(37)(38)
條件放寬鬆之後的新問題:
假設集: 最優化問題:H′2={w∈R10+1while ≥8 of wq=0}minw∈R10+1Ein(w)s.t.∑q=010|[wq≠0]|≤3(39)(40)(41)
現在我們可以得到以下的包含關係:
H2⊂H′2⊂H10
這也就是說:
H′2 會比H2 更加的靈活(flexible) 一點,模型複雜度更高一點,但是沒有H10 那麼複雜(powerful )以至於那麼容易過擬合。雖然這個新的最佳化問題有很多的好處,比如不那麼容易過擬合,解是稀疏的。但是由於在其條件中存在
boolean operation 這樣離散的函數,所以這個問題的求解也被證明是個
NP 難問題。
爲了可以求解,進一步將問題的條件放寬鬆。
原來的問題是:
假設集: 最優化問題:H′2={w∈R10+1while ≥8 of wq=0}minw∈R10+1Ein(w)s.t.∑q=010|[wq≠0]|≤3(7)(8)(9)
進一步放寬鬆之後的問題如下:(如果要求w 只能有小於等於3 個不爲0 ,可以近似等價的要求所有的w 的平方和小於一個數)
假設集: 最優化問題:H(C)={w∈R10+1while ||w||2≤C}minw∈R10+1Ein(w)s.t.∑q=010w2q≤C(10)(11)(12)
關於H(C) :
- H(C) 會和H′2 有重合的部分,但是不一定是等同的關係。
- 當C 大於0 的時候,H(C) 之間存在包含的關係,H(0)⊂H(1.126)⊂H(1126)⊂⋯⊂H(∞)=H10
我們把H(C) 這樣的hypothesis set 稱爲是正則化的hypothesis , 也就是加上條件的hypothesis 。如果可以在這樣的hypothesis 下找到一個好的w ,我們將這樣的w 稱爲是wreg ,也就是在我們的正則下找到的假設函數。
2 - Weight Decay Regularization
2.1 - 嶺迴歸(正則化的線性迴歸)
通過上一小節的分析得到了帶有條件的線性迴歸問題, 如下:
minw∈RQ+1s.t.Ein(w)=1N∑n=1N(wTzn−yn)2∑q=0Qw2q≤C(13)(14)
將這個問題表示爲向量和矩陣的形式:
minw∈RQ+1s.t.Ein(w)=1N(Zw−y)T(Zw−y)wTw≤C(15)(16)
限制條件wTw≤C 在幾何上代表我們想要的w 在一個球裏面:球心在原點,球的半徑是C−−√ 。 所以我們想要找到的只是在這些球裏面的所有的w 中,哪個是最好的。
2.2 - 通過直觀分析求解
如果是求解無約束的最優化問題,沿着目標函數的梯度的反方向不斷的更新變量可以到達目標函數的最小值。如圖,w 位於當前的一個位置,梯度的反方向−▽Ein 如圖中的藍色箭頭所示,所以只要沿着這個方向走,就能最終走到不加限制條件的線性迴歸的最佳解wlin 。但是現在我們需要在約束下求解最優化問題,其中的約束爲:w 需要在半徑爲C−−√ 的球內,如圖中紅色的圓所示。所以就算你知道wlin 在什麼方向,但是這樣的限制下你也不可能去到那裏。 並且可以想象大部分的情況下,約束條件下的最優解都會在球的邊緣上。
假設現在有一個w 已經在球的邊界上了, 那麼如何判斷該w 是不是最佳解wreg 呢?
球的表達式爲wTw=C ,所以球的法向量爲w 。從圖中可以看出最佳的w , 即wreg ,應該滿足的條件是:wreg 處的梯度的反方向應該平行於球的法向量。若梯度的反方向不平行於球的法向量,那麼梯度的反方向一定有平行於球的切面的分量,如圖中綠色的箭頭所示, 那麼就說明還存在更好的w 能更加的接近wreg 。
綜上:我們想要的解 wreg 要滿足如下的性質:(目標函數的梯度方向要和球的法線方向w 平行,其中的參數N,λ 是爲了後續操作的方便而 添加的常量)
▽Ein(wreg)+2λNwreg=0
如果 λ 是已知的 並且 λ>0 ,針對線性迴歸問題上式可以整理爲:
2N(ZTZwreg−ZTy)+2λNwreg=0(1)
(1) 爲只有一個變量wreg 的線性方程。可以得到最佳的解爲:
wreg=(ZTZ+λI)−1ZTy
只要λ>0 , ZTZ+λI 就是可逆的, 因爲ZTZ 是半正定的,加λI 之後變爲正定的。
這個模型被稱爲是ridge regression ,也就是加了正則化項的線性迴歸。
上述給出的僅僅是針對linear regression 問題的解。如果是其他的問題呢?例如怎麼求解logistic regression 加上regularization 的解呢?
2.3 - 利用kkt求解
在求解最優化問題中,拉格朗日乘子法(Lagrange Multiplier) 和KKT(Karush Kuhn Tucker) 條件是兩種最常用的方法。在有等式約束時使用拉格朗日乘子法,在有不等約束時使用KKT 條件。這裏提到的最優化問題通常是指對於給定的某一函數,求其在指定作用域上的全局最小值問題。
一般情況下,最優化問題會碰到一下三種情況:
2.3.1 - 無約束條件
這是最簡單的情況,解決方法通常是函數對變量求導,令求導函數等於0的點可能是極值點。將結果帶回原函數進行驗證即可。
2.3.2 - 等式約束條件
s.t. min f(x)hk(x)=0,k=1,2,⋯,l(17)(18)
此時使用的方法是拉格朗日乘子法,首先定義拉格朗日函數F(x) :
F(x,λ)=f(x)+∑k=1lλkhk(x)
然後求解拉格朗日函數對各個變量的偏導數,並令其爲0:
∂F∂x=0,⋯,∂F∂λk=0
方程組的解就可能是最優解。
2.3.3 - 不等式約束條件
s.t. min f(x)hj(x)=0,j=1,2,⋯,pgk(x)≤0,k=1,2,⋯,q(19)(20)(21)
定義不等式約束下的拉格朗日函數:
L(x,λ,μ)=f(x)+∑j=1pλjhj(x)+∑k=1qμkgk(x)
求解方法是KKT 條件,KKT 條件是說最優值必須滿足以下條件:
- L(a,b,x) 對x 求導爲零
- h(x)=0
- a∗g(x)=0
所以對於帶有正則條件的線性迴歸問題的求解過程如下:
minw∈RQ+1s.t.Ein(w)=1N(Zw−y)T(Zw−y)wTw≤C(22)(23)
首先構造拉格朗日函數如下:
L(w,λ)=1N(Zw−y)T(Zw−y)+λ(wTw−C)
根據上述提到的KKT 條件中的第一個可知最優解滿足∂L∂w=0
∂L∂w=∂∂w1N(wTZTZw−2wTZTy+yTy)+λ(wTw−C)=1N(2ZTZw−2ZTy)+2λw(24)(25)
ZTZw−ZTy+λw=0⟶w=(ZTZ+λI)−1ZTy
2.4 - 帶正則的損失函數
根據高等數學的知識可以知道,求解
▽Ein(wreg)+2λNwreg=0(2)
等價於想要最小化:
Ein(w)+λNwTwregularizeraugmented error Eaug(w)(3)
所以當我們想要求解(3) 的最小化問題的時候,就是要求解(2) 。我們將wTw 稱爲regularizer, 將(3) 稱爲augmented error。
如果λ 是已知的話, 原來求解有約束的最優化問題就變爲求解無約束的最優化問題,並且這樣的問題我們是可以求解的。
一開始我們想要最優化的問題是(4) ,而對於一個特定的C 總存在一個λ 使得這兩個最優化問題是等價的。(優化裏的知識不懂,望賜教)
原來的問題我們需要提前設定參數C , 現在的問題通過設置λ 來代替C 達到同樣的效果。
2.5 - 實例分析
從圖中可以看出, 只要加一點的λ , 即加一點點的regularization 就可以得到很好的結果。
λ 越大⟷ 更傾向於使得w 越短越好(λ 可以理解爲在懲罰很大的w )⟷ 對應於更小的C
因爲加上λ 後我們其實是會得到比較短的w ,所以通常這樣的regularization (+λNwTw) 被稱爲weight decay regularization 。
這樣的regularization 的方式可以搭配其他的模型, 例如logistic regression ,也可以搭配其他的feature transform ,不僅僅是polynomial transform 。
2.6 - Legendre polynomials
這裏提一個小小的細節,剛剛說這樣的regularization 可以和任何形式的feature transform 搭配使用。但是在使用polynomial transform 的時候,會有一些缺陷。如果樣本特徵的取值範圍是[−1,1] 的話,那麼該值的Q 次方將會是一個很小很小的數,這樣的數值餵給計算機除了有精確度的問題之外,還有一個問題需要考慮:如果這個經過轉換之後的特徵確實有用,那麼它想要發揮作用的話,可能就需要一個很大的權重值w 。這和regularization 想要“壓縮”w 似乎是有點衝突的,因爲這樣看起來過度的懲罰了這些高維度的特徵所需要的大的權重。(高維度想要打的權重,正則化不讓)。
爲了解決這個問題,首先需要在多項式空間中找到一組垂直的基底函數,這些函數彼此的內積爲0 。這些基底被稱爲是legendre polynomial 。只需要記得當使用polynomial transform 做regression ,並且加正則化項的的時候,使用legendre polynomial 會得到更好的效果:
下面給出的是前5 個legendre polynomial 。
3 - Regularization and VC Theory
總結一下regularization 問題的提出和解決方案:一開始我們是想解決一個有約束的最小化問題如下:
minw∈RQ+1s.t.Ein(w)∑q=0Qw2q≤C(28)(29)
因爲C 和λ 的對應關係,我們將其轉換爲了一個無約束的最優化問題,也就是求解如下的augmented error 的最小化問題:
minwEin(w)+λNwTw
原始問題所對應的VC 的保證是:
Eout(w)≤Ein(w)+Ω(H(C))
regularizer wTw=Ω(w) 可以看做是一個假設函數的複雜度。
Ω(H) 代表的是整個假設集的複雜度。
如果λNΩ(w) 能夠很好的代表Ω(w) 的話,那麼Eaug 可能是比Ein 更好的一個Eout 的“代理”。或者說,我們去最小化Eaug 比去最小化Ein 更接近是在最小化Eout 。(原來我們是想要最小化Ein 來保證Eout 最小,但是現在發現最小化Eaug 看起來能更好的最小化Eout , 因爲Eaug 考慮了複雜度,並且最小化Eaug 的時候時無約束的,可以在更大的假設集中做出選擇。不知道理解的對不對)。
4 - 更多的正則項
前面介紹的regularization 都是基於weight decay regularizer ,即wTw 。那麼對於更一般的問題來說,到底應該加什麼樣子的regularizer 對於結果是好的呢?
4.1 - general regularizers
下面給出在添加正則化項時可以考慮的一些依據,
- 根據target function 的特徵
如果target function 是個偶函數或者是很接近偶函數的話,所以我們考慮約束奇數次方的w ,使得奇數次方的w 的值變小就更加符合對於target function 的認識。通過添加相應的regularizer 可以達到這個目的:∑|[q is odd]|w2q
- 選用可以幫助我們選擇出比較平滑和簡單的假設函數的regularizer
regularization 是用來對付overfitting 的一種方法,而overfitting 的成因是因爲有noise 的存在。不管是stochastic noise 還是deterministic noise 都是造成資料“不平滑”的原因。而target function 相對於noise 來說是比較平滑的,所以我們應該選擇比較平滑的hypothesis 。例如L1 regularizer 會幫助找出簡單的函數。
- 找容易最優化的regularizer
例如weight decay regularizer ,即L2 norm 就是這樣的。
4.2 - L2 and L1 regularizer
L2 Regularizer:Ω(w)=∑Qq=0w2q=∥w∥2
L2 Regularizer 處處可微,所以容易做最佳化,
L1 Regularizer:Ω(w)=∑Qq=0|wq|=∥w∥1
L1 Regularizer 依然是convex 的,但是因爲有一些角存在,所以並不是處處可微的。從圖中可以看出,L1 的解通常是稀疏的,因爲最優解出現在目標函數的等高線(如圖中藍色線)和約束條件的邊界(如圖中紅色線)相切的點上,而這一點通常位於紅色邊界的頂點處。
4.3 - The optimal λ
當決定了regularizer 之後,另一個需要考慮的問題是參數λ 的選取。下面結合兩個實驗結果進行分析
- 當stochastic noise σ2=0,0.25,0.5 的時候,計算不同的λ 下Eout 的取值
- 當deterministic noise Qf=15,30,100 的時候,計算不同的λ 下Eout 的取值
可以看出來當noise 越多的時候, 我們需要更大的regularizar ,因此需要更大的λ 。但是實際上我們並不知道在數據中有多少的noise ,所以一般來說我們需要在不同的λ 中做選擇來讓regularizer 發揮最大的效果。那麼問題來了, 怎麼進行參數的選擇呢?在下一篇validation 中將會系列的給出在machine learning 中做參數選擇的方法。
5 - Summary
這一篇的主要內容是正則化regularization ,regularized hypothesis set 其實就是在原來的hypothesis set 的基礎上加上了條件,將加上這樣的條件的問題的求解轉換爲一個augmented error 的最優化問題。regularizer 是一個非常常用的工具,我們可以根據對target function 的認識等等將正則化項添加到目標函數中。
6 - reference