没有乘法的神经网络,你敢想象吗?

没有乘法的神经网络,你敢想象吗?无论是单个神经元的运算还是卷积运算,都不可避免地要使用乘法。
然而乘法对硬件资源的消耗远大于加法。如果不用乘法,全部改用加法应该可以让运算速度大大提升。
去年年底,来自北京大学、华为诺亚方舟实验室、鹏城实验室的研究人员将这一想法付诸实践,他们提出了一种只用加法的神经网络addernet(加法器网络)。一作是华为诺亚方舟实习生,正在北大读博三。
如今,这篇文章已经被cvpr 2020收录(oral),官方也在github上开放了源代码。有兴趣的同学不妨前往一试究竟。
加法器网络简介 加法器网络的核心在于:用l1距离代替欧氏距离。
l1距离是求两点之间坐标差值的绝对值之和,因此全程不涉及乘法。
在这种新的定义下,反向传播中用到的求偏导数运算也变成了求减法。梯度下降的优化过程也被叫做符号sgd(signsgd)。
在加法器网络的新定义下,特征向量的空间分布也和cnn有很大的不同。
那么addernet的实际效果如何呢?
在cifar-10的图像分类任务中,addernet相比当初bengio等人提出的加法神经网络bnn性能有大幅提升,并且已经接近了传统cnn的结果。
开源代码
官方的addernet基于python3和pytorch。
先按照pytorch的官方文档准备imagenet数据集,运行程序评估它在验证集上的效果:
python test.py —data_dir ‘path/to/imagenet_root/’
addernet可以在imagenet数据集上达到74.9%的top-1准确度和91.7%的top-5准确度。
或者将cifar-10数据集下载到本地,测试一下它在cifar-10上的效果
python test.py —dataset cifar10 —model_dir models/resnet20-addernet.pth —data_dir ‘path/to/cifar10_root/’
不过addernet仍需自己训练,官方表示将很快发布预训练模型。
现阶段的addernet并非没有缺陷,作者在项目主页中说,由于addernet是用加法过滤器实现的,因此推理速度较慢,需要用cuda编写才能提高速度。
这与作者希望提高神经网络运算速度的初衷还有一段距离。
但这篇论文的作者表示,今后还会继续加法器神经网络的研究,发表更多的成果,让我们一起期待这项研究取得新的进展吧。
华为诺亚实验室实习生领衔打造
addernet这篇文章的一作名叫陈汉亭,毕业于同济大学数学系,现在在北京大学信息科学技术学院攻读博士学位,同时在华为诺亚方舟实验室实习。
在硕博连读的前三年中,他已经以一作身份发表了5篇论文,其中一篇《data-free learning of student networks》被iccv 2019收录,另外它参与多篇论文还被neurips、ijcai、icml等顶会收录。

Java oom异常的原因分析
SOLIDWORKS 2024钣金和结构系统新功能介绍
浅析ARM对于Cortex-M7的期待与策略
中国企业更偏好Android系统
使用DS2746确定一个电池包基于识别电阻-Using th
没有乘法的神经网络,你敢想象吗?
物联网十二五规划发布 将加大财税支持力度
DevEco Studio 2.1 Beta3强势来袭
中国移动将与产业伙伴共同推进5G安全实现5G+的融合生态
半导体业,“好戏在后头”
蔚来激光雷达供应商Innovusion将完成新一轮融资
JAVA
一文浅析时间敏感网络技术
破解制造业的阿克琉斯之踵
三星计划将于今年第四季度在印度推出三星Galaxy M90
基于指纹识别专用芯片FCHIP2的功能特性及应用方案
小米6配置信息总汇 来看看是否值得为发烧剁手
差分信号0和1是什么?差分信号怎么区分正负?
C8051单片机在交流变频调速系统中的应用(收集)
华为中国合作伙伴大会2023 | “华为数据通信”与“华为网络安全技术与实践”系列书籍重磅发布