Bayesian Optimized 1-Bit CNNs
**论文作者:**Jiaxin Gu, Junhe Zhao, Xiaolong Jiang, Baochang Zhang, Jianzhuang Liu, Guodong Guo, Rongrong Ji(北京航空航天大学,百度深度学习研究院,华为诺亚方舟实验室等)
**论文地址:**https://arxiv.org/pdf/1908.06314v1.pdf
前言
本文将对 ICCV2019 会议论文《Bayesian Optimized 1-Bit CNNs》进行解读。这篇论文在二值化神经网络(1-bit CNNs)方面取得了最新进展。作者提出了一种新颖的贝叶斯优化的 1-Bit CNNs(简称 BONNs),利用贝叶斯学习,将全精度 kernels 和 features 的先验分布纳入贝叶斯框架,以端到端的方式构造 1-bit CNNs,这是以往任何相关方法都没有考虑到的。实现了连续和离散空间中的贝叶斯损失同时优化网络,将不同的损失联合起来提高模型容量。作者在 ImageNet 和 CIFAR 数据集上的实验表明,与最先进的 1-bit CNNs 相比,BONNs 具有更好性能。
研究现状
量化采用低精度值代替全精度值,可加速卷积运算,同时节省存储开销。而 1-Bit 卷积神经网络是量化的极端情况,其卷积核和激活是二值化的。DoReFa-Net【1】开发了具有低比特宽度参数和梯度的 1-Bit 卷积核以加快训练和推理。不同的是,ABC-Net【2】采用多个二进制权值和激活来近似全精度权值,从而可以降低预测精度退化。
除此之外,Wang 等【3】提出了调制卷积网络,仅对核进行二值化,并取得了比参考基线更好的结果。Leng 等借鉴了 ADMM 思想,由少量比特表示网络权重来压缩深度模型【4】。Bi-real net【5】探索了残差结构的新变体,以保留符号函数之前的真实激活,并提出了对不可微分符号函数的导数的紧逼近。Zhuang 等提出了一种使用两阶段方法对权重和激活进行交替量化的 2~4 位量化方法【6】,并在存储器、效率和性能之间提供了最佳均衡方案。
此外,Wu 等提出了对训练和推理过程进行离散化的方法【7】,它不仅量化了权重和激活,而且量化了梯度和误差。Gu 等提出了一种基于离散投影反向传播算法的量化方法【8】,以获得更好的 1-bit CNNs。
作者认为 1-bit CNNs 与全精度 CNNs 相比,精度明显降低的原因有两个:1)全精度和 1-bit CNNs 之间的关系并未充分研究;2)贝叶斯学习作为一种公认的全局优化策略【9】,在 1-bit CNNs 领域被忽略了。
方法
概述
作者利用贝叶斯学习的有效性以端到端的方式构建 1-bit CNNs。特别地,引入了两个新的贝叶斯损失,在此基础上优化 1-bit CNNs,提高了效率和稳定性。在统一的理论框架下,这些贝叶斯损失不仅考虑了 1-bit CNNs 的 kernel、weight 分布,而且还监督了 feature 分布。下图显示了损失如何与 CNN backbone 相互作用。

考虑贝叶斯框架中 kernels 和 features 的先验分布,实现了两个新的贝叶斯损失,以优化 1-bit CNNs 的计算。贝叶斯 kernel 损失改善了各卷积层的分层 kernel 分布,而贝叶斯 feature 损失引入了类内紧密度(intra-class compactness)以减轻量化过程带来的干扰。注意,贝叶斯 feature 损失仅适用于全连接层。
贝叶斯损失(Bayesian Losses)
训练 1-bit CNNs 有三个步骤:正向传递,反向传递和通过梯度更新参数。二值化的权重仅在前向(inference)和梯度计算时考虑。更新参数后,获得了全精度权重。如何将其连接是确定网络性能的关键。作者在概率框架中对其进行求解,以获得最佳的 1-bit CNNs。
1. 贝叶斯 Kernel 损失




2. 贝叶斯 Feature 损失

通过贝叶斯学习优化 1-bit CNNs

反向传递


实验
消融实验
作者使用 WRN22 在 CIFAR-10 数据集上,结果如下表所示,贝叶斯 kernel 损失和贝叶斯 feature 损失都可以提高准确度,一起使用时,Top-1 准确度达到最高 59.3%。

