簡介
Dropout作為神經(jīng)網(wǎng)絡(luò)常用的正則化方法滔以,最早由Hinton和Srivastava等人[[1]2012年提出虐呻。2014年谓晌,同一批作者對Dropout進(jìn)行了完整的描述和分析杯拐,發(fā)表在本篇介紹的論文中互拾。其中的作者之一Alex Krizhevsky怪瓶,也正是后來AlexNet的第一作者萧落。AlexNet網(wǎng)絡(luò)首次在神經(jīng)網(wǎng)絡(luò)中采用Dropout用于提高泛化能力。借助AlexNet巨大的影響力洗贰,Dropout很快受到了各類研究的青睞找岖,成為之后一段時間內(nèi)神經(jīng)網(wǎng)絡(luò)的標(biāo)配。雖然后來隨著BN的提出以及流行敛滋,該結(jié)構(gòu)的使用有所減少许布,但作為早期提升網(wǎng)絡(luò)性能的重要手段之一,仍然具有很大的影響绎晃。
Dropout的基本思想是在訓(xùn)練過程中蜜唾,隨機(jī)的丟棄部分神經(jīng)元,降低特征提取的共同作用影響庶艾,提高個體特征提取器的自適應(yīng)能力袁余,達(dá)到提升網(wǎng)絡(luò)泛化能力的目的。實(shí)驗(yàn)證明Dropout的確可以有效提高模型的泛化能力咱揍,但對于為何有效的原因還尚未定論颖榜。
網(wǎng)絡(luò)結(jié)構(gòu)
Dropout結(jié)構(gòu)
Dropout模塊結(jié)構(gòu)簡單,不依賴于特定的網(wǎng)絡(luò)架構(gòu)煤裙,可以集成到各種網(wǎng)絡(luò)結(jié)構(gòu)中掩完。采用Dropout網(wǎng)絡(luò)結(jié)構(gòu)變化示意圖如下所示:
具體來說积暖,基本機(jī)制為隨機(jī)的將部分神經(jīng)元節(jié)點(diǎn)的輸出強(qiáng)制設(shè)置為0藤为。由于訓(xùn)練過程中每個批次丟棄的神經(jīng)元是完全隨機(jī)的,因此每個批次學(xué)習(xí)的都是不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)夺刑。Dropout用數(shù)學(xué)公式描述為:
? ??????????????????????????????????????????
其中,為激活函數(shù)分别,
分別為權(quán)重遍愿、上一層輸入、以及本層的輸出耘斩;
為符合伯努利分布(即0-1均勻離散分布)的Dropout控制掩碼沼填,
中每個元素取1的概率為
。由公式描述可知括授,Dropout是在激活函數(shù)計(jì)算之后處理坞笙,因此在神經(jīng)網(wǎng)絡(luò)層中岩饼,Dropout層是位于激活層(通常ReLU)之后。
失活率(Dropout Rate)
在Dropout中薛夜,最主要的超參為失活率籍茧,即每層中丟棄的神經(jīng)元占整層神經(jīng)元的比率。通常全連接層屬于密集層梯澜,適合于稀疏化寞冯,因此大量使用Dropout。卷積層由于卷積自身的稀疏性以及稀疏化的ReLU函數(shù)的大量使用晚伙,較少使用Dropout吮龄。
不同層可以使用不同的失活率,實(shí)踐中隱藏層通常使用同樣的失活率咆疗。經(jīng)過交叉驗(yàn)證漓帚,失活率等于0.5時效果最好,原因是0.5的時候Dropout隨機(jī)生成的網(wǎng)絡(luò)結(jié)構(gòu)最多午磁。Dropout也被當(dāng)作一種添加噪聲的方法胰默,用于作用輸入的訓(xùn)練數(shù)據(jù)。通常輸入層的失活率設(shè)置為0.2漓踢,避免輸入變化太大牵署。
最大范式正則化(Max-norm Regularization)
原文中采用了最大范式正則化配合Dropout使用,即對每個隱含節(jié)點(diǎn)的權(quán)重的L2范數(shù)設(shè)定上限值喧半,其中上限值作為超參調(diào)節(jié)奴迅。當(dāng)范數(shù)超過上限值,約束權(quán)重的范數(shù)為上限值挺据。
使用最大范式正則化約束權(quán)重取具,限制權(quán)重取值不會過大。即使在較大的學(xué)習(xí)率下扁耐,也能避免梯度發(fā)生爆炸暇检。較大的學(xué)習(xí)率,配合Dropout引入的噪聲婉称,可以搜索到更多的權(quán)值空間块仆。
推斷設(shè)置
訓(xùn)練過程中隨機(jī)丟棄神經(jīng)元,測試和推斷過程中則保留全部的神經(jīng)元王暗。如果測試時也隨機(jī)丟棄神經(jīng)元悔据,一是無法充分利用訓(xùn)練時丟棄神經(jīng)元增加網(wǎng)絡(luò)泛化能力的目的,另一方面對于給定輸入俗壹,隨機(jī)丟棄神經(jīng)元科汗,可能造成預(yù)測結(jié)果的不一致。
訓(xùn)練過程中某個神經(jīng)元輸出绷雏,其失活率為
头滔,則該神經(jīng)元的輸出期望值為:
? ??????????????????????????????????????????????
在測試和推斷階段怖亭,神經(jīng)元始終處于激活狀態(tài)。為了保持訓(xùn)練和測試階段的期望輸出一致坤检,需對測試和推斷階段每個神經(jīng)元的輸出進(jìn)行如下調(diào)整:
? ??????????????????????????????????????????????????????
反向傳播計(jì)算
Dropout在前向傳播中只是用來定義網(wǎng)絡(luò)的臨時結(jié)構(gòu)兴猩,在推理階段并不使用Dropout。其對網(wǎng)絡(luò)的影響真正來源于反向傳播計(jì)算缀蹄。在Dropout的作用下網(wǎng)絡(luò)權(quán)重有選擇的更新峭跳,從根本上影響最終網(wǎng)絡(luò)的表現(xiàn)。
假設(shè)在反向梯度計(jì)算中缺前,某神經(jīng)元反向梯度輸入為蛀醉,而
為該神經(jīng)元在正向計(jì)算過程中經(jīng)過Dropout后的輸出。由鏈?zhǔn)椒▌t:
? ??????????????????????????????????????????????????
其中:當(dāng)該神經(jīng)元在正向過程中被激活時衅码,取值為1拯刁;否則取值為0。
需要說明的是逝段,在正向計(jì)算過程中垛玻,當(dāng)神經(jīng)元失活,Dropout強(qiáng)行將ReLU的輸出結(jié)果設(shè)置為0奶躯。在反向梯度計(jì)算中帚桩,并不是將ReLU的真實(shí)輸出值與0的差值作為梯度進(jìn)行計(jì)算,而是直接將梯度重置為0嘹黔。因?yàn)镈ropout的作用是讓該神經(jīng)元失活账嚎,截斷該節(jié)點(diǎn)處的梯度流。
Inverted Dropout
推斷和測試中對所有神經(jīng)元輸出進(jìn)行的縮放儡蔓,影響計(jì)算性能郭蕉。為了減少測試和推斷時的計(jì)算時間,也避免修改網(wǎng)絡(luò)喂江,可以將縮放的計(jì)算轉(zhuǎn)移到訓(xùn)練階段召锈,推斷和測試階段無需做任何修改,此方法稱為反向Dropout(Inverted Dropout)获询。具體來說涨岁,即為將Dropout時保留的神經(jīng)元的輸出乘以
,根據(jù)Dropout下神經(jīng)元的期望輸出計(jì)算公式:
? ??????????????????????????????????????????
該縮放保證訓(xùn)練階段期望值與測試時期望值一致筐付。該操作僅影響訓(xùn)練過程卵惦,不影響測試和推斷過程。在訓(xùn)練時對輸出值進(jìn)行縮放后瓦戚,有效學(xué)習(xí)率(Effect LR)等價為。由于
丛塌,因此有效學(xué)習(xí)率增大较解,
因此也被稱為推動因子畜疾。
有效分析
雖然實(shí)驗(yàn)證明,Dropout正交于網(wǎng)絡(luò)架構(gòu)印衔,并在幾乎所有的數(shù)據(jù)集上表現(xiàn)都優(yōu)于基準(zhǔn)測試啡捶,但其有效具體原因仍待分析。通常的觀點(diǎn)解釋有:
減少神經(jīng)元共適應(yīng)性(co-adaptations):通常認(rèn)為奸焙,神經(jīng)元之間具有非常復(fù)雜的共適應(yīng)性瞎暑。一個神經(jīng)元需要與其它的神經(jīng)元協(xié)作,即基于其它神經(jīng)元提取特征的基礎(chǔ)上与帆,才能提取特定的特征了赌。Dropout隨機(jī)丟棄部分神經(jīng)元,打破了神經(jīng)元之間相互協(xié)作的機(jī)制玄糟,迫使每個神經(jīng)元獨(dú)立的學(xué)習(xí)更加魯棒的特征勿她,避免了某些特征只有在其它特征下才有效的情況。按此分析阵翎,Dropout類似于L1逢并、L2等正則化效果,通過減少權(quán)重提高網(wǎng)絡(luò)的魯棒性和泛化能力郭卫。
Bagging集成作用:Bagging是一種通過集成多個模型降低泛化誤差的技術(shù)砍聊。訓(xùn)練階段訓(xùn)練多個不同的模型,測試階段將所有模型的輸出結(jié)果進(jìn)行表決或加權(quán)平均輸出贰军。每次訓(xùn)練迭代過程中玻蝌,Dropout隨機(jī)丟棄部分神經(jīng)元,相當(dāng)于訓(xùn)練不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)谓形。與完整的Bagging流程不同灶伊,Dropout并不是在整個數(shù)據(jù)集上完整的訓(xùn)練每個網(wǎng)絡(luò)架構(gòu),而只在一個批次的數(shù)據(jù)上(min-batch)訓(xùn)練不同的網(wǎng)絡(luò)架構(gòu)寒跳,因此是一種廉價的Bagging 集成近似方法聘萨。基于批次訓(xùn)練不同的架構(gòu)童太,避免了采用原始Bagging技術(shù)需要訓(xùn)練和評估指數(shù)級神經(jīng)網(wǎng)絡(luò)的問題米辐。
生物進(jìn)化類比:物種在進(jìn)化過程中傾向于適應(yīng)當(dāng)前環(huán)境,從理論上說书释,繁殖應(yīng)該傾向于直接復(fù)制已經(jīng)適應(yīng)環(huán)境的父輩基因翘贮。然而,自然界更多采用有性繁殖等混合基因的方式進(jìn)化爆惧。一種可能的原因在于基因混合可以組合繁衍出適應(yīng)未來新環(huán)境的變種狸页,避免了當(dāng)環(huán)境發(fā)生突變時,物種難以適應(yīng)而面臨滅絕的危險。打亂單個基因依靠與其它基因固定組合來適應(yīng)環(huán)境的方式芍耘,有助于增強(qiáng)了基因的適應(yīng)能力址遇。
共謀論:在策劃一起大破壞時,有兩種方式:一種是50個人協(xié)同合作制作一起破壞斋竞;另外一種是分成10個組倔约,每組5人,只要一組成功實(shí)施破壞坝初,即任務(wù)完成浸剩。通常第二種方式的成功率更高,因?yàn)?0人協(xié)同需要緊密配合鳄袍,人員不可或缺绢要,響應(yīng)外部環(huán)境變化的速度較慢。相對而言畦木,小團(tuán)隊(duì)可以更快適應(yīng)和響應(yīng)外部環(huán)境袖扛。即使9組失敗,只需一組成功便可算完成任務(wù)十籍,從整體上看其適應(yīng)能力更強(qiáng)蛆封。
噪聲論:認(rèn)為Dropout作用相當(dāng)于數(shù)據(jù)增強(qiáng)(Data Augmentation)。針對每次Dropout產(chǎn)生的輸出結(jié)果勾栗,總能找到一個樣本惨篱,其原始網(wǎng)絡(luò)上輸出與Dropout的輸出相同。因此每次Dropout操作相當(dāng)于增加了數(shù)據(jù)樣本围俘,提高了模型的泛化能力砸讳。
數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)集
論文主要針對分類任務(wù)進(jìn)行評估,分類的類型包括圖像界牡、聲音簿寂、文本、以及基因剪接宿亡,使用的數(shù)據(jù)集主要有:
MINST:該數(shù)據(jù)集包含60,000張訓(xùn)練數(shù)據(jù)以及10,000張測試數(shù)據(jù)常遂,每張圖片為28*28的灰色圖像。測試目標(biāo)為從手寫數(shù)字圖像中分辨出1~10的數(shù)字挽荠,為10分類任務(wù)克胳。
SVHN(Street View House Numbers):由Google街景應(yīng)用收集的街道邊房屋編號的數(shù)字圖像組成,房屋編號圖像已經(jīng)被分割為獨(dú)立的包含數(shù)字的彩色圖片圈匆,圖片尺寸為32*32漠另。該數(shù)據(jù)集包含約600,000張訓(xùn)練數(shù)據(jù)以及26,000張測試數(shù)據(jù),其中訓(xùn)練數(shù)據(jù)集由標(biāo)準(zhǔn)標(biāo)注訓(xùn)練數(shù)據(jù)集以及較簡單的標(biāo)準(zhǔn)訓(xùn)練集組成跃赚。驗(yàn)證集包含6,000張數(shù)據(jù)笆搓,以2:1的比例從上述兩個訓(xùn)練集中隨機(jī)抽取,兩個子集上每個類別的數(shù)量分別為400和200。測試目標(biāo)為從彩色圖像中辨認(rèn)數(shù)字砚作,為10分類任務(wù)窘奏。
CIFAR-10 & CIFAR-100:該數(shù)據(jù)集包含了50,000張訓(xùn)練數(shù)據(jù)集和10,000張測試數(shù)據(jù)集嘹锁,分別包含了10類和100類物體葫录,圖像尺寸大小為32*32。隨機(jī)從訓(xùn)練數(shù)據(jù)集中抽樣5,000張圖片作為驗(yàn)證數(shù)據(jù)集领猾。測試目標(biāo)為從圖像中辨認(rèn)出物體的類型米同,為10和100分類任務(wù)。
ImageNet:原始數(shù)據(jù)集包含1500萬包含標(biāo)注信息的圖像數(shù)據(jù)摔竿,覆蓋22,000種物體類型面粮。從其中選擇1000中物體類型,每種物體類型約1000張圖像继低,組成了用于圖像識別大賽ImageNet Large Scale Visual Recognition Challenge(ILSVRC)的數(shù)據(jù)子集熬苍。其中ILSVRC-2010是當(dāng)時唯一測試集包含標(biāo)簽的數(shù)據(jù)集,通常在此數(shù)據(jù)集上訓(xùn)練和驗(yàn)證袁翁。測試目標(biāo)為從圖像中辨認(rèn)物體的類型柴底,為1000分類任務(wù)。
TIMIT:語音數(shù)據(jù)庫粱胜,包含在無噪聲環(huán)境下柄驻,錄制的680人說話的語音數(shù)據(jù)。每個錄制者朗讀10句英文焙压,覆蓋了8中不同的英語方言鸿脓。測試目標(biāo)是能夠有效的識別語音內(nèi)容。
Reuters-RCV1:800,000份來自路透社的新聞稿件涯曲,涵蓋了103個不同的主題野哭。論文選取了其中的402,738份數(shù)據(jù),并通過2000個詞匯描述了50中不同的主題幻件。每份文本數(shù)據(jù)歸屬一個主題拨黔。通過BoW算法,提取關(guān)鍵詞傲武,將文章歸類到50個獨(dú)立的主題蓉驹。
數(shù)據(jù)處理
SVHN(Street View House Numbers):計(jì)算像素的均值和方差,然后每個像素減去均值并除以方差揪利,得到零均值和標(biāo)準(zhǔn)方差分布态兴。
CIFAR-10 & CIFAR-100:首先經(jīng)過全局對比歸一化(Global Contrast Normalization),即針對每幅圖的每個顏色通道疟位,分別減去像素的對比強(qiáng)度值瞻润。然后進(jìn)行ZCA白化操作。
ZCA白化:目的是降低數(shù)據(jù)的相關(guān)性,尤其是在圖像領(lǐng)域绍撞,相鄰數(shù)據(jù)之間的關(guān)聯(lián)性很強(qiáng)正勒,即存在大量冗余。通過ZCA白化處理傻铣,希望數(shù)據(jù)具備1)特征之間關(guān)聯(lián)性降低章贞;2)所有特征的方差相同。首先通過PCA主成分分析非洲,將數(shù)據(jù)通過特征向量矩陣投影到特征的主成分空間鸭限,然后在特征的主成分維度進(jìn)行標(biāo)準(zhǔn)的歸一化,使得不同維度的方差相同两踏。最后將數(shù)據(jù)轉(zhuǎn)換會原始的數(shù)據(jù)空間败京。
ZCA白化與PCA白化的區(qū)別:前者主要用于去相關(guān),而后者在于去相關(guān)的同時降維梦染。PCA白化過程中要求各維度方差為1赡麦,并且丟棄方差較小的維度達(dá)到將維目的。ZCA只要求各維度方差相同帕识,并且處理后數(shù)據(jù)盡量接近原始數(shù)據(jù)泛粹。ZCA相對PCA多一個操作步驟,即數(shù)據(jù)需要轉(zhuǎn)換回原始空間渡冻。
ImageNet:參考ImageNet Classification with Deep Convolutional Neural Network中的實(shí)現(xiàn)戚扳。
TIMIT:語音幀經(jīng)過了均值中心化和方差單位化操作。
Reuters-RCV1:略
訓(xùn)練策略
初始化
整個訓(xùn)練過程中族吻,使用隨機(jī)初始化訓(xùn)練方法帽借。特別的,在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行語音識別時超歌,通過DBN網(wǎng)進(jìn)行預(yù)訓(xùn)練來初始化神經(jīng)網(wǎng)絡(luò)砍艾。
超參策略
采用Dropout處理會降低網(wǎng)絡(luò)的容量。例如巍举,對于有n個神經(jīng)元的網(wǎng)絡(luò)脆荷,采用Dropout處理后,每次只有個神經(jīng)元參與訓(xùn)練懊悯。在設(shè)計(jì)包含Dropout的神經(jīng)網(wǎng)絡(luò)時蜓谋,如果已知包含
個神經(jīng)元的網(wǎng)絡(luò)容量能夠滿足給定的任務(wù),包含Dropout的神經(jīng)網(wǎng)絡(luò)的神經(jīng)元個數(shù)建議設(shè)置為
炭分。
在梯度計(jì)算過程中桃焕,Dropout會引入更多的噪聲,導(dǎo)致梯度迭代過程中相互取消捧毛,降低了網(wǎng)絡(luò)訓(xùn)練收斂的速度观堂。為了提高網(wǎng)絡(luò)的訓(xùn)練速度让网,設(shè)置帶Dropout的學(xué)習(xí)率時,建議其為不使用Dropout的相同網(wǎng)絡(luò)架構(gòu)學(xué)習(xí)率的10~100倍师痕。另外溃睹,也可以通過增大動量的方式提升訓(xùn)練速度∫确兀考慮到大部分的神經(jīng)網(wǎng)絡(luò)使用的動量系數(shù)為0.9因篇。包含Dropout時,動量系數(shù)設(shè)置為0.95~0.99會明顯提高網(wǎng)絡(luò)收斂速度腕铸。
失活率是Dropout引入的新超參惜犀,建議設(shè)置范圍為[0.2, 0.5]。對于輸入端設(shè)置通常為0.2狠裹,而隱藏層設(shè)置為0.5。太大的失活率導(dǎo)致較多的神經(jīng)元訓(xùn)練過程中被丟棄汽烦,容易導(dǎo)致收斂速度慢涛菠,甚至欠擬合;太小的失活率則難以起到泛化的作用撇吞。
其具體任務(wù)相關(guān)的其它超參設(shè)置如下:
MINST:從訓(xùn)練數(shù)據(jù)中隨機(jī)抽取10,000張樣本作為驗(yàn)證數(shù)據(jù)集俗冻。在驗(yàn)證數(shù)據(jù)集上迭代一百萬次,以獲得最好驗(yàn)證誤差下對應(yīng)的超參牍颈。
CIFAR-10 & CIFAR-100:類似于MINST迄薄,隨機(jī)從訓(xùn)練數(shù)據(jù)集中抽樣5,000張圖片作為驗(yàn)證數(shù)據(jù)集。以驗(yàn)證數(shù)據(jù)集上迭代到最好的誤差的超參為最終配置煮岁。
ImageNet:具體參考ImageNet Classification with Deep Convolutional Neural Network
TIMIT:輸入的Dropout保留率設(shè)置為0.8讥蔽,網(wǎng)絡(luò)隱含層的保留率設(shè)置為0.5。增加了最大范式正則化操作画机,其中參數(shù)冶伞。初始學(xué)習(xí)率為0.1,動量系數(shù)為0.95步氏。
測試評估
數(shù)據(jù)集測試
MINST:使用了NN(2-layers & 3-layers)+logistic/ReLU响禽,和DBN/DBM+logistic的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行評估。每組網(wǎng)絡(luò)均使用了原始配置和增加Dropout后的對比測試實(shí)驗(yàn)荚醒。在使用Dropout后芋类,表現(xiàn)最好一組的誤差由1.6%降低到1.35%。此外將激活函數(shù)從logistic替換為ReLU(1.25%)界阁、增加最大范式正則化(1.06%)侯繁、以及增加網(wǎng)絡(luò)的尺寸(0.95%)等操作,可進(jìn)一步降低誤差铺董。針對較大尺寸的網(wǎng)絡(luò)巫击,未使用Dropout時禀晓,即使使用標(biāo)準(zhǔn)化的正則化方法以及早停訓(xùn)練機(jī)制,也較難保證較好的泛化能力坝锰。在使用Dropout后粹懒,即使不使用早停機(jī)制,也能的到較好的泛化能力顷级。充分說明Dropout有效提高了網(wǎng)絡(luò)泛化能力凫乖。
SVHN:使用了卷積神經(jīng)網(wǎng)絡(luò)+max pooling/maxout等配置的網(wǎng)絡(luò)架構(gòu)進(jìn)行評估。表現(xiàn)最好的網(wǎng)絡(luò)由三層卷積網(wǎng)絡(luò)+兩層全連接網(wǎng)絡(luò)構(gòu)成弓颈,從輸入到隱含層的Dropout配置(保留率)為{0.9, 0.75, 0.75, 0.5, 0.5, 0.5}帽芽,即對輸入和卷積網(wǎng)絡(luò)也增加了Dropout處理。在只對全連接層增加Dropout處理后翔冀,誤差由3.95%降低到3.02%导街。增加卷積層Dropout處理后,誤差進(jìn)一步下降到2.47%纤子。通常認(rèn)為卷積層本身具有稀疏性搬瑰,無需增加Dropout。由實(shí)驗(yàn)可知控硼,對卷積層增加Dropout對誤差也有改善泽论,其原因可能在于增加Dropout后,增加了輸入到全連接層的噪聲卡乾。
ImageNet:性能最好的網(wǎng)絡(luò)由卷積神經(jīng)網(wǎng)絡(luò)組成(AlexNet)翼悴,由包含Dropout處理的神經(jīng)網(wǎng)絡(luò)架構(gòu)在Top5上的錯誤率由傳統(tǒng)特征提取分類的26%下降到16%,并以此獲得ILSVRC-2012分類比賽的冠軍幔妨。
TIMIT:對比實(shí)驗(yàn)在經(jīng)過DBN預(yù)訓(xùn)練的NN網(wǎng)絡(luò)(4\6\8)之間進(jìn)行鹦赎。在一個6層的NN網(wǎng)絡(luò)上,增加Dropout處理陶冷,誤差由23.4%下降到21.8%钙姊,在增加網(wǎng)絡(luò)到8層時,誤差進(jìn)一步降低到19.7%埂伦。
Reuters-RCV1:在表現(xiàn)最好的網(wǎng)絡(luò)上煞额,使用Dropout后,錯誤率由31.05%下降到29.62%沾谜。在文本分類上膊毁,Dropout對性能的提升要遠(yuǎn)小于圖像分類任務(wù)。
正則化對比
Dropout具有一定的正則化效果基跑。其它常用的正則化方法包括L1婚温、L2、KL稀疏化媳否、最大范式等栅螟。通過在相同數(shù)據(jù)集(MINST)上使用同一網(wǎng)絡(luò)架構(gòu)荆秦,配合不同的正則化方法對比發(fā)現(xiàn),Dropout+最大范式的組合正則化方法獲得了最低的測試誤差力图。
特征影響
可視化對比單層自動編碼器學(xué)習(xí)到的特征步绸,如下所示:
在未使用Dropout時,每個神經(jīng)元學(xué)習(xí)到的特征沒有明顯有意義的結(jié)構(gòu)信息吃媒。一種可能的原因在于神經(jīng)元之間相互協(xié)作而無需獨(dú)立學(xué)習(xí)顯著的特征瓤介。在使用Dropout后(p=0.5),每個神經(jīng)元學(xué)習(xí)到了類似于點(diǎn)赘那、邊等明顯的結(jié)構(gòu)特征刑桑,可以獨(dú)立完成對特征的提取。由此可知募舟,Dropout的使用的確破壞了神經(jīng)元之間相互依賴協(xié)作的工作模式祠斧,從而提高了神經(jīng)元的獨(dú)立學(xué)習(xí)能力。
稀疏性
正則化的目的在于增加模型的稀疏性胃珍,較好的稀疏性有助于提高模型的泛化能力和可解釋性梁肿。一個稀疏良好的網(wǎng)絡(luò)模型包含兩層含義:1)在任意的輸入下,網(wǎng)絡(luò)中只有稀疏的神經(jīng)元被激活響應(yīng)觅彰;2)同一個神經(jīng)元,在任意的輸入下钮热,具備稀疏的響應(yīng)能力填抬,即只有在特定的輸入才響應(yīng),而大部分輸入下則不響應(yīng)隧期。
統(tǒng)計(jì)神經(jīng)元在不同的輸入下響應(yīng)的分布如下圖所示:
每幅圖的左子圖顯示在不同輸入下飒责,每個神經(jīng)元平均被激活次數(shù)的分布百分比情況;右子圖描述了被激活不同次數(shù)的神經(jīng)元個數(shù)的分布情況仆潮。對比左邊子圖宏蛉,使用Dropout后峰值左移,大部分神經(jīng)元被激活的平均次數(shù)小于1性置,說明神經(jīng)元在不同的輸入下被激活次數(shù)降低拾并。對比右子圖,使用Dropout后鹏浅,絕大多數(shù)的神經(jīng)元沒有被激活嗅义,只有少量神經(jīng)元被激活,而且大部分反復(fù)被激活的次數(shù)較低隐砸。
通過對比之碗,Dropout不僅降低了被激活神經(jīng)元的數(shù)量,而且降低了相同神經(jīng)元在多次輸入下反復(fù)被激活的次數(shù)季希,有效的提高了模型的稀疏性褪那。
訓(xùn)練集大小影響
使用同一個網(wǎng)絡(luò)幽纷,在不同的數(shù)據(jù)集上訓(xùn)練網(wǎng)絡(luò),比較有無Dropout下的測試誤差博敬。在MINST上隨機(jī)抽樣得到不同規(guī)模([100, 500, 1k, 5k, 10k, 50k])的訓(xùn)練集友浸。對比結(jié)果發(fā)現(xiàn),在較小的數(shù)據(jù)集[100,500]時冶忱,由于嚴(yán)重的過擬合尾菇,測試誤差都比較差,而且使用Dropout的誤差更差囚枪。當(dāng)數(shù)據(jù)集逐步增大時[1k, 5k]派诬,使用Dropout的測試誤差急劇下降,并且優(yōu)于基準(zhǔn)測試链沼。原因在于當(dāng)前網(wǎng)絡(luò)容量適合該規(guī)模的數(shù)據(jù)集默赂,并且Dropout發(fā)揮了泛化作用。當(dāng)進(jìn)一步增大訓(xùn)練數(shù)據(jù)集時括勺,Dropout和基準(zhǔn)測試誤差下降速度減少缆八,但兩者差距縮小。這是因?yàn)榫W(wǎng)絡(luò)在較大數(shù)據(jù)集上本身的過擬合現(xiàn)象得到緩和疾捍,Dropout的效果提升不再明顯奈辰。
模型均值評估
測試和推斷階段不使用Dropout,而是通過對網(wǎng)絡(luò)權(quán)重(輸出)進(jìn)行縮放乱豆,近似平均不同的網(wǎng)絡(luò)模型奖恰。一種更準(zhǔn)確但耗時的方法是采樣訓(xùn)練階段的
個不同網(wǎng)絡(luò)模型,用于逐一測試和推斷宛裕。將網(wǎng)絡(luò)的預(yù)測結(jié)果平均瑟啃,作為最終的預(yù)測結(jié)果。當(dāng)
時揩尸,這種蒙特卡洛平均采樣結(jié)果將無限逼近真實(shí)預(yù)測值蛹屿。
在MINST數(shù)據(jù)集上實(shí)驗(yàn)發(fā)現(xiàn):當(dāng)時,預(yù)測值接近于通過權(quán)重縮放時得到的預(yù)測值岩榆。因此错负,通過簡單的權(quán)重縮放來模擬多模型平均是可行的。
總結(jié)
在標(biāo)準(zhǔn)版本的Dropout提出來之后朗恳,又有很多新類型的Dropout陸續(xù)被提出湿颅,例如DropConnect、Standout等粥诫。盡管Dropout思想很簡單油航,但有效的緩解了過擬合問題。
隨著批歸一化(Batch Normalization, BN)提出后怀浆,BN以其更好的性能和效果而得到廣泛應(yīng)用谊囚。但是怕享,當(dāng)Dropout與BN結(jié)合在一起時,卻并不能獲得額外的增益效果镰踏,結(jié)果反而變差函筋。一種觀點(diǎn)認(rèn)為Dropout和BN有相似的正則化功能,兩者之間不相融奠伪。最近的研究表明跌帐,兩者之間的沖突關(guān)鍵在于網(wǎng)絡(luò)狀態(tài)切換過程中,存在神經(jīng)方差(Neural Variance)不一致行為绊率。簡單來說谨敛,在使用BN時,測試階段使用訓(xùn)練階段的統(tǒng)計(jì)方差滤否,在增加Dropout后脸狸,由于方差偏移作用,不同于(未使用Dropout)真實(shí)的測試方差藐俺,而導(dǎo)致預(yù)測結(jié)果產(chǎn)生錯誤偏差炊甲。
參考文獻(xiàn)
[1] Geoffrey E. Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever, Ruslan R. Salakhutdinov.?Improving neural networks by preventing co-adaptation of feature detectors
[2] Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov.?Dropout: A Simple Way to Prevent Neural Networks from Overfitting