一.概述
提出了一个Asymmetric Convolution Block (ACB),可以在普通的网络中加入一些ACB来代替普通的卷积,这个仅在训练的时候起作用,然后测试的时候可以使得网络恢复之前的结构,所以这种方法是提升了网络的性能但是完全不会破坏网络,所以原作者说是白给的性能。但是这个性能的提升也是以训练时间增加40%换来的。所以具体能不能应用到实际业务中就是仁者见仁智者见智了。
二.详解
ACNet的结构很简单,如下所示:
ACNet这种设计来源于一个3*3的卷积核中的9个参数并不是具有相同重要性的, 在中央交叉位置上的五个参数会更加重要,而在边角的四个参数影响更小。中央交叉位置也叫做卷积核的骨架。每次将水平和竖直的加到骨架上,这样起到一个强化骨架的作用。由于卷积核的参数都是随机初始化的,所以有可能会导致它向着一个并不是强化骨架参数的方向优化,而通过这种结构和操作就可以避免这个问题。
整个工作的重点如下:
- 提出的ACNet的结构加强了卷积核的骨架,提升了性能,但是没有增加任何的inference时间。
- ACNet很容易集成到现有模型中,就是用一个ACBlock来代替普通的卷积核。
- 在CIFAR-10,CIFAR-100和ImageNet等benchmark上显著提升了准确率
- 通过实验证明了卷积核的骨架更重要,且ACNet的结构增强了骨架
- ACNet增强了对旋转目标的识别鲁棒性
非对称卷积通常用于逼近现有的正方形卷积以进行模型压缩和加速,先前的一些工作表明,可以将标准的 d×d卷积分解为 1×d和 d×1卷积,以减少参数量。其背后的理论相当简单:如果二维卷积核的秩为1,则运算可等价地转换为一系列一维卷积。然而,由于深度网络中下学习到的核具有分布特征值,其内在秩比实际中的高,因此直接将变换应用于核会导致显著的信息损失。Denton等人基于SVD分解找到一个低秩逼近,然后对上层进行精细化以恢复性能。Jaderberg等人通过最小化重构误差,成功学习了水平核和垂直核。Jin等人应用结构约束使二维卷积可分离,在获得相当精度的条件下时间加速了2倍。另一方面,非堆成卷积也被广泛的用来做网络结构设计,例如Inception-v3中,7×7卷积被 1×7卷积和 7×1卷积代替。语义分割ENet网络也采用这种方法来设计高效的语义分割网络,虽然精度略有下降,但降低了33%的参数量。
具体操作:
我们试图以不对称卷积可以等效地融合到标准方形核层中的方式来使用,这样就不会引入额外的推理时间计算负担。我们注意到卷积的一个有用性质:如果几个大小兼容的二维核在相同的输入上以相同的步幅操作以产生相同分辨率的输出,并且它们的输出被求和,我们可以将这些核在相应的位置相加,从而得到一个产生相同输出的等效核。也就是说,二维卷积的可加性可以成立,即使核大小不同。
普通卷积:
增加BN:
inference时的融合:
融合merge的公式如下:
三.实验
1.CIFAR数据集
2.ImageNet
3.消融实验
4.旋转鲁棒性
5.卷积核的值
强化边缘会降低模型表现。
来源:CSDN
作者:bestrivern
链接:https://blog.csdn.net/bestrivern/article/details/103606672