為什麼要用空洞卷積?

我們知道正常的卷積已經能夠提取特徵了,那麼空洞卷積又是做什麼的呢?

空洞卷積(atrous convolutions),又稱擴張卷積(dilated convolutions),向卷積層引入了一個成為「擴張率(dilated rate)」的新參數,該參數定義了卷積核處理數據時各值的間距。下圖是正常卷積核空洞卷積的動態圖對比:

下圖為卷積核為3×3,步長為1的普通卷積:

下圖為卷積核為3×3,步長為1,擴張率為1的空洞卷積:

對比上兩動圖,先感受下區別。

空洞卷積有什麼用呢?

在深度網路中為了增加感受野且降低計算量,總要進行降採樣池化等,這樣雖然可以增加感受野,但空間解析度降低了。為了能不丟失解析度,且仍然擴大感受野,可以使用空洞卷積。這在檢測時,一方面感受野大了可以檢測分割大目標,另一方面解析度高了可以精確定位目標。另外,還可以通過調整擴張率來獲得多尺度信息。

所以總的來說,空洞卷積主要作用:

  • 不丟失解析度的情況下擴大感受野
  • 調整擴張率獲得多尺度信息

不丟失解析度的情況下擴大感受野:

我們通過圖例來看下空洞卷積是如何發揮作用的?首先空洞卷積是怎麼在不丟失特徵解析度的情況下擴大感受野,看下圖:

上圖左側為對0-9共10顆像素的正常3×3卷積,padding為same,stride=1的情況下,我們知道其卷積後共得到10個特徵,每個特徵的感受野均為3×3,如左側紅色的那個特徵覆蓋3,4,5三顆像素(想像二維情況下應該是3×3)。

上圖右側為對0-9共10顆像素的空洞3×3卷積,這裡的3×3是指有效區域,在padding為same,stride=1的情況下,也得到了10個特徵,但是每個特徵的感受野為5×5,如右側藍色的那個特徵覆蓋2,3,4,5,6五顆像素(想像二維情況下應該是5×5)。

這就在不丟失特徵解析度的情況下擴大了感受野,進而對檢測大物體有比較好的效果。

調整擴張率獲得多尺度信息:

那麼如何通過調整擴張率來獲得多尺度信息呢?我們一起看下圖:

上圖右側為對0-9共10顆像素的空洞3×3卷積,這裡的3×3是指有效區域,在padding為same,stride=1,dilated rate=1的情況下,也得到了10個特徵,但是每個特徵的感受野為5×5,如右側藍色的那個特徵覆蓋2,3,4,5,6五顆像素(想像二維情況下應該是5×5)。

而左側為為3×3空洞卷積,padding為same,stride=1, dilated rate=2的情況下,我們可以看到卷積後的特徵的感受野為7×7,如紅色特徵的感受野為1,2,3,4,5,6,7。

所以,我們可以通過調整dilated rate大小,來調整卷積層的感受野,不同的感受野可以感受不同尺度信息的物體。

So, 你Get到了嗎?