【機器學習】機器學習中的正則化項

在機器學習中我們時常會遇到模型過擬合的問題,這是由於我們所得到的的模型複雜度過大,過於完美地擬合了訓練數據,也就導致模型在預測訓練數據時效果很好而預測新數據時效果很差。解決過擬合問題的一個典型方法即是:正則化

1.損失函數和風險函數

首先我們介紹下按照何種標準來選擇出最優的模型。這個標準就是由損失函數和風險函數來定義的。損失函數度量的是模型一次預測的好壞,風險函數度量的是平均意義下模型預測的好壞。

監督學習問題是在假設空間FF中選取模型ff作爲決策函數,對於給定的輸入XX,由f(X)f(X)給出相應應的輸出Y^\hat Y,這個輸出的預測值f(X)f(X)與真實值YY可能一致也可能不一致,用一個損失函數(loss function)或代價函數(cost function)來度量預測錯誤的程度。損失函數f(X)f(X)YY的非負實值函數,記作L(Y,f(X))L(Y, f(X))

常用的損失函數有:

  1. 0-1損失函數
    L(Y,f(X))={1Yf(X)0Y=f(X)L(Y,f(X))=\begin{cases} 1& Y\ne f(X)\\ 0& Y=f(X) \end{cases}
  2. 平方損失函數
    L(Y,f(X))=(Yf(X))2L(Y,f(X))=(Y-f(X))^2
  3. 絕對損失函數
    L(Y,f(X))=Yf(X)L(Y,f(X))=|Y-f(X)|
  4. 對數損失函數或對數似然損失函數
    L(Y,P(YX))=logP(YX)L(Y,P(Y|X))=-log P(Y|X)

損失函數值越小,模型就越好。由於模型的輸入、輸出(X,Y)(X,Y)是隨機變量,遵循聯合分佈P(X,Y)P(X,Y),所以損失函數的期望是
Rexp(f)=Ep[L(Y,f(X))]=L(y,f(x))P(x,y)dxdyR_{exp}(f)=E_p[L(Y,f(X))]=\int L(y,f(x))P(x,y)dxdy
上式是在輸入空間和輸出空間上進行積分,是在理論上模型f(X)f(X)關於聯合分佈P(X,Y)P(X,Y)的平均意義下的損失,成爲風險函數(risk function)或期望損失(expected loss)。

我們學習的目標就是選擇期望風險最小的模型。但是聯合分佈P(X,Y)P(X,Y)是未知的,Rexp(f)R_{exp}(f)並不能直接求出來,正因爲這樣,才需要學習。

給定一個訓練集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1), (x_2, y_2),...,(x_N, y_N)\}。模型f(X)f(X)關於訓練接的平均損失稱爲經驗風險(empirical risk)或經驗損失(empirical loss),記作RempR_{emp}
Remp(f)=1Ni=1NL(yi,f(xi))R_{emp}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))
期望風險Rexp(f)R_{exp}(f)是模型關於聯合分佈的期望損失,而經驗風險Remp(f)R_{emp}(f)是模型關於訓練樣本集合的平均損失。根據大數定律,當樣本容量NN趨於無窮的時候,經驗風險Remp(f)R_{emp}(f)趨於期望風險Rexp(f)R_{exp}(f)。因此就想利用經驗風險來估計期望風險,但是通常實際應用中訓練數據有限,這種估計方法會不理想。這就引出了監督學習中兩個基本策略:經驗風險最小化和結構風險最小化。


1.1 經驗風險最小化

經驗風險最小化(empirical risk minimization,ERM)策略認爲,經驗風險最小的模型就是最優模型。根據這一策略求最優模型即是求解最優問題:
minf1Ni=1NL(yi,f(xi))(1)\min_f \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) \tag 1
當樣本容量足夠大時,經驗風險最小化能保證很好的學習效果。如:極大似然估計(maximum likelihood estimation)就是經驗風險最小化的一個例子。當模型是條件概率分佈,損失函數是對數損失函數時,經驗風險最小化就等價於極大似然估計。
但是當樣本容量很小時,經驗風險最小化學習的效果就難以保證了,常會出現過擬合(over fitting)現象。

1.2 結構風險最小化

