[林軒田]14-規範化

[TOC]機器學習

監督機器學習問題無非就是「minimizeyour error while regularizing your parameters」,也就是在規則化參數的同時最小化偏差。最小化偏差是爲了讓咱們的模型擬合咱們的訓練數據,而規則化參數是防止咱們的模型過度擬合咱們的訓練數據。函數

咱們須要保證模型「簡單」的基礎上最小化訓練偏差,這樣獲得的參數才具備好的泛化性能(也就是測試偏差也小),而模型「簡單」就是經過規則函數來實現的。性能

另外,規則項的使用還能夠約束咱們的模型的特性。這樣就能夠將人對這個模型的先驗知識融入到模型的學習當中,強行地讓學習到的模型具備人想要的特性,例如稀疏、低秩、平滑等等。學習

要知道,有時候人的先驗是很是重要的。前人的經驗會讓你少走不少彎路,這就是爲何咱們平時學習最好找個大牛帶帶的緣由。一句點撥能夠爲咱們撥開眼前烏雲,還咱們一片晴空萬里,醍醐灌頂。對機器學習也是同樣,若是被咱們人稍微點撥一下,它確定能更快的學習相應的任務。只是因爲人和機器的交流目前尚未那麼直接的方法,目前這個媒介只能由規則項來擔當了。測試

——引用自 大神 鄒博優化

規範化多項式集合

regularition : 是解決overfitting的一種方法 。spa

低次方的多項式集合會包在高次方的多項式集合裏面 。.net

迴歸約束

規範化的過程就是,從高次多項式走回到低次多項式。就是在問題裏面加上一些條件,約束:高次的係數都爲0;blog

Paste_Image.png

也就是我想找一個二次多項式,實際上它也是個十次多項式,只不過他的3次以上的係數都是0;圖片

寬鬆的迴歸約束 looser constraint 稀疏規則化

只限制等於0的參數的個數,而不限制究竟哪一個參數是0;這個實際上是L0範數,規則化的結果是使得W稀疏
Paste_Image.png

當咱們看到 式子中出現的布爾表達式時,像PLA同樣它的最優化是NP-hard的問題。

規則化的Wreg

這裏咱們只要求這個參數向量W的模要有限制。不關心它到底有幾個參數,這樣的多項式集合咱們叫作Hc

Paste_Image.png

H2與Hc是有重合部分的。overlaps。 包含結構也是有的。這樣咱們就跳脫了NP-hard的困境。
Paste_Image.png

咱們把這樣的多項式集合得出的參數叫作規則化的w(在咱們規則的條件下找出來的w)

Paste_Image.png

weight decay regularization

是L2範數: ||W||2。它也不遜於L1範數,它有兩個美稱,在迴歸裏面,有人把有它的迴歸叫「嶺迴歸」(Ridge Regression),有人也叫它「權值衰減weight decay」。這用的不少吧,由於它的強大功效是改善機器學習裏面一個很是重要的問題:過擬合。過擬合通俗的講法就是應試能力很強,實際應用能力不好。擅長背誦知識,卻不懂得靈活利用知識。
那麼爲何L2範數能防止過擬合呢。 L2範數是指向量各元素的平方和而後求平方根。咱們讓L2範數的規則項||W||2最小,可使得W的每一個元素都很小,都接近於0,但與L1範數不一樣,它不會讓它等於0,而是接近於0,這裏是有很大的區別的哦。而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。爲何越小的參數說明模型越簡單?我也不懂,個人理解是:限制了參數很小,實際上就限制了多項式某些份量的影響很小(看上面線性迴歸的模型的那個擬合的圖),這樣就至關於減小參數個數。
L2範數能夠防止過擬合,提高模型的泛化能力。

矩陣形式表示規則化迴歸問題

Paste_Image.png
上面是咱們要優化的帶上約束的表達式。對於式子裏面每一子項的平方和的形式能夠變換成求一個向量的L2範數平方的形式。

