本文主要介绍的是加法神经网络的超分应用 (CVPR 2021 Oral),这篇是华为诺亚AdderNet的衍生版本,在超分辨率上的应用。

AdderNet显著降低了分类网络的能耗,同时实现了相当的性能。所以,作者的新目标是将AdderNet应用在具有更高的能耗和计算复杂性图像超分辨率任务上。

目录

1.加法神经网络能不能应用于超分的任务上?

相关工作

使用高效operator的

使用蒸馏的

使用slimming技术的

使用NAS的

2.具体是怎么做的?

残差解决Identity mapping的问题

3.效果如何

4.总结

5.给我们的启示


1.加法神经网络能不能应用于超分的任务上?

理论上可行,但是应注意两个问题:

(1)超分网络相邻2层之间的差异在纹理和颜色信息上都非常相似,AdderNet是否能实现这样的效果

(2)随着深度的增加,高频信息将得到增强,高通滤波器应如何设置?

因此设计的加法神经网络应能保证这两个重要的性质。

相关工作

现有的超分辨率方法大致有三类:基于插值的方法、基于字典的方法和基于深度学习的方法。

超分任务用公式可以表达为:

代表使用的先验例如平滑和附加噪声。

香港中文大学的董超老师再ECCV 2014年发表的Learning a deep convolutional net work for image super-resolution是第一个将深度学习应用在超分上的工作。在ECCV 2016年发表的Accelearting the super-resolution convolutional neural network又第一个通过将网络应用于低分辨率图像而不是上采样输入图像,提高了超分模型的效率。

VDSR,EDSR和RDN使用非常深的网络来完成超分的任务,虽然提升了性能,但是参数量和计算量也大幅增长。前任也有许多设计高效超分模型的方法:

使用高效operator的

CARN(ECCV 2018):Fast, accurate, and lightweight super-resolution with cascading residual network

IDN(CVPR 2018):Fast and accurate single image super-resolution via information distillation network

MAFFSRN(ECCV 2020):Ultra lightweight image super-resolution with multi-attention layers

使用蒸馏的

(ACCV 2018):Image super-resolution using knowledge distillation

使用slimming技术的

(ECCV 2020):Gan slimming: All-in-one gan compression by a unified optimization framework

使用NAS的

(ICML 2020):Autogan-distiller: Searching to compress generative adversarial networks

(Arxiv):Efficient residual dense block search for image super resolution

即使这些方法得到的模型比较高效,但是对于部署在端侧设备来讲还不够轻巧。

2.具体是怎么做的?

残差解决Identity mapping的问题

图1

通过图1VDSR模型不同特征层的输出观察可以发现超分任务中相邻2层之间的差异在纹理和颜色信息上都非常相似。这意味着什么呢?这意味着我们设计的神经网络必须具备恒等映射(identity mapping)的能力,即。对于CNN来讲恒等映射(Identity mapping)非常容易,只需要权重是个单位矩阵即可,但是对于AdderNet来说完成这个任务并不容易,需要,式中的就代表

于是接下来作者给出了个定理:

定理1:不存在加法神经网络的卷积核W,对于任意的都满足 都满足

啥意思呢?意思就是你像训练出权重W,通过任意的图片,输出都不变。那很遗憾,你训练不出这样的权重W。这个是可以证明的。证明如下:

反证法:假设这样的权重W是存在的,则对于任意的都有:

公式1

这里证明的突破口就在这个任意的 ,那么我就可以找一个,使得它满足

此时应该有:

式1 

那么找一个,使得它满足,则同样应该有

化简一下

式2

比较一下式1和式2,发现矛盾,故假设不成立,定理得以证明。

所以原始的AdderNet不适用于SR任务。要对adder unit做一些改进,你不就是要输出等于输入吗,那么可不可以借鉴ResNet的思想只让AdderNet学习出残差。

可以的,事实上作者也是这么做的,令

公式2

这样的AdderNet其实也可以取名为Residual AdderNet。

这样的结果近似于0,对于任意的输入都可以训练出对应的AdderNet。

 可学习指数的激活函数解决高通滤波器的问题:

另外一个超分CNN网络的重要特征是随着深度的增加,高频信息将得到增强,所以许多SISR模型的卷积核就相当于是高通滤波器,使得颜色和纹理信息得以增强。

