空洞卷积
# 在原始卷积核的每两个元素之间插入 d − 1个空洞
# 膨胀的卷积核尺寸 = 膨胀系数 * (原始卷积核尺寸 - 1) + 1
# 也可以写成 m + (m − 1) × (d − 1) 二者是相等的
# m为原始卷积核尺寸 d为膨胀系数
# 首先由于卷积的操作特性,卷积核尺寸是奇数,则原始卷积核尺寸减一为偶数。
# 那么,在上述公式中,膨胀系数*偶数-1为奇数,保证了膨胀的卷积核尺寸为奇数。
# 其次,笔者认为,卷积核的膨胀系数刻画了卷积核高和宽方向的扩张倍数,可将上述公式看作:
# 膨胀的卷积核尺寸 - 1 = 膨胀系数 * (原始卷积核尺寸 - 1)
# dilation_rate: 一个整数或 2 个整数的元组或列表, 指定膨胀卷积的膨胀率。
# 可以是一个整数,为所有空间维度指定相同的值。
# 当前,指定任何 dilation_rate 值 != 1 与 指定 stride 值 != 1 两者不兼容
-
空洞卷积的优点:在不做池化损失信息的情况下,加大感受野,让每个卷积的输出都包含较大范围的信息。
在图像需要全局信息,或者语音、文本需要较长序列信息的问题中,空洞卷积都能很好的应用。
-
空洞卷积的缺点:
-
网格效应(
Gridding Effect
)。如果仅仅多次叠加多个dilation rate=2
的3x3
的卷积核时,会发现:并不是所有的输入像素都得到计算,也就是卷积核不连续。这对于逐像素的预测任务来说,是致命的问题。
-
长距离信息可能与任务无关。采用空洞卷积可能对大物体的分割有效果,但是对于小物体的分割可能没有好处。
如何同时处理不同大小的物体,则是设计好空洞卷积网络的关键。
-
-
为了解决空洞卷积的缺点,人们提出了一种混合空洞卷积的结构(
Hybrid Dilated Convolution:HDC
) 。该结构有三个特性:
-
叠加的空洞卷积的
dilation rate
不能有大于 1 的公约数。这是为了对抗网格效应。如:
[2,4,6]
不是一个好的三层空洞卷积,因为会出现网格效应。 -
将
dilation rate
设计成锯齿状结构。这是为了同时满足小物体、大物体的分割要求。如
[1,2,5,1,2,5]
的循环结构。 -
最后一层的空洞卷积的
dilation rate
最大,且dilation rate
小于等于卷积核的大小。这也是为了对抗网格效应。
下面是一组
dilation rate
分别为[1,2,5]
的卷积核,卷积核的尺寸为3x3
-