论文:Making Convolutional Networks Shift-Invariant Again
论文: https://arxiv.org/abs/1904.11486
代码: antialiased-cnns/antialiased_cnns at master · adobe/antialiased-cnns · GitHub
Trick:
Adobe出品,平移不变性,模型鲁棒性改善明显+提点
Modern-network不具备平移不变性:当输入发生微小的平移或者变换时,输出会产生剧烈变化。主要是因为网络中的下采样操作【max-pooling, avg-pooling, strided-conv】不满足下采样定理导致。如上图所示。
信号处理领域的常规做法:
(1)增大采样频率
(2)抗混叠方法
在对信号下采样之前,需要使用低通滤波来抗混叠。但是,直接将低通滤波器插入到CNN网络中,会带来性能下降。这就是CNN中没有广泛使用低通滤波器的原因。
图像处理领域的常规做法:设置stride 1增大采样频率,但stride 1已经是极限了。所以本文着重于后者,使用抗混叠使得CNN重新具有平移不变性。
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:作者认为:Blurred-downsampling 和 max-pooling是可以共存的。
2:max-pooling分为两步:(1)密集计算最大值 (2)经典下采样
作者的方法是在步骤(1)和(2)中插入 anti-aliasing(抗混叠操作)
3:作者提出的方案,可以运用到任意的下采样层,包括 strided-convolution【注意替换位置】
-----------------------------------------------------------------------------------------------------------------
论文核心: 一图胜千言
左图:shift从0-1时,输出结果完全不同
右图:shift从0-1时,输出结果差异缩小了
结论:低通滤波blur有效,但不能完全消除混叠,只是减小了混叠
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:从baseline可以看出:在使用maxpool的网络中,随着偏移量逐渐增大,准确率并不是一直下降的,而是周期性的震荡,这说明不是偏移量越大网络的效果就越差。导致这个现象的原因就是某些情况下周期性的平移不变性。当平移量为N的整数倍的时候,有些情况下仍可满足平移不变性
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:大小网络在精度和一致性上都有提升
2:Blur-kernel 越大,一致性越好
3:Blur-kernel越大,精度不一定最高
按照作者的话就是:这个数值和网络结构相关。不过推荐使用3和5。
因为2:相当于最近邻; 3:相当于双线性
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:平移对抗攻击还是效果挺好的
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:如果模糊核是可学习的,精度可以保持,但一致性反而不行了
-----------------------------------------------------------------------------------------------------------------
耗时分析: 毕竟训练速度还是很重要的
1:速度慢了
2:为了提速,可以拆分成垂直和水平两个组件,【估计也提升不了速度】
3:作者为了速度,在网络浅层也不使用Blurred-pool
参考:[论文理解] Making Convolutional Networks Shift-Invariant Again - aoru45 - 博客园
里面有代码的例子,简洁明了!