通常自然图像由不同的频率信息组成,入下图所示。比如背景和大面积的草都是低频信息,其中大部分相邻像素非常接近。 相比之下,物体的边缘对于给定的整个图像来说是精确的高频信息。

把图片定义为:,超分网络中的理想高通滤波器应该定义为:,对于CNN来讲理想高通滤波器比较容易,比如说一个个2*2的高通滤波器可以去除I中的任何flat area。但是对于AdderNet,这样并不容易。

接下来作者给出了个定理:

定理2:是加法网络的输入图片,每个元素都是1,W表示加法网络滤波器的权重,则不存在以及常数a满足下式:

式中,s是任意实数。

这个定理的意思是:对于任意低频的图片s*E,在AdderNet作用之后都会去掉,则W起了高通滤波器的作用。但是很容易发现根根本不存在这样的W。

证明:反证法:假设存在这样的权重,则对于任意的s都有

则令,有

再令有:

那就推出:

显然矛盾,故假设不成立。

定理得证。

所以原始的AdderNet无法完成高通滤波器的功能。

作者于是使用了一种可学习指数的激活函数:

公式3

在上式中,Y是输出特征,是可学习参数,P可以看成是激活函数。

(1)当学习出来的>1时,输出结果的差距被拉大了,强化了高频信息。

(2)当学习出来的0<<1时,输出结果变得更平滑,有利于降噪。

作者在激活函数上做了一点改进,但是这样的做法无疑会引入一些额外运算,但是是微乎其微的。

公式1的计算量大概是,而公式2和公式3引入的额外量,差了

倍,所以微乎其微。

3.效果如何

作者对于VDSR模型和EDSR模型做出了对应的加法神经网络,评价指标是PSNR和SSIM

(on Y channel(i.e., luminance)of YCbCr space)

公式1和公式2作者为了解决上述提出的问题作出的解决方案。

消融实验:

适配SISR的新的操作和激活函数的消融实现

可以看出我们如果不用这两个方法的的话,得到的PSNR将低出平均2.08dB。

特征可视化:

不同策略下AdderSR网络中加法器层的输出特征可视化

从中可以清晰地看出来

1,2对比:没有残差结构的Adder Layer的特征图不能保持其输入特征的细节信息

1,3对比:可学习指数的激活函数有效增强高频区域,使纹理信息更加丰富

超分结果的数值对比:

超分结果的数值对比

从这个表中我们可以看出来AdderNet在不同倍数的低分辨率图片中的PSNR和SSIM指标与普通CNN相差很接近了。

CNN和ANN的能量消耗对比:

从中我们可以看出在VDSR和EDSR模型中ANN的功耗只有CNN的一半左右。

超分结果可视化:

超分结果

从中我们可以看出Adder VDSR和Adder EDSR的效果和VDSR和EDSR效果几乎接近了。能够取到一个很好的效果。

4.总结

自从AdderNet被提出来之后,作者想把AdderNet用于SISR任务中,但是如果要用于超分任务中,有两个问题需要解决:

(1)超分辨率相邻两层之间的差异在纹理和颜色信息上都非常相似,AdderNet将如何实现这种效果?

(2)随着深度的增加,高频信息也必须得到增强,那么AdderNet如何对高频信息进行有效增强?

公式2和公式3就是作者解决以上两个问题的方法。

也就是:

(1)为了实现输入输出相似,借鉴残差结构,Adder unit只需要得到残差即可

(2)为了实现高通滤波器,借鉴Box-Cox变换,通过可学习的实现与高通滤波器类似的功能。

用一句话来概括就是:作者提出了一些新的操作和激活函数来适配SISR,并且做到了跟乘法的baseline基本一致。丰富的对比实验证明了proposed method的有效性。

5.给我们的启示

把AdderNet迁移到不同任务很容易能够想到,但是如何解决迁移过程中出现的一些具体问题才是真正的困难所在。加法滤波器有望取代原始卷积滤波器用于计算机视觉任务当中。在未来的工作中,作者们将研究AdderNet的量化,以实现更高的速度和更低的能耗,以及AdderNet在其他计算机视觉任务如检测和分割中的应用。现在的AdderNet主要是用于加速,现在的分类效果确实还无法超越CNN,这说明仍然有进一步改进的空间。

