【论文笔记】二值化神经网络(Binarized Neural Network)
来源:互联网 发布:dreamweaver 替代软件 编辑:程序博客网 时间:2024/05/19 07:27
文章链接:Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1 是2016年2月份新出的一篇文章。
文章的主要思想是通过二值化weights和activations,来提高NN的速度和减少其内存占用。
1. Binarization Function
首先是如何对weights和activations进行二值化。如下图左,Binarization function 很简单,就是一个符号函数。但是作者就想了啊,符号函数不好进行梯度的反向传播啊,因此就把它近似成了右边的Htanh(x)的函数,这样在[-1,1]区间内导数就等于1。
2. 网络前向传播
那么除第一层(输入层)以外,每一层的前向传播过程如下:
首先权重
3. 网络反向传播
然后反向传播过程如下,要注意的是权重和激活值的更新并不是二值的,因为如果这样做的话误差会很大。
4. 输入层特征编码
整个过程基本就是这样。还有一点,输入层的特征是没有进行二值化的,那怎么办呢?由于图像像素值分布在[0,255]之间,所以可以用8比特来表示,这样就能将输入的实值像素值变成二值化的编码了。整体BNN的流程如下,将乘法运算都变成了XNOR运算,可想而知其运算会很快。
5. 实验结果
实验结果如下,Baseline是32bit float的DNN方法,其他两个是在不同平台上运行的BNN方法,虚线表示训练的error rate,实线表示验证的error rate。可以看出BNN在训练时会比较慢,但是精度和DNN差不太多。
BNN的优势主要在于其测试速度快,占用内存小。与32bit DNN相比,它的内存占用减少了32倍,并且运行速度在GPU上快了7倍。It is amazing! 接下来的考虑就是能否在更复杂的数据库上得到和普通DNN差不多的精度,同时保持效率上的优势了。
- 【论文笔记】二值化神经网络(Binarized Neural Network)
- 【论文笔记】二值化神经网络(Binarized Neural Network)
- 神经网络笔记(Neural Network)
- Binarized Neural Networks笔记
- 蒸馏神经网络(Distill the Knowledge in a Neural Network) 论文笔记
- 深度学习笔记(1)——神经网络(neural network)
- 【论文笔记】residual neural network-kaiming he
- 【论文笔记】Recurrent Neural Network Regularization
- 论文笔记之:Progressive Neural Network
- Neural Network Concept神经网络(一)
- 人工神经网络(ANN, artificial neural network)
- 神经网络(Neural Network)的表示
- 卷积神经网络(Convolutional Neural Network)总结
- 卷积神经网络(Convolutional Neural Network)总结
- 卷积神经网络(Convolutional Neural Network, CNN)
- 回归神经网络RNN(Recurrent Neural network)
- 神经网络入门(neural network) ---概述
- 卷积神经网络(Convolutional Neural Network)
- 移动端h5开发相关内容总结--CSS篇
- 学习OPENCV
- 《深入理解计算机系统》 练习题2.31答案
- 技术专有名词缩写整理
- 通过 ulimit 改善系统性能
- 【论文笔记】二值化神经网络(Binarized Neural Network)
- 《JAVASCRIPT:THE COMPLETE REFERENCE》读书笔记 数据类型与变量
- ActionMode使用及样式配置
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-31
- Git学习一之常用命令
- chrome 浏览器自带高级功能(通过地址栏打开)
- Android startActivityForResult用法
- zoj3596 求一个数N的最小的一个倍数中包含M个不同的数字
- 程序中加载登录窗口进行登录