本文轉(zhuǎn)自徐飛翔的“曲線擬合問題與L2正則”
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
曲線擬合
回想[1]我們談到的多項式曲線擬合問題,我們這里重新描述一遍:假設(shè)我們有一個訓(xùn)練集,其中有N個觀察值,其自變量x寫作,同時,對應(yīng)的觀察因變量值y寫作
。如下圖是一組生成的數(shù)據(jù),綠線為通過函數(shù)
生成的,真實的生成曲線,藍(lán)點是從綠線上取值后添加上噪聲數(shù)據(jù)得到的。(這里的噪聲可能來自于隨機過程中的噪聲,也可能是因為存在一些相關(guān)的變量沒有被觀察到)
我們的目標(biāo),就是利用訓(xùn)練集來訓(xùn)練一個模型,對于一個新的輸入,可以預(yù)測出其
。這個過程中,將會隱式地學(xué)習(xí)到用來生成這個綠色曲線的
。如果我們不考慮我們預(yù)測的不確定性,那么我們直接就可以采用最小化誤差函數(shù)的方法進行模型參數(shù)值估計。我們假設(shè)模型為多項式模型,如下所示:
注意到,這個模型是關(guān)于的線性模型,但是并不是關(guān)于
的線性模型,像這種多項式,關(guān)于未知參數(shù)呈現(xiàn)線性的模型統(tǒng)稱為線性模型(Linear Model)。為了讓我們的模型盡可能的接近訓(xùn)練集的數(shù)據(jù),我們引入一個所謂的誤差函數(shù)(error function)去度量預(yù)測值和真實值之間的距離,一般我們可以采用平方和函數(shù)作為誤差函數(shù),從[1]中,我們將會發(fā)現(xiàn),當(dāng)數(shù)據(jù)噪聲滿足0均值高斯分布時,可以推出平方和損失函數(shù)。
下圖展示了計算預(yù)測值和真實值之間的距離示意圖,綠色距離之和即為所求。
因為式子(1.2)是一個關(guān)于的二次函數(shù),關(guān)于這些系數(shù)的導(dǎo)數(shù)將會是一個關(guān)于
線性的,通過令其梯度的每一個分量的導(dǎo)數(shù)為0,我們可以知道其有一個唯一解
,這個可以完全通過閉式解得到。當(dāng)然也可以通過基于梯度下降的方法得到近似解[3]。模型復(fù)雜度
接下來的問題就在于如何選取超參數(shù)。如下圖所示,
太大,將會導(dǎo)致模型復(fù)雜度太大,使得模型容易過擬合[4];然而,如果M太小,則模型的復(fù)雜度太低,擬合能力差,導(dǎo)致欠擬合。
但是,我們需要注意的是,導(dǎo)致模型過擬合和欠擬合的,不僅僅和超參數(shù)的設(shè)置有關(guān),而且很重要的一點是:和你訓(xùn)練集的好壞,規(guī)模也有重要的關(guān)系。如下圖所示,左圖是 個樣本點,而右圖是
個樣本點,同樣地采用了
的超參數(shù)設(shè)置,我們可以明顯地看到,樣本數(shù)量更多的一個,越符合真實的數(shù)據(jù)生成函數(shù)。不失一般地說,模型容量越大,模型復(fù)雜度越高,就需要更多的數(shù)據(jù)進行訓(xùn)練,以排除噪聲的影響。
我們再次回到 M = 0 , 1 , 6 , 9 M=0,1,6,9 M=0,1,6,9的四種情況,我們分別觀察它的 系數(shù),我們有:
不難發(fā)現(xiàn),M越大,其參數(shù)?的幅度也越大,并且是正負(fù)交錯的,這使得擬合曲線有著極大的震蕩,能夠在訓(xùn)練集上精確地擬合每一個訓(xùn)練數(shù)值,導(dǎo)致其泛化性能極差。在[1]中我們將會對
進行一個先驗假設(shè),通過貝葉斯理論的方法減緩這種情況的發(fā)生。然而,現(xiàn)在我們可以同樣完成這一件事情,通過添加一個懲罰項(penalty)即可,我們稱之為正則項(regularization)。形式如:
其中的懲罰項(正則項),然后
調(diào)節(jié)其和平方和損失之間的重要性比例。這種正則稱之為
正則化,因為求模操作也被稱之為
范式的原因。通過引入這種正則操作,使得參數(shù)能夠盡可能的小,而不會導(dǎo)致上面談到的問題。這種二次正則子稱為嶺回歸(ridge regression),在神經(jīng)網(wǎng)絡(luò)相關(guān)文獻中,也稱之為權(quán)值衰減(weight decay)(注意和學(xué)習(xí)率指數(shù)衰減分開)。
參考我們在[4]中曾經(jīng)討論過的,我們一般有兩種方式限制模型容量,通過設(shè)置超參數(shù)進而控制模型的假設(shè)空間太困難了,比如這里的 的選取就是一個困難的事。因此我們往往采取第二種做法,添加正則項對模型進行偏好排除,我們設(shè)置一個足夠大的
,當(dāng)然也不能太大,但是起碼不用擔(dān)心其不夠容量對數(shù)據(jù)進行擬合即可,然后添加合適的正則項進行模型的偏好排除就可以較為容易地控制模型容量。這個方法也是在深度學(xué)習(xí)中經(jīng)常使用的。
最后我們定量地觀察下正則項前系數(shù) 對參數(shù)
?的影響,如下圖所示,當(dāng)
的時候,可以觀察到參數(shù)的確都縮小到了合適的范圍。