0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

dropout帶來的模型的變化

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-08-23 09:34 ? 次閱讀

開篇明義,dropout是指在深度學習網(wǎng)絡的訓練過程中,對于神經(jīng)網(wǎng)絡單元,按照一定的概率將其暫時從網(wǎng)絡中丟棄。注意是暫時,對于隨機梯度下降來說,由于是隨機丟棄,故而每一個mini-batch都在訓練不同的網(wǎng)絡。

dropout是CNN中防止過擬合提高效果的一個大殺器,但對于其為何有效,卻眾說紛紜。在下讀到兩篇代表性的論文,代表兩種不同的觀點,特此分享給大家。

▌組合派

參考文獻中第一篇中的觀點,Hinton老大爺提出來的,關于Hinton在深度學習界的地位我就不再贅述了,光是這地位,估計這一派的觀點就是“武當少林”了。注意,派名是我自己起的,各位勿笑。

▌觀點

該論文從神經(jīng)網(wǎng)絡的難題出發(fā),一步一步引出dropout為何有效的解釋。大規(guī)模的神經(jīng)網(wǎng)絡有兩個缺點:

費時

容易過擬合

這兩個缺點真是抱在深度學習大腿上的兩個大包袱,一左一右,相得益彰,額不,臭氣相投。過擬合是很多機器學習的通病,過擬合了,得到的模型基本就廢了。而為了解決過擬合問題,一般會采用ensemble方法,即訓練多個模型做組合,此時,費時就成為一個大問題,不僅訓練起來費時,測試起來多個模型也很費時??傊?,幾乎形成了一個死鎖。

Dropout的出現(xiàn)很好的可以解決這個問題,每次做完dropout,相當于從原始的網(wǎng)絡中找到一個更瘦的網(wǎng)絡,如下圖所示:

因而,對于一個有N個節(jié)點的神經(jīng)網(wǎng)絡,有了dropout后,就可以看做是2n個模型的集合了,但此時要訓練的參數(shù)數(shù)目卻是不變的,這就解脫了費時的問題。

▌動機論

雖然直觀上看dropout是ensemble在分類性能上的一個近似,然而實際中,dropout畢竟還是在一個神經(jīng)網(wǎng)絡上進行的,只訓練出了一套模型參數(shù)。那么他到底是因何而有效呢?這就要從動機上進行分析了。論文中作者對dropout的動機做了一個十分精彩的類比:

在自然界中,在中大型動物中,一般是有性繁殖,有性繁殖是指后代的基因從父母兩方各繼承一半。但是從直觀上看,似乎無性繁殖更加合理,因為無性繁殖可以保留大段大段的優(yōu)秀基因。而有性繁殖則將基因隨機拆了又拆,破壞了大段基因的聯(lián)合適應性。

但是自然選擇中畢竟沒有選擇無性繁殖,而選擇了有性繁殖,須知物競天擇,適者生存。我們先做一個假設,那就是基因的力量在于混合的能力而非單個基因的能力。不管是有性繁殖還是無性繁殖都得遵循這個假設。為了證明有性繁殖的強大,我們先看一個概率學小知識。

比如要搞一次恐怖襲擊,兩種方式:

集中50人,讓這50個人密切精準分工,搞一次大爆破。

將50人分成10組,每組5人,分頭行事,去隨便什么地方搞點動作,成功一次就算。

哪一個成功的概率比較大? 顯然是后者。因為將一個大團隊作戰(zhàn)變成了游擊戰(zhàn)。

那么,類比過來,有性繁殖的方式不僅僅可以將優(yōu)秀的基因傳下來,還可以降低基因之間的聯(lián)合適應性,使得復雜的大段大段基因聯(lián)合適應性變成比較小的一個一個小段基因的聯(lián)合適應性。

dropout也能達到同樣的效果,它強迫一個神經(jīng)單元,和隨機挑選出來的其他神經(jīng)單元共同工作,達到好的效果。消除減弱了神經(jīng)元節(jié)點間的聯(lián)合適應性,增強了泛化能力。

個人補充一點:那就是植物和微生物大多采用無性繁殖,因為他們的生存環(huán)境的變化很小,因而不需要太強的適應新環(huán)境的能力,所以保留大段大段優(yōu)秀的基因適應當前環(huán)境就足夠了。而高等動物卻不一樣,要準備隨時適應新的環(huán)境,因而將基因之間的聯(lián)合適應性變成一個一個小的,更能提高生存的概率。

