admin管理员组

文章数量:817307

论文解读:AdderSR Towards Energy Efficient Image Super

本文主要介绍的是加法神经网络的超分应用 (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