Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1
This addresses efficiency challenges for deploying neural networks on resource-constrained devices, representing a novel method rather than an incremental improvement.
The paper tackles the problem of reducing memory and computational costs in deep neural networks by introducing Binarized Neural Networks (BNNs), which use binary weights and activations at run-time, achieving nearly state-of-the-art results on MNIST, CIFAR-10, and SVHN datasets and a 7x speedup on MNIST with optimized GPU kernels.
We introduce a method to train Binarized Neural Networks (BNNs) - neural networks with binary weights and activations at run-time. At training-time the binary weights and activations are used for computing the parameters gradients. During the forward pass, BNNs drastically reduce memory size and accesses, and replace most arithmetic operations with bit-wise operations, which is expected to substantially improve power-efficiency. To validate the effectiveness of BNNs we conduct two sets of experiments on the Torch7 and Theano frameworks. On both, BNNs achieved nearly state-of-the-art results over the MNIST, CIFAR-10 and SVHN datasets. Last but not least, we wrote a binary matrix multiplication GPU kernel with which it is possible to run our MNIST BNN 7 times faster than with an unoptimized GPU kernel, without suffering any loss in classification accuracy. The code for training and running our BNNs is available on-line.