吳恩達深度學(xué)習(xí)筆記(32)-Dropout正則化Dropout Regularization

dropout 正則化(Dropout Regularization)

除了L2正則化度秘,還有一個非常實用的正則化方法——“Dropout(隨機失活)”乖仇,我們來看看它的工作原理幻枉。

假設(shè)你在訓(xùn)練上圖這樣的神經(jīng)網(wǎng)絡(luò)扔傅,它存在過擬合耍共,這就是dropout所要處理的,我們復(fù)制這個神經(jīng)網(wǎng)絡(luò)猎塞,dropout會遍歷網(wǎng)絡(luò)的每一層试读,并設(shè)置消除神經(jīng)網(wǎng)絡(luò)中節(jié)點的概率。假設(shè)網(wǎng)絡(luò)中的每一層荠耽,每個節(jié)點都以拋硬幣的方式設(shè)置概率钩骇,每個節(jié)點得以保留和消除的概率都是0.5,設(shè)置完節(jié)點概率铝量,我們會消除一些節(jié)點倘屹,然后刪除掉從該節(jié)點進出的連線,最后得到一個節(jié)點更少慢叨,規(guī)模更小的網(wǎng)絡(luò)纽匙,然后用backprop方法進行訓(xùn)練。

這是網(wǎng)絡(luò)節(jié)點精簡后的一個樣本拍谐,對于其它樣本烛缔,我們照舊以拋硬幣的方式設(shè)置概率馏段,保留一類節(jié)點集合,刪除其它類型的節(jié)點集合践瓷。對于每個訓(xùn)練樣本院喜,我們都將采用一個精簡后神經(jīng)網(wǎng)絡(luò)來訓(xùn)練它,這種方法似乎有點怪晕翠,單純遍歷節(jié)點喷舀,編碼也是隨機的,可它真的有效崖面。不過可想而知元咙,我們針對每個訓(xùn)練樣本訓(xùn)練規(guī)模極小的網(wǎng)絡(luò),最后你可能會認識到為什么要正則化網(wǎng)絡(luò)巫员,因為我們在訓(xùn)練極小的網(wǎng)絡(luò)。

如何實施dropout呢甲棍?

方法有幾種简识,接下來我要講的是最常用的方法,即inverted dropout(反向隨機失活)感猛,出于完整性考慮七扰,我們用一個三層(l=3)網(wǎng)絡(luò)來舉例說明。編碼中會有很多涉及到3的地方陪白。我只舉例說明如何在某一層中實施dropout颈走。

首先要定義向量d,d^([3])表示一個三層的dropout向量:

d3 = np.random.rand(a3.shape[0],a3.shape[1])

然后看它是否小于某數(shù)咱士,我們稱之為keep-prob立由,keep-prob是一個具體數(shù)字,上個示例中它是0.5序厉,而本例中它是0.8锐膜,它表示保留某個隱藏單元的概率,此處keep-prob等于0.8弛房,它意味著消除任意一個隱藏單元的概率是0.2道盏,它的作用就是生成隨機矩陣,如果對a^([3])進行因子分解文捶,效果也是一樣的荷逞。d^([3])是一個矩陣,每個樣本和每個隱藏單元粹排,其中d^([3])中的對應(yīng)值為1的概率都是0.8种远,對應(yīng)為0的概率是0.2,隨機數(shù)字小于0.8恨搓。它等于1的概率是0.8院促,等于0的概率是0.2筏养。

接下來要做的就是從第三層中獲取激活函數(shù),這里我們叫它a^([3])常拓,a^([3])含有要計算的激活函數(shù)渐溶,a^([3])等于上面的a^([3])乘以d^([3]),a3 =np.multiply(a3,d3)弄抬,這里是元素相乘茎辐,也可寫為a3*=d3,它的作用就是讓d^([3])中所有等于0的元素(輸出)掂恕,而各個元素等于0的概率只有20%拖陆,乘法運算最終把d^[3] 中相應(yīng)元素輸出,即讓d^([3])中0元素與a^([3])中相對元素歸零懊亡。

