zl程序教程

您现在的位置是:首页 >  工具

当前栏目

深度学习笔记---什么是空洞卷积

笔记学习 什么 深度 --- 卷积
2023-09-27 14:20:14 时间

1,标准卷积

使用卷积核大小为3*3、填充为1,步长为2的卷积操作对输入为5*5的特征图进行卷积生成3*3的特征图,如图1所示。

                                                                  图1   普通卷积

2. 空洞卷积

       使用卷积核大小为3*3、空洞率(dilated rate)为2、卷积步长为1的空洞卷积操作对输入为7*7的特征图进行卷积生成3*3的特征图,如图2所示。

                                                              图2 空洞卷积

      标准的卷积操作中,卷积核的元素之间都是相邻的。但是,在空洞卷积中,卷积核的元素是间隔的,间隔的大小取决于空洞率。 

3.为什么空洞卷积能够扩大感受野并且保持分辨率

    dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。

preview

                                                     图3 空洞卷积说明

 图3中红色圆点为卷积核对应的输入“像素”,绿色为其在原输入中的感受野。

(a)图对应3x3的扩张率为1的卷积,和普通的卷积操作一样;

(b)图对应3x3的扩张率为2的卷积,实际的卷积核还是3x3,但是空洞率为2,也就是对于一个7x7的图像块,只有9个红色的点也就是3x3的卷积核发生卷积操作,其余的点略过。也可以理解为卷积核的大小为7x7,但是只有图中的9个点的权重不为0,其余都为0。可以看到虽然卷积核的大小只有3x3,但是这个卷积的感受野已经增大到了7x7。如果考虑到这个2-dilated convolution的前一层有一个1-dilated convolution的话,那么每个红点就是1-dilated的卷积输出,感受野为3x3,所以1-dilated和2-dilated合起来就能达到7x7的卷积;

(c)图是4-dilated convolution操作,同理跟在1-dilated和2-dilated convolution的后面,能达到15x15的感受野。

对比传统的卷积操作,3层3x3的卷积加起来,stride为1的话,只能达到(kernel-1)*layer+1=7的感受野,也就是和层数layer成线性关系,而dilated conv的感受野是指数级的增长。

补充:dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。在图像需要全局信息或者语音文本需要较长的sequence信息依赖的问题中,都能很好的应用dilated conv,比如图像分割、语音合成WaveNet、机器翻译ByteNet中。

4,空洞卷积存在的问题

dilated conv的潜在问题
1.The gridding effect(网格影响)
我们发现dilated conv的 kernel 并不连续,也就是说并不是所有的 pixel 都用来计算了,因此这里将信息看做 checker-board 的方式会损失信息的连续性。这对 pixel-level dense prediction 的任务来说是致命的。

2.Long-ranged information might be not relevant.
我们从 dilated convolution 的设计背景来看就能推测出这样的设计是用来获取 long-ranged information。然而光采用大 dilation rate 的信息或许只对一些大物体分割有效果,而对小物体来说可能则有弊无利了。
 

5,空洞卷积的改进

5.1.通向标准化设计:Hybrid Dilated Convolution (HDC)

     将一定数量的layer形成一个组,然后每个组使用连续增加的空洞率,HDC采用r=1,r=2,r=3三个空洞率组合,HDC方案可以从更广阔的像素范围获取信息,避免了grid问题。同时该方案也可以通过修改rate任意调整感受野。 

6,空洞卷积的相关计算

6. 1.空洞卷积感受野的计算

感受野尺寸=2(rate-1)*(k-1)+k  #k是kernel size 

举个例子,3×3的kernel,rate=1是普通卷积–>感受野=3;rate=2,感受野=7;rate=4,感受野=15。

6.2.带有空洞卷积的feature size的计算 

Output=(W-F+2P)/S+1  #w是上层feature的size,F是kernel size,S是stride

参考博文:

​​​​​​dilated conv(空洞卷积)我们所需要了解的地方_litt1e的博客-CSDN博客

对Dilated Convolution理解 - 知乎