與“過擬合”相對的是“欠擬合”(underfitting),這是指對訓練樣本的一般性質尚未學好,圖2.1給出了關于過擬合與欠擬合的一個便于直觀理解的類比.有多種因素可能導致過擬合,其中最常見的情況是由于學習能力過于強大,以至于把訓練樣本所包含的不太一般的特性都學到了,而欠擬合則通常是由于學習能力低下而造成的,欠擬合比較容易克服,例如在決策樹學習中擴展分支、在神經網絡學習中增加訓練輪數等,而過擬合則很麻煩.在后面的學習中我們將看到,過擬合是機器學習面臨的關鍵障礙,各類學習算法都必然帶有一些針對過擬合的措施;然而必須認識到,過擬合是無法徹底避免的,我們所能做的只是“緩解”,或者說減小其風險,關于這一點,可大致這樣理解:機器學習面臨的問題通常是NP難甚至更難,而有效的學習算法必然是在多項式時間內運行完成,若可徹底避免過擬合,則通過經驗誤差最小化就能獲最優解,這就意味著我們構造性地證明了“P=NP”;因此,只要相信“P≠NP”,過擬合就不可避免.在現實任務中,我們往往有多種學習算法可供選擇,甚至對同一個學習算法,當使用不同的參數配置時,也會產生不同的模型.那么,我們該選用哪一個學習算法、使用哪一種參數配置呢?這就是機器學習中的“模型選擇”(modelselection)問題.理想的解決方案當然是對候選模型的泛化誤差進行評估,然后選擇泛化誤差最小的那個模型.然而如上面所討論的,我們無法直接獲得泛化誤差,而訓練誤差又由于過擬合現象的存在而不適合作為標準,那么,在現實中如何進行模型評估與選擇呢?
?