開(kāi)篇明義,dropout是指在深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,對(duì)于神經(jīng)網(wǎng)絡(luò)單元,按照一定的概率將其暫時(shí)從網(wǎng)絡(luò)中丟棄。注意是暫時(shí),對(duì)于隨機(jī)梯度下降來(lái)說(shuō),由于是隨機(jī)丟棄,故而每一個(gè)mini-batch都在訓(xùn)練不同的網(wǎng)絡(luò)。
dropout是CNN中防止過(guò)擬合提高效果的一個(gè)大殺器,但對(duì)于其為何有效,卻眾說(shuō)紛紜。在下讀到兩篇代表性的論文,代表兩種不同的觀點(diǎn),特此分享給大家。
▌組合派
參考文獻(xiàn)中第一篇中的觀點(diǎn),Hinton老大爺提出來(lái)的,關(guān)于Hinton在深度學(xué)習(xí)界的地位我就不再贅述了,光是這地位,估計(jì)這一派的觀點(diǎn)就是“武當(dāng)少林”了。注意,派名是我自己起的,各位勿笑。
▌?dòng)^點(diǎn)
該論文從神經(jīng)網(wǎng)絡(luò)的難題出發(fā),一步一步引出dropout為何有效的解釋。大規(guī)模的神經(jīng)網(wǎng)絡(luò)有兩個(gè)缺點(diǎn):
費(fèi)時(shí)
容易過(guò)擬合
這兩個(gè)缺點(diǎn)真是抱在深度學(xué)習(xí)大腿上的兩個(gè)大包袱,一左一右,相得益彰,額不,臭氣相投。過(guò)擬合是很多機(jī)器學(xué)習(xí)的通病,過(guò)擬合了,得到的模型基本就廢了。而為了解決過(guò)擬合問(wèn)題,一般會(huì)采用ensemble方法,即訓(xùn)練多個(gè)模型做組合,此時(shí),費(fèi)時(shí)就成為一個(gè)大問(wèn)題,不僅訓(xùn)練起來(lái)費(fèi)時(shí),測(cè)試起來(lái)多個(gè)模型也很費(fèi)時(shí)??傊?,幾乎形成了一個(gè)死鎖。
Dropout的出現(xiàn)很好的可以解決這個(gè)問(wèn)題,每次做完dropout,相當(dāng)于從原始的網(wǎng)絡(luò)中找到一個(gè)更瘦的網(wǎng)絡(luò),如下圖所示:
因而,對(duì)于一個(gè)有N個(gè)節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò),有了dropout后,就可以看做是2n個(gè)模型的集合了,但此時(shí)要訓(xùn)練的參數(shù)數(shù)目卻是不變的,這就解脫了費(fèi)時(shí)的問(wèn)題。
▌動(dòng)機(jī)論
雖然直觀上看dropout是ensemble在分類性能上的一個(gè)近似,然而實(shí)際中,dropout畢竟還是在一個(gè)神經(jīng)網(wǎng)絡(luò)上進(jìn)行的,只訓(xùn)練出了一套模型參數(shù)。那么他到底是因何而有效呢?這就要從動(dòng)機(jī)上進(jìn)行分析了。論文中作者對(duì)dropout的動(dòng)機(jī)做了一個(gè)十分精彩的類比:
在自然界中,在中大型動(dòng)物中,一般是有性繁殖,有性繁殖是指后代的基因從父母兩方各繼承一半。但是從直觀上看,似乎無(wú)性繁殖更加合理,因?yàn)闊o(wú)性繁殖可以保留大段大段的優(yōu)秀基因。而有性繁殖則將基因隨機(jī)拆了又拆,破壞了大段基因的聯(lián)合適應(yīng)性。
但是自然選擇中畢竟沒(méi)有選擇無(wú)性繁殖,而選擇了有性繁殖,須知物競(jìng)天擇,適者生存。我們先做一個(gè)假設(shè),那就是基因的力量在于混合的能力而非單個(gè)基因的能力。不管是有性繁殖還是無(wú)性繁殖都得遵循這個(gè)假設(shè)。為了證明有性繁殖的強(qiáng)大,我們先看一個(gè)概率學(xué)小知識(shí)。
比如要搞一次恐怖襲擊,兩種方式:
集中50人,讓這50個(gè)人密切精準(zhǔn)分工,搞一次大爆破。
將50人分成10組,每組5人,分頭行事,去隨便什么地方搞點(diǎn)動(dòng)作,成功一次就算。
哪一個(gè)成功的概率比較大? 顯然是后者。因?yàn)閷⒁粋€(gè)大團(tuán)隊(duì)作戰(zhàn)變成了游擊戰(zhàn)。
那么,類比過(guò)來(lái),有性繁殖的方式不僅僅可以將優(yōu)秀的基因傳下來(lái),還可以降低基因之間的聯(lián)合適應(yīng)性,使得復(fù)雜的大段大段基因聯(lián)合適應(yīng)性變成比較小的一個(gè)一個(gè)小段基因的聯(lián)合適應(yīng)性。
dropout也能達(dá)到同樣的效果,它強(qiáng)迫一個(gè)神經(jīng)單元,和隨機(jī)挑選出來(lái)的其他神經(jīng)單元共同工作,達(dá)到好的效果。消除減弱了神經(jīng)元節(jié)點(diǎn)間的聯(lián)合適應(yīng)性,增強(qiáng)了泛化能力。
個(gè)人補(bǔ)充一點(diǎn):那就是植物和微生物大多采用無(wú)性繁殖,因?yàn)樗麄兊纳姝h(huán)境的變化很小,因而不需要太強(qiáng)的適應(yīng)新環(huán)境的能力,所以保留大段大段優(yōu)秀的基因適應(yīng)當(dāng)前環(huán)境就足夠了。而高等動(dòng)物卻不一樣,要準(zhǔn)備隨時(shí)適應(yīng)新的環(huán)境,因而將基因之間的聯(lián)合適應(yīng)性變成一個(gè)一個(gè)小的,更能提高生存的概率。
▌dropout帶來(lái)的模型的變化
而為了達(dá)到ensemble的特性,有了dropout后,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和預(yù)測(cè)就會(huì)發(fā)生一些變化。
訓(xùn)練層面
無(wú)可避免的,訓(xùn)練網(wǎng)絡(luò)的每個(gè)單元要添加一道概率流程。
對(duì)應(yīng)的公式變化如下如下:
沒(méi)有dropout的神經(jīng)網(wǎng)絡(luò)
dropout的神經(jīng)網(wǎng)絡(luò)
測(cè)試層面
預(yù)測(cè)的時(shí)候,每一個(gè)單元的參數(shù)要預(yù)乘以p。
▌?wù)撐闹械钠渌夹g(shù)點(diǎn)
防止過(guò)擬合的方法:
提前終止(當(dāng)驗(yàn)證集上的效果變差的時(shí)候)
L1和L2正則化加權(quán)
soft weight sharing
dropout
dropout率的選擇
經(jīng)過(guò)交叉驗(yàn)證,隱含節(jié)點(diǎn)dropout率等于0.5的時(shí)候效果最好,原因是0.5的時(shí)候dropout隨機(jī)生成的網(wǎng)絡(luò)結(jié)構(gòu)最多。
dropout也可以被用作一種添加噪聲的方法,直接對(duì)input進(jìn)行操作。輸入層設(shè)為更接近1的數(shù)。使得輸入變化不會(huì)太大(0.8)
訓(xùn)練過(guò)程
對(duì)參數(shù)w的訓(xùn)練進(jìn)行球形限制(max-normalization),對(duì)dropout的訓(xùn)練非常有用。
球形半徑c是一個(gè)需要調(diào)整的參數(shù)??梢允褂抿?yàn)證集進(jìn)行參數(shù)調(diào)優(yōu)
dropout自己雖然也很牛,但是dropout、max-normalization、large decaying learning rates and high momentum組合起來(lái)效果更好,比如max-norm regularization就可以防止大的learning rate導(dǎo)致的參數(shù)blow up。
使用pretraining方法也可以幫助dropout訓(xùn)練參數(shù),在使用dropout時(shí),要將所有參數(shù)都乘以1/p。
部分實(shí)驗(yàn)結(jié)論
該論文的實(shí)驗(yàn)部分很豐富,有大量的評(píng)測(cè)數(shù)據(jù)。
maxout 神經(jīng)網(wǎng)絡(luò)中得另一種方法,Cifar-10上超越dropout
文本分類上,dropout效果提升有限,分析原因可能是Reuters-RCV1數(shù)據(jù)量足夠大,過(guò)擬合并不是模型的主要問(wèn)題
dropout與其他standerd regularizers的對(duì)比
L2 weight decay
lasso
KL-sparsity
max-norm regularization
dropout
特征學(xué)習(xí)
標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò),節(jié)點(diǎn)之間的相關(guān)性使得他們可以合作去fix其他節(jié)點(diǎn)中得噪聲,但這些合作并不能在unseen data上泛化,于是,過(guò)擬合,dropout破壞了這種相關(guān)性。在autoencoder上,有dropout的算法更能學(xué)習(xí)有意義的特征(不過(guò)只能從直觀上,不能量化)。
產(chǎn)生的向量具有稀疏性。
保持隱含節(jié)點(diǎn)數(shù)目不變,dropout率變化;保持激活的隱節(jié)點(diǎn)數(shù)目不變,隱節(jié)點(diǎn)數(shù)目變化。
數(shù)據(jù)量小的時(shí)候,dropout效果不好,數(shù)據(jù)量大了,dropout效果好。
模型均值預(yù)測(cè)
使用weight-scaling來(lái)做預(yù)測(cè)的均值化
使用mente-carlo方法來(lái)做預(yù)測(cè)。即對(duì)每個(gè)樣本根據(jù)dropout率先sample出來(lái)k個(gè)net,然后做預(yù)測(cè),k越大,效果越好。
Multiplicative Gaussian Noise
使用高斯分布的dropout而不是伯努利模型dropout
dropout的缺點(diǎn)就在于訓(xùn)練時(shí)間是沒(méi)有dropout網(wǎng)絡(luò)的2-3倍。
進(jìn)一步需要了解的知識(shí)點(diǎn)
dropout RBM
Marginalizing Dropout
具體來(lái)說(shuō)就是將隨機(jī)化的dropout變?yōu)榇_定性的,比如對(duì)于Logistic回歸,其dropout相當(dāng)于加了一個(gè)正則化項(xiàng)。
Bayesian neural network對(duì)稀疏數(shù)據(jù)特別有用,比如medical diagnosis, genetics, drug discovery and other computational biology applications
▌噪聲派
參考文獻(xiàn)中第二篇論文中得觀點(diǎn),也很強(qiáng)有力。
觀點(diǎn)
觀點(diǎn)十分明確,就是對(duì)于每一個(gè)dropout后的網(wǎng)絡(luò),進(jìn)行訓(xùn)練時(shí),相當(dāng)于做了Data Augmentation,因?yàn)?,總可以找到一個(gè)樣本,使得在原始的網(wǎng)絡(luò)上也能達(dá)到dropout單元后的效果。 比如,對(duì)于某一層,dropout一些單元后,形成的結(jié)果是(1.5,0,2.5,0,1,2,0),其中0是被drop的單元,那么總能找到一個(gè)樣本,使得結(jié)果也是如此。這樣,每一次dropout其實(shí)都相當(dāng)于增加了樣本。
稀疏性
知識(shí)點(diǎn)A
首先,先了解一個(gè)知識(shí)點(diǎn):
When the data points belonging to a particular class are distributed along a linear manifold, or sub-space, of the input space, it is enough to learn a single set of features which can span the entire manifold. But when the data is distributed along a highly non-linear and discontinuous manifold, the best way to represent such a distribution is to learn features which can explicitly represent small local regions of the input space, effectively “tiling” the space to define non-linear decision boundaries.
大致含義就是:
在線性空間中,學(xué)習(xí)一個(gè)整個(gè)空間的特征集合是足夠的,但是當(dāng)數(shù)據(jù)分布在非線性不連續(xù)的空間中得時(shí)候,則學(xué)習(xí)局部空間的特征集合會(huì)比較好。
知識(shí)點(diǎn)B
假設(shè)有一堆數(shù)據(jù),這些數(shù)據(jù)由M個(gè)不同的非連續(xù)性簇表示,給定K個(gè)數(shù)據(jù)。那么一個(gè)有效的特征表示是將輸入的每個(gè)簇映射為特征以后,簇之間的重疊度最低。使用A來(lái)表示每個(gè)簇的特征表示中激活的維度集合。重疊度是指兩個(gè)不同的簇的Ai和Aj之間的Jaccard相似度最小,那么:
當(dāng)K足夠大時(shí),即便A也很大,也可以學(xué)習(xí)到最小的重疊度
當(dāng)K小M大時(shí),學(xué)習(xí)到最小的重疊度的方法就是減小A的大小,也就是稀疏性。
上述的解釋可能是有點(diǎn)太專業(yè)化,比較拗口。主旨意思是這樣,我們要把不同的類別區(qū)分出來(lái),就要是學(xué)習(xí)到的特征區(qū)分度比較大,在數(shù)據(jù)量足夠的情況下不會(huì)發(fā)生過(guò)擬合的行為,不用擔(dān)心。但當(dāng)數(shù)據(jù)量小的時(shí)候,可以通過(guò)稀疏性,來(lái)增加特征的區(qū)分度。
因而有意思的假設(shè)來(lái)了,使用了dropout后,相當(dāng)于得到更多的局部簇,同等的數(shù)據(jù)下,簇變多了,因而為了使區(qū)分性變大,就使得稀疏性變大。
為了驗(yàn)證這個(gè)數(shù)據(jù),論文還做了一個(gè)實(shí)驗(yàn),如下圖:
該實(shí)驗(yàn)使用了一個(gè)模擬數(shù)據(jù),即在一個(gè)圓上,有15000個(gè)點(diǎn),將這個(gè)圓分為若干個(gè)弧,在一個(gè)弧上的屬于同一個(gè)類,一共10個(gè)類,即不同的弧也可能屬于同一個(gè)類。改變弧的大小,就可以使屬于同一類的弧變多。
實(shí)驗(yàn)結(jié)論就是當(dāng)弧長(zhǎng)變大時(shí),簇?cái)?shù)目變少,稀疏度變低。與假設(shè)相符合。
個(gè)人觀點(diǎn):該假設(shè)不僅僅解釋了dropout何以導(dǎo)致稀疏性,還解釋了dropout因?yàn)槭咕植看氐母语@露出來(lái),而根據(jù)知識(shí)點(diǎn)A可得,使局部簇顯露出來(lái)是dropout能防止過(guò)擬合的原因,而稀疏性只是其外在表現(xiàn)。
論文中的其他技術(shù)知識(shí)點(diǎn)
將dropout映射回得樣本訓(xùn)練一個(gè)完整的網(wǎng)絡(luò),可以達(dá)到dropout的效果。
dropout由固定值變?yōu)橐粋€(gè)區(qū)間,可以提高效果
將dropout后的表示映射回輸入空間時(shí),并不能找到一個(gè)樣本x*使得所有層都能滿足dropout的結(jié)果,但可以為每一層都找到一個(gè)樣本,這樣,對(duì)于每一個(gè)dropout,都可以找到一組樣本可以模擬結(jié)果。
dropout對(duì)應(yīng)的還有一個(gè)dropConnect,公式如下:
dropout
ropConnect
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4717瀏覽量
100002 -
Dropout
+關(guān)注
關(guān)注
0文章
13瀏覽量
10028
原文標(biāo)題:詳解 | Dropout為何能防止過(guò)擬合?
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論