結構風險最小化(structural risk minimization,SRM)就是爲了防止過擬合而提出的策略,它等價於正則化(regularization)。結構風險是在經驗風險上加上表示模型複雜度的正則化項(regularizer)或懲罰項(penalty term):
Rsrm(f)=1Ni=1NL(yi,f(xi))+λJ(f)R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)
其中J(f)J(f)爲模型的複雜度,模型ff越複雜,複雜度J(f)J(f)就越大;反之,模型ff越簡單,複雜度J(f)J(f)就越小。這個複雜度表示了對複雜模型的懲罰。λ0\lambda \geq 0是正則化係數,以權衡經驗風險和模型複雜度。結構風險小就會迫使經驗風險和模型複雜度都小。如:貝葉斯估計中的最大後驗概率估計就是結構風險最小化的一個例子。當模型是條件概率分佈、損失函數是對數損失函數、模型複雜度由模型的先驗概率表示時,結構風險最小化等價於最大後驗概率估計。

結構風險最小化策略認爲結構風險最小的模型是最優模型。所以根據此策略求最優模型就是求解最優問題:
minf1Ni=1NL(yi,f(xi))+λJ(f)(2)\min_f\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f) \tag 2


所以監督學習問題就變成了經驗風險或結構風險函數的最優化問題(1)(1)(2)(2)。此時經驗風險或結構風險函數就是最優化的目標函數。

2. 過擬合

過擬合是指學習時選擇的模型所包含的參數過多,以致於出現這一模型對已知數據預測很好,但對未知數據預測很差的現象。比如在吳恩達機器學習課程中的一個多項式擬合的問題,如圖:
在這裏插入圖片描述
左側圖像表示欠擬合情況,指模型還未很好地捕捉住數據特性,對數據擬合不好。
右圖即是過擬合情況,得益於高次多項式參數複雜,模型能夠非常完美地擬合數據點,但是它太過完美了,只關注在了訓練數據特性上,沒有抓住數據背後真正的趨勢/規律,因此對於新出現的數據點預測效果會很差。
中圖即是較好的擬合情況,抓住了數據規律,對新數據預測也有較好效果,魯棒性較好。

如何解決過擬合問題呢?一個方法就是下面將要說的正則化。

3. 正則化

如前文所說,正則化是結構風險最小化策略的實現,是在經驗風險加上一個正則化項或者懲罰項。正則化項一般是模型複雜度的單調遞增函數,模型越複雜,正則化值越大。正則化項可以是模型參數向量的範數。正則化一般具有以下形式:
minf1Ni=1NL(yi,f(xi))+λJ(f)\min_f\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)
其中第1項爲經驗風險,第2項爲正則化項,λ0\lambda \geq 0爲正則化係數。

以線性迴歸爲例,給定數據集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1), (x_2, y_2),...,(x_N, y_N)\},其中xRdx \in \R ^dyRy \in \Rxxdd維特徵,yy爲一個實值量。在最基本的線性迴歸模型中,以平方誤差爲損失函數,我們的優化目標如下:
minw1Ni=1N(f(xi;w)yi)2(3)\min_w \frac{1}{N}\sum_{i=1}^{N}(f(x_i;w)-y_i)^2 \tag 3
其中f(xi;w)=wTxf(x_i;w)=w^Tx
但是當樣本特徵很多,而樣本數量相對較少的時候,上式很容易出現過擬合。爲了緩解過擬合問題,可以對(3)(3)式引入正則化項。

若正則化項爲L2L_2範數,則有:
minw1Ni=1N(f(xi;w)yi)2+λ2w22(4)\min_w \frac{1}{N}\sum_{i=1}^{N}(f(x_i;w)-y_i)^2 + \frac{\lambda}{2}\parallel w \parallel_2^2 \tag 4
其中w22\parallel w \parallel_2^2表示向量wwL2L_2範數的平方,即向量元素的平方和i=1dwi2\sum_{i=1}^{d}w_i^2通常不考慮偏置。正則化係數λ2>0\frac{\lambda}{2} > 0,這個12\frac{1}{2}僅是爲了在求導的時候消去L2L_2範數的平方。(4)(4)式又稱爲“嶺迴歸”(ridge regression),通過引入L2L_2正則化項,能有效降低過擬合風險。

若正則化項爲L1L_1範數,則有:
minw1Ni=1N(f(xi;w)yi)2+λw1(5)\min_w \frac{1}{N}\sum_{i=1}^{N}(f(x_i;w)-y_i)^2 + \lambda \parallel w \parallel_1 \tag 5
其中w1\parallel w \parallel_1表示向量wwL1L_1範數,即向量元素的絕對值之和i=1dwi\sum_{i=1}^{d} |w_i|。正則化係數λ>0\lambda > 0(5)(5)式被稱爲LASSO(Least Absolute Shrinkage and Selection Operator)。

