【目標檢測重思考系列】三、深度卷積神經網絡中的降採樣

本文轉載自:https://zhuanlan.zhihu.com/p/46633171

降採樣指的是成比例縮小特徵圖寬和高的過程,比如從(W,H)變爲(W/2,H/2)。深度卷積神經網絡中降採樣的方法主要有三種:

1、stride大於1的pooling

2、stride大於1的conv

3、stride大於1的reorg(在YOLOv2的論文裏叫passthrough layer)

簡單解釋reorg:

本質其實就是特徵重排,26*26*512的feature map分別按行和列隔點採樣,可以得到4幅13*13*512的特徵,把這4張特徵按channel串聯起來,就是最後的13*13*2048的feature map.還有就是,passthrough layer本身是不學習參數的,直接用前面的層的特徵重排後拼接到後面的層,越在網絡前面的層,感受野越小,有利於小目標的檢測。

yolov2的文章解析可參考:https://www.cnblogs.com/demian/p/9252038.html

作者:王曦
鏈接:https://www.zhihu.com/question/58903330/answer/247359224
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

其中1和2在深度卷積神經網絡中使用非常普遍,3比較小衆,由Joseph Redmon在YOLOv2中首次提出。

1和2的對比在Striving for Simplicity: The All Convolutional Net中有詳述,文末有這麼一段總結:

With modern methods of training convolutional neural networks very simple architectures may perform very well: a network using nothing but convolutions and subsampling matches or even slightly outperforms the state of the art on CIFAR-10 and CIFAR-100. A similar architecture shows competitive results on ImageNet.

In particular, as opposed to previous observations, including explicit (max-)pooling operations in a network does not always improve performance of CNNs. This seems to be especially the case if the network is large enough for the dataset it is being trained on and can learn all necessary invariances just with convolutional layers.

大概意思就是,用stride=2的conv降採樣的卷積神經網絡效果與使用pooling降採樣的卷積神經網絡效果相當;卷積神經網絡小的時候,使用pooling降採樣效果可能更好,卷積神經網絡大的時候,使用stride=2的conv降採樣效果可能更好。

總體來說,pooling提供了一種非線性,這種非線性需要較深的conv疊加才能實現,因此當網絡比較淺的時候,pooling有一定優勢;但是當網絡很深的時候,多層疊加的conv可以學到pooling所能提供的非線性,甚至能根據訓練集學到比pooling更好的非線性,因此當網絡比較深的時候,不使用pooling沒多大關係,甚至更好。

pooling的非線性是固定的,不可學習的,這種非線性其實就是一種先驗。

3中降採樣的優勢在於能夠較好的保留低層次的信息。1和2的降採樣方式,好處是抽取的特徵具有更強的語義性,壞處是會丟失一些細節信息。而3這種降採樣方式與1、2相反,它提取的特徵語義性不強,但是能保留大量細節信息。所以當我們既需要降採樣,又需要不丟失細節信息的時候,3是一個非常合適的選擇。

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