考慮兩個正在努力準(zhǔn)備期末考試的大學(xué)生。通常,這種準(zhǔn)備將包括通過參加前幾年的考試來練習(xí)和測試他們的能力。盡管如此,在過去的考試中取得好成績并不能保證他們在重要的時候會出類拔萃。例如,想象一個學(xué)生 Elephantine Ellie,她的準(zhǔn)備工作完全包括記住前幾年考試問題的答案。即使艾莉被賦予了象象般的記憶力,因此可以完美地回憶起任何以前見過的問題的答案,但當(dāng)她面對一個新的(以前沒見過的)問題時,她可能還是會僵住) 問題。相比之下,想象另一個學(xué)生,Inductive Irene,記憶能力相對較差,但有能力挑選模式。請注意,如果考試真的由前一年的重復(fù)問題組成,那么 Ellie 將輕松勝過 Irene。即使 Irene 的推斷模式產(chǎn)生了 90% 的準(zhǔn)確預(yù)測,它們也永遠(yuǎn)無法與 Ellie 的 100% 召回率相提并論。然而,即使考試完全由新題組成,艾琳也可能保持 90% 的平均分。
作為機器學(xué)習(xí)科學(xué)家,我們的目標(biāo)是發(fā)現(xiàn)模式。但是我們?nèi)绾未_定我們真的發(fā)現(xiàn)了一個普遍的模式而不是簡單地記住了我們的數(shù)據(jù)呢?大多數(shù)時候,我們的預(yù)測只有在我們的模型發(fā)現(xiàn)這種模式時才有用。我們不想預(yù)測昨天的股價,而是明天的。我們不需要為以前見過的病人識別已經(jīng)診斷出的疾病,而是需要識別以前沒見過的病人的以前未確診的疾病。這個問題——如何發(fā)現(xiàn)泛化的模式——是機器學(xué)習(xí)的根本問題,可以說是所有統(tǒng)計學(xué)的根本問題。我們可以把這個問題看作是一個涵蓋所有科學(xué)的更宏大問題的一部分:我們什么時候有理由從特定的觀察到更一般的陳述(波普爾,2005 年)?
在現(xiàn)實生活中,我們必須使用有限的數(shù)據(jù)集合來擬合模型。該數(shù)據(jù)的典型規(guī)模在不同領(lǐng)域差異很大。對于許多重要的醫(yī)學(xué)問題,我們只能訪問幾千個數(shù)據(jù)點。在研究罕見病時,我們可能幸運地接觸到數(shù)百種疾病。相比之下,由標(biāo)記照片組成的最大公共數(shù)據(jù)集(例如,ImageNet (Deng等人,2009 年))包含數(shù)百萬張圖像。而一些未標(biāo)記的圖像集合,例如 Flickr YFC100M 數(shù)據(jù)集可能更大,包含超過 1 億張圖像(Thomee等人,2016 年). 然而,即使在這種極端規(guī)模下,與 1 百萬像素分辨率下所有可能圖像的空間相比,可用數(shù)據(jù)點的數(shù)量仍然是無限小的。每當(dāng)我們處理有限樣本時,我們必須牢記這樣的風(fēng)險,即我們可能會擬合我們的訓(xùn)練數(shù)據(jù),卻發(fā)現(xiàn)我們未能發(fā)現(xiàn)可概括的模式。
擬合更接近我們的訓(xùn)練數(shù)據(jù)而不是底層分布的現(xiàn)象稱為過度擬合,而對抗過度擬合的技術(shù)通常稱為正則化方法。雖然沒有什么可以替代對統(tǒng)計學(xué)習(xí)理論的適當(dāng)介紹(參見Boucheron等人(2005 年)、Vapnik(1998 年)),但我們將為您提供足夠的直覺來開始學(xué)習(xí)。我們將在全書的許多章節(jié)中重新審視泛化,探索各種模型中泛化的基本原理的已知內(nèi)容,以及已經(jīng)發(fā)現(xiàn)的啟發(fā)式技術(shù)(根據(jù)經(jīng)驗)可以對實際感興趣的任務(wù)產(chǎn)生改進(jìn)的泛化。
3.6.1. 訓(xùn)練誤差和泛化誤差
在標(biāo)準(zhǔn)的監(jiān)督學(xué)習(xí)設(shè)置中,我們假設(shè)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)是獨立于相同 分布繪制的。這通常稱為IID 假設(shè)。雖然這個假設(shè)很強,但值得注意的是,如果沒有任何這樣的假設(shè),我們就會死在水里。為什么我們應(yīng)該相信從分布中采樣的訓(xùn)練數(shù)據(jù)P(X,Y)應(yīng)該告訴我們?nèi)绾螌?/font>不同分布生成的測試數(shù)據(jù)進(jìn)行預(yù)測 Q(X,Y)?事實證明,實現(xiàn)這樣的飛躍需要強有力的假設(shè)P和Q有關(guān)系。稍后我們將討論一些允許分布變化的假設(shè),但首先我們需要了解 IID 情況,其中 P(?)=Q(?).
首先,我們需要區(qū)分訓(xùn)練誤差 Remp,這是在訓(xùn)練數(shù)據(jù)集上計算的統(tǒng)計量,泛化誤差 R,這是 對基礎(chǔ)分布的期望。您可以將泛化錯誤視為將您的模型應(yīng)用于從相同的基礎(chǔ)數(shù)據(jù)分布中提取的無限的附加數(shù)據(jù)示例流時您會看到的情況。形式上,訓(xùn)練誤差表示為總和(在3.1 節(jié)中使用相同的符號 ):
而泛化誤差表示為一個積分:
問題是,我們永遠(yuǎn)無法計算泛化誤差 R確切地。沒有人告訴我們密度函數(shù)的精確形式p(x,y). 此外,我們無法對無限的數(shù)據(jù)點流進(jìn)行采樣。因此,在實踐中,我們必須通過將我們的模型應(yīng)用于由隨機選擇的示例組成的獨立測試集來估計 泛化誤差X′ 和標(biāo)簽y′從我們的訓(xùn)練集中保留下來的。這包括將與計算經(jīng)驗訓(xùn)練誤差相同的公式應(yīng)用于測試集 X′,y′.
至關(guān)重要的是,當(dāng)我們在測試集上評估我們的分類器時,我們使用的是固定分類器(它不依賴于測試集的樣本),因此估計其誤差只是均值估計的問題。然而,對于訓(xùn)練集來說,情況并非如此。請注意,我們最終得到的模型明確取決于訓(xùn)練集的選擇,因此訓(xùn)練誤差通常是對基礎(chǔ)總體真實誤差的有偏估計。泛化的核心問題是我們何時應(yīng)該期望我們的訓(xùn)練誤差接近總體誤差(以及泛化誤差)。
3.6.1.1. 模型復(fù)雜度
在經(jīng)典理論中,當(dāng)我們擁有簡單的模型和豐富的數(shù)據(jù)時,訓(xùn)練誤差和泛化誤差往往很接近。然而,當(dāng)我們使用更復(fù)雜的模型和/或更少的示例時,我們預(yù)計訓(xùn)練誤差會下降但泛化差距會擴大。這不足為奇。想象一個模型類如此富有表現(xiàn)力,以至于對于任何數(shù)據(jù)集n例如,我們可以找到一組可以完美匹配任意標(biāo)簽的參數(shù),即使是隨機分配的。在這種情況下,即使我們完美地擬合了我們的訓(xùn)練數(shù)據(jù),我們怎么能得出關(guān)于泛化誤差的任何結(jié)論呢?就我們所知,我們的泛化誤差可能并不比隨機猜測好多少。
一般來說,在我們的模型類別沒有任何限制的情況下,我們不能僅基于擬合訓(xùn)練數(shù)據(jù)就得出我們的模型已經(jīng)發(fā)現(xiàn)任何可概括模式的結(jié)論(Vapnik等人,1994 年)。另一方面,如果我們的模型類不能適應(yīng)任意標(biāo)簽,那么它一定發(fā)現(xiàn)了一種模式。關(guān)于模型復(fù)雜性的學(xué)習(xí)理論思想從卡爾波普爾的思想中獲得了一些靈感,卡爾波普爾是一位有影響力的科學(xué)哲學(xué)家,他形式化了可證偽性標(biāo)準(zhǔn)。根據(jù)波普爾的說法,可以解釋任何和所有觀察結(jié)果的理論根本不是科學(xué)理論!畢竟,如果它不排除任何可能性,它能告訴我們關(guān)于這個世界的什么呢?簡而言之,我們想要的是一個無法實現(xiàn)的假設(shè) 解釋我們可能做出的任何觀察,但恰好與我們實際上做出的觀察相一致。
現(xiàn)在,究竟是什么構(gòu)成了模型復(fù)雜性的適當(dāng)概念是一個復(fù)雜的問題。通常,具有更多參數(shù)的模型能夠適應(yīng)更多數(shù)量的任意分配標(biāo)簽。然而,這不一定是真的。例如,內(nèi)核方法在具有無限數(shù)量參數(shù)的空間中運行,但它們的復(fù)雜性由其他方式控制(Scholkopf 和 Smola,2002 年)。一個經(jīng)常被證明有用的復(fù)雜性概念是參數(shù)可以采用的值的范圍。在這里,允許參數(shù)取任意值的模型會更復(fù)雜。我們將在下一節(jié)介紹權(quán)重衰減時重新討論這個想法,您的第一個實用正則化技術(shù)。值得注意的是,比較本質(zhì)上不同的模型類(例如,決策樹與神經(jīng)網(wǎng)絡(luò))的成員之間的復(fù)雜性可能很困難。
在這一點上,我們必須強調(diào)另一個重點,我們將在介紹深度神經(jīng)網(wǎng)絡(luò)時重新討論這一點。當(dāng)模型能夠擬合任意標(biāo)簽時,低訓(xùn)練誤差并不一定意味著低泛化誤差。但是,它也不一定意味著高泛化錯誤!我們只能自信地說,僅憑低訓(xùn)練誤差不足以證明低泛化誤差。深度神經(jīng)網(wǎng)絡(luò)就是這樣的模型:雖然它們在實踐中泛化得很好,但它們太強大了,無法讓我們僅根據(jù)訓(xùn)練誤差得出很多結(jié)論。在這些情況下,我們必須更多地依賴我們的堅持?jǐn)?shù)據(jù)來證明事后的概括。holdout 數(shù)據(jù)(即驗證集)上的錯誤稱為驗證錯誤。
3.6.2. 欠擬合還是過擬合?
當(dāng)我們比較訓(xùn)練和驗證錯誤時,我們要注意兩種常見情況。首先,我們要注意訓(xùn)練誤差和驗證誤差都很大但它們之間有一點差距的情況。
評論