ICML 2019 反锯齿下采样改进网络平移不变性
前几天看到一篇来自Adobe研究院的论文《Making Convolutional Networks Shift-Invariant Again》,感觉很有启发性。
论文只有一位作者,该论文已被ICML 2019 接收。
在计算机视觉特征提取的研究历史中,平移不变性是算法设计者不断追求的。
具有平移不变性意即目标在图像中平移一定的像素,提取的特征不会差别很大。
请看以下这幅动图:
baseline展示了CNN网络的预测结果随着图像变化而大幅变化,Anti-aliased 为该论文的结果。
在深度卷积网络的世界里,一只鸟的图片平移了几个像素,它是一只鸟的概率就不同了,甚至就不再是一只鸟了,这就说不过去了。
这说明CNN网络不具有良好的平移不变性。
作者考虑了CNN网络的各个结构,认为卷积层本身是具有平移不变性的,而池化层破坏了平移不变性。
作者认为可以借鉴信号处理中反锯齿算法的设计,即在信号下采样之前进行低通滤波(也就是图像模糊),缓解池化操作带来的对平移不变性的破坏。
具体做法请看下图:
baseline展示了原始的MaxPool操作,作者将其看为两步,先Max,再下采样。
作者的做法是在Max之后加一步图像模糊,嗯,就是这么简单~
作者对StridedConv与AveragePool等涉及到下采样的网络操作都进行了改进,成为ConvBlurPool、BlurPool,即都是在下采样之前进行模糊操作。
实验中也研究使用了不同类型和参数的模糊核。
这么简单,会奏效吗?
作者在CIFAR和ImageNet数据集上使用改造后的多个知名网络进行了实验,均获得了精度提升。
作者也将此网络结构用于图像生成,也获得了更好的视觉结果。
作者认为,在解决CNN方法带来的一些问题中,研究人员往往忽略了传统信号处理领域里已经取得的成果。
论文地址:
https://arxiv.org/abs/1904.11486
代码将在以下网址开源:
https://richzhang.github.io/antialiased-cnns/