▌dropout帶來的模型的變化

而為了達到ensemble的特性,有了dropout后,神經(jīng)網(wǎng)絡的訓練和預測就會發(fā)生一些變化。

訓練層面

無可避免的,訓練網(wǎng)絡的每個單元要添加一道概率流程。

對應的公式變化如下如下:

沒有dropout的神經(jīng)網(wǎng)絡

dropout的神經(jīng)網(wǎng)絡

測試層面

預測的時候,每一個單元的參數(shù)要預乘以p。

▌論文中的其他技術點

防止過擬合的方法:

提前終止(當驗證集上的效果變差的時候)

L1和L2正則化加權

soft weight sharing

dropout

dropout率的選擇

經(jīng)過交叉驗證,隱含節(jié)點dropout率等于0.5的時候效果最好,原因是0.5的時候dropout隨機生成的網(wǎng)絡結(jié)構(gòu)最多。

dropout也可以被用作一種添加噪聲的方法,直接對input進行操作。輸入層設為更接近1的數(shù)。使得輸入變化不會太大(0.8)

訓練過程

對參數(shù)w的訓練進行球形限制(max-normalization),對dropout的訓練非常有用。

球形半徑c是一個需要調(diào)整的參數(shù)??梢允褂抿炞C集進行參數(shù)調(diào)優(yōu)

dropout自己雖然也很牛,但是dropout、max-normalization、large decaying learning rates and high momentum組合起來效果更好,比如max-norm regularization就可以防止大的learning rate導致的參數(shù)blow up。

使用pretraining方法也可以幫助dropout訓練參數(shù),在使用dropout時,要將所有參數(shù)都乘以1/p。

部分實驗結(jié)論

該論文的實驗部分很豐富,有大量的評測數(shù)據(jù)。

maxout 神經(jīng)網(wǎng)絡中得另一種方法,Cifar-10上超越dropout

文本分類上,dropout效果提升有限,分析原因可能是Reuters-RCV1數(shù)據(jù)量足夠大,過擬合并不是模型的主要問題

dropout與其他standerd regularizers的對比

L2 weight decay

lasso

KL-sparsity

max-norm regularization

dropout

特征學習

標準神經(jīng)網(wǎng)絡,節(jié)點之間的相關性使得他們可以合作去fix其他節(jié)點中得噪聲,但這些合作并不能在unseen data上泛化,于是,過擬合,dropout破壞了這種相關性。在autoencoder上,有dropout的算法更能學習有意義的特征(不過只能從直觀上,不能量化)。

產(chǎn)生的向量具有稀疏性。

保持隱含節(jié)點數(shù)目不變,dropout率變化;保持激活的隱節(jié)點數(shù)目不變,隱節(jié)點數(shù)目變化。

數(shù)據(jù)量小的時候,dropout效果不好,數(shù)據(jù)量大了,dropout效果好。

模型均值預測

使用weight-scaling來做預測的均值化

使用mente-carlo方法來做預測。即對每個樣本根據(jù)dropout率先sample出來k個net,然后做預測,k越大,效果越好。

Multiplicative Gaussian Noise

使用高斯分布的dropout而不是伯努利模型dropout

dropout的缺點就在于訓練時間是沒有dropout網(wǎng)絡的2-3倍。

進一步需要了解的知識點

dropout RBM

Marginalizing Dropout

具體來說就是將隨機化的dropout變?yōu)榇_定性的,比如對于Logistic回歸,其dropout相當于加了一個正則化項。

Bayesian neural network對稀疏數(shù)據(jù)特別有用,比如medical diagnosis, genetics, drug discovery and other computational biology applications

▌噪聲派

參考文獻中第二篇論文中得觀點,也很強有力。

觀點

觀點十分明確,就是對于每一個dropout后的網(wǎng)絡,進行訓練時,相當于做了Data Augmentation,因為,總可以找到一個樣本,使得在原始的網(wǎng)絡上也能達到dropout單元后的效果。 比如,對于某一層,dropout一些單元后,形成的結(jié)果是(1.5,0,2.5,0,1,2,0),其中0是被drop的單元,那么總能找到一個樣本,使得結(jié)果也是如此。這樣,每一次dropout其實都相當于增加了樣本。

稀疏性

知識點A

首先,先了解一個知識點:

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.

大致含義就是:

在線性空間中,學習一個整個空間的特征集合是足夠的,但是當數(shù)據(jù)分布在非線性不連續(xù)的空間中得時候,則學習局部空間的特征集合會比較好。

