空洞卷积
# 在原始卷积核的每两个元素之间插入 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
版权声明:本文为ys1305原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。