论文:ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric
Convolution Blocks
论文链接:https://arxiv.org/abs/1908.03930
代码链接:https://github.com/DingXiaoH/ACNet

图像分类领域,从VGG到DenseNet那几年是比较活跃的,最近两年这个领域的论文越来越少见了,要做出有影响力的工作也越来越难。而这两年这个领域的主要方向集中在:1、网络结构搜索,比如EfficientNet算目前效果比较好的代表作。2、更好的特征表达,这部分跟第一部分并不是完全独立的,主要是把特征复用、特征细化做得更加极致,代表作有HRNet、Res2Net等。

当然,以上这些不是这篇博客要讲的内容,这篇博客要介绍的是ICCV2019上的一篇论文:ACNet,全称是Asymmetric Convolution Net,翻译过来就是非对称卷积网络。这篇论文也是从更好的特征表达角度切入实现效果提升,不过更重要的是:没有带来额外的超参数,而且在推理(或者叫验证、部署,本质上都是只执行前向计算)阶段没有增加计算量,在我看来后者更有吸引力。

在开始介绍ACNet之前,先来看一个关于卷积计算的式子,式子中I表示一个二维矩阵,可以看做是卷积层的输入,也就是输入特征图,K(1)和K(2)分别表示2个二维卷积核,这2个卷积核的宽和高是一样的,那么下面这个式子的意思就是:先进行K(1)和I卷积,K(2)和I卷积后再对结果进行相加,与先进行K(1)和K(2)的逐点相加后再和I进行卷积得到的结果是一致的。这是ACNet能够在推理阶段不增加任何计算量的原因。

接下来直接通过Figure1来看ACNet的思想。整体上ACNet的思想分为训练和推理阶段,训练阶段重点在于强化特征提取,实现效果提升;推理阶段重点在于卷积核融合,实现0计算量增加。

训练阶段:因为3 × \times× 3尺寸的卷积核是目前大部分网络的标配,所以这篇论文的实验都是针对3 × \times× 3尺寸进行的。训练阶段简单来说就是将现有网络(假设用Net_origin表示,比如ResNet)中每一个3 × \times× 3卷积层替换成3 × \times× 3+1 × \times× 3+3 × \times× 1共3个卷积层,如Figure1左图所示,最后将这3个卷积层的计算结果进行融合得到卷积层输出。因为引入的1 × \times× 3和3 × \times× 1卷积核尺寸是非对称的,所以取名Asymmetric Convolution。

推理阶段:这部分主要就是做3个卷积核的融合。依据就是前面我们介绍的公式:先分别对输入进行卷积后融合结果,与先融合卷积核再对输入进行卷积,结果是一样的。这部分在实现上是用融合后的卷积核参数初始化现有网络:Net_origin,因此在推理阶段,网络结构和原始网络是一模一样的(没有1 × \times× 3和3 × \times× 1卷积层了),只不过网络参数采用特征提取能力更强的参数(融合后的卷积核参数),因此在推理阶段不会增加计算量。

到此其实ACNet的内容就基本介绍完了,总结下来就是训练阶段强化特征提取能力,推理阶段融合卷积核达到不增加计算量的目的,虽然训练时间会增加一些,但推理阶段不费一兵一卒就能提升效果,方便且适用于现有的分类网络,何乐而不为。

当然,我觉得这篇论文的精彩之处不仅仅是以上这些思想,论文中关于训练阶段将1个3 × \times× 3卷积层替换成3 × \times× 3、1 × \times× 3和3 × \times× 1这3个卷积层的组合可以提升效果的讨论依然言之有理。
在公开数据集上其实ACNet并没有非常明显的效果提升,比如Table3,对于常用的ResNet和DenseNet而言,提升不到1个百分点,只不过至少是白赚的:

但正如论文中所述,ACNet有一个特点在于提升了模型对图像翻转和旋转的鲁棒性。
Figure4从理论上解释这种鲁棒性,当在训练阶段引入1 × \times× 3卷积核时,即便在验证阶段将输入图像进行上下翻转,这个训练好的1 × \times× 3卷积核仍然能够提取正确的特征(如Figure4左图所示,2个红色矩形框就是图像翻转前后的特征提取操作,在输入图像的相同位置处提取出来的特征还是一样的)。
假如训练阶段只有3 × \times× 3卷积核,那么当图像上下翻转后,(如Figure4右图所示,2个红色矩形框就是图像翻转前后的特征提取操作,在输入图像的相同位置处提取出来的特征是不一样的)。
因此,引入类似1 × \times× 3这样的水平卷积核可以提升模型对图像上下翻转的鲁棒性,竖直方向卷积核同理。

Table4从实验上解释这种鲁棒性。需要注意的是rotate 180°和左右翻转是不一样的,rotate 180°实际上是上下翻转+左右翻转,所以个人认为Table4中加上上下翻转的实验会更完整一些。

有一个点比较有意思,在论文中提到具体的融合操作是和BN层一起的,如Figure3所示,注意融合操作是在BN之后。但假其实也可以把融合操作放在BN之前,也就是3个卷积层计算完之后就进行融合。论文中关于这二者的实验可以参考Table4,在Table4中BN in branch这一列有√的话表示融合是在BN之后,可以看到效果上确实是在BN之后融合要更好一些(AlexNet的56.18% vs 57.44%,ResNet-18的70.82% vs 71.14%)。
不过论文中没有看到这部分的原理讨论,个人理解这部分效果的差异是因为增加了不同尺寸卷积核的权重导致的,统一的BN层没有更细化的针对每个特征图的BN来得极致。