知識點B

假設有一堆數(shù)據(jù),這些數(shù)據(jù)由M個不同的非連續(xù)性簇表示,給定K個數(shù)據(jù)。那么一個有效的特征表示是將輸入的每個簇映射為特征以后,簇之間的重疊度最低。使用A來表示每個簇的特征表示中激活的維度集合。重疊度是指兩個不同的簇的Ai和Aj之間的Jaccard相似度最小,那么:

當K足夠大時,即便A也很大,也可以學習到最小的重疊度

當K小M大時,學習到最小的重疊度的方法就是減小A的大小,也就是稀疏性。

上述的解釋可能是有點太專業(yè)化,比較拗口。主旨意思是這樣,我們要把不同的類別區(qū)分出來,就要是學習到的特征區(qū)分度比較大,在數(shù)據(jù)量足夠的情況下不會發(fā)生過擬合的行為,不用擔心。但當數(shù)據(jù)量小的時候,可以通過稀疏性,來增加特征的區(qū)分度。

因而有意思的假設來了,使用了dropout后,相當于得到更多的局部簇,同等的數(shù)據(jù)下,簇變多了,因而為了使區(qū)分性變大,就使得稀疏性變大。

為了驗證這個數(shù)據(jù),論文還做了一個實驗,如下圖:

該實驗使用了一個模擬數(shù)據(jù),即在一個圓上,有15000個點,將這個圓分為若干個弧,在一個弧上的屬于同一個類,一共10個類,即不同的弧也可能屬于同一個類。改變弧的大小,就可以使屬于同一類的弧變多。

實驗結(jié)論就是當弧長變大時,簇數(shù)目變少,稀疏度變低。與假設相符合。

個人觀點:該假設不僅僅解釋了dropout何以導致稀疏性,還解釋了dropout因為使局部簇的更加顯露出來,而根據(jù)知識點A可得,使局部簇顯露出來是dropout能防止過擬合的原因,而稀疏性只是其外在表現(xiàn)。

論文中的其他技術知識點

將dropout映射回得樣本訓練一個完整的網(wǎng)絡,可以達到dropout的效果。

dropout由固定值變?yōu)橐粋€區(qū)間,可以提高效果

將dropout后的表示映射回輸入空間時,并不能找到一個樣本x*使得所有層都能滿足dropout的結(jié)果,但可以為每一層都找到一個樣本,這樣,對于每一個dropout,都可以找到一組樣本可以模擬結(jié)果。

dropout對應的還有一個dropConnect,公式如下:

dropout