Paste_Image.png
轉化爲這個樣子 ,這個條件是咱們的W須要在半徑爲根號C的圓裏面。
Paste_Image.png

在優化的過程當中,若是沒有條件,梯度的反方向就是咱們的目標函數要減少的方向。可是咱們如今有了約束條件,咱們不能走出圓的範圍,若是降低的方向有個份量與圓的法向量的方向垂直。若是梯度的反方向與圓的法向量平行,那麼咱們就不能繼續優化了。

Paste_Image.png

因此咱們優化的結果是梯度的反方向與圓的法向量平行。
在下面的推導中,咱們能夠看出求Wreg就是一個線性的運算,這個過程在統計學中叫作嶺迴歸"ridge regression"
Paste_Image.png
其實咱們求上面那個式子等於零,就至關於找它的積分的最小值咯,這樣咱們的最優化的目標函數其實稍微有了一點改變。咱們叫它augmented Error 加上去的錯誤。
Paste_Image.png
民間還有個說法就是,規則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項(regularizer)或懲罰項(penalty term)。

通常來講,監督學習能夠看作最小化下面的目標函數:


其中,第一項L(yi,f(xi;w)) 衡量咱們的模型(分類或者回歸)對第i個樣本的預測值f(xi;w)和真實的標籤yi以前的偏差。由於咱們的模型是要擬合咱們的訓練樣本的嘛,因此咱們要求這一項最小,也就是要求咱們的模型儘可能的擬合咱們的訓練數據。但正如上面說言,咱們不只要保證訓練偏差最小,咱們更但願咱們的模型測試偏差小,因此咱們須要加上第二項,也就是對參數w的規則化函數Ω(w)去約束咱們的模型儘可能的簡單。
——引用自 大神 鄒博

從下面的圖片能夠看出,加上一點點的λ,效果就會很好了。
Paste_Image.png

Paste_Image.png叫作權值遞減規則化,過大的λ會使得對W的限制變得大,W就會去得很小。

當數據都處於[-1,1]之間時,對於高次冪 $$ X^Q_n $$ 的數據,就會比其餘次冪小的多。若是咱們模型須要高次冪,可是$$ X^Q_n $$很小,那麼就必須增大權重來提升其影響力,可是懲罰函數又會限制權重的增大,這就照成了問題。方法就是讓Φ(x)內的向量是互相正交的,即Legendre polynomials 勒讓德多項式。

這裏寫圖片描述

q+1次方的多項式進行了一些座標準換,可是由於各個次數多項式之間不是垂直的,這致使在次數較低的地方效果還不錯,可是次數高的地方,懲罰太重。在多項式空間裏面找到垂直的多項式。

Paste_Image.png

選擇最好的懲罰函數

  1. 根據咱們想要的target function f來選 
    好比,我知道個人f(x)是偶函數,那麼我就但願個人g內偶次冪的權重大。即我要儘量下降我奇次冪的權重。即把懲罰函數設爲

    這裏寫圖片描述

  2. 若是我但願咱們模型光滑,簡單,那就用L1規範 
    這裏寫圖片描述

  3. 若是我但願個人模型任意達到最優,就是效果好,那就用L2規範 
    這裏寫圖片描述 

L1要求低,精度低,但計算量小

L1,L2 規範

這裏寫圖片描述 
L1要求低,精度低,但計算量小,是凸函數的,但w=0時是不可微分的。它的解經常是稀疏的。
L2規範化比較平滑是凸函數。

從下圖咱們能夠看出,不一樣的noise須要不一樣的λ。
Paste_Image.png

咱們選擇規則項(懲罰項)應該看它懲罰誰比較重,就知道它傾向於選擇什麼樣的hypothesis.

Paste_Image.png

參考資料

[機器學習中的範數規則化之(一)L0、L1與L2範數

regularization 規範化(L1,L2等等):加懲罰函數下降過擬合

相關文章
相關標籤/搜索