在第 3 節(jié)和第 4 節(jié)中,我們通過將線性模型擬合到訓練數(shù)據(jù)來解決回歸和分類問題。在這兩種情況下,我們都提供了實用的算法來尋找使觀察到的訓練標簽的可能性最大化的參數(shù)。然后,在每一章的末尾,我們回憶起擬合訓練數(shù)據(jù)只是一個中間目標。我們一直以來真正的追求是發(fā)現(xiàn)一般模式,在此基礎上我們甚至可以對來自相同潛在人群的新樣本做出準確的預測。機器學習研究人員是消費者 的優(yōu)化算法。有時,我們甚至必須開發(fā)新的優(yōu)化算法。但歸根結底,優(yōu)化只是達到目的的一種手段。機器學習的核心是一門統(tǒng)計學科,我們希望僅在某些統(tǒng)計原理(已知或未知)導致生成的模型泛化到訓練集之外的范圍內(nèi)優(yōu)化訓練損失。
從好的方面來看,事實證明,通過隨機梯度下降訓練的深度神經(jīng)網(wǎng)絡在跨越計算機視覺的無數(shù)預測問題上表現(xiàn)得非常好;自然語言處理;時間序列數(shù)據(jù);推薦系統(tǒng);電子健康記錄;蛋白質(zhì)折疊;視頻游戲和棋盤游戲中的價值函數(shù)逼近;和無數(shù)其他領域。不利的一面是,如果您正在尋找優(yōu)化故事(為什么我們可以將它們擬合到訓練數(shù)據(jù))或泛化故事(為什么生成的模型泛化到看不見的例子)的直接說明,那么您可能想給自己倒一個喝。雖然我們優(yōu)化線性模型的程序和解決方案的統(tǒng)計特性都通過綜合理論體系進行了很好的描述,
深度學習的理論和實踐在這兩個方面都在迅速發(fā)展,理論家們采用新的策略來解釋正在發(fā)生的事情,而實踐者則繼續(xù)以驚人的速度進行創(chuàng)新,建立用于訓練深度網(wǎng)絡的啟發(fā)式武器庫和大量的直覺和為決定在何種情況下應用何種技術提供指導的民間知識。
目前的 TL;DR 是深度學習理論已經(jīng)產(chǎn)生了有前途的攻擊線和分散的迷人結果,但仍然遠未全面說明(i)為什么我們能夠優(yōu)化神經(jīng)網(wǎng)絡和(ii) ) 通過梯度下降學習的模型如何能夠很好地泛化,即使是在高維任務上。然而,在實踐中,(i) 很少成為問題(我們總能找到適合我們所有訓練數(shù)據(jù)的參數(shù)),因此理解泛化是一個更大的問題。另一方面,即使缺乏連貫的科學理論,從業(yè)者也已經(jīng)開發(fā)出大量技術,可以幫助您生成在實踐中具有良好泛化能力的模型。雖然沒有精辟的總結可以公正地描述深度學習中泛化的廣泛主題,
5.5.1. 重新審視過度擬合和正則化
根據(jù)Wolpert等人的“沒有免費的午餐”定理。( 1995 ),任何學習算法都可以更好地概括具有某些分布的數(shù)據(jù),而對其他分布則更差。 因此,給定一個有限的訓練集,模型依賴于某些假設:為了達到人類水平的表現(xiàn),識別反映人類如何看待世界的歸納偏差可能是有用的。這種歸納偏差顯示出對具有某些屬性的解決方案的偏好。例如,深度 MLP 傾向于通過將更簡單的函數(shù)組合在一起來構建復雜的函數(shù)。
通過編碼歸納偏差的機器學習模型,我們訓練它們的方法通常包括兩個階段:(i)擬合訓練數(shù)據(jù);(ii)通過評估 holdout 數(shù)據(jù)模型來估計泛化誤差(基礎群體的真實誤差)。我們對訓練數(shù)據(jù)的擬合與對測試數(shù)據(jù)的擬合之間的差異稱為泛化差距,當泛化差距很大時,我們說我們的模型過度擬合到訓練數(shù)據(jù)。在過度擬合的極端情況下,我們可能會準確地擬合訓練數(shù)據(jù),即使測試誤差仍然很大。在經(jīng)典觀點中,解釋是我們的模型太復雜,要求我們要么縮小特征數(shù)量、學習的非零參數(shù)數(shù)量,要么縮小量化參數(shù)的大小。回憶一下3.6 節(jié)中模型復雜度與損失的關系圖(圖 3.6.1) 。
然而,深度學習以違反直覺的方式使這幅圖復雜化。首先,對于分類問題,我們的模型通常具有足夠的表現(xiàn)力以完美地適合每個訓練示例,即使在由數(shù)百萬組成的數(shù)據(jù)集中也是如此(Zhang等人,2021 年)。在經(jīng)典圖片中,我們可能認為此設置位于模型復雜性軸的最右端,泛化誤差的任何改進都必須通過正則化來實現(xiàn),要么通過降低模型類的復雜性,要??么通過應用懲罰,嚴格限制我們的參數(shù)可能采用的值集。但這就是事情開始變得奇怪的地方。
奇怪的是,對于許多深度學習任務(例如,圖像識別和文本分類),我們通常在模型架構中進行選擇,所有這些架構都可以實現(xiàn)任意低的訓練損失(和零訓練錯誤)。因為考慮中的所有模型都實現(xiàn)了零訓練誤差,所以進一步提高的唯一途徑是減少過度擬合。更奇怪的是,通常情況下,盡管完美地擬合了訓練數(shù)據(jù),但我們實際上可以通過使模型更具表現(xiàn)力來進一步減少泛化誤差,例如,添加層、節(jié)點或訓練更多的 epoch。更奇怪的是,將泛化差距與復雜性聯(lián)系起來的模式模型的一部分(如捕獲的那樣,例如,在網(wǎng)絡的深度或?qū)挾戎校┛梢允欠菃握{(diào)的,復雜性越高,起初會受到傷害,但隨后有助于形成所謂的“雙下降”模式(Nakkiran等人, 2021 年)。因此,深度學習從業(yè)者擁有一大堆技巧,其中一些似乎以某種方式限制了模型,而另一些似乎使模型更具表現(xiàn)力,并且在某種意義上,所有這些都用于減輕過度擬合。
更復雜的是,雖然經(jīng)典學習理論提供的保證即使對于經(jīng)典模型也可能是保守的,但它們似乎無力解釋為什么深度神經(jīng)網(wǎng)絡首先要進行泛化。因為深度神經(jīng)網(wǎng)絡即使對于大型數(shù)據(jù)集也能夠擬合任意標簽,盡管使用了熟悉的方法,如?2正則化,傳統(tǒng)的基于復雜性的泛化邊界,例如,那些基于假設類的 VC 維度或 Rademacher 復雜性的泛化邊界無法解釋為什么神經(jīng)網(wǎng)絡會泛化。
5.5.2. 來自非參數(shù)的靈感
第一次接觸深度學習,很容易將它們視為參數(shù)模型。畢竟,模型確實有數(shù)百萬個參數(shù)。當我們更新模型時,我們更新它們的參數(shù)。當我們保存模型時,我們將它們的參數(shù)寫入磁盤。然而,數(shù)學和計算機科學充斥著違反直覺的視角變化,以及看似不同的問題的驚人同構。雖然神經(jīng)網(wǎng)絡顯然有參數(shù),在某些方面,將它們視為表現(xiàn)得像非參數(shù)模型會更有成效。那么究竟是什么使模型成為非參數(shù)的呢?雖然這個名稱涵蓋了多種方法,但一個共同的主題是非參數(shù)方法往往具有一定程度的復雜性,隨著可用數(shù)據(jù)量的增加而增加。
也許非參數(shù)模型最簡單的例子是 k-最近鄰算法(我們將在后面介紹更多非參數(shù)模型,例如在第 11.2 節(jié)中)。在這里,在訓練時,學習者只需記住數(shù)據(jù)集。然后,在預測時,當遇到一個新點時x,學習者查找k最近鄰(k 積分xi′最小化一些距離 d(x,xi′)). 什么時候k=1,這種算法稱為 1-最近鄰算法,該算法將始終實現(xiàn)零訓練誤差。然而,這并不意味著該算法不會泛化。事實上,事實證明,在一些溫和的條件下,1-最近鄰算法是一致的(最終收斂到最優(yōu)預測器)。
請注意,1 最近鄰要求我們指定一些距離函數(shù)d,或者等價地,我們指定一些向量值基函數(shù)?(x)用于特征化我們的數(shù)據(jù)。對于距離度量的任何選擇,我們將實現(xiàn) 0 訓練錯誤并最終達到最佳預測器,但不同的距離度量 d對不同的歸納偏差進行編碼,并且使用有限數(shù)量的可用數(shù)據(jù)將產(chǎn)生不同的預測變量。距離度量的不同選擇d代表關于基本模式的不同假設,不同預測變量的性能將取決于假設與觀察到的數(shù)據(jù)的兼容性。
從某種意義上說,由于神經(jīng)網(wǎng)絡過度參數(shù)化,擁有比擬合訓練數(shù)據(jù)所需的參數(shù)多得多的參數(shù),它們傾向于對訓練數(shù)據(jù)進行插值(完美擬合),因此在某些方面表現(xiàn)得更像非參數(shù)模型。最近的理論研究已經(jīng)在大型神經(jīng)網(wǎng)絡和非參數(shù)方法(尤其是核方法)之間建立了深刻的聯(lián)系。特別是,Jacot等人。( 2018 )證明了在極限情況下,隨著具有隨機初始化權重的多層感知器無限寬地增長,它們變得等效于(非參數(shù))核方法,用于特定選擇核函數(shù)(本質(zhì)上是距離函數(shù)),他們稱之為神經(jīng)正切核。雖然當前的神經(jīng)正切核模型可能無法完全解釋現(xiàn)代深度網(wǎng)絡的行為,但它們作為分析工具的成功強調(diào)了非參數(shù)建模對于理解過度參數(shù)化深度網(wǎng)絡行為的有用性。
5.5.3. 提前停止
盡管深度神經(jīng)網(wǎng)絡能夠擬合任意標簽,即使標簽分配不正確或隨機 (Zhang等人,2021 年),這種能力也只會在多次迭代訓練中出現(xiàn)。一項新的工作 (Rolnick等人,2017 年)表明,在標簽噪聲的設置中,神經(jīng)網(wǎng)絡傾向于首先擬合干凈標記的數(shù)據(jù),然后才對錯誤標記的數(shù)據(jù)進行插值。此外,已經(jīng)確定這種現(xiàn)象直接轉(zhuǎn)化為泛化的保證:只要模型擬合了干凈標記的數(shù)據(jù)而不是訓練集中包含的隨機標記的示例,它實際上已經(jīng)泛化了 (加格等。, 2021 年)。
這些發(fā)現(xiàn)共同有助于激發(fā)早期停止,這是一種使深度神經(jīng)網(wǎng)絡正則化的經(jīng)典技術。在這里,不是直接限制權重的值,而是限制訓練時期的數(shù)量。確定停止標準的最常見方法是在整個訓練過程中監(jiān)控驗證錯誤(通常通過在每個時期后檢查一次)并在驗證錯誤沒有減少超過一些小量時停止訓練?對于一些時代。這有時稱為耐心標準。除了可能導致更好的泛化,在嘈雜標簽的設置中,提前停止的另一個好處是節(jié)省時間。一旦滿足耐心標準,就可以終止訓練。對于可能需要在 8 個或更多 GPU 上同時訓練數(shù)天的大型模型,調(diào)整良好的提前停止可以為研究人員節(jié)省數(shù)天的時間,并可以為他們的雇主節(jié)省數(shù)千美元。
值得注意的是,當沒有標簽噪聲并且數(shù)據(jù)集是可實現(xiàn)的(類是真正可分離的,例如,區(qū)分貓和狗)時,早期停止往往不會導致泛化的顯著改進。另一方面,當標簽中存在標簽噪聲或內(nèi)在可變性時(例如,預測患者的死亡率),早期停止至關重要。在對噪聲數(shù)據(jù)進行插值之前訓練模型通常不是一個好主意。
評論