二值网络:训练权重和激活值限制在+1或-1的神经网络

Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or -1

介绍

这篇论文主要作了以下改进:
1.引入一种训练二值神经网络的方法。在运行时,以及在训练的过程中计算参数梯度时,神经网络具有二值的权重和激活值。
2.做了两套实验,每一套在不同的框架下完成,分别是Torch7以及Theano,他们在基于MNIST ,CIFAR-10,SVHN等数据集上训练BNN时都几乎实现了最佳的结果。
3.在前传的时候(不管是在运行还是在推断的时候),BNN极大地减少了内存的消耗(大小以及访存数),把大多数的算术操作以bit位运算代替,这极大地增加了能效。精心设计的硬件能够减少60%的时间复杂度
4.MNIST BNN的速度是未经优化的GPU核的7倍,而分类精确度却不会损失。

1.1 Deterministic vs Stochastic Binarization 确定二值与随机二值

Deterministic Binarization
在这里插入图片描述
Stochastic Binarization
在这里插入图片描述
随机二值化看起来好,但是更难部署,因为当二值化的时候它需要硬件产生随机的比特。结果,我们大部分使用的是确定二值,除了在我们的一些实验中训练过程中的激活。

1.2. Gradient Computation and Accumulation

BNN 训练使用二值化的权重核激活值以计算参数梯度,累加权重的实数梯度。实数权重使用SGD算法。

1.3. Propagating Gradients Through Discretization

sign函数的导数几乎处处为0,不能反向传播。

猜你喜欢

转载自blog.csdn.net/weixin_43534668/article/details/88693711