《DropBlock: A regularization method for convolutional networks》筆記

Introduction

Dropout的思想是隨機失活一部分激活單元,讓輸出的feature或feature map丟失一些信息,使得網絡能夠關注更多的有辨別能力的特徵,而不是隻關注某幾個特徵,從而使得網絡更加魯棒,從另一方面來說,dropout起到了正則化的作用。

Dropout應用到卷積網絡的feature map上,具體操作是在每個feature map上隨機失活部分神經元。DropBlock的作者認爲,feature map上隨機失活幾個神經元,並沒有減少feature map上的語義信息,失活神經元的信息可以通過附近的神經元的信息近似得到,如下圖所示
dropout的缺點和dropblock的示意圖
圖b的藍色部分表示語義信息,表示圖a的狗。圖b的“x”表示失活,圖b是dropout的隨機失活過程,一些語義信息刪除了,並不會對下一層的卷積結果造成太大影響,因爲失活部分的信息可以通過卷積窗口的鄰域神經元信息近似得到。這樣就達不到正則化的效果。

圖c表示dropblock的失活區域,與dropout相比,dropblock隨機失活feature map上一個連續的區域(正方形區域)。失活的區域的信息很難通過附近區域的信息猜想得到。dropblock能夠達到刪除feature map上語義信息的效果。

還有一種dropout方式,叫做SpatialDropout,它會隨機失活某些channels,就是失活整個feature map。

Dropout隨機失活feature map上散亂的神經元,dropblock隨機失活feature map上連續神經元組成的區域,spatialdropout隨機失活整個feature map,隨機失活的區域逐漸變大。DropBlock處於中間位置,一種折中的方法。

Method

DropBlock的方法很簡單,看上圖的圖c就能猜到它是怎麼做的。

首先和dropout一樣隨機選擇一個神經元。然後以這些神經元爲中心,附近的block_size*block_size區域就是失活的區域。隨機選擇神經元時要注意不要讓擴展的失活區域超過feature map區域。這兩個過程如下圖所示
dropblock過程

block_size在論文實驗中效果最好的是7。keep_prob的值隨着訓練的進行慢慢減少,效果比固定keep_prob訓練的效果好。

論文分析了DropBlock丟失語義信息的效果。分析的方法就是在測試的時候,使用dropblock,看看分類的效果降低多少,實驗的結果如下
語義信息丟失程度
block_size=1就是dropout。可以看到,block_size=7時,不用dropblock訓練的網絡,隨着keep_prob的下降,分類精度下降的很快,比dropout下降得還要快。這個實驗說明了dropblock能夠明顯地丟失feature map的語義信息,增強正則化的效果。

Experiment

DropBlock實驗的效果比其他的dropout類型的方法的效果要好
分類實驗結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章