1沃缘、參數(shù)范數(shù)懲罰
正則化在深度學習的出現(xiàn)前就已經(jīng)被使用了數(shù)十年。線性模型则吟,如線性回歸和邏輯回歸可以使用簡單槐臀、直接、有效的正則化策略氓仲。在探究不同范數(shù)的正則化表現(xiàn)之前水慨,我們需要說明一下,在神經(jīng)網(wǎng)絡中敬扛,參數(shù)包括每一層仿射變換的權重和偏置晰洒,我們通常只對權重做懲罰而不對偏置做正則懲罰。精確擬合偏置所需的數(shù)據(jù)通常比擬合權重少得多啥箭。每個權重會指定兩個變量如何相互作用谍珊。我們需要在各種條件下觀察這兩個變量才能良好地擬合權重。而每個偏置僅控制一個單變量急侥。這意味著砌滞,我們不對其進行正則化也不會導致太大的方差侮邀。另外,正則化偏置參數(shù)可能會導致明顯的欠擬合贝润。
在神經(jīng)網(wǎng)絡的情況下绊茧,有時希望對網(wǎng)絡的每一層使用單獨的懲罰,并分配不同的系數(shù)打掘。尋找合適的多個超參數(shù)的代價很大华畏,因此為了減少搜索空間,我們會在所有層使用相同的權重衰減尊蚁。
1.1唯绍、
參數(shù)正則化
最簡單而又最常見的參數(shù)范數(shù)懲罰,即通常被稱為權重衰減(weight decay)的參數(shù)范數(shù)懲罰枝誊。這個正則化策略通過向目標函數(shù)添加一個正則項 ,使權重更加接近原點惜纸。
為了簡單起見叶撒,我們假定其中沒有偏置參數(shù),因此就是
耐版。這樣一個模型具有以下總的目標函數(shù):
與之對應的梯度為:
使用單步梯度下降更新權重祠够,即執(zhí)行以下更新:
換種寫法就是:
可以看到,加入權重衰減后會引起學習規(guī)則的修改粪牲,即在每步執(zhí)行通常的梯度更新之前先收縮權重向量(將權重向量乘以一個常數(shù)因子)古瓤。
令為未正則化目標函數(shù)取得最小誤差時的權重,即
腺阳,在
的鄰域?qū)δ繕撕瘮?shù)做二次近似(泰勒公式)落君,近似的
如下:
是
在
處計算的
矩陣(
矩陣是由目標函數(shù)在
處的二階偏導數(shù)組成的對稱矩陣)。因為
被定義為最優(yōu)亭引,即梯度消失為0绎速,所以該二次近似中沒有一階項。同樣地焙蚓,因為
是
的一個最優(yōu)點纹冤,我們可以得出
半正定。
當取得最小時购公,其梯度為0:
為了研究權重衰減帶來的影響萌京,我們在上式中添加權重衰減的梯度。現(xiàn)在我們探討最小化正則化后的宏浩,我們使用變量
表示此時的最優(yōu)點:
當趨向于0時知残,正則化的解
會趨向
。當
增加時會發(fā)生什么呢比庄?因為
是實對稱的橡庞,所以我們可以將其分解為一個對角矩陣
和一組特征向量的標準正交基
较坛,并且有
:
我們可以看到權重衰減的效果是沿著由的特征向量所定義的軸縮放。具體來說扒最,我們會根據(jù)
因子縮放與
第
個特征向量對齊的
的分量丑勤。
沿著特征值較大的方向 (如
)正則化的影響較小。而
的分量將會收縮到幾乎為零吧趣。
實線橢圓表示沒有正則化目標的等值線法竞。虛線圓圈表示正則化項的等值線。在
點强挫,這兩個競爭目標達到平衡岔霸。目標函數(shù)
的
的第一維特征值很小。當從
水平移動時俯渤,目標函數(shù)不會增加得太多呆细。因為目標函數(shù)對這個方向沒有強烈的偏好,所以正則化項對該軸具有強烈的影響八匠。正則化項將
拉向零絮爷。而目標函數(shù)對沿著第二維遠離
的移動非常敏感。對應的特征值較大梨树,表示高曲率坑夯。因此,權重衰減對
的位置影響相對較小抡四。
只有在顯著減小目標函數(shù)方向上的參數(shù)會保留得相對完好柜蜈。在無助于目標函數(shù)減小的方向(對應 Hessian 矩陣較小的特征值)上改變參數(shù)不會顯著增加梯度。這種不重要方向?qū)姆至繒谟柧氝^程中因正則化而衰減掉指巡。
1.2淑履、
參數(shù)正則化
正則化的目標函數(shù)如下所示:
對應的次梯度為(https://blog.csdn.net/qq_32742009/article/details/81704139):
由于懲罰項在完全一般化的Hessian的情況下,無法得到直接清晰的代數(shù)表達式藻雪,因此我們進一步簡化假設Hessian是對角的鳖谈,即
,其中每個
阔涉。若數(shù)據(jù)已被預處理(如可以使用 PCA)缆娃,去除了輸入特征之間的相關性,那么這一假設成立瑰排。
我們可以將正則化目標函數(shù)的二次近似分解成關于參數(shù)的求和:
如下列形式的解析解(對每一維 i)可以最小化這個近似代價函數(shù):
對每個 i, 考慮的情形贯要,會有兩種可能結果:
:正則化后目標中的 wi 最優(yōu)值是
。
:在這種情況下椭住,正則化不會將
的最優(yōu)值推至 0崇渗,而僅僅在那個方向上移動
的距離。
的情況與之類似。
相比正則化宅广,
正則化會產(chǎn)生更稀疏(sparse)的解秸侣。此處稀疏性指的是最優(yōu)值中的一些參數(shù)為 0帐萎。由
正則化導出的稀疏性已經(jīng)被廣泛地用于特征選擇(feature selection)機制勇垛。特征選擇從可用特征子集選出有意義的特征世吨,化簡機器學習問題。
2驶臊、作為約束的范數(shù)懲罰
考慮經(jīng)過參數(shù)范數(shù)正則化的代價函數(shù):
我們可以構造一個廣義 Lagrange 函數(shù)來最小化帶約束的函數(shù)挪挤,即在原始目標函數(shù)上添加一系列懲罰項。每個懲罰是一個被稱為 Karush–Kuhn–Tucker(Karusuhucker)乘子的系數(shù)以及一個表示約束是否滿足的函數(shù)之間的乘積关翎。如果我們想約束小于某個常數(shù)
扛门,我們可以構建廣義 Lagrange 函數(shù):
這個約束問題的解由下式給出:
解決這個問題我們需要對和
都做出調(diào)整。為了洞察約束的影響纵寝,我們固定
论寨,把這個問題看成只跟
有關的函數(shù):
通常我們不知道權重衰減系數(shù)約束的區(qū)域大小,因為
的值不直接告訴我們
的值爽茴。原則上我們可以解得
葬凳,但
和
之間的關系取決于
的形式。雖然我們不知道約束區(qū)域的確切大小闹啦,但我們可以通過增加或者減小
來大致擴大或收縮約束區(qū)域。較大的
辕坝,將得到一個較小的約束區(qū)域窍奋。較小的
,將得到一個較大的約束區(qū)域酱畅。
有時候琳袄,我們希望使用顯式的限制,而不是懲罰纺酸。我們可以修改下降算法(如隨機梯度下降算法)窖逗,使其先計算的下降步,然后將
投影到滿足
的最近點餐蔬。如果我們知道什么樣的
是合適的碎紊,而不想花時間尋找對應于此
處的
值,這會非常有用樊诺。
3仗考、正則化和欠約束問題
在某些情況下,為了正確定義機器學習問題词爬,正則化是必要的秃嗜。機器學習中許多線性模型,包括線性回歸和 PCA,都依賴于對矩陣求逆锅锨。只要
是奇異的叽赊,這些方法就會失效。當數(shù)據(jù)生成分布在一些方向上確實沒有差異時必搞,或因為例子較少(即相對輸入特征的維數(shù)來說)而在一些方向上沒有觀察到方差時必指,這個矩陣就是奇異的。在這種情況下顾画,正則化的許多形式對應求逆
取劫。這個正則化矩陣可以保證可逆。
沒有閉式解的問題也可能是欠定的研侣。一個例子是應用于線性可分問題的邏輯回歸谱邪。如果權重向量能夠?qū)崿F(xiàn)完美分類,那么
也會以更高似然實現(xiàn)完美分類庶诡。類似隨機梯度下降的迭代優(yōu)化算法將持續(xù)增加
的大小惦银,理論上永遠不會停止。在實踐中末誓,數(shù)值實現(xiàn)的梯度下降最終會達到導致數(shù)值溢出的超大權重扯俱,此時的行為將取決于程序員如何處理這些不是真正數(shù)字的值。大多數(shù)形式的正則化能夠保證應用于欠定問題的迭代方法收斂喇澡。例如迅栅,當似然的斜率等于權重衰減的系數(shù)時,權重衰減將阻止梯度下降繼續(xù)增加權重的大小晴玖。
4读存、數(shù)據(jù)集增強
讓機器學習模型泛化得更好的最好辦法是使用更多的數(shù)據(jù)進行訓練。當然呕屎,在實踐中让簿,我們擁有的數(shù)據(jù)量是很有限的。解決這個問題的一種方法是創(chuàng)建假數(shù)據(jù)并添加到訓練集中秀睛。對于一些機器學習任務尔当,創(chuàng)建新的假數(shù)據(jù)相當簡單。
對分類來說這種方法是最簡單的蹂安。分類器需要一個復雜的高維輸入椭迎,并用單個類別標識
概括
。這意味著分類面臨的一個主要任務是要對各種各樣的變換保持不變田盈。我們可以輕易通過轉(zhuǎn)換訓練集中的
來生成新的
對侠碧。
數(shù)據(jù)集增強對一個具體的分類問題來說是特別有效的方法:對象識別。圖像是高維的并包括各種巨大的變化因素缠黍,其中有許多可以輕易地模擬弄兜。即使模型已使用卷積和池化技術對部分平移保持不變,沿訓練圖像每個方向平移幾個像素的操作通常可以大大改善泛化替饿。許多其他操作如旋轉(zhuǎn)圖像或縮放圖像也已被證明非常有效语泽。
這種方法對于其他許多任務來說并不那么容易。例如视卢,除非我們已經(jīng)解決了密度估計問題踱卵,否則在密度估計任務中生成新的假數(shù)據(jù)是很困難的。
在神經(jīng)網(wǎng)絡的輸入層注入噪聲 (Sietsma and Dow, 1991) 也可以被看作是數(shù)據(jù)增強的一種方式据过。對于許多分類甚至一些回歸任務而言惋砂,即使小的隨機噪聲被加到輸入,任務仍應該是能夠被解決的绳锅。然而西饵,神經(jīng)網(wǎng)絡被證明對噪聲不是非常健壯 (Tangand Eliasmith, 2010)。改善神經(jīng)網(wǎng)絡健壯性的方法之一是簡單地將隨機噪聲添加到輸入再進行訓練鳞芙。向隱藏單元施加噪聲也是可行的眷柔,這可以被看作在多個抽象層上進行的數(shù)據(jù)集增強。
5原朝、噪聲魯棒性
對于某些模型而言驯嘱,向輸入添加方差極小的噪聲等價于對權重施加范數(shù)懲罰 (Bishop, 1995a,b)。在一般情況下喳坠,注入噪聲遠比簡單地收縮參數(shù)強大鞠评,特別是噪聲被添加到隱藏單元時會更加強大。之后要提到的Dropout 算法是這種做法的主要發(fā)展方向壕鹉。
另一種正則化模型的噪聲使用方式是將其加到權重剃幌。這項技術主要用于循環(huán)神經(jīng)網(wǎng)絡 (Jim et al., 1996; Graves, 2011)。這可以被解釋為關于權重的貝葉斯推斷的隨機實現(xiàn)御板。
在某些假設下锥忿,施加于權重的噪聲可以被解釋為與更傳統(tǒng)的正則化形式等同牛郑,鼓勵要學習的函數(shù)保持穩(wěn)定怠肋。我們研究回歸的情形,也就是訓練將一組特征映射成一個標量的函數(shù)
淹朋,并使用最小二乘代價函數(shù)衡量模型預測值
與真實值
的誤差:
現(xiàn)在我們假設對每個輸入表示笙各,網(wǎng)絡權重添加隨機擾動。想象我們有一個標準的
層MLP础芍。我們將擾動模型記為
杈抢,盡管有噪聲注入,我們?nèi)匀幌M麥p少網(wǎng)絡輸出誤差的平方仑性。因此目標函數(shù)變?yōu)椋?/p>
對于小的惶楼,最小化帶權重噪聲(方差為
)的
等同于最小化附加正則化項
的
。這種形式的正則化鼓勵參數(shù)進入權重小擾動對輸出相對影響較小的參數(shù)空間區(qū)域。換句話說歼捐,它推動模型進入對權重小的變化相對不敏感的區(qū)域何陆,找到的點不只是極小點,還是由平坦區(qū)域所包圍的極小點 (Hochreiter andSchmidhuber, 1995)豹储。
另一種正則化方法是向輸出目標注入噪聲贷盲。大多數(shù)數(shù)據(jù)集的標簽都有一定錯誤。錯誤的
不利于最大化
剥扣。避免這種情況的一種方法是顯式地對標簽上的噪聲進行建模巩剖。例如,標簽平滑(label smoothing)通過把確切分類目標從 0 和1 替換成
和
钠怯,正則化具有
個輸出的
函數(shù)的模型佳魔。標準交叉熵損失可以用在這些非確切目標的輸出上。使用
函數(shù)和明確目標的最大似然學習可能永遠不會收斂——
函數(shù)永遠無法真正預測0概率或1概率呻疹,因此它會繼續(xù)學習越來越大的權重吃引,使預測更極端。使用如權重衰減等其他正則化策略能夠防止這種情況刽锤。標簽平滑的優(yōu)勢是能夠防止模型追求確切概率而不影響模型學習正確分類镊尺。
6、半監(jiān)督學習
在半監(jiān)督學習的框架下并思,產(chǎn)生的未標記樣本和
中的標記樣本都用于估計
或者根據(jù)
預測
庐氮。
在深度學習的背景下,半監(jiān)督學習通常指的是學習一個表示宋彼。學習表示的目的是使相同類中的樣本有類似的表示弄砍。無監(jiān)督學習可以為如何在表示空間聚集樣本提供有用線索。在輸入空間緊密聚集的樣本應該被映射到類似的表示输涕。
7音婶、多任務學習
多任務學習 (Caruana, 1993) 是通過合并幾個任務中的樣例(可以視為對參數(shù)施加的軟約束)來提高泛化的一種方式。正如額外的訓練樣本能夠?qū)⒛P蛥?shù)推向具有更好泛化能力的值一樣莱坎,當模型的一部分被多個額外的任務共享時衣式,這部分將被約束為良好的值(如果共享合理),通常會帶來更好的泛化能力檐什。
下圖展示了多任務學習中非常普遍的一種形式碴卧,不同的監(jiān)督任務(給定x預測)共享相同的輸入
以及一些中間層表示
,能學習共同的因素池乃正。該模型通匙〔幔可以分為兩類相關的參數(shù):
具體任務的參數(shù)(只能從各自任務的樣本中實現(xiàn)良好的泛化)。如圖中的上層瓮具。
所有任務共享的通用參數(shù)(從所有任務的匯集數(shù)據(jù)中獲益)荧飞。如圖中的下層凡人。因為共享參數(shù),其統(tǒng)計強度(共享參數(shù)的樣本數(shù)量相對于單任務模式增加的比例)可大大提高叹阔,并能改善泛化和泛化誤差的范圍 (Baxter, 1995)划栓。當然,僅當不同的任務之間存在某些統(tǒng)計關系的假設是合理(意味著某些參數(shù)能通過不同任務共享)時才會發(fā)生這種情況条获。
多任務學習在深度學習框架中可以以多種方式進行忠荞,該圖說明了任務共享相同輸入但涉及不同目標隨機變量的常見情況。深度網(wǎng)絡的較低層(無論是監(jiān)督前饋的帅掘,還是包括向下箭頭的生成組件)可以跨這樣的任務共享委煤,而任務特定的參數(shù)(分別與從和
進入和發(fā)出的權重)可以在共享表示
之上學習。這里的基本假設是存在解釋輸入
變化的共同因素池修档,而每個任務與這些因素的子集相關聯(lián)碧绞。在該示例中,額外假設頂層隱藏單元
和
專用于每個任務(分別預測
和
)吱窝,而一些中間層表示
在所有任務之間共享讥邻。
8、提前終止
當訓練有足夠的表示能力甚至會過擬合的大模型時院峡,我們經(jīng)常觀察到兴使,訓練誤差會隨著時間的推移逐漸降低但驗證集的誤差會再次上升。
這意味著我們只要返回使驗證集誤差最低的參數(shù)設置照激,就可以獲得驗證集誤差更低的模型(并且因此有希望獲得更好的測試誤差)发魄。當驗證集上的誤差在事先指定的循環(huán)次數(shù)內(nèi)沒有進一步改善時,算法就會終止俩垃。這種策略被稱為提前終止(early stopping)励幼。這可能是深度學習中最常用的正則化形式。它的流行主要是因為有效性和簡單性口柳。
提前終止是一種非常不顯眼的正則化形式苹粟,它幾乎不需要改變基本訓練過程、目標函數(shù)或一組允許的參數(shù)值跃闹。這意味著嵌削,無需破壞學習動態(tài)就能很容易地使用提前終止。
提前終止對減少訓練過程的計算成本也是有用的辣卒。除了由于限制訓練的迭代次數(shù)而明顯減少的計算成本掷贾,還帶來了正則化的益處(不需要添加懲罰項的代價函數(shù)或計算這種附加項的梯度)睛榄。
Bishop (1995a) 和 Sj?berg and Ljung(1995) 認為提前終止可以將優(yōu)化過程的參數(shù)空間限制在初始參數(shù)值的小鄰域內(nèi)荣茫。更具體地,想象用學習率
進行
個優(yōu)化步驟(對應于
個訓練迭代)场靴。我們可以將
作為有效容量的度量啡莉。假設梯度有界港准,限制迭代的次數(shù)和學習速率能夠限制從
到達的參數(shù)空間的大小。在這個意義上咧欣,
的效果就好像是權重衰減系數(shù)的倒數(shù)浅缸。
事實上,在二次誤差的簡單線性模型和簡單的梯度下降情況下魄咕,我們可以展示提前終止相當于正則化衩椒。我們在權重
的經(jīng)驗最佳值
附近以二次近似建模代價函數(shù)
:
其中是
關于
在
點的
矩陣。鑒于假設
是
的最小點哮兰,我們知道
為半正定毛萌。在局部泰勒級數(shù)逼近下,梯度由下式給出:
為簡化起見喝滞,我們將參數(shù)向量初始化為原點阁将,也就是。我們通過分析
上的梯度下降來研究
上近似的梯度下降的效果:
即:
現(xiàn)在讓我們在特征向量的空間中改寫表達式右遭,利用
的特征分解
做盅,其中
是對角矩陣,
是特征向量的一組標準正交基窘哈。
假定并且
選擇得足夠小以保證
吹榴,經(jīng)過
次參數(shù)更新后軌跡如下:
回憶正則化中有:
從而:
我們能夠發(fā)現(xiàn),如果超參數(shù),
和
滿足如下關系:
則正則化和提前終止可以被看作是等價的(至少在目標函數(shù)的二次近似下)滚婉。進一步取對數(shù)腊尚,使用
的級數(shù)展開,我們可以得出結論:如果所有
是小的(即
且
)满哪,那么:
也就是說婿斥,在這些假設下,訓練迭代次數(shù)起著與
參數(shù)成反比的作用哨鸭,
的倒數(shù)與權重衰減系數(shù)的作用類似民宿。
9、參數(shù)綁定和參數(shù)共享
目前為止像鸡,本章討論對參數(shù)添加約束或懲罰時活鹰,一直是相對于固定的區(qū)域或點。例如只估,正則化(或權重衰減)對參數(shù)偏離零的固定值進行懲罰志群。然而,有時我們可能需要其他的方式來表達我們對模型參數(shù)適當值的先驗知識蛔钙。有時候锌云,我們可能無法準確地知道應該使用什么樣的參數(shù),但我們根據(jù)相關領域和模型結構方面的知識得知模型參數(shù)之間應該存在一些相關性吁脱。
我們經(jīng)常想要表達的一種常見依賴是某些參數(shù)應當彼此接近桑涎”蛳颍考慮以下情形:我們有兩個模型執(zhí)行相同的分類任務(具有相同類別),但輸入分布稍有不同攻冷。形式地娃胆,我們有參數(shù)為的模型
和參數(shù)為
的模型
。這兩種模型將輸入映射到兩個不同但相關的輸出:
和
等曼。
們可以想象里烦,這些任務會足夠相似(或許具有相似的輸入和輸出分布),因此我們認為模型參數(shù)應彼此靠近:應與
接近禁谦。我們可以通過正則化利用此信息招驴。具體來說,我們可以使用以下形式的參數(shù)范數(shù)懲罰:
在這里我們使用懲罰枷畏,但也可以使用其他選擇别厘。
參數(shù)范數(shù)懲罰是正則化參數(shù)使其彼此接近的一種方式,而更流行的方法是使用約束:強迫某些參數(shù)相等拥诡。由于我們將各種模型或模型組件解釋為共享唯一的一組參數(shù)触趴,這種正則化方法通常被稱為參數(shù)共享(parameter sharing)。目前為止渴肉,最流行和廣泛使用的參數(shù)共享出現(xiàn)在應用于計算機視覺的卷積神經(jīng)網(wǎng)絡(CNN)中冗懦。
10、稀疏表示
前文所述的權重衰減直接懲罰模型參數(shù)仇祭。另一種策略是懲罰神經(jīng)網(wǎng)絡中的激活單元披蕉,稀疏化激活單元。這種策略間接地對模型參數(shù)施加了復雜懲罰乌奇。
表示的稀疏描述了許多元素是零(或接近零)的表示没讲。我們可以在線性回歸的情況下簡單說明這種區(qū)別:
第一個表達式是參數(shù)稀疏的線性回歸模型的例子。第二個表達式是數(shù)據(jù)具有稀疏表示
的線性回歸礁苗。也就是說
是
的一個函數(shù)爬凑,在某種意義上表示存在于
中的信息,但只是用一個稀疏向量表示试伙。
表示的范數(shù)懲罰正則化是通過向損失函數(shù) J 添加對表示的范數(shù)懲罰來實現(xiàn)的嘁信。我們將這個懲罰記作。和以前一樣疏叨,我們將正則化后的損失函數(shù)記作:
正如對參數(shù)的懲罰誘導參數(shù)稀疏性潘靖,對表示元素的
懲罰誘導稀疏的表示:
其他方法還包括從表示上的Student-t先驗導出的懲罰 (Olshausen and Field, 1996; Bergstra, 2011)和KL散度懲罰(Larochelle and Bengio, 2008b),這些方法對于將表示中的元素約束于單位區(qū)間上特別有用蚤蔓。
還有一些其他方法通過激活值的硬性約束來獲得表示稀疏卦溢。例如,正交匹配追蹤 (orthogonal matching pursuit)(Pati et al., 1993) 通過解決以下約束優(yōu)化問題將輸入值編碼成表示
:
其中是
中非零項的個數(shù)。當
被約束為正交時既绕,我們可以高效地解決這個問題。這種方法通常被稱為
涮坐,通過
指定允許的非零特征數(shù)量凄贩。Coates and Ng (2011) 證明
可以成為深度架構中非常有效的特征提取器。
11袱讹、Bagging 和其他集成方法
Bagging(bootstrap aggregating)是通過結合幾個模型降低泛化誤差的技術疲扎。主要想法是分別訓練幾個不同的模型,然后讓所有模型表決測試樣例的輸出捷雕。這是機器學習中常規(guī)策略的一個例子椒丧,被稱為模型平均(model averaging)。采用這種策略的技術被稱為集成方法救巷。模型平均奏效的原因是不同的模型通常不會在測試集上產(chǎn)生完全相同的誤差壶熏。
神經(jīng)網(wǎng)絡能找到足夠多的不同的解,意味著他們可以從模型平均中受益 (即使所有模型都在同一數(shù)據(jù)集上訓練)浦译。神經(jīng)網(wǎng)絡中隨機初始化的差異棒假、小批量的隨機選擇、超參數(shù)的差異或不同輸出的非確定性實現(xiàn)往往足以使得集成的不同成員具有部分獨立的誤差精盅。
不是所有構建集成的技術都是為了讓集成模型比單一模型更加正則化帽哑。例如,一種被稱為Boosting的技術 (Freund and Schapire, 1996b,a) 構建比單個模型容量更高的集成模型叹俏。通過向集成逐步添加神經(jīng)網(wǎng)絡妻枕,Boosting已經(jīng)被應用于構建神經(jīng)網(wǎng)絡的集成(Schwenk and Bengio, 1998)。通過逐漸增加神經(jīng)網(wǎng)絡的隱藏單元Boosting也可以將單個神經(jīng)網(wǎng)絡解釋為一個集成。
12、Dropout
Dropout (Srivastava et al., 2014) 提供了正則化一大類模型的方法只壳,計算方便但功能強大救氯。在第一種近似下,Dropout可以被認為是集成大量深層神經(jīng)網(wǎng)絡的實用Bagging方法赤拒。Bagging涉及訓練多個模型,并在每個測試樣本上評估多個模型。當每個模型都是一個很大的神經(jīng)網(wǎng)絡時亭珍,這似乎是不切實際的,因為訓練和評估這樣的網(wǎng)絡需要花費很多運行時間和內(nèi)存枝哄。通常我們只能集成五至十個神經(jīng)網(wǎng)絡肄梨,如Szegedy et al. (2014a)集成了六個神經(jīng)網(wǎng)絡贏得 ILSVRC,超過這個數(shù)量就會迅速變得難以處理挠锥。Dropout提供了一種廉價的Bagging集成近似众羡,能夠訓練和評估指數(shù)級數(shù)量的神經(jīng)網(wǎng)絡。
具體而言蓖租,Dropout訓練的集成包括所有從基礎網(wǎng)絡除去非輸出單元后形成的子網(wǎng)絡粱侣,如下圖羊壹。最先進的神經(jīng)網(wǎng)絡基于一系列仿射變換和非線性變換,我們只需將一些單元的輸出乘零就能有效地刪除一個單元齐婴。這個過程需要對模型(如徑向基函數(shù)網(wǎng)絡油猫,單元的狀態(tài)和參考值之間存在一定區(qū)別)進行一些修改。
回想一下Bagging學習柠偶,我們定義個不同的模型情妖,從訓練集有放回采樣構造
個不同的數(shù)據(jù)集,然后在訓練集
上訓練模型
诱担。Dropout的目標是在指數(shù)級數(shù)量的神經(jīng)網(wǎng)絡上近似這個過程毡证。具體來說,在訓練中使用Dropout時蔫仙,我們會使用基于小批量產(chǎn)生較小步長的學習算法料睛,如隨機梯度下降等。我們每次在小批量中加載一個樣本摇邦,然后隨機抽樣應用于網(wǎng)絡中所有輸入和隱藏單元的不同二值掩碼秦效。對于每個單元,掩碼是獨立采樣的涎嚼。掩碼值為 1 的采樣概率(導致包含一個單元)是訓練開始前一個固定的超參數(shù)阱州。它不是模型當前參數(shù)值或輸入樣本的函數(shù)。通常在每一個小批量訓練的神經(jīng)網(wǎng)絡中法梯,一個輸入單元被包括的概率為0.8苔货,一個隱藏單元被包括的概率為0.5。然后立哑,我們運行和之前一樣的前向傳播夜惭、反向傳播以及學習更新。
使用Dropout之后神經(jīng)網(wǎng)絡的訓練流程如下:
(1)首先隨機(臨時)刪掉網(wǎng)絡中一部分(具體比例可通過超參數(shù)設定)的隱藏神經(jīng)元铛绰,輸入輸出神經(jīng)元保持不變(下圖中虛線為部分臨時被刪除的神經(jīng)元)诈茧。
(2)把輸入x通過修改后的網(wǎng)絡前向傳播,然后把得到的損失結果通過修改的網(wǎng)絡反向傳播捂掰。一小批訓練樣本執(zhí)行完這個過程后敢会,在沒有被刪除的神經(jīng)元上按照隨機梯度下降法更新對應的參數(shù)。
(3)恢復被刪掉的神經(jīng)元(此時被刪除的神經(jīng)元保持原樣这嚣,而沒有被刪除的神經(jīng)元已經(jīng)有所更新)鸥昏,繼續(xù)重復這一過程。
更正式地說姐帚,假設一個掩碼向量指定被包括的單元吏垮,
是由參數(shù)
和掩碼
定義的模型代價。那么Dropout訓練的目標是最小化
。這個期望包含多達指數(shù)級的項膳汪,但我們可以通過抽樣
獲得梯度的無偏估計唯蝶。
Dropout訓練與Bagging訓練不太一樣。在Bagging的情況下遗嗽,所有模型都是獨立的粘我。在Dropout中,所有模型共享參數(shù)媳谁,其中每個模型繼承父神經(jīng)網(wǎng)絡參數(shù)的不同子集涂滴。參數(shù)共享使得在有限可用的內(nèi)存下表示指數(shù)級數(shù)量的模型變得可能友酱。
在Bagging的情況下晴音,每一個模型在其相應訓練集上訓練到收斂。在Dropout中缔杉,通常大部分模型都沒有顯式地被訓練锤躁,因為通常父神經(jīng)網(wǎng)絡會很大,以致于到宇宙毀滅都不可能采樣完所有的子網(wǎng)絡或详。取而代之的是系羞,在單個步驟中我們訓練一小部分的子網(wǎng)絡,參數(shù)共享會使得剩余的子網(wǎng)絡也能有好的參數(shù)設定霸琴。這些是僅有的區(qū)別椒振。除了這些,Dropout與Bagging算法一樣梧乘。例如澎迎,每個子網(wǎng)絡中遇到的訓練集確實是有放回采樣的原始訓練集的一個子集。
們假定該模型的作用是輸出一個概率分布选调。在Bagging的情況下夹供,每個模型產(chǎn)生一個概率分布
。集成的預測由這些分布的算術平均值給出:
在Dropout的情況下仁堪,通過掩碼定義每個子模型的概率分布
哮洽。集成的預測由關于
的算術平均值由下式給出:
其中是訓練時采樣
的概率分布。
這個求和包含多達指數(shù)級的項弦聂,除非該模型的結構允許某種形式的簡化鸟辅,否則是不可能計算的。我們可以通過采樣近似推斷莺葫,即平均許多掩碼的輸出剔桨。即使是10 ? 20個掩碼就足以獲得不錯的表現(xiàn)。
然而徙融,一個更好的方法能不錯地近似整個集成的預測洒缀,且只需一個前向傳播的代價。要做到這一點,我們改用集成成員預測分布的幾何平均而不是算術平均树绩。通過幾何平均直接定義的非標準化概率分布由下式給出:
其中是可被丟棄的單元數(shù)萨脑。
為了作出預測,我們必須重新標準化集成:
涉及Dropout的一個重要觀點 (Hinton et al., 2012c) 是饺饭,我們可以通過評估模型中來近似
:該模型具有所有單元渤早,但我們將單元
的輸出的權重乘以單元
的被包含概率。這個修改的動機是得到從該單元輸出的正確期望值瘫俊。我們把這種方法稱為權重比例推斷規(guī)則(weight scaling inference rule)鹊杖。目前還沒有在深度非線性網(wǎng)絡上對這種近似推斷規(guī)則的準確性作任何理論分析,但經(jīng)驗上表現(xiàn)得很好扛芽。
因為我們通常使用0.5的包含概率骂蓖,權重比例規(guī)則一般相當于在訓練結束后將權重除2,然后像平常一樣使用模型川尖。我們的目標是確保在測試時一個單元的期望總輸入與在訓練時該單元的期望總輸入是大致相同的(即使近半單位在訓練時丟失)登下。
總之,在訓練時叮喳,每個神經(jīng)單元以概率被保留被芳;則在測試階段,每個神經(jīng)單元都是存在的馍悟,權重參數(shù)
要乘以
畔濒,成為
。測試時需要乘上
的原因:若隱藏層的一個神經(jīng)元在dropout前輸出是
锣咒,則dropout后期望值是
侵状。而在測試時該神經(jīng)元總是激活,為了保持同樣的輸出期望值并使下一層也得到同樣的結果宠哄,需要調(diào)整
壹将。
一個關于Dropout的重要見解是,通過隨機行為訓練網(wǎng)絡并平均多個隨機決定進行預測毛嫉,實現(xiàn)了一種參數(shù)共享的Bagging形式诽俯。早些時候,我們將Dropout描述為通過包括或排除單元形成模型集成的Bagging承粤。然而暴区,這種參數(shù)共享策略不一定要基于包括和排除。原則上辛臊,任何一種隨機的修改都是可接受的仙粱。我們可以認為由向量參數(shù)化的任何形式的修改,是對
所有可能的值訓練
的集成彻舰。例如
可以是實值伐割。Srivastava et al. (2014) 表明候味,權重乘以
比基于二值掩碼Dropout表現(xiàn)得更好。由于
隔心,標準網(wǎng)絡自動實現(xiàn)集成的近似推斷白群,而不需要權重比例推斷規(guī)則。
更進一步的Dropout觀點認為硬霍,Dropout不僅僅是訓練一個Bagging的集成模型帜慢,并且是共享隱藏單元的集成模型。這意味著無論其他隱藏單元是否在模型中唯卖,每個隱藏單元必須都能夠表現(xiàn)良好粱玲。隱藏單元必須準備好進行模型之間的交換和互換。Hintonet al. (2012d) 由生物學的想法受到啟發(fā):有性繁殖涉及到兩個不同生物體之間交換基因拜轨,進化產(chǎn)生的壓力使得基因不僅是良好的而且要準備好不同有機體之間的交換抽减。這樣的基因和這些特點對環(huán)境的變化是非常穩(wěn)健的,因為它們一定會正確適應任何一個有機體或模型不尋常的特性撩轰。因此Dropout正則化每個隱藏單元不僅是一個很好的特征胯甩,更要在許多情況下是良好的特征昧廷。
Dropout強大的大部分原因來自施加到隱藏單元的掩碼噪聲堪嫂,了解這一事實是重要的。這可以看作是對輸入內(nèi)容的信息高度智能化木柬、自適應破壞的一種形式皆串,而不是對輸入原始值的破壞。例如眉枕,如果模型學得通過鼻檢測臉的隱藏單元 恶复,那么丟失對應于擦除圖像中有鼻子的信息。模型必須學習另一種 速挑,要么是鼻子存在的冗余編碼谤牡,要么是像嘴這樣的臉部的另一特征。傳統(tǒng)的噪聲注入技術姥宝,在輸入端加非結構化的噪聲不能夠隨機地從臉部圖像中抹去關于鼻子的信息翅萤,除非噪聲的幅度大到幾乎能抹去圖像中所有的信息。Dropout破壞提取的特征而不是原始值腊满,讓破壞過程充分利用該模型迄今獲得的關于輸入分布的所有知識套么。
13、對抗訓練
在許多情況下碳蛋,神經(jīng)網(wǎng)絡在獨立同分布的測試集上進行評估已經(jīng)達到了人類表現(xiàn)胚泌。因此,我們自然要懷疑這些模型在這些任務上是否獲得了真正的人類層次的理解肃弟。為了探索網(wǎng)絡對底層任務的理解層次玷室,我們可以探索這個模型錯誤分類的例子零蓉。Szegedy et al. (2014b) 發(fā)現(xiàn),在精度達到人類水平的神經(jīng)網(wǎng)絡上通過優(yōu)化過程故意構造數(shù)據(jù)點穷缤,其上的誤差率接近100%壁公,模型在這個輸入點的輸出與附近的數(shù)據(jù)點
非常不同。在許多情況下绅项,
與
非常近似紊册,人類觀察者不會察覺原始樣本和對抗樣本(adversarial example)之間的差異,但是網(wǎng)絡會作出非常不同的預測快耿。它們在正則化的背景下很有意思囊陡,因為我們可以通過對抗訓練(adversarial training)減少原有獨立同分布的測試集的錯誤率——在對抗擾動的訓練集樣本上訓練網(wǎng)絡。
Goodfellow et al. (2014b) 表明掀亥,這些對抗樣本的主要原因之一是過度線性撞反。神經(jīng)網(wǎng)絡主要是基于線性塊構建的。因此在一些實驗中搪花,它們實現(xiàn)的整體函數(shù)被證明是高度線性的遏片。這些線性函數(shù)很容易優(yōu)化。不幸的是撮竿,如果一個線性函數(shù)具有許多輸入吮便,那么它的值可以非常迅速地改變。如果我們用改變每個輸入幢踏,那么權重為
的線性函數(shù)可以改變
之多髓需,如果
是高維的這會是一個非常大的數(shù)。對抗訓練通過鼓勵網(wǎng)絡在訓練數(shù)據(jù)附近的局部區(qū)域恒定來限制這一高度敏感的局部線性行為房蝉。這可以被看作是一種明確地向監(jiān)督神經(jīng)網(wǎng)絡引入局部恒定先驗的方法僚匆。
對抗樣本也提供了一種實現(xiàn)半監(jiān)督學習的方法。在與數(shù)據(jù)集中的標簽不相關聯(lián)的點處搭幻,模型本身為其分配一些標簽
咧擂。模型的標記
未必是真正的標簽,但如果模型是高品質(zhì)的檀蹋,那么
提供正確標簽的可能性很大松申。我們可以搜索一個對抗樣本
,導致分類器輸出一個標簽
且
续扔。不使用真正的標簽攻臀,而是由訓練好的模型提供標簽產(chǎn)生的對抗樣本被稱為虛擬對抗樣本(virtual adversarial example)。我們可以訓練分類器為
和
分配相同的標簽纱昧。這鼓勵分類器學習一個沿著未標簽數(shù)據(jù)所在流形上任意微小變化都很魯棒的函數(shù)刨啸。驅(qū)動這種方法的假設是,不同的類通常位于分離的流形上识脆,并且小擾動不會使數(shù)據(jù)點從一個類的流形跳到另一個類的流形上设联。