另外即便融合操作放在BN层之前,相比原始网络仍有一定提升(AlexNet的56.18% vs 55.92%,ResNet-18的70.82% vs 70.36%%),这部分的原因个人理解是来自梯度差异化,原来只有一个3 × \times× 3卷积层,梯度可以看出一份,而添加了1 × \times× 3和3 × \times× 1卷积层后,部分位置的梯度变为2份和3份,也是更加细化了。而且理论上可以融合无数个卷积层不断逼近现有网络的效果极限,融合方式不限于相加(训练和推理阶段一致即可),融合的卷积层也不限于1 × \times× 3或3 × \times× 1尺寸。

整体上ACNet的创新点还是很棒的,相信对很多领域都会有启发意义,期待后面更多意思的工作。
————————————————
版权声明:本文为CSDN博主「AI之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014380165/article/details/103916114v

《An End-to-End Neural Network for Image Cropping by Learning Composition from Aesthetic Photos》相关推荐

  1. An End-to-End Neural Network for Image Cropping by Learning Composition from Aesthetic Photos

    智能构图 整体框架(方法) 文章的亮点 可能的 优化方向 参考文献 整体框架(方法) 这篇文章主要阐述怎么从一张图中获取到一张比较好看的crop的图.大致的流程图如下所示: 文章的亮点 文章中可以借鉴 ...

  2. 【1】谷歌2021模型量化白皮书《A White Paper on Neural Network Quantization》

    2021 Google模型量化白皮书 摘要 引言 模型量化的理论基础 硬件背景 均匀仿射量化 对称均匀量化 2的幂次方量化 量化粒度 量化模拟 Batch normalization folding ...

  3. 论文阅读-《Towards a Robust Deep Neural Network in Texts: A Survey》

    论文下载地址:https://arxiv.org/pdf/2004.13820v1.pdf 摘要 深度神经网络(DNN)在各种任务(例如图像分类,语音识别和自然语言处理)中均取得了显著成功.但是,研究 ...

  4. Neural Network with Python

    摘自<Make Your Own Neural Network> 整理总结,用python实现自己简单的人工神经网络. N eural Network with Python 1. The ...

  5. Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling论文阅读

    <Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling& ...

  6. (EWC)Overcoming Catastrophic Forgetting in Neural Network

    论文链接:Overcoming Catastrophic Forgetting in Neural Network 1.论文基础思路 文章开发了一种类似于人工神经网络突触整合的算法,我们称之为弹性权重 ...

  7. 20-Joint entity and relation extraction based on a hybrid neural network(LSTM-ED+CNN),考虑长距离的实体标签之间的关

    文章目录 abstract 1.introduction 2.相关工作 2.1. Named entity recognition 2.2. Relation classification 2.3 联合 ...

  8. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(六)

    DL:深度学习算法(神经网络模型集合)概览之<THE NEURAL NETWORK ZOO>的中文解释和感悟(六) 目录 DRN DNC NTM CN KN AN 相关文章 DL:深度学习 ...

  9. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(四)

    DL:深度学习算法(神经网络模型集合)概览之<THE NEURAL NETWORK ZOO>的中文解释和感悟(四) 目录 CNN DN DCIGN 相关文章 DL:深度学习算法(神经网络模 ...

最新文章

  1. java jar 打包命令行_Java程序命令行打包Jar
  2. 在Asp.Net Core MVC 开发过程中遇到的问题总结
  3. postgresql 插入 时间戳_数据也玩躲猫猫?PostgreSQL中别人提交的数据,我为什么看不到?...
  4. Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
  5. 宝塔设置thinkphp的伪静态_宝塔面板与WDCP狭路相逢,谁才是国产之光?
  6. 南阳理工oj 题目26 孪生素数问题 素数筛选法
  7. linux虚拟机发邮件给163邮件
  8. lasso模型可以用spss_互助问答第65期: 静态面板模型可以用GMM估计吗?
  9. hdu1708(C++)
  10. Python__关于列表的引用 以append操作为例
  11. 07-SNAP处理Sentinel-1 IW GRD数据
  12. 【Paper Reading】Improving Availability of Vertical Federated Learning Relaxing Inference on Non-overl
  13. MPQ文件系统优化(续)
  14. Scala基础知识(个人总结)
  15. python解椭圆方程的例题_如何求椭圆方程
  16. 英语词性篇 - 英语疑问词
  17. 肝素-PEG2000-PBA肝素-PEG-苯硼酸|NHS-PEG-PBA活化脂-聚乙二醇-苯硼酸|齐岳定制服务
  18. 阿里P8架构师谈(9):流量高峰时期的性能瓶颈有哪些、以及如何来解决
  19. LW_OOPC学习01
  20. Rabbitmq手动未确认解决方案

热门文章

  1. xenserver 服务器退不出维护模式,XenServer 常见故障处理
  2. 请帮忙。。。 使用谷歌代码网站上的开源代码,为指定站点提供AJAX定制搜索
  3. 国际域名相关仲裁政策法规
  4. 计算机dj音乐,dj多多电脑版
  5. Photoshop CC 2019安装教程(内含crack文件)
  6. STM32 定时器及PWM计算占空比计算周期
  7. 03 数据分析之分布分析
  8. javascript与生活:papago行车记录仪播放器golife无卫星图修复方法
  9. PH10全彩 LED屏 64*16 点阵显示4个汉字调试心得
  10. Layer——弹出层