如下图所示为 BONNs 第 1 个二值化卷积层的 kernel 权重分布。在训练之前,将 kernel 初始化为单模高斯分布。从第 2 个到第 200 个 epoch,两种模式下的 kernel 权重分布在变得越来越紧凑,证明了贝叶斯 kernel 损失可以将 kernel 正则化为可能的二进制分布。

如下图所示,为 XNOR 和 BONN 的权重分布对比。XNOR 和 BONN 之间的权重分布差异表明,通过我们提出的贝叶斯 kernel 损失,在卷积层上对 kernel 实现了了正则化。

下图显示了 XNOR Net 和 BONN 训练过程中二值化值的演变,表明在 BONN 中学习到的二值化值更加多样化。

CIFAR10/100 数据集结果
作者使用 Three WRN 变种:22 层 WRN,kernel stage 为 16-16-32-64 和 64-64-128-256。如下表所示,BONN 在两个数据集上的性能均优于 XNOR Net。即使与全精度 WRN 相比,BONN 性能也相当不错。

ImageNet 数据集结果
如下表所示,与其他最先进 1-bit CNNs 量化网络相比,BONN 获得最高的准确度,其中 Bi-Real Net 和 PCNN 的性能与 BONN 最为接近,而 BONN 的 Top-1 分别超过前者大约 3% 和 2%。DoReFa-Net 和 TBN 尽管使用了超过 1-bit 来量化激活,性能仍逊于 BONN。

内存使用率和效率分析
在 BONN 中,BONN 遵循 XNOR-Net 采用的策略,该策略在第一个卷积层,所有 1×1 卷积和全连接层中保持全精度参数,由此,ResNet18 的总体压缩率为 11.10。对于效率分析,如果卷积的所有操作数都是二进制的,可以通过 XNOR 和位计数操作来估计卷积【M. Courbariaux, I. Hubara, D. Soudry, R. El-Yaniv, and Y. Bengio. Binarized neural networks: Training deep neural networks with weights and activations constrained to+ 1 or- 1. arXiv preprint arXiv:1602.02830, 2016】。
总结
作者提出了贝叶斯优化的 1-bit CNNs(BONN),该模型考虑了全精度 kernel 和 features 分布,从而形成了具有两个新贝叶斯损失的统一贝叶斯框架。贝叶斯损失用于调整 kernel 和 features 的分布,以达到最佳解决方案。
参考文献
【1】S. Zhou, Y. Wu, Z. Ni, X. Zhou, H. Wen, and Y. Zou. Dorefa-net: Training low bitwidth convolutional neural networks with low bitwidth gradients. arXiv preprint arXiv:1606.06160, 2016.
【2】X. Lin, C. Zhao, and W. Pan. Towards accurate binary convolutional neural network. In Advances in Neural Information Processing Systems, pages 345–353, 2017.
【3】X. Wang, B. Zhang, C. Li, R. Ji, J. Han, X. Cao, and J. Liu. Modulated convolutional networks. In IEEE Conference on Computer Vision and Pattern Recognition, pages 840–848, 2018.
【4】C. Leng, Z. Dou, H. Li, S. Zhu, and R. Jin. Extremely low bit neural network: Squeeze the last bit out with admm. In AAAI Conference on Artificial Intelligence, 2018.
【5】Z. Liu, B. Wu, W. Luo, X. Yang, W. Liu, and K.-T. Cheng. Bi-real net: Enhancing the performance of 1-bit cnns with improved representational capability and advanced training algorithm. In Proceedings of the European Conference on Computer Vision, pages 747–763. Springer, 2018.
【6】B. Zhuang, C. Shen, M. Tan, L. Liu, and I. Reid. Towards effective low-bitwidth convolutional neural networks. In IEEE Conference on Computer Vision and Pattern Recognition, June 2018.
【7】S. Wu, G. Li, F. Chen, and L. Shi. Training and inference with integers in deep neural networks. In International Conference on Learning Representations, 2018.
【8】J. Gu, C. Li, B. Zhang, J. Han, X. Cao, J. Liu, and D. Doermann. Projection convolutional neural networks for 1-bit cnns via discrete back propagation. In AAAI Conference on Artificial Intelligence, 2019.
【9】C. Blundell, J. Cornebise, K. Kavukcuoglu, and D. Wierstra. Weight uncertainty in neural network. In International Conference on Machine Learning, pages 1613–1622, 2015.

