如何理解空洞卷積?東北振興2020-07-21 18:34:12

pooling操作雖然能增大感受野,但是會丟失一些資訊。空洞卷積在卷積核中插入權重為0的值,因此每次卷積中會skip掉一些畫素點;

空洞卷積

增大了卷積輸出每個點的感受野

並且不像pooling會丟失資訊

,在影象需要全域性資訊或者需要較長sequence依賴的語音序列問題上有著較廣泛的應用。

關注優就業,學習更多深度學習知識。

如何理解空洞卷積?北航秦曾昌2018-05-31 22:27:48

CNN網路中在對影象進行下采樣時,常常使用pooling操作,包括average pooling和max pooling。

其作用在仿照人的視覺系統進行降維,同時擴大了感受野(perceptual field)。對卷積層提取的特徵進行降取樣,從而能夠獲取到更高階的特徵。此外pooling層也可以保證特徵位置和旋轉不變形。最後引入pooling還能起到降少網路引數,防止過擬合的問題。

如何理解空洞卷積?

但是採用pooling也有其缺點,在降取樣的同時也會丟失一部分特徵資訊,損失了原始影象中的資訊。

空洞卷積(diluted convolution)就是為解決pooling層的缺點而提出的。它首先是針對影象語義分割而產生的一種卷積方法。不同於一般的卷積,空洞卷積的卷積核更加“蓬鬆”,也就是在卷積核中加入空洞,以此來擴大感受野。引入了一個新的引數空洞率(dilation rate),即卷積核的間隔數目,正常卷積核的空洞率等於1。

如下圖就是一個空洞率為2的3*3空洞卷積。我們可以發現,空洞卷積不僅擴大了感受野降低了維度,同時沒有增加計算量。

如何理解空洞卷積?

但是由於引入了一個超引數,就需要權衡每次卷積時的引數,如果空洞率過大,那麼就很有可能捕捉不到影象中小物體的資訊,因此再使用時需要設定好合適的空洞率。此外,如果疊加多個空洞率為2的3*3卷積核,那麼就會出現網格效應(the gridding effect),丟失了大量資訊。因此在設計空洞卷積時,需要考慮不同層設定不同的空洞率,這樣就能夠讓卷積操作儘可能的獲得到最多的資訊。

如何理解空洞卷積?

如何理解空洞卷積?AI深度學習求索2018-11-18 13:20:14

如何理解空洞卷積dilated convolution?

首先,我們要知道,空洞卷積是什麼,和一般的卷積操作有什麼不同?

一般的卷積層的卷積操作是什麼樣?

一般的卷積操作就不仔細說了,看下面的動圖,這是padding=1,stride=1的卷積操作示意圖,外圈白色區域是padding。從下圖看出,輸入層和輸出層經過卷積操作後,尺寸沒變,都是5*5,但卷積神經網路提取特徵是一個下采樣的過程。

如何理解空洞卷積?

網路為什麼需要下采樣?

1。減小特徵的尺寸,從而減小網路的引數量,防止網路過擬合

2。提取更好的特徵,獲得更好的效能

一般卷積神經網路中下采樣由什麼操作完成?

一般的卷積網路中下采樣都是透過池化(pooling)層得到的。透過池化層下采樣特徵,減小特徵尺寸減輕過擬合同時增大了網路感受野,一般設計卷積神經網路時,都會在卷積操作後加上池化層。

如何理解空洞卷積?

池化層優點:能夠增大感受野減小模型引數緩解過擬合

池化層缺點:透過這樣直接pooling的操作,在一定程度上損失了空間結構資訊。

空洞卷積操作如何進行?

空洞卷積如下圖所示,它可以看做利用一個引數,將原本的卷積核中間填充0,擴大卷積核的大小,利用擴充的卷積核進行卷積操作。從圖中所示,空洞卷積也能擴大網路感受野減小尺寸同時還能保留一定的結構空間資訊。

空洞卷積有一個rate的引數,它控制著卷積核中兩個值中間插入0的個數為rate-1,可以使用0填充卷積核擴大卷積核。

如何理解空洞卷積?

為什麼需要空洞卷積?

從上述可知,池化層能夠增大感受野減小模型引數緩解過擬合,但是池化層的操作一定程度上破壞了特徵的空間結構資訊,但是在特定的一些任務例如影象語義分割任務中,則需要儲存利用圖片的空間資訊,這時候便可以利用空洞卷積完成下采樣,增大感受野同時還可以保留圖片空間結構資訊。

如何理解空洞卷積?

綜上所述,都是本人的總結,若有不當之處,歡迎交流指正。