《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结

《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结

对文章理解如有不到位的地方,欢迎大家留言指正!

一、为什么要用膨胀卷积

作者提出膨胀卷积主要是为了解决dense prediction(密集预测)问题。密集预测问题就是针对图像的每个像素进行操作,给每个像素一个标签,例如:图像语义分割问题。作者认为此类问题要求在结合多尺度上下文信息的情况下输出一个与输入有相同分辨率(full-resolution)的预测。

文章作者提到为图像分类开发的网络可以应用于密集预测任务,并且能够取得很好的效果。但是图像分类网络为了实现多尺度引入了池化层(下采样),并利用高维特征得到全局预测,例如AlexNet:
《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结_第1张图片
很显然这种方式造成了图像分辨率的损失,而密集预测任务本身要求输出与输入拥有相同的分辨率,这就造成了多尺度分析与密集预测保持原有分辨率的矛盾。在膨胀卷积之前,主要有两种方法解决这一矛盾:
1、利用反卷积,将较小分辨率的高维特征恢复到输入图像的尺寸。关于反卷积具体可以参考这篇文章:https://blog.csdn.net/sinat_29957455/article/details/85558870
文章提到这种方法存在一个问题:先下采样之后上采样得到与输入图像相同尺寸的预测,那么采样的操作是否还有存在的必要呢?(这部分我的理解是多尺度可以对应为特征感受野的变化,特征感受野越大则其对应更大尺度上的抽象特征,特征感受野越小则其对应更小尺度上的具象特征。因此即便是去掉pooling的卷积网络也是一种多尺度的网络,pooling的出现只是在减少网络参数的基础上进一步加速了感受野增大的速度,但其也带来了特征分辨率的变化。因此作者才会质疑这种方式中pooling的必要性)
2、将同一张图片的不同分辨率版本输入网络进行预测,并将不同分辨率下得到的结果结合作为最终的预测。这种方式由于要处理多张不同分辨率的图片,增加了计算量,同时作者也对其单独分析同一张图片的每个不同分辨率这种做法的的必要性提出了质疑
综合上述两种方式的问题,作者提出了膨胀卷积的概念,这种方式在迅速增大特征感受野且不损失分辨率(padding=same的前提下)的同时避免了多尺度输入的操作,并且可以很方便的插入到现存的网络中(可以理解为只改变了卷积核的结构)。

二、膨胀卷积的概念

膨胀卷积可以理解为将卷积核按照一定的膨胀因子扩大到一定的尺寸,没有值的地方用零填充,下图为对3*3的卷积核进行膨胀因子为2的膨胀得到新卷积核:
《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结_第2张图片
文章中给出了较为详细的公式表达:
《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结_第3张图片
公式(1)为一般的卷积操作,公式(2)为膨胀卷积操作,可见当膨胀因子为1时膨胀卷积退化为一般的卷积操作。下图展示了采用膨胀系数为2i的膨胀卷积后的特征感受野计算:
《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结_第4张图片
《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》阅读总结_第5张图片
如图,F0可以理解为原始图像。图(a)对F0进行膨胀因子为1的膨胀卷积得到F1,此时F1中的每个元素的感受野为3×3。图(b)对F1进行膨胀因子为2的膨胀卷积得到F2,此时F2中每个元素的感受野为7×7。图(c)对F2进行膨胀因子为4的膨胀卷积得到F3,此时F3中每个元素的感受野为15×15。可见在第i层采用2i的膨胀因子则第i+1层每个元素的感受野为(2i-1)×(2i-1),随着网络的加深,特征感受野呈指数增加。采用这种膨胀率使膨胀卷积可以起到加速特征感受野增加的作用。

三、使用膨胀卷积时的问题

关于膨胀卷积存在的问题可以参考这篇文章 膨胀卷积存在的问题 其中关于栅格效应的生成以及膨胀率的要求还需要进一步进行研究。

你可能感兴趣的:(深度学习,图像分割)