【Paper Reading】Forward and Backward Information Retentionfor Accurate Binary Neural Networks

CVPR 2020
商汤科技 北航
文献地址:https://arxiv.org/abs/1909.10788
源码地址: https://github.com/htqin/IR-Net

摘要

权值和激活二值化是一种有效的深度神经网络压缩方法,可以利用位操作加速前向推理。虽然许多二值化方法通过最小化前向传播的量化误差来提高模型的精度,但二值化模型与全精度模型之间仍存在明显的性能差距。我们的实证研究表明,量化在正向和反向传播中都带来了信息损失,这是训练精确的二值神经网络的瓶颈。为了解决这个问题,我们提出了一个信息保留网络(IR-Net),保留由正向激活和反向梯度组成的信息。IR-Net主要有两个技术贡献: (1)Libra 参数二值化(Libra-PB):通过在前向传播过程中平衡和标准化权重,来同时减小量化误差和参数的信息损失。(2)误差衰减估计:在反向传播中,联合考虑更新能力和准确的梯度,通过逐步逼近符号函数来最小化梯度的信息损失。我们首次从统一信息的角度研究了二进制网络的正向和反向过程,为网络二值化的机理提供了新的见解。在CIFAR-10和ImageNet数据集上对各种网络结构的综合实验表明,所提出的IR-Net始终能够超越最先进的量化方法。
在这里插入图片描述

1 引言

传统的CNNs为了保持高准确度的要求,有着大量的参数和高的计算复杂度。因此,部署最优秀的深度卷积神经网络模型需要昂贵的存储和计算资源,大大限制了DNNs在便携设备上的应用,例如:手机和相机。二值神经网络以其微小的存储空间和高效的推理能力受到了社会的广泛关注,这是由权值和激活的二值化以及按位运算实现的高效卷积所产生的结果。尽管在二值化方面取得了很大的进展,但与全精确参数的方法相比,现有的量化方法仍然存在明显的准确度的下降。
二值神经网络的性能退化主要是由于其表示能力有限和二值化的离散性,导致其在正向和反向传播中都存在严重的信息丢失。在正向传播中,当激活量和权值限制为两个值时,模型的多样性急剧下降,而多样性被证明是神经网络追求高精度的关键.[54] 增加神经网络多样性的方法有两种:增加神经元数目和增加特征图的多样性。例如,Bi-Real Net[38]针对的是后者,它为量化激活添加了一个全精度shortcut,从而实现了显著的性能改进. 然而,随着附加的浮点加法运算,Bi-Real Net不可避免地要面临比普通的二值神经网络更低的效率。
多样性意味着在正向传播中要有携带足够信息的能力,同时,反向传播中的准确的梯度为优化提供了正确的信息。然而,在二值神经网络的训练过程中,离散二值化往往会导致梯度不准确,优化方向错误。为了更好地处理离散性问题,反向传播二值化的不同逼近方法已经被多人研究[8、38、11、32、7],主要分为提高符号函数的更新能力和减少符号函数与近似函数之间的错配面积两大类。不幸的是,人们总是会忽视早期和后期训练阶段的差异,在实践中,当训练过程开始时,通常需要很强的更新能力,而在训练结束时,小的梯度误差变得更加重要。从损失函数中获得尽可能多的信息,只关注一点是不够的。
针对上述问题,本文首先从信息流的角度对模型二值化进行了研究,提出了一种新的信息保留方法网络(IR-Net),见图1。我们的目标是通过在正向和反向传播中保留信息来训练高度精确的二值化模型:(1)IR-Net在正向传播中引入了一种平衡的、标准化的量化方法,称为Libra参数二值化(Libra- pb);利用Libra-PB,通过使量化参数的信息熵最大,量化误差最小,较小正向传播的信息损失,从而保证了高的多样性。(2)在反向传播中,网络采用了误差衰减的估计器(EDE)通过更好地逼近符号函数来计算梯度并使信息损失最小化,从而保证了训练开始时的充分更新和训练结束时的准确梯度。我们的网络提供了一个新的和实用的角度来理解二值化网络是如何工作的。在深度网络中,除了具有较强的前向/后向信息保存能力外,还具有良好的通用性,可以在标准的网络训练管道中进行优化。我们使用CIFAR-10和ImageNet数据集上的图像分类任务来评估我们的IR-Net。实验结果表明,我们的方法在各种网络结构(如ResNet-20、VGG-Small、ResNet-18和ResNet-34)大大超过了以前的量化方法。

