Addernet学习笔记 --- AdderNet: Do We Really Need Multiplications in Deep Learning?

AdderNet: Do We Really Need Multiplications in Deep Learning?

CVPR2020新论文,作者团队:北京大学&华为诺亚方舟实验室等
论文链接:https://arxiv.org/abs/1912.13200v3
github开源链接:https://github.com/huawei-noah/AdderNet

本论文提出用加法替代乘法操作的方法,在不降低精度的情况下大幅减少算力消耗。

在Addernet中,采用滤波器与输入特征之间的1范数距离作为输出响应。为了获得更好的性能,作者团队通过研究全精度梯度,开发了一种特殊的加法器反向传播方法。然后根据每个神经元梯度的大小,提出了一种自适应学习速率策略来增强加法器的训练过程。

如何让避免CNN中的乘法呢?研究人员使用L1了距离。L1距离是两点坐标差值的绝对值之和,不涉及乘法。
Addernet学习笔记 --- AdderNet: Do We Really Need Multiplications in Deep Learning?_第1张图片
加法运算是L1距离中的主要操作,使用补码可以轻松地将求差值的运算转化为加法。
研究人员在此基础上提出了加法器网络AdderNet,下图展示了AdderNet和CNN的不同之处:
Addernet学习笔记 --- AdderNet: Do We Really Need Multiplications in Deep Learning?_第2张图片
不同类别的CNN特征按其角度来划分。由于AdderNet使用L1范数来区分不同的类,因此AdderNet的特征倾向于聚集到不同的类中心。

结果表明,在ImageNet数据集上使用ResNet-50,在卷积层不进行任何乘法运算的情况下,所提出的加法器可以达到74.9%的Top-1精度和91.7%的Top-5精度。如下图所示:
Addernet学习笔记 --- AdderNet: Do We Really Need Multiplications in Deep Learning?_第3张图片

作者表示,在未来的工作中,他们将研究AdderNet的量化结果,以实现更高的速度和更低的能耗,以及AdderNet的通用性,不仅用于图像分类,还将用到目标检测和语义分割等任务中。

参考:
https://zhuanlan.zhihu.com/p/101388801
http://www.360doc.com/content/20/0227/17/10240337_895236909.shtml
https://www.zhihu.com/question/365144981?rf=365131015

你可能感兴趣的:(深度学习,模型压缩与加速)