L1L_1範數和L2L_2範數都有助於降低過擬合風險,但L1L_1範數還能夠帶來“稀疏”解,即求得的ww有更少的非零分量。所以它們的主要作用是:

  • L1L_1範數可以產生稀疏權值,可以用來特徵選擇。
  • L2L_2範數可以防止過擬合。同樣L1L_1範數也可以起到一定程度的防止過擬合作用。

3.1 L1L_1正則化

L1L_1正則化是如何產生“稀疏”解的呢?如何讓某些參數爲0的呢?同樣還是拿大家常來解釋這個作用的例子來看一下,研究線性迴歸損失函數,假設我們獲取的數據xix_i僅有兩個特徵,在解(4)(4)(5)(5)式得到的ww是一個2維向量,即w1w_1w2w_2,然後將L1L_1正則化項和平方誤差項的等值線繪製在平面直角座標系中。如:
在這裏插入圖片描述
上圖中藍色線表示平方誤差項的等值線,即取值相同點的連線。紅色線表示L1L_1正則化項的等值線。

平方誤差項和L1L_1正則化項的交點ww^*即是(5)(5)式的最優解,可以看出來平方誤差項和L1L_1正則化項的交點經常出現在座標軸位置上,即某一維的取值會爲0,比如上圖中的w1=0w_1=0,這就相當於參數變少了,變得“稀疏”了。(至於爲什麼交點會在座標軸上,個人的理解,只有當平方損失項正對着L1L_1正則化項纔會在邊上相交,否則很大概率會先交在頂點處。)類似地,對於高維ww向量,L1L_1正則化項的形狀會是有多個突出的角,這些角與平方損失項相交會比L1L_1其他部位與之相交的概率高,也就讓某些維度的取值爲0了。

再一點就是λ\lambda取值的影響,λ\lambda取值越大,說明對模型參數懲罰越厲害,當然參數就越小了,由此L1L_1正則化項的形狀就越小,這樣就可能出現欠擬合的情況,平方損失項與L1L_1正則化項早早地相交了(或者說ww各維度取值都趨近0),還沒往極值點處靠近就停止了。反之λ\lambda取值越小,說明對模型參數懲罰越弱,參數就越大了,因此L1L_1正則化項的形狀就越大

參數更新角度來看L1L_1正則化項的作用,這裏就直接貼李宏毅《機器學習2017》課件中的推導了:
在這裏插入圖片描述
上圖中的L(θ)L(\theta)即前文所述的經驗損失函數,L(θ)L^\prime(\theta)表示一個新函數,注意這裏不是函數的導數。
由最後推導得到的參數更新公式可以看出,L1L_1正則化項起到的作用相當於每次迭代更新使得權重ww都減一個正實數或者加一個負實數,使得ww中元素值都向0靠近。

3.2 L2L_2正則化

同樣地,還是上一節的假設背景,不過是解(4)(4)式,也將(4)(4)中前一部分平方損失項和後一部分L2L_2正則化項的等值線畫出來,如圖:
在這裏插入圖片描述

上圖中藍色線表示平方誤差項的等值線,即取值相同點的連線。紅色線表示L2L_2正則化項的等值線。

同樣交點ww^*(4)(4)式的最優解,從圖中可見,ww^*取值位置大多在某個象限內,即w1w_1w2w_2均不爲0,L2L_2正則化項會選擇多個維度特徵,而這些對應維度的參數都很小。

λ\lambda的取值對L2L_2正則化項的形狀影響同上一節中所說的。

周志華《機器學習》中的圖示將L1L_1L2L_2畫在了一起,看起來更有對比性:

在這裏插入圖片描述

除此之外,L2L_2正則化還被稱爲權重衰減(weight decay)。其參數更新上的作用如下,同樣來自李宏毅課件
在這裏插入圖片描述
從圖中可以看出,L2L_2正則化項在參數更新時起到的作用,即是每次迭代參數權重都會乘上一個小於1的係數,經過多次迭代以後參數權重就會趨於0。相當於一個指數倍數的衰減,因此被稱爲權重衰減也就很自然了。


上面的許多資料大多是從文獻中摘過來的,參考了一些博客,爲了做個在線筆記吧,捋一捋知識點啥的,也供大家參考,如有不足之處歡迎指出。

參考資料

[1] 統計機器學習 1.3節. 李航
[2] 機器學習 11.4節. 周志華
[3] 機器學習中正則化項L1和L2的直觀理解
[4] 機器學習中的範數規則化之(一)L0、L1與L2範數
[5] 【機器學習】正則化的線性迴歸 —— 嶺迴歸與Lasso迴歸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章