
人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。
摘要: 二值化神经网络BNN由于可以实现极高的压缩比和加速效果,所以它是推动以深度神经网络为代表的人工智能模型在资源受限和功耗受限的移动端设备,嵌入式设备上落地应用的一门非常有潜力的技术。虽然目前的BNN仍然存在着 ...
二值化神经网络BNN由于可以实现极高的压缩比和加速效果,所以它是推动以深度神经网络为代表的人工智能模型在资源受限和功耗受限的移动端设备,嵌入式设备上落地应用的一门非常有潜力的技术。虽然目前的BNN仍然存在着很多不足,如模型精度仍然比全精度低了不少,无法有效地泛化到更复杂的任务上,依赖于特定的硬件架构和软件框架......,但我们同时也能看到BNN从最初的2015年ImageNet上只有27%的Top-1准确率发展到2020年ReActNet-C的71.4%的进步,这五年时间众多研究人员在这条道路上不断推动着BNN朝着更准更快更稳的方向发展,所以我们有理由相信,BNN未来可期!
英文原文 : Simons T, Lee D J. A review of binarized neural networks[J]. Electronics, 2019, 8(6): 661.
下载链接:
A review of binarized neural networks(https://www.mdpi.com/2079-9292/8/6/661/pdfwww.mdpi.com)
注:本文主要是对上述英文综述论文的部分中文翻译和一些对BNN的个人理解,这篇综述的发表日期是2019年6月份,个人感觉这篇综述写的很好,语言简洁,内容详实。后续2020年3月北航发表了一篇更新的二值化综述,但因为已经有人翻译过了,所以不再重复造轮子,原文链接贴在下面,中文翻译知乎随便一搜就能找到。
Binary Neural Networks: A Survey(https://arxiv.org/pdf/2004.03333)
闲扯淡
自大四毕业进入课题组以来,在模型压缩与优化加速领域的学习也有一年多了。过去的一年虽然主要是做的模型8-bit量化方面的工程实践(给硬件组当狗),但是同时也看了很多论文,陆陆续续也对整个领域其他方面如剪枝,知识蒸馏,矩阵低秩分解等,和一些基本的轻量级网络如SqueezeNet, ShuffleNet系列,MobileNet系列,EfficientNet系列的结构设计有了一定的了解。其中,二值化神经网络(BNN)尤为引起我的兴趣,因为它有着更为极端的压缩率和极低的计算量。虽然BNN仍受限于复杂数据集/任务上很不理想的准确率和对特定硬件架构或软件框架的依赖,而模型压缩领域真正能应用于实处且算得上通用的技术仍然限于通道剪枝,8bit量化和轻量级网络设计(如果可以归类为模型压缩领域的话),但是我仍然认为BNN是模型压缩领域皇冠上的明珠,因为大道至简。
开始正文
二值化神经网络(BNN)指的是仅使用+1和-1两个值来表示weights和activations的神经网络,相比于全精度的神经网络,它可以用XNOR+popcount这样极简单的组合代替float32的乘累加来实现卷积操作,从而节省了大量的内存和计算,大大方便了模型在资源受限设备上的部署。但同时,由于二值所能表达的信息量有限,所以BNN在模型精度方面一直都是远低于全精度模型,虽然最近的研究如MeliusNet,IRNet和ReActNet已经努力地将BNNs在ImageNet数据集上的Top-1拉到了0.70以上,与相应的全精度模型差距拉到3个点左右,但他们同时也增加了不少计算量,并且暂时还难以有效地推广到目标检测,语义分割等复杂任务上,所以BNN的升级打怪之路仍然道阻且长。目前有关BNN的研究从大的方面来说就是两个:如何提升BNN的精度和如何有效地部署在低功耗且资源受限的平台上。
本篇综述主要从以下几个方面进行的阐述:
二值化神经网络的基本介绍;
二值化神经网络的主要发展;
提升二值化神经网络精度和推理速度的技巧;
二值化神经网络在不同数据集上的精度表现;
二值化神经网络的硬件实现;
特意说明,因为本篇综述是2019年6月发表的,所以这个时间点之后的相关论文的贡献并没有被总结在内,而我发现这段时间出现了不少优秀的论文,如Bi-real Net, MeliusNet,IRNet, ReActNet等等,他们提出了很多巧妙的技术来解决目前二值化神经网络中存在的问题,所以我会将自己对这些论文的一些总结穿插在接下来的阐述中,其中势必有一些理解不正确的地方,希望能够指出,我们共同进步!
基本介绍
二值化神经网络的idea最初源于2016年深度学习三巨头之一Yoshua Bengio的论文《BinaryNet: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1.》,它首次提出一种方法,可以用随机梯度下降的方式训练同时使用二值化的weights和activations的神经网络。为了解决二值化weights中梯度的传递问题,作者提出在训练过程中保持一个实值(float32)的weights,然后使用信号函数sign来获得二值化的weights
前向和反向计算的流程如下图所示

二值化神经网络(BNN)因极高的压缩比和加速效果成为推动AI模型在资源受限设备上应用的关键技术。尽管面临诸多挑战,如精度较低、泛化能力有限等,BNN在五年间取得了显著进步,从ImageNet上27%的Top-1准确率提升到71.4%。文章总结了BNN的主要发展脉络和技术突破。

最低0.47元/天 解锁文章
2203

被折叠的 条评论
为什么被折叠?



