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