二值化神经网络以其高模型压缩率和快计算速度的潜在优势,近些年成为深度学习的热门研究方向。本篇博文将对二值化神经网络做一个详细的介绍。
尊重原创,转载请注明:
http://blog.csdn.net/tangwei2014/article/details/55077172
1. 二值化神经网络简介
二值化神经网络,是指在浮点型神经网络的基础上,将其权重矩阵中权重值和各个激活函数值同时进行二值化得到的神经网络。二值化神经网络具有很好的特性,具体体现在:
- 通过将权重矩阵二值化,一个权重值只占用一个比特,相比于单精度浮点型权重矩阵,网络模型的内存消耗理论上能减少32倍,因此二值化神经网络在模型压缩上具有很大的优势。
- 当权重值和激活函数值同时进行二值化之后,原来32个浮点型数的乘加运算,可以通过一次异或运算(xnor)和一次popcnt运算解决,在模型加速上具有很大的潜力。
通过以上分析可以看出,二值化神经网络在模型压缩和模型加速方面都具有非常明显的优势。研究二值化神经网络对解决当前浮点型神经网络模型应用到嵌入式或移动场景下 (例如手机端、可穿戴设备、自动驾驶汽车等) 存在的模型过大,计算密度过高等问题,具有很重大的意义。一种全连接的二值化神经网络示例如图1所示。二值化神经网络中的二值化通常指将权重值和激活函数值二值化到+1和-1实现。