目录
0、论文精华
- 针对卷积操作中的乘法操作的计算量大的问题,将加法网络应用到了SISR任务中。
- 分析提出了将加法网络应用到底层视觉SR任务中的两点困难,同时提出了相应的解决方法,实验证明,效果较为理想。
- 恒等映射学习,即每层卷积输入和输出特征间的相似性——提出self-shortcut操作
- 高通滤波器,即增强高频信息,同时保持颜色信息——提出幂激活函数
1、论文来源
2、摘要
- 文章主要是使用加法网络(adder neural networks,AdderNets)来研究SISR任务。
- 不同于CNN,加法网络是使用加法来计算输出特征,因此能够减少由乘法带来的大量的计算成本(由此可以看出该文旨在降低SR模型的能耗)。
- 但是,由于大规模图像分类任务和图像超分辨率任务的计算方式不同,或者说任务属性不同,想要直接将在图像分类领域大获成功的加法网络直接应用到SR这个底层视觉任务中是不容易的。具体而言
- 加法操作不能做到轻易地学习恒等映射,而恒等映射对于图像处理任务来说非常关键。
- 加法操作不能够保证高通滤波器的作用得到实现,换言之,加法算子难以学习到有效的高通滤波器。
- 针对上述问题,
- 文章深入分析了加法操作与恒等映射之间的关系,同时将跳跃连接插入到网络中,目的是想提高使用加法网络的SR模型的性能。
- 然后,还设计了一种可学习的幂激活函数,目的是调整图像的特征分布和精炼图像细节。
- 实验结果表明,同使用CNN的基准模型相比,使用了加法网络的SR模型取得了与其相当的性能以及视觉效果,而在能耗上却减少到原来的2.5倍。
3、引言
- 介绍SISR的定义,以及在计算资源受限的设备上的应用现状。
- 主要围绕能耗问题,介绍基于深度学习的SR的现有研究工作,指出SISR领域现存问题:
- 与图像识别任务中的模型相比,由于SR任务需要使用更大的特征图,SR模型的计算复杂度相比之下更加高。
- 而这些大量计算会消耗更多的能源,同时也会缩短移动设备的使用寿命。
- 针对以上问题,学界也涌现出了许多解决方案:
- 滤波器剪枝(filter pruning)——把网络边变窄
- 知识蒸馏(knowledge distillation)——把网络变浅
- 量化方法(quantization method)——降低乘法的计算复杂度,同时保留原始神经网络的结构
- 值得注意的是,二值化任务是一种特殊情况:网络中的权重和激活的取值在集合{+1, -1}中,因为这样可以大大降低能耗和内存占用。
- 然而,二值化网络有一个不足,即不能保持原始全精度神经网络的准确率。
- 针对这点,Chen等人在CVPR2020上提出了一种AdderNet,使用加法操作来替代乘法操作。(原文:Addernet: Do we really need multiplications in deep learning?)
- 因为加法操作的复杂度远小于乘法的,这点正是本文的motivation所在。
- 为了最大化挖掘AdderNets在SISR领域的潜力,文章分析了将其应用到SISR领域的理论难度:
- SISR模型中任意两个相邻层的输入和输出特征非常接近,它们具有类似的全局纹理和颜色信息,如图2所示。
- SISR模型中任意两个相邻层的输入和输出特征非常接近,它们具有类似的全局纹理和颜色信息,如图2所示。
- 针对一层加法网络并不能学习到恒等映射的问题,文章提出插入跳跃连接,同时专门针对SISR任务搭建新的加法模型。
- 针对加法操作也很难学习到高通滤波器的问题,文章设计了一个可学习的幂激活函数。
- 基于上述两种技术,文章用加法滤波器取代了目前SISR网络中常用的卷积滤波器,并建立了相应的加法模型。
- 使用加法滤波器搭建的模型,能够将普通神经网络的总能耗降低50%以上,具体情况如图1所示!
4、相关工作
- 简要介绍了神经网络压缩和节能方法的相关工作。
- 模型压缩方法:
- 网络剪枝:Efficient image super resolution via channel discriminative deep neural network pruning
- 设计高效的基本模块:
- 神经结构搜索NAS
- ICML2020:Autogan-distiller: Searching to compress generative adversarial networks
- ICCV2019:Autogan: Neural architecture search for generative adversarial networks
- AAAI2020: Efficient residual dense block search for image superresolution
- 知识蒸馏
- ACCV2018:Image super-resolution using knowledge distillation
- NIPS2015 Workshop:Distilling the knowledge in a neural network
- NIPS2020:Kernel based progressive distillation for adder neural networks
- 低功耗计算方法
- 模型量化:saves energy by reducing the number of bits required to represent each weight or feature component.
- 不足:量化网络存在精度损失问题。
- 用加法替换乘法操作
- 模型量化:saves energy by reducing the number of bits required to represent each weight or feature component.
5、网络结构
- 使用加法网络必须保证两点,即要解决的两点问题:
- 每层卷积输入和输出特征之间的相似性(学习一致性/恒等映射)
- 增强高频细节信息(实现高通滤波)
5.1 Preliminaries and Motivation
- 这里的内容基本上前面都讲过了,只不过对部分相关工作表述更加细致而已,不再赘述,详见原文,这也算是论文写作的一种套路。
- 由于上述两点保证,文章提出需要重新为SISR网络专门设计新的加法网络框架!
- 原始的加法操作为:
5.2 用加法网络学习恒等映射——解决第一个问题
- 通常,任意使用神经网络的SR模型都是以端到端的方式学习从输入LR图像到HR图像的映射。除了增强高频细节外,还应保持图像的整体纹理和颜色信息。详见图2。
- 从图2中可以看出,每个卷积层的输入特征映射和输出特征映射之间的差异非常相似。
- 这个观察结果表明,在基于深度学习方法的SISR任务中,恒等映射非常重要。
- 单层加法网络由于使用了L1范式来计算滤波器和输入数据之间距离,因此不能学习到恒等映射。
- 堆叠更多加法层可能会缓解这个问题,但会显著增加模型的大小和复杂性。详细的证明参考原文!
- 为了解决这个问题,文章提出改进现有的加法单元来SR任务。
- 实际上,文章为每一层加法网络提出使用了self-shortcut操作,即
- Y l = X l + W l ⊕ X l \bm{Y^l=X^l+W^l \oplus X^l} Yl=Xl+Wl⊕Xl (7)
- 其中 W l \bm{W^l} Wl 是加法滤波器的第 l \bm{l} l 层, X l \bm{X^l} Xl 和 Y l \bm{Y^l} Yl 分别是输入和输出
- 可以发现,上式输出中包含了输入 X l \bm{X^l} Xl 本身,因此可以利用该公式通过降低 W l ⊕ X l \bm{W^l \oplus X^l} Wl⊕Xl 的量级(magnitude),来学习恒等映射。
- 实际上,文章为每一层加法网络提出使用了self-shortcut操作,即
- 有别于图像分类上层视觉任务,底层视觉任务SISR问题中特征图的尺寸是需要保持一个固定的大小的,即输入和输出的高和宽一般是不变的。
- 因此,上面的公式可以无缝引入到大多数传统的SISR模型中。
- 据此,本文在实验的过程中,将利用上述公式将输入和输出尺寸相同的卷积层进行替换!
5.3 可学习的幂激活函数——解决第二个问题
- 除开5.1节中所说的恒等映射的问题之外,加法过滤器还不能很好地保证传统卷积滤波器的一个重要特性。
- SISR模型的目标是增强图像的细节,包括LR输入图像的颜色和纹理细节信息。
- 因此,在大多数现有的SISR模型中,高通滤波器也是一个很重要的组成部分。
- 从图2中可以观察到,随着网络层数的加深,输入图像的细节得到了逐步的增强。
- 通常,自然图像是有不同频率域的信息组成的。
- 例如,图像中的背景和大面积的草地属于低频信息,因为在这些区域中大部分的相邻像素之间都是很相似的。
- 相反地,图像中物体和一些建筑物的边缘信息属于高频信息。
- 实际上,如果我们定义任意一张图像为高频信息和低频信息的组合,即
I
=
I
H
+
I
L
\bm{I=I_H+I_L}
I=IH+IL ,那么SR任务以及其他图像处理问题中理想的高通滤波器可以定义为:
- Φ ( I ) = Φ ( I H + I L ) = σ ( I H ) \bm{\Phi(I)=\Phi(I_H+I_L)=\sigma(I_H)} Φ(I)=Φ(IH+IL)=σ(IH)
- 该高通滤波器只保存输入图像中的高频信息
- 其中 σ ( I H ) \bm{\sigma(I_H)} σ(IH) 正是高频信息部分的卷积响应/特征(convolution response)
- 上述公式可以帮助SISR模型消除冗余输出和噪声,同时增强高频细节,这也是SISR模型中非常重要的组成部分。
- 类似地,对于传统的卷积操作来说,上述公式的功能能够直接得到实现。例如,一个 2 × 2 \bm{2\times2} 2×2 的高通滤波器 [ − 1 + 1 + 1 − 1 ] \bm{\left[\begin{array}{cc}-1 & +1 \\ +1 & -1\end{array}\right]} [−1+1+1−1] ,可被用于移除 I \bm{I} I 中任意的平坦区域(flat areas)。
- **但是,**加法网络不可能实现上述公式中的功能。详细证明看原文!
- 加法器神经网络中的超分辨率过程将会更加复杂。
- 为了解决上述问题,需要设计新的使用加法网络的结构去实现SISR任务,从而弥补上述不足。
- 诚然,我们也可以添加一些参数和滤波器来提高使用加法网络的SR模型的能力,从而节省能源和计算量。
- 幸运的是,Sharabati 和 Xi:Fast local polynomial regression approach for speckle noise removal(ICPR2016) 在图像去噪任务中应用了Box-Cox变换,他们发现该变换可以实现与高通滤波器相似的功能,但是不会增加大量参数和计算。
- Oliveira等人进一步讨论了Box-Cox变换]在图像超分辨率中的作用。
- 此外,还探索了一种保持符号的幂律点变换(power law point transformation),以强调输入图像中具有丰富细节的区域 原文:Nonlinear unsharp masking methods for image contrast enhancement。
- 因此,文章提出了一个可学习的幂激活函数来解决 AdderNet 的缺陷并细化/精炼输出图像的细节,即
-
P
(
Y
)
=
s
n
g
(
Y
)
⋅
∣
Y
∣
α
P\bm{(Y)}=sng(\bm{Y})\cdot|\bm{Y}|^\alpha
P(Y)=sng(Y)⋅∣Y∣α (11)
- 其中 ( Y ) \bm{(Y)} (Y) 是输出特征, s g n ( ⋅ ) sgn(·) sgn(⋅) 是符号函数, α > 0 \alpha > 0 α>0 是用于调整信息和分布的可学习参数。
- 当α>1时,上述激活函数可以增强输出图像的对比度与高频信息。
- 当0<α<1时,上述公式可以平滑输出图像中的所有信号,并去除伪影和噪声。
- 此外,上述函数可以很容易地嵌入到任何SISR模型中的ReLU激活函数中。
-
P
(
Y
)
=
s
n
g
(
Y
)
⋅
∣
Y
∣
α
P\bm{(Y)}=sng(\bm{Y})\cdot|\bm{Y}|^\alpha
P(Y)=sng(Y)⋅∣Y∣α (11)
- 总的来说,通过self-shortcut操作与幂激活函数,本文成功解决了利用加法网络实现SISR任务所遇到的两个问题。
- 尽管引入了一些额外的计算,例如,等式(7)需要一个shortcut来保持输入数据中的信息,以及等式(11)中的可学习参数α增加了一些额外的乘法。
- 然而,与卷积层或加法器层所需的海量运算相比,这些计算量可以忽略不计。例如,等式(2)中定义的加法器操作的计算量约为 2 k 2 c i n c o u t h w 2k^2c_{in}c_{out}hw 2k2cincouthw,等式(7)和(11)需要的额外计算都等于 c o u t h w c_{out}hw couthw。
- 考虑到 2 k 2 c i n 2k^2c_{in} 2k2cin 在现代深度神经架构中通常是一个相对较大的值(例如,k=3和=64),每层的额外计算量比原始方法减少了1000倍以上。
6、实验结果与分析
- 训练设置:
- 遵循了原始加法网络中的实践,没有替换网络中的第一层和最后一层卷积,同时每一加法层都是用了Batch Norm.。
- 为了提升加法器网络的收敛速度,文中的模型中加法层的学习速率比基准模型中卷积层的学习速度提高了10倍,分别是 3 × 1 0 − 3 3\times10^{-3} 3×10−3 与 3 × 1 0 − 4 3\times10^{-4} 3×10−4 。
- 优化器:使用快速的ADAM。
- 超参数设置: β 1 = 0.9 \beta_1 = 0.9 β1=0.9、 β 2 = 0.999 \beta_2 = 0.999 β2=0.999、 ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=10−8
- 其他如图像块的大小以及数据增强策略,与基准模型VDSR和EDSR中的一样。
6.1 消融实验
- AdderSR网络的精度损失情况可以参考表格中的结果,在不同测试集精度损失分别为(由小到大):B100是0.09、Set14是0.1、Set5是0.16、而Urban数据集是0.28,精度损失最大!
6.1.1 消融实验中的特征可视化
- 没有self-shortcut操作,图像中的细节信息例如人脸、汽车和树木遭受到不同程度的模糊或者扭曲。
- 显然,幂激活函数能够强调高频信息(图像细节边缘、边角),而部分低频信息被移除了,达到了预期效果。
6.2 与SOTA对比
6.2.1 定量结果
- 在三个倍数上,平均的PSNR损失是0.17dB。
- 其实不同的放大因子或者数据集的损失程度是不一样的,全部平均的话过于平滑,不利于看出具体的情况。
- 各个放缩因子或者数据集上的PSNR损失,可以自行计算,特别注意到Urban数据集(数据及特点:建筑物的纹理细节非常吩咐)上的PSNR损失是最高的。
6.2.2 定性结果
- 从视觉效果中,我们也可以看出,视觉上相差不大的图像,但是PSNR值却相差甚远,从这个方面我们可以得知,目前优良的图像质量评价指标有待开发!
- 这张图片中选取的数据集应该是较为简单的,要是有Urban数据集的就更能有力地证明本文方法的有效性!
6.3 能耗分析
6.4 补充材料
- 给出了同剪枝、量化方法的视觉效果对比,证明了加法网络的优越性。
7、结论
- 经典的四段式:
- 提出网络
- 重申创新点及其效能
- 实验结果证明了本文的创新点
- 未来工作
8、点评
- 首先,这篇文章的创新点真的很新颖,很好地分析了将加法网络应用到底层视觉SR任务中存在的问题,并逐一提出了对应的解决方法。
- 这个新的加法网络不仅能够用在SR上,还可以在未来去解决去噪、去模糊等同为底层视觉任务上。
- 不足:
- 仅仅给出了能耗对比
- 没有给出模型的推理时间对比、内存占用、FLOPs等指标!
- 没有给出参数量对比情况,既然文中分析了参数量变化,理应给出来的