Dilated Convolution (空洞卷积或扩张卷积)

之前博文已经对空洞卷积做了介绍,本文进行深入介绍《各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)》

 

诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN[3])中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测(upsampling一般采用deconv反卷积操作),之前的pooling操作使得每个pixel预测都能看到较大感受野信息。因此图像分割FCN中有两个关键,一个是pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先减小再增大尺寸的过程中,肯定有一些信息损失掉了,那么能不能设计一种新的操作,不通过pooling也能有较大的感受野看到更多的信息呢?答案就是dilated conv。

标准卷积与空洞卷积在实现上基本相同,标准卷积可以看做空洞卷积的特殊形式。

Dilated Convolution (空洞卷积或扩张卷积)_第1张图片

     (a)图对应3x3的1-dilated conv,和普通的卷积操作一样,(b)图对应3x3的2-dilated conv,实际的卷积kernel size还是3x3,但是空洞为1,也就是对于一个7x7的图像patch,只有9个红色的点和3x3的kernel发生卷积操作,其余的点略过。也可以理解为kernel的size为7x7,但是只有图中的9个点的权重不为0,其余都为0。 可以看到虽然kernel size只有3x3,但是这个卷积的感受野已经增大到了7x7(如果考虑到这个2-dilated conv的前一层是一个1-dilated conv的话,那么每个红点就是1-dilated的卷积输出,所以感受野为3x3,所以1-dilated和2-dilated合起来就能达到7x7的conv),(c)图是4-dilated conv操作,同理跟在两个1-dilated和2-dilated conv的后面,能达到15x15的感受野。对比传统的conv操作,3层3x3的卷积加起来,stride为1的话,只能达到(kernel-1)*layer+1=7的感受野,也就是和层数layer成线性关系,而dilated conv的感受野是指数级的增长。

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

空洞卷积的作用

  • 扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling或s2/conv),这样虽然可以增加感受野,但空间分辨率降低了,进而导致信息丢失。为了能不丢失分辨率,且仍然扩大感受野,可以使用空洞卷积。这在检测,分割任务中十分有用。一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。

  • 捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要。

空洞卷积感受野计算

空洞卷积实际卷积核大小:

K=k+(k-1)(r-1),k为原始卷积核大小,r为空洞卷积参数空洞率;

 

空洞卷积gridding问题

空洞卷积存在理论问题,论文中称为gridding,其实就是网格效应/棋盘问题。因为空洞卷积得到的某一层的结果中,邻近的像素是从相互独立的子集中卷积得到的,相互之间缺少依赖。

  • 局部信息丢失:由于空洞卷积的计算方式类似于棋盘格式,某一层得到的卷积结果,来自上一层的独立的集合,没有相互依赖,因此该层的卷积结果之间没有相关性,即局部信息丢失。

  • 远距离获取的信息没有相关性:由于空洞卷积稀疏的采样输入信号,使得远距离卷积得到的信息之间没有相关性,影响分类结果。

假设我们仅仅多次叠加 dilation rate 2 的 3 x 3 kernel 的话,则会出现这个问题

Dilated Convolution (空洞卷积或扩张卷积)_第2张图片

可以发现 kernel 并不连续,也就是并不是所有的 pixel 都用来计算了,因此这里将信息看做 checker-board 的方式会损失信息的连续性。这对 pixel-level dense prediction 的任务来说是致命的。

从 dilated convolution 的设计背景来看就能推测出这样的设计是用来获取 long-ranged information。然而光采用大 dilation rate 的信息或许只对一些大物体分割有效果,而对小物体来说可能则有弊无利了。如何同时处理不同大小的物体的关系,则是设计好 dilated convolution 网络的关键。

Dilated Convolution (空洞卷积或扩张卷积)_第3张图片

Dilated Convolution (空洞卷积或扩张卷积)_第4张图片

 

 

 

 

 

 

参考资料

https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247487469&idx=1&sn=2994813ff1beaebd87ded17d542ded84&chksm=ec1fe214db686b02b52fdb81ecd6a00eadc6c291e9f520cbdfb18950bac034499377cdcb5160&mpshare=1&scene=24&srcid=0517rUncqV0VyBMqrunvgcjM#rd(gridding问题)

https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247487121&idx=1&sn=d2c92746ed4f64016a8b0440dac89e9a&chksm=ec1fe368db686a7e3d821a98d76ea683a8b3f190705649221790a05e8a7ebeed745080bdaeae&token=1463924384&lang=zh_CN&scene=21#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247487219&idx=1&sn=089f759c8542edfdb53355e147f77fb9&chksm=ec1fe30adb686a1c211ceb154ddcb83e41d02e4aad92c4d7cb11953ab428797282bae4c75358&token=1463924384&lang=zh_CN&scene=21#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247487121&idx=1&sn=d2c92746ed4f64016a8b0440dac89e9a&chksm=ec1fe368db686a7e3d821a98d76ea683a8b3f190705649221790a05e8a7ebeed745080bdaeae&mpshare=1&scene=24&srcid=0517v8QVYCC37Qb4jeGwkx33#rd

 

 

论文阅读

随着网络复杂性变大,所学习特征的冗余成为问题。因此需要提高正向传播特征的多样性,减少特征的冗余。

如何增加特征的多样性表达?

utilizes multiple dilated convolutions with different rates to exploit abundant multiscale information. (利用具有不同尺度的多个扩展卷积来获取丰富的多尺度信息。)

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(深度学习,卷积神经网络)