<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Dropout 的前世與今生

          共 4958字,需瀏覽 10分鐘

           ·

          2022-03-23 10:41


          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達

          Dropout 是一類用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練或推理的隨機化技術(shù),這類技術(shù)已經(jīng)引起了研究者們的廣泛興趣,并且被廣泛地應(yīng)用于神經(jīng)網(wǎng)絡(luò)正則化、模型壓縮等任務(wù)。雖然 Dropout 最初是為密集的神經(jīng)網(wǎng)絡(luò)層量身定制的,但是最近的一些進展使得 Dropout 也適用于卷積和循環(huán)神經(jīng)網(wǎng)絡(luò)層。本文總結(jié)了 Dropout 方法的發(fā)展歷史、應(yīng)用以及當(dāng)下的研究熱點,還詳細介紹了研究者們提出的重要方法。?
          圖 1:一些目前提出的 Dropout方法,以及 2012 到 2019 年間 Dropout 方法的理論進展。?

          ?

          標(biāo)準(zhǔn)的 Dropout

          ?

          2012 年提出的原始? Dropout 方法為避免前饋神經(jīng)網(wǎng)絡(luò)中出現(xiàn)的過擬合現(xiàn)象提供了一種簡單的技術(shù)[1]。在每輪迭代中,網(wǎng)絡(luò)中的每個神經(jīng)元以 p 的概率被丟棄。當(dāng)訓(xùn)練完成后,盡管神經(jīng)元的輸出要乘以該神經(jīng)元被丟棄的概率 p,整體的網(wǎng)絡(luò)架構(gòu)還是會被使用。這樣做抵消了沒有神經(jīng)元被丟棄的神經(jīng)網(wǎng)絡(luò)尺寸過大的影響,并且可以被解釋為在訓(xùn)練時可能出現(xiàn)的網(wǎng)絡(luò)上取平均。每一層的 dropout 概率可能不盡相同,原始的 Dropout 論文建議輸入層的 p=0.2,而隱藏層的 p=0.5。輸出層中的神經(jīng)元不會被丟棄。這種技術(shù)通常被簡稱為 Dropout,但是處于本文論述的需要,我們將其稱之為標(biāo)準(zhǔn) Dropout,從而將其與其它的 Dropout 方法區(qū)分開來。該方法如圖 2 所示。


          圖 2:標(biāo)準(zhǔn) Dropout 的示例。左側(cè)為全連接網(wǎng)絡(luò),右側(cè)的網(wǎng)絡(luò)以 0.5 的概率丟棄神經(jīng)元。輸出層并沒有應(yīng)用 Dropout。


          從數(shù)學(xué)上來說,神經(jīng)網(wǎng)絡(luò)層訓(xùn)練過程中使用的標(biāo)準(zhǔn) Dropout 的行為可以被寫作:
          ?
          ?
          其中 f(·)為激活函數(shù),x 是該層的輸入,W 是該層的權(quán)值矩陣,y為該層的輸出,而 m 則為該層的 Dropout 掩膜(mask),mask 中每個元素為 1 的概率為 p。在測試階段,該層的輸出可以被寫作:


          ?
          用于訓(xùn)練的 Drpout 方法

          ?

          本節(jié)介紹了重要的 Dropout 方法。和標(biāo)準(zhǔn)的 Dropout 一樣,他們通常被用來在訓(xùn)練時正則化密集的前饋神經(jīng)網(wǎng)絡(luò)層。這些方法中的大多數(shù)都直接受到了標(biāo)準(zhǔn) Dropout 的啟發(fā),并尋求提高其速度或正則化的有效程度。
          ?
          基于標(biāo)準(zhǔn) Dropout 最早提出的變體之一便是由 Wan 等人[3]于 2013 年提出的 dropconnect。該方法是對 Dropout 的一種泛化,其中每個神經(jīng)元的權(quán)重或偏置以一定的概率被設(shè)置為 0,而不是將神經(jīng)元的輸出設(shè)置為 0。因此,在訓(xùn)練時,某個網(wǎng)絡(luò)層的輸出可以被寫作:
          ?
          ?
          其中各變量的定義與公式(1)中相同,但是這里使用了一個 Dropout mask 矩陣,而不是 mask 向量。Dropoutconnect 如圖 3 所示。
          ?
          圖 3:Dropconnect 的示例。右側(cè)的網(wǎng)絡(luò)以 0.5 的概率將權(quán)值設(shè)置為 0。


          Standout[4]是一種試圖通過自適應(yīng)地選擇待丟棄的神經(jīng)元(而不是隨機丟棄)來改進標(biāo)準(zhǔn) Dropout的 Dropout 方法。這個過程是通過在神經(jīng)網(wǎng)絡(luò)上疊加一個控制神經(jīng)網(wǎng)架構(gòu)的二值信念網(wǎng)絡(luò)實現(xiàn)的。針對原始神經(jīng)網(wǎng)絡(luò)中的每一個權(quán)值,Standout 都會在二值信念網(wǎng)絡(luò)中為其添加一個相應(yīng)的權(quán)值參數(shù)。在訓(xùn)練時,某一層的輸出可以被寫作:
          ?
          ?
          其中各變量的定義與公式(1)相同,但是W 代表作用于該層的信念網(wǎng)絡(luò)的權(quán)值,而 g(·)代表信念網(wǎng)絡(luò)的激活函數(shù)。
          ?
          Fast Dropout[5]通過從貝葉斯的角度解釋 Dropout 方法,提供了一種更快速地進行類似于 Dropout 的正則化的方式。Fast Dropout 的作者表明,帶有 Dropout 的網(wǎng)絡(luò)層的輸出可以被看做是從一個潛在的分布(可以近似為高斯分布)中進行采樣。然后可以直接從這個分布中采樣,或者使用它的參數(shù)來傳播關(guān)于整個 Dropout 集合的信息。該技術(shù)可以比標(biāo)準(zhǔn) Dropout 更快地進行訓(xùn)練(在標(biāo)準(zhǔn) Dropout 中,一次只采樣可能的網(wǎng)絡(luò)集合中的一個元素)。
          ?
          受貝葉斯式dropout理解方法啟發(fā)的另一種方法是 Kingma 等人[6]提出的變分Dropout(不要與 Gal 和 Ghahramani 的工作[13]弄混)。作者指出,使用高斯乘性噪聲的 Dropout 變體(由 Srivastava 等人提出的[8])可以被解釋為給定一個網(wǎng)絡(luò)權(quán)值上的特定先驗和特定變分目標(biāo)的變分方法。然后,它們會推導(dǎo)出一個自適應(yīng)的 Dropout 方案,該方案可以自動確定一個完整的網(wǎng)絡(luò)或單個層或神經(jīng)元的有效的Dropout 概率。相對于現(xiàn)有的使用確定的 Dropout 率的方法(如使用固定的概率或網(wǎng)格搜索)來說,這可能是一種改進。Concrete Dropout[20]是另外一種自動調(diào)整 Dropout 概率的方法。
          ?
          卷積層

          ?

          用于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的樸素Dropout 的定義為:在特征圖或輸入圖像中隨機地丟棄像素。這并沒有顯著地減少過擬合,主要是因為被丟棄的像素與其鄰接像素是高度相關(guān)的[21]。然而,最近研究人員取得了許多有發(fā)展前景的、使用 Dropout 作為正則化方法訓(xùn)練 CNN 的研究進展。
          ?
          最大池化 Dropout[12]是一種保留了最大池化層的行為的方法,它同時也以一定概率讓其它的特征值可以影響池化層的輸出。在執(zhí)行最大池化操作前,算子對特征值的某個子集進行 mask 運算。
          ?
          圖 4:卷積神經(jīng)網(wǎng)絡(luò)中的最大池化Dropout[12]。


          在論文「Analysis on the dropout effect inconvolutional neural networks」[23]中,作者提出了一種基于訓(xùn)練的迭代過程改變 Dropout 概率的 Dropout 方法。丟棄神經(jīng)元的概率是從均勻分布或正態(tài)分布采樣得到的。該方法等價于向每一層的輸出特征圖添加噪聲。該方法提高了網(wǎng)絡(luò)對帶有噪聲的圖像變化的魯棒性[23]。作者也提出了「max-drop」,在這種方法中高激活值被有選擇性地丟棄。這些高激活值是在特征圖或通道上選擇出來的[23]。論文[23]中的實驗結(jié)果表明,文中所提出的方法的性能與「spatial dropout」相當(dāng)。
          ?
          Cutout 是另一種基于Dropout 的用于訓(xùn)練 CNN 的正則化和數(shù)據(jù)增強方法[24],它在每一張輸入圖像的某個區(qū)域上應(yīng)用一個隨機的正方形掩膜。與其它常見的在特征圖級別上應(yīng)用 Dropout 的方法不同,該方法直接將 Dropout 應(yīng)用在輸入圖像上。Cutout 背后主要的動機是刪除 CNN 的后續(xù)層中帶有高激活值的視覺特征[24]。然而,令人驚訝的是,這種在輸入圖像上應(yīng)用掩膜的方法在執(zhí)行成本更低的情況下可以取得相同的性能。
          ?
          循環(huán)層


          通常而言,上述前饋 Dropout 方法可以被應(yīng)用到帶有循環(huán)層的網(wǎng)絡(luò)的前饋連接中。因此,一些研究著眼于將 Dropout 方法應(yīng)用于循環(huán)連接。因為在每一個時間步上由 Dropout 引起的噪聲讓網(wǎng)絡(luò)難以保留長期的記憶,將標(biāo)準(zhǔn) Dropout 應(yīng)用于循環(huán)連接的效果很差[28]。然而,專門為循環(huán)層設(shè)計的 Dropout 方法也取得了成功,并且在實踐中被廣泛應(yīng)用。一般來說,它們通過一種仍然能夠保存長期記憶的方式將 Dropout 應(yīng)用于循環(huán)連接上。
          ?
          2015 年提出的RNNDrop[30]提供了一種簡單的解決方案,能夠在應(yīng)用 Dropout 時更好地保留記憶。
          ?
          圖 5:在一個展開的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)上,對于每一個時間步(左圖)和每一個序列(右圖)進行 Dropout 掩膜采樣的對比。水平連接是循環(huán)的,而垂直連接是前饋的。不同的顏色代表應(yīng)用于相應(yīng)連接的不同 Dropout 掩膜。
          ?
          2016 年,Gal 和 Ghahramani 提出了一種RNN Dropout 變體,該變體基于一種對 Dropout 方法的貝葉斯化的解釋。作者指出,如果 Dropout 被看做一個貝葉斯后驗的變分蒙特卡羅逼近,那么將其應(yīng)用于循環(huán)層的自然方法就是生成一個同時將每個訓(xùn)練序列的前饋連接和循環(huán)連接置零的 Dropout 掩膜,但是為序列中的每個時間步保持相同的掩膜。這與 RNNDrop 類似的地方在于,掩膜是基于每個序列生成的,但是求導(dǎo)過程導(dǎo)致在 LSTM 單元的不同位置應(yīng)用 Dropout。
          ?
          循環(huán) Dropout[14]是另一種可以在一個 LSTM 中保存記憶,同時也能像在標(biāo)準(zhǔn) Dropout 中一樣為每個輸入樣本生成不一樣的 Dropout 掩膜的方法。這只需將 Dropout 應(yīng)用于 RNN 中更新隱藏狀態(tài)的部分,而不是狀態(tài)本身。因此,如果一個元素被刪除,那么它就不會對網(wǎng)絡(luò)的記憶產(chǎn)生影響,而不是消除隱藏狀態(tài)。
          ??
          用于模型壓縮的 Dropout 方法

          ?

          標(biāo)準(zhǔn) Dropout 加大了神經(jīng)網(wǎng)絡(luò)權(quán)值[8]的稀疏性。這一特性意味著 Dropout 方法可以通過減少有效執(zhí)行所需的參數(shù)數(shù)量來壓縮神經(jīng)網(wǎng)絡(luò)模型。自 2017 年以來,研究人員提出了幾種基于 Dropout 壓縮實際模型的方法。
          ?
          2017 年,Molchanov 等人[9]提出使用變分 Dropout[6](本文第三節(jié)介紹過)同時對全連接層和卷積層進行稀疏化。結(jié)果表明,該方法在對性能影響最小的同時,大大減少了標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)的參數(shù)。然后可以將這種稀疏表征傳遞到現(xiàn)有方法中,從而將稀疏網(wǎng)絡(luò)轉(zhuǎn)換為壓縮模型(如[31]中的工作)。Neklyudov 等人[10]也提出了類似的方法,他們使用了改進的變分 Dropout 方案,提高了稀疏性,但最終得到的網(wǎng)絡(luò)結(jié)構(gòu)特別易于壓縮。
          ?
          最近,進一步開發(fā)用于模型壓縮的 Dropout 方法是一個十分活躍的研究領(lǐng)域。最近提出的方法包括 Targeted Dropout[32],其中神經(jīng)元被自適應(yīng)地選擇,并以使網(wǎng)絡(luò)適應(yīng)神經(jīng)剪枝的方式被丟棄,在不過多損失準(zhǔn)確率的情況下大幅度縮小網(wǎng)絡(luò)規(guī)模。另一種最近提出的方法是 Ising-dropout[11],它在一個神經(jīng)網(wǎng)絡(luò)的頂部覆蓋了一個圖形化的「Ising」模型,以識別不太有用的神經(jīng)元,并在訓(xùn)練和推理中把它們丟棄掉。
          ?
          蒙特卡羅 Dropout


          2016 年,Gal 和 Ghahramani[7]提出了一種從貝葉斯理論出發(fā)的Dropout理解方式,并且被廣泛接受。他們將Dropout 解釋為深度高斯過程的貝葉斯近似。
          ?
          除了常見的點估計輸出,該方法還提供了一種估計神經(jīng)網(wǎng)絡(luò)輸出置信度的簡單方法。蒙特卡羅Dropout 在模型的不確定性估計中得到了廣泛的應(yīng)用。


          論文鏈接:https://arxiv.org/abs/1904.13310

          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  果冻传媒ⅩXXXXXHD | 日韩美毛片三级片视频 | 日韩黄免费| 大香蕉操逼逼 | 久久伊人一区二区 |