浅笑の博客

我们的征途是星辰大海


  • 首页

  • 标签29

  • 分类6

  • 归档47

  • 留言板

  • 搜索

空洞卷积(Dilated Convolution)学习笔记

发表于 2019-08-13 分类于 深度学习 Valine: 本文字数: 1.2k

前言

引入空洞卷积不得不提的是感受野,感受野就是卷积神经网络的每一层输出的特征图(feature map)上的像素点在原图像上映射的区域大小。空洞卷积主要为了解决图像分割中的一些问题而提出的,在FCN中通过pooling增大感受野缩小图像尺寸,然后通过upsampling还原图像尺寸,但是这个过程中造成了精度的损失,那么为了减小这种损失理所当然想到的是去掉pooling层,然而这样就导致特征图感受野太小,因此空洞卷积应运而生。

空洞卷积

概要

Dilated Convolutions,翻译为扩张卷积或空洞卷积。扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilation rate)参数,主要用来表示扩张的大小。扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野。

示意图

空洞卷积示意图

  • 图(a)为1-dilated conv,感受野为3×3
  • 图(b)为2-dilated conv,跟在1-dilated conv后面,感受野扩大为为7×7
  • 图(c)为4-dilated conv,同样跟在1-dilated conv以及1-dilated conv后面,感受野扩大为为15×15
  • 相比之下,使用stride为1的普通卷积,三层后的感受野仅为7×7

空洞卷积的作用

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

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

空洞卷积存在的问题

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

    很明显,感受野不连续(我们上一小结的例子就没这个问题,所以空洞卷积依赖网络设计)。

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

卷积网络
TensorFlow学习笔记11:ResNet
Non-local PyTorch部分源码解读
Zheng Yujie

Zheng Yujie

C++/Python/深度学习
47 日志
6 分类
29 标签
目录
  1. 1. 前言
  2. 2. 空洞卷积
    1. 2.1. 概要
    2. 2.2. 示意图
    3. 2.3. 空洞卷积的作用
    4. 2.4. 空洞卷积存在的问题
© 2019 Zheng Yujie | 全站共199k字
浙ICP备 - 19035016号
0%