ropConnect

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:詳解 | Dropout為何能防止過擬合?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Dropout如何成為SDR的特殊情況

    如之前所說,Dropout需要將每層的隱藏單元在Bernoulli過程中刪除。如果我們在同樣的網(wǎng)絡中,將Dropout和SDR進行對比,可以發(fā)現(xiàn)二者的不同在于隨機處理是否影響了權重或隱藏單元。圖2我們描述了Dropout在隱藏單
    的頭像 發(fā)表于 08-15 08:32 ?3720次閱讀
    <b class='flag-5'>Dropout</b>如何成為SDR的特殊情況

    關于Dropout、BN及數(shù)據(jù)預處理方案

    Dropout 可以看作是 Bagging 的極限形式,每個模型都在當一種情況中訓練,同時模型的每個參數(shù)都經(jīng)過與其他模型共享參數(shù),從而高度正則化。
    的頭像 發(fā)表于 05-31 17:37 ?4281次閱讀
    關于<b class='flag-5'>Dropout</b>、BN及數(shù)據(jù)預處理方案

    手勢帶來什么變化

    ,可憐的 Yorick!我認識 Horatio …”一個場景涉及動作,另一個則涉及手勢(圖 1)。本文探討了這兩者的差異,及這一差異給電機控制架構(gòu)帶來的巨大變化。圖 1.一些物體難以抓取。 動作與手勢
    發(fā)表于 10-18 10:54

    TF之CNN:利用sklearn使用dropout解決學習中overfitting的問題+Tensorboard顯示變化曲線

    TF之CNN:利用sklearn(自帶手寫圖片識別數(shù)據(jù)集)使用dropout解決學習中overfitting的問題+Tensorboard顯示變化曲線
    發(fā)表于 12-24 11:36

    請問LM337IMP的Dropout Voltage是多少?

    請問LM337IMP的Dropout Voltage是多少? 應該一般是有這個參數(shù)的,跟輸出電流相關,有個最小最大管壓降什么的,但是datasheet里面沒有。這邊用-3.3V輸入并不能輸出-3V,用-5V輸入才能輸出-3V
    發(fā)表于 07-12 08:10

    什么是模型呢?模型給我們帶來了什么?

    什么是模型呢?什么是關系?怎樣確定一個模型?模型給我們帶來了什么?
    發(fā)表于 07-02 07:13

    模型量化會帶來哪些好處?

    量化算法具有什么特點?模型量化會帶來哪些好處?
    發(fā)表于 09-28 06:32

    dropout正則化技術介紹

    dropout技術是神經(jīng)網(wǎng)絡和深度學習模型的一種簡單而有效的正則化方式。 本文將向你介紹dropout正則化技術,并且教你如何在Keras中用Python將其應用于你的模型。 讀完本文
    發(fā)表于 10-10 10:38 ?2次下載

    理解神經(jīng)網(wǎng)絡中的Dropout

    。 過擬合是深度神經(jīng)網(wǎng)(DNN)中的一個常見問題:模型只學會在訓練集上分類,這些年提出的許多過擬合問題的解決方案,其中dropout具有簡單性而且效果也非常良好。
    發(fā)表于 11-16 01:11 ?3759次閱讀
    理解神經(jīng)網(wǎng)絡中的<b class='flag-5'>Dropout</b>

    基于動態(tài)dropout的改進堆疊自動編碼機方法

    自動編碼機算法中;同時,根據(jù)傳統(tǒng)dropout算法容易使部分節(jié)點長期處于熄火狀態(tài)的缺陷,提出了一種動態(tài)dropout改進算法,使用動態(tài)函數(shù)將傳統(tǒng)靜態(tài)熄火率修改為隨著迭代次數(shù)逐漸減小的動態(tài)熄火率;最后,利用動態(tài)dropout算法改
    發(fā)表于 12-26 14:37 ?0次下載
    基于動態(tài)<b class='flag-5'>dropout</b>的改進堆疊自動編碼機方法

    一種針對街景變化檢測的神經(jīng)網(wǎng)絡模型

    、視角誤差等諸多干擾因素的影響,這給傳統(tǒng)的變仳檢測方法帶來挑戰(zhàn)。針對該問題,提出了一種新的神經(jīng)網(wǎng)絡模型( Multiple Difference FeaturesNetwork,ⅳ Dfnet)。該模型首先使用孿生網(wǎng)絡提取成對輸
    發(fā)表于 04-14 11:02 ?4次下載
    一種針對街景<b class='flag-5'>變化</b>檢測的神經(jīng)網(wǎng)絡<b class='flag-5'>模型</b>

    基于EBPNN模型的遙感圖像變化檢測

    基于EBPNN模型的遙感圖像變化檢測
    發(fā)表于 06-22 14:48 ?24次下載

    改進Hinton的Dropout:可以用來減輕欠擬合了

    他們首先通過對梯度范數(shù)的有趣觀察來研究 dropout 的訓練動態(tài),然后得出了一個關鍵的實證發(fā)現(xiàn):在訓練初始階段,dropout 降低小批量的梯度方差,并允許模型在更一致的方向上更新。這些方向也更與整個數(shù)據(jù)集的梯度方向保持一致,
    的頭像 發(fā)表于 03-13 10:15 ?379次閱讀

    AI大模型,將為智慧城市帶來哪些新變化?

    近日,在第十六屆(2023)中國國際社會公共安全產(chǎn)品博覽會上,商湯科技分享了AI大模型在智慧城市中的應用——不僅為高效解決交通、公共安全等多元化城市管理難題帶來全新路徑,還將有效降低應用門檻,為智慧城市發(fā)展構(gòu)建新一代AI基礎設施。
    的頭像 發(fā)表于 06-12 11:13 ?779次閱讀

    訓練大語言模型帶來的硬件挑戰(zhàn)

    生成式AI和大語言模型(LLM)正在以難以置信的方式吸引全世界的目光,本文簡要介紹了大語言模型,訓練這些模型帶來的硬件挑戰(zhàn),以及GPU和網(wǎng)絡行業(yè)如何針對訓練的工作負載不斷優(yōu)化硬件。
    的頭像 發(fā)表于 09-01 17:14 ?1463次閱讀
    訓練大語言<b class='flag-5'>模型</b><b class='flag-5'>帶來</b>的硬件挑戰(zhàn)