訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)很困難。讓它們?cè)诤侠淼臅r(shí)間內(nèi)收斂可能很棘手。在本節(jié)中,我們將介紹 批量歸一化,這是一種流行且有效的技術(shù),可以持續(xù)加速深度網(wǎng)絡(luò)的收斂 (Ioffe 和 Szegedy,2015 年)。連同殘差塊(稍后將在第 8.6 節(jié)中介紹),批量歸一化使從業(yè)者可以例行地訓(xùn)練超過 100 層的網(wǎng)絡(luò)。批量歸一化的第二個(gè)(偶然的)好處在于其固有的正則化。
8.5.1. 訓(xùn)練深度網(wǎng)絡(luò)
在處理數(shù)據(jù)時(shí),我們經(jīng)常在訓(xùn)練前進(jìn)行預(yù)處理。關(guān)于數(shù)據(jù)預(yù)處理的選擇通常會(huì)對(duì)最終結(jié)果產(chǎn)生巨大影響。回想一下我們將 MLP 應(yīng)用于預(yù)測(cè)房?jī)r(jià)(第 5.7 節(jié))。我們處理真實(shí)數(shù)據(jù)的第一步是將我們的輸入特征標(biāo)準(zhǔn)化為零均值 μ=0和單位方差 Σ=1across multiple observations ( Friedman, 1987 )。至少,人們經(jīng)常重新縮放它,使對(duì)角線是統(tǒng)一的,即 Σii=1. 另一種策略是將向量重新調(diào)整為單位長(zhǎng)度,每次觀察的均值可能為零。這可以很好地工作,例如,對(duì)于空間傳感器數(shù)據(jù)。這些預(yù)處理技術(shù)以及更多技術(shù)有助于很好地控制估計(jì)問題。參見例如Guyon等人的文章。( 2008 )審查特征選擇和提取技術(shù)。標(biāo)準(zhǔn)化向量還有一個(gè)很好的副作用,即限制作用于它的函數(shù)的函數(shù)復(fù)雜性。例如,支持向量機(jī)中著名的半徑邊界( Vapnik, 1995 )和感知器收斂定理( Novikoff, 1962 )依賴有界范數(shù)的輸入。
直覺上,這種標(biāo)準(zhǔn)化與我們的優(yōu)化器配合得很好,因?yàn)樗闰?yàn)地將參數(shù)放在相似的范圍內(nèi)。因此,很自然地會(huì)問在 深度網(wǎng)絡(luò)中相應(yīng)的規(guī)范化步驟是否可能沒有好處。雖然這并不是導(dǎo)致批量歸一化發(fā)明的原因 (Ioffe 和 Szegedy,2015 年) ,但它是在統(tǒng)一框架內(nèi)理解它及其堂兄層歸一化(Ba等人,2016 年)的有用方法。
其次,對(duì)于典型的 MLP 或 CNN,在我們訓(xùn)練時(shí),中間層中的變量(例如,MLP 中的仿射變換輸出)可能采用幅度變化很大的值:沿著從輸入到輸出的層,跨同一層中的單元,隨著時(shí)間的推移,由于我們對(duì)模型參數(shù)的更新。批量歸一化的發(fā)明者非正式地假設(shè),這種變量分布的漂移可能會(huì)阻礙網(wǎng)絡(luò)的收斂。憑直覺,我們可能會(huì)推測(cè),如果一層的可變激活是另一層的 100 倍,這可能需要對(duì)學(xué)習(xí)率進(jìn)行補(bǔ)償性調(diào)整。自適應(yīng)求解器,例如 AdaGrad (Duchi等人,2011 年)、Adam (Kingma 和 Ba,2014 年))、Yogi ( Zaheer et al. , 2018 )或 Distributed Shampoo ( Anil et al. , 2020 )旨在從優(yōu)化的角度解決這個(gè)問題,例如,通過添加二階方法的方面。另一種方法是通過自適應(yīng)規(guī)范化來防止問題發(fā)生。
第三,更深層次的網(wǎng)絡(luò)很復(fù)雜,而且往往更容易過度擬合。這意味著正則化變得更加關(guān)鍵。一種常用的正則化技術(shù)是噪聲注入。這已經(jīng)為人所知很長(zhǎng)時(shí)間了,例如,關(guān)于輸入的噪聲注入( Bishop, 1995 )。它還構(gòu)成了第 5.6 節(jié)中 dropout 的基礎(chǔ) 。事實(shí)證明,批歸一化帶來了所有三個(gè)好處:預(yù)處理、數(shù)值穩(wěn)定性和正則化。
批歸一化應(yīng)用于單個(gè)層,或者可選地應(yīng)用于所有層:在每次訓(xùn)練迭代中,我們首先通過減去它們的均值并除以它們的標(biāo)準(zhǔn)差來歸一化(批歸一化的)輸入,其中兩者都是基于統(tǒng)計(jì)數(shù)據(jù)估計(jì)的當(dāng)前的小批量。接下來,我們應(yīng)用比例系數(shù)和偏移量來恢復(fù)丟失的自由度。批歸一化正是由于這種 基于批統(tǒng)計(jì)的歸一化 而得名。
請(qǐng)注意,如果我們嘗試對(duì)大小為 1 的小批量應(yīng)用批量歸一化,我們將無法學(xué)習(xí)任何東西。這是因?yàn)樵跍p去均值后,每個(gè)隱藏單元的值為 0。正如您可能猜到的那樣,由于我們將整個(gè)部分用于批量歸一化,并且具有足夠大的小批量,因此該方法被證明是有效且穩(wěn)定的。這里的一個(gè)要點(diǎn)是,當(dāng)應(yīng)用批量歸一化時(shí),批量大小的選擇甚至比沒有批量歸一化更重要,或者至少需要適當(dāng)?shù)男?zhǔn),因?yàn)槲覀兛赡軙?huì)調(diào)整它。
表示為B一個(gè)小批量并讓 x∈B作為批量歸一化的輸入(BN). 在這種情況下,批量歸一化定義如下:
在(8.5.1)中,μ^B 是樣本均值和σ^B是 minibatch 的樣本標(biāo)準(zhǔn)差B. 應(yīng)用標(biāo)準(zhǔn)化后,生成的小批量具有零均值和單位方差。單位方差的選擇(相對(duì)于其他一些幻數(shù))是一個(gè)任意選擇。我們通過包含元素尺度參數(shù)來恢復(fù)這種自由度 γ 和轉(zhuǎn)移參數(shù) β具有相同的形狀x. 兩者都是需要在模型訓(xùn)練中學(xué)習(xí)的參數(shù)。
中間層的可變幅度在訓(xùn)練期間不能發(fā)散,因?yàn)榕繗w一化主動(dòng)將它們居中并將它們重新縮放回給定的均值和大?。ㄍㄟ^ μ^B和 σ^B). 實(shí)踐經(jīng)驗(yàn)證實(shí),正如在討論特征重新縮放時(shí)所提到的,批量歸一化似乎允許更積極的學(xué)習(xí)率。我們計(jì)算μ^B和 σ^B(8.5.1)中 如下:
評(píng)論
查看更多