1.1 緒論
內容對應PRML書1.1節部分。
多項式擬合例子
在這個例子中,假設我們有兩個變量,它們滿足如下關係:
其中是一個均值爲、標準差爲的高斯噪聲。我們首先在區間內等間距地產生了10個點,接着根據如上的關係爲這個點得到一組對應的目標函數值 。
這種數據產生方式符合大部分現實世界中的數據集的性質,即產生樣本時既包含潛在的規律,又伴隨着隨機噪聲。這些隨機噪聲的產生原因可能是某種內在的隨機性,也可能是某種未被觀測到的因素。我們的目標是根據這 個點構成的訓練集 調整模型的參數來擬合目標函數,然後用學習到的模型對新的樣本 預測其對應的 。
線性模型
在這個問題中,我們將使用一個多項式曲線來擬合真實目標函數:
其中 稱爲該多項式的係數, 表示 的 次冪,M稱爲多項式的階。線性模型的優點是既可以表示複雜的曲線,又具有解析解。
我們引入一個誤差函數(error function)來衡量模型在一個數據集上的表現,通過最小化訓練誤差函數來找到線性模型的最佳參數值。線性迴歸問題中,最常用的誤差函數就是平方和誤差(sum of squares error)
模型複雜度
在確定了模型的參數後,我們還需要確定多項式的階 ,有時我們也把它叫做模型複雜度(model complexity)。 的值越小,可以表示的曲線越簡單,擬合能力也越弱; 的值越大,可以表示的曲線就越豐富,擬合能力也越強。那麼 是不是越大越好呢?我們來看下面幾張圖:
從圖中我們看到,當 或 時多項式變爲直線,不足以刻畫訓練集中的非線性關係,這種現象稱爲欠擬合(under-fitting);當 時,我們發現擬合曲線恰好經過訓練集的所有點,雖然此時訓練集上的誤差爲0,但是曲線劇烈震盪,泛化性很差,這種現象稱爲過擬合(over-fitting);當 時,我們發現曲線的擬合效果是最好的。因此,模型複雜度並不是越高越好,針對一個問題我們要選擇合適的模型複雜度以獲得良好的泛化能力,選擇適宜模型複雜度的過程稱爲模型選擇(model selection)。
泛化能力定量評估
由於我們事先知道數據是如何產生的,因此我們可以額外再生成若干個樣本點作爲測試集來定量描述的變化對於模型泛化能力的影響。當數據規模 增加時,平方和誤差 也隨之增加,這爲公平比較不同規模數據集的誤差帶來了難度。爲了便於比較不同規模數據集上的誤差,我們定義均方根誤差(root-mean-square error,RMSE):
通過求平均,我們可以在同一基準比較不同的數據集上的誤差;開根號後的值可以理解爲目標變量的平均偏差。 具體地,我們將產生100個測試樣本點,並計算當 取不同的值時,測試集上的誤差。
從圖中我們可以看出,當 的取值範圍爲 到 時,測試集的誤差較高,這是因爲此時的模型還不夠靈活,不足以刻畫 這種非線性關係;當 的取值範圍爲 到 時,測試集誤差較低,泛化能力最好;當 時,我們發現訓練集上的誤差爲0,這是因爲我們的模型剛好有個自由度 ,因此可以被調整到剛好經過這 個點,但這也導致了模型參數被過度調整以擬合樣本中的噪聲,作爲後果,模型在測試集上的誤差與訓練集上的表現相去甚遠,此時模型發生了過擬合。我們可以輸出 爲不同值時的模型參數:
可以看到,正是由於係數的數量級很高引起了曲線的劇烈震盪。
防止過擬合
過擬合是機器學習中普遍存在的問題,如何解決過擬合就成了機器學習的一個重要的研究熱點。這裏介紹兩種結局過擬合的方法,第一種方法是增加訓練數據量,第二種方法是正則化(regularization)。
增加數據量
增加數據量可以有效防止過擬合。從下圖我們可以看到,對已⼀個給定的模型複雜度,當數據集的規模增加時,過擬合問題變得不那麼嚴重。另⼀種表述⽅式是,數據集規模越⼤,我們能夠⽤來擬合數據的模型就應該越複雜 。
但是實際中我們不得不根據可得到的訓練集的規模限制參數的數量,即根據待解決的問題的複雜性來選擇模型的複雜性 。
在後來我們會看到,尋找模型參數的最⼩平⽅⽅法代表了最⼤似然(maximum likelihood),並且過擬合問題可以被理解爲最⼤似然的⼀個通⽤屬性。通過使⽤⼀種貝葉斯(Bayesian)⽅法,過擬合問題可以被避免。我們將會看到,從貝葉斯的觀點來看,對於模型參數的數量超過數據點數量的情形,沒有任何難解之處。實際上,⼀個貝葉斯模型中,參數的有效(effective)數量會⾃動根據數據集的規模調節。但是現在,繼續使⽤當前的⽅法還是很有⽤的。繼續來看。
正則化
當我們沒辦法獲取更多的數據時,就需要限制模型的複雜度了。具體的做法是給目標函數加上一個L2罰項以限制係數的數量級:
其中 , 用於控制平方和誤差與正則項的相對重要性。一般來說我們會把正則項中的 去掉,這樣做的原因是使得結果不依賴於目標變量的原點。這樣的技術在統計學中稱爲shrinkage,上面的目標函數是其中的一種特殊情況,稱爲嶺迴歸(ridge regression),在神經網絡中這樣的技術被叫作權重衰減(weight decay)。下面幾張圖分別爲我們展示了正則項係數 的不同取值對結果曲線的影響:
對於 時,不同的 影響如下:
當 時,即 ,對應沒有正則化的線性迴歸,我們可以發現輸出的模型參數與線性迴歸基本一致;當時,過擬合現象減輕了許多;而當時, 在本例中這個正則化係數太大,導致模型欠擬合。總的來說,隨着正則係數的增加,參數的數量級逐漸衰減,直至趨近於0。