2 相关工作

网络二值化的目的是在不降低精度的前提下,加快神经网络的推理速度,节省内存占用。提高低精度网络速度的一种方法是利用逐位运算,通过直接对DNNs中的32位参数(包括权重和激活)进行二值化,我们可以实现一个大的加速和存储的减少。XNOR - Net[44]采用了确定性二值化方案,通过在每一层中使用一些尺度因子来最小化输出矩阵的量化误差,TWN[33]和TTQ[62]利用更多可用的量化点增强了神经网络的表示能力。ABC-Net[36]对权重和激活推荐使用更多的二值基来提高精度,同时压缩比和加速比也相应降低。文献[8] 从激活函数的角度提出了考虑量化误差的HWGQ。文献[59]进一步提出了训练参数更多的LQ-Net,在ImageNet基准测试上取得了类似的结果,但增加了内存开销。
与其他模型压缩方法如剪枝[21,20,23]和矩阵分解[58,51]相比,网络二值化可以大大降低模型的内存消耗,使模型与位操作完全兼容,从而获得良好的加速性能。虽然在网络二值化方面已经取得了很大的进展,但由于二值神经网络的训练仍然存在较大的信息损失,现有的量化方法与全精度模型相比仍然存在较大的精度下降。因此,为了在二值化训练的正向和反向传播过程中保留信息并保证正确的信息流,本文设计了IR-Net。

3 前期准备

深度神经网络的主要操作可以表示为:
在这里插入图片描述
W是权重向量,a是输入向量,上一层神经网络的激活
神经网络二值化的目的是将浮点数的权重或激活用1-bit表示,可以表示为:
在这里插入图片描述
通常使用符号函数计算Bx:
在这里插入图片描述
正向传播中的向量的乘法可以表示为:
在这里插入图片描述
⊙表示带有位操作XNOR和位计数的向量的内积
在反向传播中,符号函数的导数几乎处处为零,这使得它与反向传播不兼容,因为离散化(预激活或权值)之前的原始值的精确梯度将为零。所以通常用“直通估计量(STE)”来训练二值模型,通过“恒等”或“Hardtanh”函数传播梯度。(BNN中采用“Hardtanh”函数)
恒等
在这里插入图片描述

4 信息保留网络(IR-Net)

本文指出,训练高精度二值神经网络的瓶颈主要在于训练过程中严重的信息丢失,由前向符号函数和梯度的后向逼近引起的信息丢失严重影响了二元神经网络的精度。本文提出了一种新的信息保留网络(IR-Net)模型,该模型在训练过程中保留训练信息,并获得高度精确的二值化模型。

4.1 前向传递过程中的Libra参数量化(Libra-PB)