如果用python實現(xiàn)該算法的話依啰,d^([3])則是一個布爾型數(shù)組,值為true和false店枣,而不是1和0速警,乘法運算依然有效,python會把true和false翻譯為1和0鸯两,大家可以用python嘗試一下闷旧。

最后,我們向外擴展a^([3])钧唐,用它除以0.8忙灼,或者除以keep-prob參數(shù)。

a3/=keep-prob

下面我解釋一下為什么要這么做钝侠,為方便起見该园,我們假設(shè)第三隱藏層上有50個單元或50個神經(jīng)元,在一維上a^([3])是50机错,我們通過因子分解將它拆分成50×m維的爬范,保留和刪除它們的概率分別為80%和20%,這意味著最后被刪除或歸零的單元平均有10(50×20%=10)個弱匪,

現(xiàn)在我們看下z^([4])青瀑,z^([4])=w^([4]) a^([3])+b^([4]),我們的預(yù)期是萧诫,a^([3])減少20%斥难,也就是說a^([3])中有20%的元素被歸零,為了不影響z^([4])的期望值帘饶,我們需要用w^([4]) a^([3])/0.8哑诊,它將會修正或彌補我們所需的那20%,a^([3])的期望值不會變及刻,劃線部分就是所謂的dropout方法镀裤。

它的功能是竞阐,不論keep-prop的值是多少0.8,0.9甚至是1暑劝,如果keep-prop設(shè)置為1骆莹,那么就不存在dropout,因為它會保留所有節(jié)點担猛。反向隨機失活(inverted dropout)方法通過除以keep-prob幕垦,確保a^([3])的期望值不變。

事實證明傅联,在測試階段先改,當(dāng)我們評估一個神經(jīng)網(wǎng)絡(luò)時,也就是用綠線框標(biāo)注的反向隨機失活方法蒸走,使測試階段變得更容易仇奶,因為它的數(shù)據(jù)擴展問題變少,我們將在下節(jié)課討論载碌。

據(jù)我了解猜嘱,目前實施dropout最常用的方法就是Inverted dropout,建議大家動手實踐一下嫁艇。Dropout早期的迭代版本都沒有除以keep-prob,所以在測試階段弦撩,平均值會變得越來越復(fù)雜步咪,不過那些版本已經(jīng)不再使用了。

現(xiàn)在你使用的是d向量益楼,你會發(fā)現(xiàn)猾漫,不同的訓(xùn)練樣本,清除不同的隱藏單元也不同感凤。實際上悯周,如果你通過相同訓(xùn)練集多次傳遞數(shù)據(jù),每次訓(xùn)練數(shù)據(jù)的梯度不同陪竿,則隨機對不同隱藏單元歸零禽翼,有時卻并非如此。比如族跛,需要將相同隱藏單元歸零闰挡,第一次迭代梯度下降時,把一些隱藏單元歸零礁哄,第二次迭代梯度下降時长酗,也就是第二次遍歷訓(xùn)練集時,對不同類型的隱藏層單元歸零桐绒。向量d或d^([3])用來決定第三層中哪些單元歸零夺脾,無論用foreprop還是backprop之拨,這里我們只介紹了foreprob。

如何在測試階段訓(xùn)練算法咧叭,在測試階段蚀乔,我們已經(jīng)給出了x,或是想預(yù)測的變量佳簸,用的是標(biāo)準(zhǔn)計數(shù)法乙墙。我用a^([0]),第0層的激活函數(shù)標(biāo)注為測試樣本x生均,我們在測試階段不使用dropout函數(shù)听想,尤其是像下列情況:

z^([1])=w^([1]) a^([0])+b^([1])

a^([1])=g^([1]) (z^([1]))

z^([2])= w^([2]) a^([1])+b^([2])

a^([2])=?

以此類推直到最后一層,預(yù)測值為^y马胧。