另外AdderNet必须要修改底层的CUDA代码才能够实现加速。现在现有的GPU芯片有成熟的乘法器模块,所以在当前的GPU硬件上乘法和加法的速度是没有明显的差异的。但是理论上乘法肯定慢于加法,因为乘法可以看成多次加法。也就是说在现有GPU芯片上体现不明显,但会对未来芯片设计产生影响,引领下一代芯片,所以取名为下一代芯片级推理器。

不过目前华为诺亚已经提出了AdderNet的专用和通用硬件加速器了,详情可见华为诺亚提出:AdderNet及其极简硬件设计 - 知乎

论文解读:AdderSR Towards Energy Efficient Image Super-Reso相关推荐

  1. 【论文翻译】3461 AdderSR Towards Energy Efficient Image Super-Resolution(个人粗略翻译)

    AdderSR: Towards Energy Efficient Image Super-Resolution[3461] 本文仅为根据博主个人理解的翻译,如有错误或不准确之处,敬请各位读者指出 摘 ...

  2. 【CVPR2021】AdderSR: Towards Energy Efficient Image Super-Resolution

    目录 0.论文精华 1.论文来源 2.摘要 3.引言 4.相关工作 5.网络结构 5.1 Preliminaries and Motivation 5.2 用加法网络学习恒等映射--解决第一个问题 5 ...

  3. 模型剪枝经典论文解读:《Learning Efficient Convolutional Networks through Network Slimming》

    Learning Efficient Convolutional Networks through Network Slimming 摘要: CNN在落地中的部署,很大程度上受到其高计算成本的限制.在 ...

  4. 论文解读《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

    论文:Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model  基于CNN的目标检测模 ...

  5. Paper:《A Unified Approach to Interpreting Model Predictions—解释模型预测的统一方法》论文解读与翻译

    Paper:<A Unified Approach to Interpreting Model  Predictions-解释模型预测的统一方法>论文解读与翻译 导读:2017年11月25 ...

  6. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  7. CVPR 2017 全部及部分论文解读集锦

    转发链接:http://mp.weixin.qq.com/sbiz=MzI5MDUyMDIxNA==&mid=2247484464&idx=1&sn=b852980edd194 ...

  8. CVPR 2020 Oral 文章汇总,包括论文解读与代码实现

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 [导读]本文为大家整理了10篇CVPR2020上被评为Oral的论文解读和代码汇总. 1.Ra ...

  9. 脑洞大开的机器视觉多领域学习模型结构 | CVPR 2018论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

最新文章

  1. zoj 1204 Additive equations
  2. 拆分命令_在MongoDB分片集群中拆分数据块chunks
  3. 51 nod 机器人走方格
  4. 初探Git git基本用法
  5. 本地---tcpserver与tcpclient
  6. Docker4Dev#7 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用
  7. 前后端分离重复提交_java+react前后端分离项目处理重复提交问题
  8. 未来教育计算机二级答案19,2019年3月计算机二级MSOffice提分试题及答案019
  9. 深入PHP使用技巧之变量
  10. 深度学习自学(一):Loss function 损失函数
  11. Data Mining with R
  12. The Movie db (TMDB)的API申请
  13. chrome真机调试ios
  14. Ubuntu 16.04升级到Ubuntu 16.10的方法:
  15. DTAS 3D在车身公差分析中的应用案例
  16. Conflux CTO 伍鸣博士出席 2019 CAN 大会
  17. c51单片机汇编语言语法错误,关于c51单片机交通灯汇编程序怎么加一个紧急状态按键的问题...
  18. 最全面的微信小程序渲染图片的方式
  19. 对立色彩空间_复制的对立面是什么?
  20. Android安卓应用发布平台汇总

热门文章

  1. JavaScript笔记(狂神说)
  2. tinymce富文本编辑器扩展插件-设置段落间距
  3. android-4集成高德地图的搜索和导航功能
  4. PMSM FOC 滑膜观测器 SMO 算法
  5. dockerspringboot-快速搭建FTP-Image图片服务器
  6. 早期中国文明内生性演进的内在逻辑阐释
  7. 简单的网络爬虫-喜马拉雅音频爬虫
  8. 餐厅设置套餐 html,餐厅如何设计爆款套餐?掌握这5个原则就够了
  9. Python tutrle画棋盘格
  10. Amdahl(阿姆达尔定律) Law