在正向传播中,量化操作带来了信息的丢失,许多量化的卷积神经网络,包括二值化模型,通过最小化量化误差找到最优量化器:
在这里插入图片描述
X表示全精度参数,Q代表量化,J代表量化误差,为全精度和量化值的二范数,上述目标函数(公式5)是在假设量化模型完全遵循全精度模型,然而,这并不总是正确的,特别是当应用极低的位宽量化时。对于二值模型,其参数的表示能力被限制为两个值,使得神经元携带的信息容易丢失。二值神经网络的解空间与全精度神经网络的解空间也有很大的不同,因此,不通过网络保留信息,仅通过最小化量化误差来保证良好的二值化网络是不够的,也是困难的。为了在正向传播中保留信息并使信息损失最小化,我们提出了Libra参数二值化(Libra-PB),同时考虑量化误差和信息损失。对于随机变量b为{+1,-1}服从贝努力分布,其概率密度函数为:在这里插入图片描述
p是值为+1的概率,没有Bx中的元素可以被看做是一个样本b.等式(2)Q的熵可以被估计为:
在这里插入图片描述
如果我们只追求量化误差最小的目标,在极端情况下量化参数的信息熵可能接近于零。因此,Libra-PB将量化值的量化误差和信息熵作为目标函数,定义为:
在这里插入图片描述
在伯努利分布假设下,当p = 0.5时,量子化值的信息熵取最大值。意味着量化的值应该更均匀的分布,因此,我们用零均值属性通过减去全精度权重的均值来平衡权重。此外,为了使训练更加稳定,避免因权值和梯度而产生的负面影响,我们进一步对平衡权值进行了标准化处理。标准平衡权重Wstd 使用标准化和平衡化操作如下:
在这里插入图片描述
σ代表标准差,“0均值”最大化了二值化权重的信息熵,“单位范数”这使得二值化中涉及的全精度权重更加分散。因此,与直接使用平衡进度相比,使用标准化的平衡进度使权重稳步更新,使二值权值Qw在训练过程中更加稳定。


为什么要标准化?
图4为未标准化情况下权值的数据分布,0附近明显更集中,这一现象意味着大多数权值的符号在优化过程中容易发生变化,直接导致二进制神经网络的训练不稳定。通过重新分配数据,权重标准化隐式地在正向的Libra-PB和反向的Libra-PB之间架起了一座桥梁为二值神经网络的稳定训练做出了贡献。
在这里插入图片描述


平衡化保留了量化权重最大的信息熵,网络中激活的信息流也是被保持了。假设量化激活Qa(a)的均值为u1,则z的均值为:
在这里插入图片描述
由于公式(10)的Qw的均值为0,所以求的E[z]的值为0,因此,可以使各层激活的信息熵最大化,即可以保留激活中的信息。
为了进一步减小量化误差,避免以往二值化方法中额外的浮点运算开销,Libra-PB引入了一个整型移位尺度因子s来扩展二值化权值的表示能力,最佳的尺度因子应该为:
在这里插入图片描述
<<>>代表左移或右移,Bw通过sign(Wstd)函数计算,所以s为:
在这里插入图片描述
Round函数是四舍五入到整数。
所以正向传播可以表示为:
在这里插入图片描述
R-Net的主要运算操作可以表示为:
在这里插入图片描述
在Libra-PB中,与使用浮点尺度因子的现有解决方案(XNOR-Net, and LQ-Net)相比,采用新的位移尺度因子可以降低计算成本,如下图所示:
在这里插入图片描述
从下图中可以看出,权重是从全精度权重变换到二值权重,Libra-PB二值化后的权重相较于传统的二值化具有更高的信息熵,分布更加均衡。
在这里插入图片描述

4.2 反向传播中的误差衰减估计量

由于二值化的不连续性,梯度的近似是后向传播不可避免的。因此,量化的影响无法用近似准确地建模,造成了巨大的信息损失。近似可以表示为:
在这里插入图片描述
其中,L(w)表示损失函数,g(w)表示sign 函数的近似表达式。对于g(w)通常有两种近似方法:

  1. Identity:y = x
      Identity 函数直接将输出值的梯度信息传递给输入值,完全忽略了二值化的影响。如图 3(a) 的阴影区域所示,梯度误差很大,并且会在反向传播过程中累积。利用随机梯度下降算法,要求保留正确的梯度信息,避免训练不稳定,而不是忽略由 Identity 函数引起的噪声。
  2. Clip: y=Hardtanh(x)
    Clip 函数考虑了二值化的截断属性,减少了梯度误差。但它只能在截断间隔内传递梯度信息。从图 3(b) 中可以看出,对于 [-1,+1] 之外的参数,梯度被限制为 0。这意味着一旦该值跳出截断间隔,就无法再对其进行更新。这一特性极大地限制了反向传播的更新能力,证明了 ReLU 是一个比 Tanh 更好的激活函数。因此,在实际应用中,Clip 近似增加了优化的难度,降低了精度。确保足够的更新可能性至关重要,特别是在训练过程开始时。
     Identity 函数丢失了量化的梯度信息,而 Clip 函数则丢失了截断间隔之外的梯度信息。这两种梯度信息损失之间存在矛盾。