顯然在測試階段汉买,我們并未使用dropout,自然也就不用拋硬幣來決定失活概率佩脊,以及要消除哪些隱藏單元了蛙粘,因為在測試階段進行預(yù)測時,我們不期望輸出結(jié)果是隨機的威彰,如果測試階段應(yīng)用dropout函數(shù)出牧,預(yù)測會受到干擾档插。

理論上堪嫂,你只需要多次運行預(yù)測處理過程满粗,每一次栓拜,不同的隱藏單元會被隨機歸零调煎,預(yù)測處理遍歷它們污茵,但計算效率低搞莺,得出的結(jié)果也幾乎相同更哄,與這個不同程序產(chǎn)生的結(jié)果極為相似邢笙。

Inverted dropout函數(shù)在除以keep-prob時可以記住上一步的操作啸如,目的是確保即使在測試階段不執(zhí)行dropout來調(diào)整數(shù)值范圍,激活函數(shù)的預(yù)期結(jié)果也不會發(fā)生變化氮惯,所以沒必要在測試階段額外添加尺度參數(shù)叮雳,這與訓(xùn)練階段不同。

l=keep-prob

為什么dropout會起作用呢筐骇?

為什么dropout會起作用呢债鸡?下一個筆記我們將更加直觀地了解dropout的具體功能。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铛纬,一起剝皮案震驚了整個濱河市厌均,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌告唆,老刑警劉巖棺弊,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晶密,死亡現(xiàn)場離奇詭異,居然都是意外死亡模她,警方通過查閱死者的電腦和手機稻艰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侈净,“玉大人尊勿,你說我怎么就攤上這事⌒笳欤” “怎么了元扔?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長旋膳。 經(jīng)常有香客問我澎语,道長,這世上最難降的妖魔是什么验懊? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任擅羞,我火速辦了婚禮,結(jié)果婚禮上义图,老公的妹妹穿的比我還像新娘减俏。我一直安慰自己,他們只是感情好碱工,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布垄懂。 她就那樣靜靜地躺著,像睡著了一般痛垛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桶蛔,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天匙头,我揣著相機與錄音,去河邊找鬼仔雷。 笑死蹂析,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碟婆。 我是一名探鬼主播电抚,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竖共!你這毒婦竟也來了蝙叛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤公给,失蹤者是張志新(化名)和其女友劉穎借帘,沒想到半個月后蜘渣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡肺然,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年蔫缸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片际起。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拾碌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出街望,到底是詐尸還是另有隱情校翔,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布它匕,位于F島的核電站展融,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏豫柬。R本人自食惡果不足惜告希,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烧给。 院中可真熱鬧燕偶,春花似錦、人聲如沸础嫡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榴鼎。三九已至伯诬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巫财,已是汗流浹背盗似。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留平项,地道東北人赫舒。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像闽瓢,于是被迫代替她去往敵國和親接癌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)集的劃分 神經(jīng)網(wǎng)絡(luò)的建立過程是一個需要多次重復(fù)的實驗過程:從最開始的想法產(chǎn)生扣讼,到通過編寫代碼來算法實現(xiàn)缺猛,再到建...
    拓季閱讀 798評論 0 0
  • 專業(yè)考題類型管理運行工作負責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,984評論 0 13
  • 難過,拿來寫日記的簡書,都變了枯夜,我的日記該何去何從
    7d8083b83a33閱讀 147評論 0 0
  • 本文參與#漫步青春#征文活動備注:作者楊佳如弯汰,本人承諾:文章內(nèi)容原創(chuàng),且未在其他平臺公布 寒風(fēng)冷雨湖雹, 向著朝陽前進...
    駐足是您閱讀 153評論 0 0
  • 一段文字不知寫給誰 可能是看到的你 或許是消失的她 也可能永遠沉寂下去 無論看沒看到 這是一個年輕人的心聲 我想象...
    王朝994閱讀 208評論 0 3