考慮兩個(gè)正在努力準(zhǔn)備期末考試的大學(xué)生。通常,這種準(zhǔn)備將包括通過參加前幾年的考試來練習(xí)和測(cè)試他們的能力。盡管如此,在過去的考試中取得好成績(jī)并不能保證他們?cè)谥匾臅r(shí)候會(huì)出類拔萃。例如,想象一個(gè)學(xué)生 Elephantine Ellie,她的準(zhǔn)備工作完全包括記住前幾年考試問題的答案。即使艾莉被賦予了象象般的記憶力,因此可以完美地回憶起任何以前見過的問題的答案,但當(dāng)她面對(duì)一個(gè)新的(以前沒見過的)問題時(shí),她可能還是會(huì)僵?。?問題。相比之下,想象另一個(gè)學(xué)生,Inductive Irene,記憶能力相對(duì)較差,但有能力挑選模式。請(qǐng)注意,如果考試真的由前一年的重復(fù)問題組成,那么 Ellie 將輕松勝過 Irene。即使 Irene 的推斷模式產(chǎn)生了 90% 的準(zhǔn)確預(yù)測(cè),它們也永遠(yuǎn)無法與 Ellie 的 100% 召回率相提并論。然而,即使考試完全由新題組成,艾琳也可能保持 90% 的平均分。
作為機(jī)器學(xué)習(xí)科學(xué)家,我們的目標(biāo)是發(fā)現(xiàn)模式。但是我們?nèi)绾未_定我們真的發(fā)現(xiàn)了一個(gè)普遍的模式而不是簡(jiǎn)單地記住了我們的數(shù)據(jù)呢?大多數(shù)時(shí)候,我們的預(yù)測(cè)只有在我們的模型發(fā)現(xiàn)這種模式時(shí)才有用。我們不想預(yù)測(cè)昨天的股價(jià),而是明天的。我們不需要為以前見過的病人識(shí)別已經(jīng)診斷出的疾病,而是需要識(shí)別以前沒見過的病人的以前未確診的疾病。這個(gè)問題——如何發(fā)現(xiàn)泛化的模式——是機(jī)器學(xué)習(xí)的根本問題,可以說是所有統(tǒng)計(jì)學(xué)的根本問題。我們可以把這個(gè)問題看作是一個(gè)涵蓋所有科學(xué)的更宏大問題的一部分:我們什么時(shí)候有理由從特定的觀察到更一般的陳述(波普爾,2005 年)?
在現(xiàn)實(shí)生活中,我們必須使用有限的數(shù)據(jù)集合來擬合模型。該數(shù)據(jù)的典型規(guī)模在不同領(lǐng)域差異很大。對(duì)于許多重要的醫(yī)學(xué)問題,我們只能訪問幾千個(gè)數(shù)據(jù)點(diǎn)。在研究罕見病時(shí),我們可能幸運(yùn)地接觸到數(shù)百種疾病。相比之下,由標(biāo)記照片組成的最大公共數(shù)據(jù)集(例如,ImageNet (Deng等人,2009 年))包含數(shù)百萬張圖像。而一些未標(biāo)記的圖像集合,例如 Flickr YFC100M 數(shù)據(jù)集可能更大,包含超過 1 億張圖像(Thomee等人,2016 年). 然而,即使在這種極端規(guī)模下,與 1 百萬像素分辨率下所有可能圖像的空間相比,可用數(shù)據(jù)點(diǎn)的數(shù)量仍然是無限小的。每當(dāng)我們處理有限樣本時(shí),我們必須牢記這樣的風(fēng)險(xiǎn),即我們可能會(huì)擬合我們的訓(xùn)練數(shù)據(jù),卻發(fā)現(xiàn)我們未能發(fā)現(xiàn)可概括的模式。
擬合更接近我們的訓(xùn)練數(shù)據(jù)而不是底層分布的現(xiàn)象稱為過度擬合,而對(duì)抗過度擬合的技術(shù)通常稱為正則化方法。雖然沒有什么可以替代對(duì)統(tǒng)計(jì)學(xué)習(xí)理論的適當(dāng)介紹(參見Boucheron等人(2005 年)、Vapnik(1998 年)),但我們將為您提供足夠的直覺來開始學(xué)習(xí)。我們將在全書的許多章節(jié)中重新審視泛化,探索各種模型中泛化的基本原理的已知內(nèi)容,以及已經(jīng)發(fā)現(xiàn)的啟發(fā)式技術(shù)(根據(jù)經(jīng)驗(yàn))可以對(duì)實(shí)際感興趣的任務(wù)產(chǎn)生改進(jìn)的泛化。
3.6.1. 訓(xùn)練誤差和泛化誤差
在標(biāo)準(zhǔn)的監(jiān)督學(xué)習(xí)設(shè)置中,我們假設(shè)訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)是獨(dú)立于相同 分布繪制的。這通常稱為IID 假設(shè)。雖然這個(gè)假設(shè)很強(qiáng),但值得注意的是,如果沒有任何這樣的假設(shè),我們就會(huì)死在水里。為什么我們應(yīng)該相信從分布中采樣的訓(xùn)練數(shù)據(jù)P(X,Y)應(yīng)該告訴我們?nèi)绾螌?duì)不同分布生成的測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè) Q(X,Y)?事實(shí)證明,實(shí)現(xiàn)這樣的飛躍需要強(qiáng)有力的假設(shè)P和Q有關(guān)系。稍后我們將討論一些允許分布變化的假設(shè),但首先我們需要了解 IID 情況,其中 P(?)=Q(?).
首先,我們需要區(qū)分訓(xùn)練誤差 Remp,這是在訓(xùn)練數(shù)據(jù)集上計(jì)算的統(tǒng)計(jì)量,泛化誤差 R,這是 對(duì)基礎(chǔ)分布的期望。您可以將泛化錯(cuò)誤視為將您的模型應(yīng)用于從相同的基礎(chǔ)數(shù)據(jù)分布中提取的無限的附加數(shù)據(jù)示例流時(shí)您會(huì)看到的情況。形式上,訓(xùn)練誤差表示為總和(在3.1 節(jié)中使用相同的符號(hào) ):
(3.6.1)Remp[X,y,f]=1n∑i=1nl(x(i),y(i),f(x(i))),
而泛化誤差表示為一個(gè)積分:
(3.6.2)R[p,f]=E(x,y)~P[l(x,y,f(x))]=∫∫l(x,y,f(x))p(x,y)dxdy.
問題是,我們永遠(yuǎn)無法計(jì)算泛化誤差 R確切地。沒有人告訴我們密度函數(shù)的精確形式p(x,y). 此外,我們無法對(duì)無限的數(shù)據(jù)點(diǎn)流進(jìn)行采樣。因此,在實(shí)踐中,我們必須通過將我們的模型應(yīng)用于由隨機(jī)選擇的示例組成的獨(dú)立測(cè)試集來估計(jì) 泛化誤差X′ 和標(biāo)簽y′從我們的訓(xùn)練集中保留下來的。這包括將與計(jì)算經(jīng)驗(yàn)訓(xùn)練誤差相同的公式應(yīng)用于測(cè)試集 X′,y′.
至關(guān)重要的是,當(dāng)我們?cè)跍y(cè)試集上評(píng)估我們的分類器時(shí),我們使用的是固定分類器(它不依賴于測(cè)試集的樣本),因此估計(jì)其誤差只是均值估計(jì)的問題。然而,對(duì)于訓(xùn)練集來說,情況并非如此。請(qǐng)注意,我們最終得到的模型明確取決于訓(xùn)練集的選擇,因此訓(xùn)練誤差通常是對(duì)基礎(chǔ)總體真實(shí)誤差的有偏估計(jì)。泛化的核心問題是我們何時(shí)應(yīng)該期望我們的訓(xùn)練誤差接近總體誤差(以及泛化誤差)。
3.6.1.1. 模型復(fù)雜度
在經(jīng)典理論中,當(dāng)我們擁有簡(jiǎn)單的模型和豐富的數(shù)據(jù)時(shí),訓(xùn)練誤差和泛化誤差往往很接近。然而,當(dāng)我們使用更復(fù)雜的模型和/或更少的示例時(shí),我們預(yù)計(jì)訓(xùn)練誤差會(huì)下降但泛化差距會(huì)擴(kuò)大。這不足為奇。想象一個(gè)模型類如此富有表現(xiàn)力,以至于對(duì)于任何數(shù)據(jù)集n例如,我們可以找到一組可以完美匹配任意標(biāo)簽的參數(shù),即使是隨機(jī)分配的。在這種情況下,即使我們完美地?cái)M合了我們的訓(xùn)練數(shù)據(jù),我們?cè)趺茨艿贸鲫P(guān)于泛化誤差的任何結(jié)論呢?就我們所知,我們的泛化誤差可能并不比隨機(jī)猜測(cè)好多少。
一般來說,在我們的模型類別沒有任何限制的情況下,我們不能僅基于擬合訓(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)于這個(gè)世界的什么呢?簡(jiǎn)而言之,我們想要的是一個(gè)無法實(shí)現(xiàn)的假設(shè) 解釋我們可能做出的任何觀察,但恰好與我們實(shí)際上做出的觀察相一致。
現(xiàn)在,究竟是什么構(gòu)成了模型復(fù)雜性的適當(dāng)概念是一個(gè)復(fù)雜的問題。通常,具有更多參數(shù)的模型能夠適應(yīng)更多數(shù)量的任意分配標(biāo)簽。然而,這不一定是真的。例如,內(nèi)核方法在具有無限數(shù)量參數(shù)的空間中運(yùn)行,但它們的復(fù)雜性由其他方式控制(Scholkopf 和 Smola,2002 年)。一個(gè)經(jīng)常被證明有用的復(fù)雜性概念是參數(shù)可以采用的值的范圍。在這里,允許參數(shù)取任意值的模型會(huì)更復(fù)雜。我們將在下一節(jié)介紹權(quán)重衰減時(shí)重新討論這個(gè)想法,您的第一個(gè)實(shí)用正則化技術(shù)。值得注意的是,比較本質(zhì)上不同的模型類(例如,決策樹與神經(jīng)網(wǎng)絡(luò))的成員之間的復(fù)雜性可能很困難。
在這一點(diǎn)上,我們必須強(qiáng)調(diào)另一個(gè)重點(diǎn),我們將在介紹深度神經(jīng)網(wǎng)絡(luò)時(shí)重新討論這一點(diǎn)。當(dāng)模型能夠擬合任意標(biāo)簽時(shí),低訓(xùn)練誤差并不一定意味著低泛化誤差。但是,它也不一定意味著高泛化錯(cuò)誤!我們只能自信地說,僅憑低訓(xùn)練誤差不足以證明低泛化誤差。深度神經(jīng)網(wǎng)絡(luò)就是這樣的模型:雖然它們?cè)趯?shí)踐中泛化得很好,但它們太強(qiáng)大了,無法讓我們僅根據(jù)訓(xùn)練誤差得出很多結(jié)論。在這些情況下,我們必須更多地依賴我們的堅(jiān)持?jǐn)?shù)據(jù)來證明事后的概括。holdout 數(shù)據(jù)(即驗(yàn)證集)上的錯(cuò)誤稱為驗(yàn)證錯(cuò)誤。
3.6.2. 欠擬合還是過擬合?
當(dāng)我們比較訓(xùn)練和驗(yàn)證錯(cuò)誤時(shí),我們要注意兩種常見情況。首先,我們要注意訓(xùn)練誤差和驗(yàn)證誤差都很大但它們之間有一點(diǎn)差距的情況。如果模型無法減少訓(xùn)練誤差,則可能意味著我們的模型太簡(jiǎn)單(即表達(dá)能力不足)而無法捕捉我們嘗試建模的模式。此外,由于泛化差距 (Remp?R) 在我們的訓(xùn)練和泛化誤差之間很小,我們有理由相信我們可以擺脫更復(fù)雜的模型。這種現(xiàn)象稱為欠擬合。
另一方面,正如我們上面所討論的,我們要注意訓(xùn)練誤差明顯低于驗(yàn)證誤差的情況,這表明存在嚴(yán)重的過度擬合。請(qǐng)注意,過度擬合并不總是壞事。特別是在深度學(xué)習(xí)中,最好的預(yù)測(cè)模型在訓(xùn)練數(shù)據(jù)上的表現(xiàn)通常比在保留數(shù)據(jù)上的表現(xiàn)要好得多。最終,我們通常關(guān)心降低泛化誤差,只關(guān)心差距,因?yàn)樗鼤?huì)成為實(shí)現(xiàn)這一目標(biāo)的障礙。請(qǐng)注意,如果訓(xùn)練誤差為零,則泛化差距恰好等于泛化誤差,我們只能通過縮小差距來取得進(jìn)步。
3.6.2.1. 多項(xiàng)式曲線擬合
為了說明關(guān)于過度擬合和模型復(fù)雜性的一些經(jīng)典直覺,請(qǐng)考慮以下內(nèi)容:給定由單個(gè)特征組成的訓(xùn)練數(shù)據(jù)x和相應(yīng)的實(shí)值標(biāo)簽 y,我們嘗試找到次數(shù)的多項(xiàng)式d
(3.6.3)y^=∑i=0dxiwi
估計(jì)標(biāo)簽y. 這只是一個(gè)線性回歸問題,我們的特征由x,模型的權(quán)重由下式給出wi, 偏差由下式給出 w0自從x0=1對(duì)全部x. 由于這只是一個(gè)線性回歸問題,我們可以使用平方誤差作為我們的損失函數(shù)。
高階多項(xiàng)式函數(shù)比低階多項(xiàng)式函數(shù)更復(fù)雜,因?yàn)楦唠A多項(xiàng)式的參數(shù)更多,模型函數(shù)的選擇范圍更廣。固定訓(xùn)練數(shù)據(jù)集,相對(duì)于低階多項(xiàng)式,高階多項(xiàng)式函數(shù)應(yīng)始終實(shí)現(xiàn)較低(最壞情況下,相等)的訓(xùn)練誤差。事實(shí)上,只要每個(gè)數(shù)據(jù)示例都有不同的值 x,一個(gè)次數(shù)等于數(shù)據(jù)樣本個(gè)數(shù)的多項(xiàng)式函數(shù)可以完美地?cái)M合訓(xùn)練集。我們?cè)趫D 3.6.1中可視化多項(xiàng)式次數(shù)(模型復(fù)雜性)與欠擬合與過擬合之間的關(guān)系。
圖 3.6.1模型復(fù)雜度對(duì)欠擬合和過擬合的影響
3.6.2.2. 數(shù)據(jù)集大小
正如上面的界限已??經(jīng)表明的那樣,要牢記的另一個(gè)重要考慮因素是數(shù)據(jù)集大小。修復(fù)我們的模型,訓(xùn)練數(shù)據(jù)集中的樣本越少,我們就越有可能(也更嚴(yán)重)遇到過擬合。隨著我們?cè)黾佑?xùn)練數(shù)據(jù)量,泛化誤差通常會(huì)降低。此外,一般來說,更多的數(shù)據(jù)永遠(yuǎn)不會(huì)有壞處。對(duì)于固定的任務(wù)和數(shù)據(jù)分布,模型復(fù)雜度的增加不應(yīng)超過數(shù)據(jù)量的增加速度。給定更多數(shù)據(jù),我們可能會(huì)嘗試擬合更復(fù)雜的模型。沒有足夠的數(shù)據(jù),更簡(jiǎn)單的模型可能更難被擊敗。對(duì)于許多任務(wù),只有在有數(shù)千個(gè)訓(xùn)練示例可用時(shí),深度學(xué)習(xí)才會(huì)優(yōu)于線性模型。部分地,
3.6.3. 選型
通常,我們選擇最終模型,只是在評(píng)估了以各種方式(不同架構(gòu)、訓(xùn)練目標(biāo)、所選特征、數(shù)據(jù)預(yù)處理、學(xué)習(xí)率等)不同的多個(gè)模型之后。在眾多模型中進(jìn)行選擇被恰當(dāng)?shù)胤Q為模型選擇。
原則上,在我們選擇了所有超參數(shù)之前,我們不應(yīng)該接觸我們的測(cè)試集。如果我們?cè)谀P瓦x擇過程中使用測(cè)試數(shù)據(jù),則存在我們可能過度擬合測(cè)試數(shù)據(jù)的風(fēng)險(xiǎn)。那我們就麻煩大了。如果我們過度擬合我們的訓(xùn)練數(shù)據(jù),總會(huì)有對(duì)測(cè)試數(shù)據(jù)的評(píng)估來保持我們的誠實(shí)。但是如果我們過度擬合測(cè)試數(shù)據(jù),我們?cè)趺粗滥兀繀⒁?Ong等人。( 2005 )例如,即使對(duì)于可以嚴(yán)格控制復(fù)雜性的模型,這也會(huì)導(dǎo)致荒謬的結(jié)果。
因此,我們永遠(yuǎn)不應(yīng)該依賴測(cè)試數(shù)據(jù)來選擇模型。然而,我們也不能僅僅依靠訓(xùn)練數(shù)據(jù)來選擇模型,因?yàn)槲覀儫o法估計(jì)我們用來訓(xùn)練模型的數(shù)據(jù)的泛化誤差。
在實(shí)際應(yīng)用中,情況變得更加模糊。雖然理想情況下我們只會(huì)接觸測(cè)試數(shù)據(jù)一次,以評(píng)估最好的模型或?qū)⑸贁?shù)模型相互比較,但真實(shí)世界的測(cè)試數(shù)據(jù)很少在使用一次后就被丟棄。我們很少能為每一輪實(shí)驗(yàn)提供新的測(cè)試集。事實(shí)上,幾十年來回收基準(zhǔn)數(shù)據(jù)會(huì)對(duì)算法的發(fā)展產(chǎn)生重大影響,例如圖像分類 和光學(xué)字符識(shí)別。
解決測(cè)試集訓(xùn)練問題的常見做法 是將我們的數(shù)據(jù)分成三種方式,除了訓(xùn)練和測(cè)試數(shù)據(jù)集之外還包含一個(gè)驗(yàn)證集。結(jié)果是一種模糊的做法,驗(yàn)證和測(cè)試數(shù)據(jù)之間的界限令人擔(dān)憂地模棱兩可。除非另有明確說明,否則在本書的實(shí)驗(yàn)中,我們實(shí)際上使用的是正確稱為訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)的數(shù)據(jù),沒有真正的測(cè)試集。因此,本書每個(gè)實(shí)驗(yàn)中報(bào)告的準(zhǔn)確度實(shí)際上是驗(yàn)證準(zhǔn)確度,而不是真正的測(cè)試集準(zhǔn)確度。
3.6.3.1. 交叉驗(yàn)證
當(dāng)訓(xùn)練數(shù)據(jù)稀缺時(shí),我們甚至可能無法提供足夠的數(shù)據(jù)來構(gòu)成適當(dāng)?shù)尿?yàn)證集。這個(gè)問題的一個(gè)流行的解決方案是使用K折疊交叉驗(yàn)證。在這里,原始訓(xùn)練數(shù)據(jù)被拆分為 K非重疊子集。然后執(zhí)行模型訓(xùn)練和驗(yàn)證K次,每次訓(xùn)練K?1子集并在不同的子集(該輪未用于訓(xùn)練的子集)上進(jìn)行驗(yàn)證。最后,通過對(duì)來自K實(shí)驗(yàn)。
3.6.4. 概括
本節(jié)探討了機(jī)器學(xué)習(xí)中泛化的一些基礎(chǔ)。當(dāng)我們進(jìn)入更深的模型時(shí),其中一些想法變得復(fù)雜且違反直覺,在那里,模型能夠嚴(yán)重過度擬合數(shù)據(jù),并且復(fù)雜性的相關(guān)概念可能既隱含又違反直覺(例如,具有更多參數(shù)的更大架構(gòu)泛化更好)。我們留給您一些經(jīng)驗(yàn)法則:
使用驗(yàn)證集(或K-折疊交叉驗(yàn)證)用于模型選擇;
更復(fù)雜的模型通常需要更多的數(shù)據(jù);
復(fù)雜性的相關(guān)概念包括參數(shù)的數(shù)量和允許取值的范圍;
在其他條件相同的情況下,更多的數(shù)據(jù)幾乎總能帶來更好的泛化能力;
整個(gè)關(guān)于泛化的討論都是基于 IID 假設(shè)。如果我們放松這個(gè)假設(shè),允許分布在訓(xùn)練和測(cè)試階段之間移動(dòng),那么我們就不能說沒有進(jìn)一步(也許更溫和)假設(shè)的泛化。
3.6.5. 練習(xí)
你什么時(shí)候能準(zhǔn)確地解決多項(xiàng)式回歸問題?
至少給出五個(gè)例子,其中依賴隨機(jī)變量使得將問題作為 IID 數(shù)據(jù)處理是不可取的。
你能期望看到零訓(xùn)練錯(cuò)誤嗎?在什么情況下你會(huì)看到零泛化錯(cuò)誤?
為什么是K-折疊交叉驗(yàn)證的計(jì)算成本非常高?
為什么是K-折疊交叉驗(yàn)證錯(cuò)誤估計(jì)有偏差?
VC維定義為可以用任意標(biāo)簽分類的最大點(diǎn)數(shù){±1}通過一類函數(shù)的函數(shù)。為什么這不是衡量函數(shù)類復(fù)雜程度的好主意?提示:函數(shù)的大小如何?
您的經(jīng)理給您提供了一個(gè)困難的數(shù)據(jù)集,您當(dāng)前的算法在該數(shù)據(jù)集上表現(xiàn)不佳。您如何向他證明您需要更多數(shù)據(jù)?提示:您不能增加數(shù)據(jù),但可以減少它。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132837 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13283
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論