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 损失















