1. 程式人生 > >DropBlock: A regularization method for convolutional networks

DropBlock: A regularization method for convolutional networks

arxiv上一篇新文章,講如何在卷積層進行dropout來防止網路過擬合。

原來的dropout方法多是作用在全連線層上,在卷積層應用dropout方法意義不大。文章認為是因為每個featuremap的位置都有一個感受野範圍,僅僅對單個畫素位置進行dropout並不能降低featuremap學習的特徵範圍,也就是說網路仍可以通過該位置的相鄰位置元素去學習對應的語義資訊,也就不會促使網路去學習更加魯邦的特徵。

既然單獨的對每個位置進行dropout並不能提高網路的泛化能力,那麼很自然的,如果我們按照一塊一塊的去dropout,就自然可以促使網路去學習更加魯邦的特徵。思路很簡單,就是在featuremap上去一塊一塊的找,進行歸零操作,類似於dropout,叫做dropblock。在這裡插入圖片描述


上圖就是論文整體思想介紹。dropblock有三個比較重要的引數,一個是block_size,用來控制進行歸零的block大小;一個是 γ \gamma ,用來控制每個卷積結果中,到底有多少個channel要進行dropblock;最後一個是keep_prob,作用和dropout裡的引數一樣。

論文用翔實的實驗來證明了dropblock的有效性。經過實驗證明,block_size控制為7*7效果最好,對於所有的featuremap都一樣, γ

\gamma 通過一個公式來控制,keep_prob則是一個線性衰減過程,從最初的1到設定的閾值,論文通過實驗表明這種方法效果最好。

方法還是很有效的,思路也很清晰,也很簡單,有機會可以在自己的網路內嘗試一下。