Q1:Dilated conv的作用?
A1:在同層計算不增加參數量的同時擴大感受野,感受野的理解見:https://blog.csdn.net/weixin_36835368/article/details/105659474
Q2:如何做到不增加參數的同時增加感受野?
A2:step0:先了解Dilated conv如何不增加參數數量
綠色:與卷積核相乘的點。
通過下圖可發現,都是9個點,所以計算所需的參數量沒變。
黃色:該部分用0進行mask。
Tips: 理解爲卷積核做0填充理解的話,相當於卷積核尺寸從3*3變成了5*5(rate=2).
new_K_size = K_size + (rate -1)*2
你可以用這種思路去理解感受野,但是計算的過程中應該是:Input => 帶0的mak => output
step1: 感受野爲什麼增大了?
感受野:輸出feature map中一個點映射到原始圖像的區域。
通過(a)(b) (c) 的卷積操作得到的都是一個點,但這個點映射到原圖像的區域卻不一樣。
假設(a),(b), (c)輸入的層都是經過普通K=(3,3),S=1,P=0的卷積。
則:(a)RF0 =1
=> RF1= (1-1)*1+3=3
=> RF2 = (3-1)*1+3=5
=> RF3 = (5-1)*1+3=7
Tips:,這裏RF小角標註意一下,這裏上層用了小數字。
(b)RF0 =1
=> RF1 = (1-1)*1+(3+(2-1)*2)=5
=> RF2=(5-1)*1+3=7
Tips:RF1中的K= new_K_size= K_size + (rate -1)*2, RF2中的K= K_size=3
(c)RF0=1
=> RF1=(1-1)*1+(3+(3-1)*2)=7
通過上述計算,可以發現,使用rate=3的Dilated conv向前推一層的感受野就達到了(7,7),而使用rate=2的帶孔卷積需要向前推兩層才能達到,不帶孔的普通卷積若想達到(7,7)需要進行三層。