Dilated conv扩张卷积的理解(一看就会)

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

Dilated conv扩张卷积的理解(一看就会)_第1张图片

         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:Dilated conv扩张卷积的理解(一看就会)_第2张图片,这里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)需要进行三层。

Dilated conv扩张卷积的理解(一看就会)_第3张图片

你可能感兴趣的:(DeepLearning,CNN)