0%

機器學習基石(Machine Learning Foundation)第十四講筆記

上一堂課講到overfitting現象,他會在使用過高的模型複雜度、雜訊過多或是資料太少時發生。上次有提到可以使用Data Clean/Purning和Data Hinting從資料面下手解決,這堂課會提到regularized手法來避免overfitting。

Overfit現象就是Target和Fit兩者相差太多,雖然可以將樣本學習的很好使Ein很小,但是卻造成泛化能力很差Eout過高,就如同右邊這張圖。regularized目標則是希望可以把Fit曲線能夠更接近Target,所以regularized可以視成一個從高次方項走向底次方項的手法,有很多的解都可以通過樣本點,但是究竟哪一組是最好的,就是regularized要作的。那該怎麼從高次多項走回低次多項式呢?

要從高次多項式走回低次多項式,其實就可以視成低次多項式是高次多項式加上constrain,即如果把十次多項式中超過三次的項權重都設成0,那麼就可以降回二次多項式了。在求最佳化的過程也是,如果今天要求二次多項式的最小值Ein,就可以使用加上constrain的十次多項式來求最小值。

進一步的可以再延伸出,如果我並不是把超過三次項的權重設成0,而是只要其中有8項設權重設成0,就可以放寬這個constrain,讓regression可以更加的有彈性。這個放寬限制條件的二項式會比本來的二項式可以變化的項次更多,但也不像十次多項式這麼複雜。所以成求Ein時,只要確保權重為0的項次小於3個就可以了,但是這種離散的限制就像PLA一樣不容易求解,是NP-hard問題。

原本的條件是算權重不是0的項次要小於3,我們可以把他轉換成將每個項次權重平均相加要小於上限制C,這樣就可以轉成比較好解的問題,而且權重越接近0的取平均會越小。C如果設定的越大,就會越接近十次多項式結果,且所有比較小的C的項次組合都會被比較大的C的項次組合包含。這個H(C)又可以被稱為regularized hypothesis,即加上限制條件的hypothesis,而透過規則化的hypothesis set裡所找到的最佳hypothesis又稱為W(REG)

再來可以和之前一樣把式子轉換成矩陣的表示方法來解最佳化問題。原本我們可以透過走梯度反方向到W(lin)這個最佳解,但是現在加上了限制式,這個限制在幾何上是一個圓圈,找到前面所提到的規則化hpothesis最佳解W(REG)的話,就得同時往梯度反方向走而且不離開圓邊。又因為往圓的法向量(紅色向量)走就會離開圓邊,所以只能往垂直於法向量的分量走(綠色向量),當持續走到梯度反方向要是和圓的法向量平行的話,就代表不能走了,即為找到最佳解。我們可以把兩個平行向量的比值設成2λ/N。

再來可以把求梯度等於0轉換回求最小值的式子,即為Ein加上一組regularizer又可稱為augmented error Eaug(w),如果預先先指定λ值就可以很容易的解這個式子。

所以只要加上一點regularizer就可以對模型結果作出適當調整,今天如果λ設成0的話就等同沒有regularized即為overfitting,λ設的太大則會造成underfitting,加上regularizer就會有類似懲罰的效果。這種的規則化方法又稱為weight-decay regularization,即把權重最小的規則化方法。而且這個規則化方法可以應用到linear regresion、logistic regression甚至是其他不同的transform。

但究竟這個augmented error和之前學到的VC有什麼相關性呢?用求augmented error的方法來解本來不好解的constrain Ein,這裡對應到的VC保證為Eout會小於En加上一個constrain H(C),所以作好Eaug就能把Eout間接的也作好。

Augmented error和VC bound其實相同的地方在於都是在求複雜度,augmented error求的是單一個hypothesis的複雜度,而VC則是在求整個hypothesis集合的複雜度。這個augmented error如果可以表現更好,那麼Eaug可能是一個比Ein更好的代理人可以幫我們作到好的Eout。

其實使用regulization付出的VC dimension會比原本還要小,因為在實際上有N個特徵維度下,最終透過regulization將不會使用到那麼多的維度。這裡相比原本的d(VC),可以稱為d(EFF),其付出的維度會比本來的d(VC)還小。

那到底該使用什麼樣的regularizer呢?今天如果在知道target特性的情況下,可以針對target特性來設計regularizer,比如說如果想要一個比較接近偶函數的函數話,就針對奇數次方讓他變小。又或者在選出一個比較能夠說服我們的regularizer,像是比較平滑或是簡單的regularizer,因為overfitting是noise造成的,noise就會造成不平滑,像是使用L1 regularizer。或者也可以找一個好使用好最佳化的regularizer,像是前面說到的weight-decay regularizer,又被稱為L2 regularizer。如果找到不好的regularizer,那就把λ設定成0就等同於拿掉regularizer的效果。

L2 Regularizer最大的好處就是他很好微分求最佳值,而L1在微分求最佳值的部份比較困難,且L1在求最佳值時很常發生在頂點上,意義就是某一些的權重w會是0,所以L1 Regularizer又被稱為sparse regularizer。透過L1就可以在高維度空間下(例如1000維),找到一些w非0的項次(可能只有5維),所以在最後的預測只要算非0項速度會比較快。

那λ該怎麼選擇呢?很明顯的可以看到不管是stochastic noise或是deterministic noise,只要noise越大λ就要越大。下一講將會開始說明在使用規則化手法時,該如何有效的使用最佳的λ。

總結來看,這堂課說明規則化就是在原本的hypothesis加上一個條件,並轉成一個Augmented Error,因為作了規則化所以有些維度就不會被使用到,因此VC維度就會下降成d(EFF),而使用regularizer的使用方法可以針對target特性,或是使用容易說服自己的regularizer,還有也可以使用好最佳化的regularizer。

參考資料:
Machine Learning Foundation 14