線性模型常用來處理回歸和分類任務(wù),為了防止模型處于過擬合狀態(tài),需要用L1正則化和L2正則化降低模型的復(fù)雜度
# 什么是過擬合
假設(shè)我們要根據(jù)特征分類{男人X,女人O},如圖:

- 圖1欠擬合,分類有明顯欠缺,很多“男人”被分類成“女人”
- 圖2正常,雖然有兩個(gè)點(diǎn)分類錯(cuò)誤,但是能夠理解,畢竟現(xiàn)實(shí)世界有噪音干擾
- 圖3過擬合,分類全部是正確的,但是明顯感覺過了
## 如何去規(guī)避過擬合的風(fēng)險(xiǎn)呢?
我們知道線性分類模型一般表示為:
$f(x) = w_0x_0+w_1x_1+\cdots+w_ix_i$
根據(jù)泰勒展開式,任何函數(shù)都可以用多項(xiàng)式的方式去趨近,所以線性模型函數(shù)都可以表示為多項(xiàng)式
我們知道擬合函數(shù)f(x)涉及到的特征項(xiàng)有N個(gè),如果想防止過擬合首先想到的就是控制N的數(shù)量讓N最小化,其實(shí)就是讓W(xué)中項(xiàng)的個(gè)數(shù)最小化(如果導(dǎo)致過擬合的特征x的權(quán)重w為0,那么就不影響結(jié)果,從而降低過擬合)
## 如何求解“讓W(xué)向量中項(xiàng)的個(gè)數(shù)最小化”呢?
首先了解下范數(shù)的概念:
- 0范數(shù)$|W|_0$,向量中非零元素個(gè)數(shù)
- 1范數(shù)$|W|_1$,向量絕對值之和
- 2范數(shù)$|W|_2$,向量的模
所以為了防止過擬合,需要讓算法的經(jīng)驗(yàn)風(fēng)險(xiǎn)最小并且結(jié)構(gòu)風(fēng)險(xiǎn)最小,其中“結(jié)構(gòu)風(fēng)險(xiǎn) = 經(jīng)驗(yàn)風(fēng)險(xiǎn)+正則化項(xiàng)”,公式表示為:
## 經(jīng)驗(yàn)風(fēng)險(xiǎn)
經(jīng)驗(yàn)風(fēng)險(xiǎn)是模型關(guān)于訓(xùn)練樣本集的平均損失,對所有訓(xùn)練樣本都求一次損失函數(shù)再累加求平均。即模型f(x)對訓(xùn)練樣本中所有樣本的平均預(yù)測能力。
$? R_{emp}(f) = \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i, f(x_i))$
經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的策略認(rèn)為,經(jīng)驗(yàn)風(fēng)險(xiǎn)最小的模型是最優(yōu)的模型。根據(jù)這一策略,按照經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化求最優(yōu)模型就是求解最優(yōu)化問題:
$ min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$
## L1和L2正則化
正則化,就是在原來的經(jīng)驗(yàn)風(fēng)險(xiǎn)的基礎(chǔ)上,加上了一些正則化項(xiàng)或者稱為模型復(fù)雜度懲罰項(xiàng)。線性回歸策略使用的損失函數(shù)是平方損失函數(shù)即$L(y_i,f(x_i)) = (y_i,f(x_i))^2$
- 優(yōu)化目標(biāo) $min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$
- L1正則項(xiàng) $min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i)) + C||w||_1$
- L2正則項(xiàng)$min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i)) + C||w||_2^2$
## 結(jié)構(gòu)風(fēng)險(xiǎn)
結(jié)構(gòu)風(fēng)險(xiǎn)在經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的基礎(chǔ)上(也就是訓(xùn)練誤差最小化),盡可能采用簡單的模型(多項(xiàng)式項(xiàng)的個(gè)數(shù)最少),以此提高泛化預(yù)測精度。加上了L1正則化和L2正則化(懲罰項(xiàng))之后,可以簡化模型。
假設(shè)X為一個(gè)二維樣本,那么要求解參數(shù)(權(quán)重w)也是二維,如同:
- 原函數(shù)曲線等高線(同顏色曲線上,每一組 $w_1, w_2$ 帶入輸出結(jié)果值(函數(shù)值)都相同)

- 1和L2加入后的函數(shù)圖像

從上邊兩幅圖中我們可以看出:
- 如果不加L1和L2正則化的時(shí)候,對于線性回歸這種目標(biāo)函數(shù)凸函數(shù)的話,我們最終的結(jié)果就是最里邊的紫色的小圈圈等高線上的點(diǎn)(損失函數(shù)結(jié)果最?。?/p>
- 當(dāng)加入L1正則化的時(shí)候,我們先畫出|w1|+|w2|=F 的圖像也就是一個(gè)菱形,代表這些曲線上的點(diǎn)算出來的 1范數(shù)|w1|+|w2|都為F。我們的目標(biāo)是不僅是原曲線算得值要?。ㄔ絹碓浇咏行牡淖仙θΓ€要使得這個(gè)菱形越小越好(F越小越好),因此我們要取到一個(gè)恰好的值。如圖,等值線和正則項(xiàng)圖形

首先正則項(xiàng)的菱形是向外無限擴(kuò)展,等值線圖形也是無限擴(kuò)展,兩個(gè)圖型產(chǎn)生無數(shù)交叉,以最外圈的紅色等高線為例,于紅色曲線上的每個(gè)點(diǎn)都可以與正則項(xiàng)的菱形(無數(shù)個(gè))相交,但是只有菱形與紅色等高線相切(一個(gè)交點(diǎn))的點(diǎn)才滿足菱形最小。公式描述如下:
$\frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$ 相同時(shí)由于相切的$C||w||_1$最小能夠使損失函數(shù)最小。因此加入L1范數(shù)得到的某個(gè)解,一定是某個(gè)菱形和某條原函數(shù)等高線相切的點(diǎn)。 通過觀察我們可以看到,菱形和等高線相切的點(diǎn)都是在坐標(biāo)軸上,這樣解的某些屬性權(quán)重極其容易是0,所以說L1范式更容易得到權(quán)重稀疏解(解中權(quán)重部分為0),如同上圖解為w=(0,x),這樣最終模型就會(huì)變簡單(因?yàn)闄?quán)重為0所以權(quán)重和輸入特征的乘積為0)。
- 當(dāng)加入L2正則項(xiàng)時(shí),分析過程和L1正則化類似。L2正則項(xiàng)的圖形是圓形,我們找到某等高線和某圓形相切的點(diǎn)就是該等高線下?lián)p失函數(shù)的最小值點(diǎn)就是最終解。與L1范數(shù)比相切點(diǎn)不容易交在坐標(biāo)軸上,但是比較靠近坐標(biāo)軸。因此L2范數(shù)能讓解比較?。拷?),但是比較平滑(不等于0)
**因此加入正則化項(xiàng),在最小化經(jīng)驗(yàn)誤差的情況下,可以讓我們選擇解更簡單(趨向于0)的解結(jié)。**
在經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的基礎(chǔ)上(也就是訓(xùn)練誤差最小化),盡可能采用簡單的模型,以此提高泛化預(yù)測精度。因此,加正則化項(xiàng)就是結(jié)構(gòu)風(fēng)險(xiǎn)最小化的一種實(shí)現(xiàn)。