1. 程式人生 > 實用技巧 >卷積、反捲積與膨脹卷積

卷積、反捲積與膨脹卷積

卷積(多---->1 的對映)


本質:在對輸入做9--->1的對映關係時,保持了輸出相對於input中的位置性關係

對核矩陣做以下變形:卷積核的滑動步驟變成了卷積核矩陣的擴增

卷積的矩陣乘法變成以下形式:核矩陣重排,輸入featuremap變形為向量

反捲積(1---->多 的對映)

deconvlution/transpose-convlution

  1. 動機
  • 想要網路去學出一種最優的上取樣方法,而不是像基於插值似的手動方法,它有可以學習的引數.

缺點:反捲積會在生成的影象中造成棋盤效應(checkerboard artifacts),推薦在使用轉置卷積進行上取樣操作之後再過一個普通的卷積來減輕此類問題.

膨脹卷積(空洞卷積)

動機:
上取樣及池化過程中存在致命的問題:

  1. 內部資料結構丟失,空間層級化資訊丟失
  2. 小物體無法重建
    希望:既可以保留內部資料結構又可以避免使用下采樣這樣的方式

定義:在標準卷積的Convolution map的基礎上注入空洞,以此來增加感受野(reception field)。
因此,Dilated Convolution在Standard Convolution的基礎上又多了一個超引數(hyper-parameter)稱之為膨脹率(dilation rate)

問題:

  1. kernel並不連續,造成資訊提取的不連續
  2. 旨在提取大範圍資訊,對小目標有弊。因此如何同時處理大小目標的關係,就成了膨脹卷積設計的關鍵。

具體實現:
膨脹後的卷積核的大小:
(0)所謂的空洞就是填充0

(1)設原始卷積核的大小是3*3

(2)設膨脹率為2,則膨脹後的卷積核的大小為:dilation_rate*(kernel_size - 1)+1

  結果就是  2*(3-1)+1=5,膨脹後的卷積核大小是5*5

  預設的dilation_rate=1.

改進:HDC--混合膨脹卷積
疊加的膨脹卷積的膨脹率dilated rate不能有大於1的公約數(比如[2, 4, 6]),不然會產生柵格效應