为了平衡并获得后向梯度的最优逼近,我们设计了误差衰减估计器:
在这里插入图片描述
g(x)为正符号函数的后向近似代替,k和t为训练过程中变化的控制变量:
在这里插入图片描述
为了保留反向传播中由损失函数导出的信息,EDE 引入了一种渐进的两阶段近似梯度方法:

  • 第一阶段:保留反向传播算法的更新能力。我们将梯度估计函数的导数值保持在接近 1 的水平,然后逐步将截断值从一个大的数字降到1。利用这一规则,我们的近似函数从 Identity 函数演化到 Clip 函数,从而保证了训练早期的更新能力。
  • 第二阶段:保留参数在0附近的精确梯度,我们将截断值保持为 1,并逐渐将导数曲线演变到阶梯函数的形状。利用这一规则,我们的近似函数从Clip 函数演变到 sign 函数,从而保证了前向和反向传播的一致性。 各阶段EDE的形状变化如图3©所示。通过该设计,EDE减小了前向二值化函数和后向近似函数之间的差异,同时所有参数都能得到合理的更新。
    在这里插入图片描述

4.3 模型训练

在这里插入图片描述

5 实验

5.1 Ablation Study

Libra-PB的影响

在这里插入图片描述
与Vanilla二值量化相比,Libra-PB每层激活的信息的损失要小的多,能够保持每层激活的信息。

EDE的影响

在这里插入图片描述
第一行的数字表示分布,第二行的数字表示相应的导数曲线,下面蓝色的线是EDE的导数,黄色的线是STE的导数,粉色的线是符号函数的导数。阴影表示EDE/STE的导数与符号函数的导数之间的误差。在EDE的第一阶段,所有的权值都可以得到有效的更新。在第二阶段,由于梯度误差的减小,使得在0附近的权值更新更加准确。

表2为ResNet-20在CIFAR-10的实验,也证明了Libra-PB和EDE的有效性
在这里插入图片描述

5.2 与其他方法相比,IR-Net的效果

在这里插入图片描述

5.3 部署效率

在这里插入图片描述
在树莓派3B上做部署,网络使用的是ResNet-18,相比全精度网络,模型压缩了10倍以上,速度提升了5倍以上。

6 结论

这篇文章是今年的CVPR的文章,是目前比较新的二值化网络的文章,是对以往BNN的一个改进。

  • 在将权重量化前,相对权重数据进行平衡化和标准化处理,更多的保留权重的信息,使信息熵最大化(有一个问题是,将权重做了平衡化和标准化处理后,权重已经不是以前的权重,这样量化是不是会使二值化的权重和原来的权重的误差太大)
  • 和NOR-Net一样也还是加入了尺度因子,但是将尺度因子进行了取2的整数倍,这样可以进行移位的操作。在韩松的深度压缩也是有这样的作法,可以较小浮点数的乘法运算。
  • 在方向传播计算梯度中,采用了一个更合适的函数近似符号函数,求梯度,这样的梯度求出来更准确,训练更容易。

通过这三种方法,LR-Net取得了目前二值化网络最好的效果,相比全精度还是有精度损失,损失已经没有以前那么大了。作者还在树莓派3B(4核A53)上进行了ResNet-18的模型部署,模型压缩大概10倍,加速了5倍。第一次见到将二值化网络在移动平台上实现的。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值