Press "Enter" to skip to content

二值神经网络(Binary Neural Networks)最新综述

作者|秦浩桐、龚睿昊、张祥国

 

单位|北京航空航天大学

 

研究方向|网络量化压缩

 

本文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新 综述文章 Binary Neural Networks: A Survey ,合作者包括中国电子科技大学的宋井宽教授和意大利特伦托大学计算机系主任 Nicu Sebe 教授。

 

神经网络二值化能够最大程度地降低模型的存储占用和模型的计算量,将神经网络中原本 32 位浮点数参数量化至 1 位定点数,降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程。但二值化会不可避免地导致严重的信息损失,其量化函数不连续性也给深度网络的优化带来了困难。

 

近年来许多算法被提出致力于解决上述问题,并取得了令人满意的进展。在本文中,我们对这些方法进行了全面的总结和概括,主要分为直接量化的朴素二值化方法,以及使用最小化量化误差、改善网络损失函数和减小梯度误差等技术的改进二值化方法。

 

本文还调研了二值神经网络的其他实用方面,例如硬件友好的设计和训练技巧。然后,我们对图像分类,目标检测和语义分割等不同任务进行了评估和讨论。最后,本文展望了未来研究可能面临的挑战。

 

关键词: 二值神经网络,深度学习,模型压缩,网络量化,模型加速

 

 

论文标题: Binary Neural Networks: A Survey

 

论文链接: https://www.sciencedirect.com/science/article/abs/pii/S0031320320300856

 

 

引言

 

由于深度模型具有多层结构和数百万个参数,因此深层 CNN 具有很强的学习能力,通常具有令人满意的性能。例如,VGG-16 网络包含大约 1.4 亿个 32 位浮点参数,对于 ImageNet 数据集上的图像分类任务,可以达到 92.7% 的 Top-5 测试准确率。

 

整个网络需要占用 500M 字节以上的存储空间,并再一次推理过程中执行 1.6×10 10  次浮点算术运算。这使得深层的卷积神经网络严重依赖于 GPU 等高性能硬件,而在实际应用中,通常只有计算资源有限的设备可用,如移动电话和嵌入式设备。

 

以基于 FPGA 的嵌入式设备为例,通常该类设备只有数千个计算单元,远远不能处理常见深度模型中的数百万次浮点运算,复杂的模型与有限的计算资源之间存在着严重的矛盾。

 

尽管目前涌现了大量用于深度学习的专用硬件,这些硬件提供了高效的矢量运算操作以实现正向推理中的快速卷积,但繁重的计算和存储仍然不可避免地限制了深度卷积神经网络的实际应用。

 

此外,由于巨大的模型参数空间,神经网络的推理通常被视为一个黑盒,这给 CNN 的可解释性带来了巨大挑战。许多工作从经验上探索了网络中每一层的功能。他们将从不同滤波器中提取的特征图可视化,并将每个滤波器视为一个聚焦于不同视觉部分的视觉单元。

 

从可解释的机器学习角度来看,我们可以得出一些结论:一些滤波器在模型中起着相似的作用,尤其是当神经网络模型规模较大时。

 

因此,剪去一些无用的滤波器或将其精度降低到较低比特表示是合理的。 一方面,我们可以通过这种压缩技术实现更高效的推理。另一方面,我们可以利用它来进一步研究卷积神经网络的可解释性,即找出哪一层是重要的,哪一层是无用的并且可以从黑盒中删除,哪种结构有利于准确预测。

 

在文献中,用于压缩深层网络的方法可分为五类:参数剪枝,参数量化,低秩分解,迁移/压缩卷积滤波器和知识蒸馏。

 

在现有的网络压缩技术中,基于量化的技术是一种很有潜力且十分高效的解决方案,与浮点模型相比,量化模型可以通过以非常低的精度表示网络权重来压缩、加速原始网络。沿此方向,最极端的量化是二值化,这是本次综述的重点所在。

 

二值化是一种 1 位的量化,其数据只有两个可能的值,即 -1(0)或 +1。使用二值化进行压缩后,网络中的权重和激活都可以用 1 位表示,而不会占用太多内存。此外,通过二值化,二值网络可以使用轻量级的 XNOR 和 Bitcount 位运算代替繁重的浮点乘加运算。

 

因此,与其他压缩方法相比,二值神经网络具有许多硬件友好的特性,包括节省内存、提高能源效率和显着地加速。BNN 和 XNOR-Net 之类的开创性工作证明了二值化的有效性,使用 1 位卷积运算的 XNOR-Net 在 CPU 上的加速可达到 58 倍,压缩率可至 32 倍。

 

除了关注模型二值化的策略外,许多研究还试图揭示模型二值化行为地本质影响,并据此进一步解释模型鲁棒性与深度神经网络结构之间的联系。一些研究表明,二值神经网络可以过滤输入噪声,并指出:与全精度的神经网络相比,经过特殊设计的 BNN 更加鲁棒。

 

基于 BNN 的研究还可以帮助我们分析深度神经网络中的结构是如何工作的。有许多工作探索了不同层对二值化的敏感性。通常,第一层和最后一层应保持较高的精度,这意味着这些层在神经网络的预测中起着更重要的作用。

 

本文试图探究二值神经网络的本质 ,将现有的二值化方法分类为未改进量化函数的朴素二值化方法,和基于优化的二值化方法,优化包括最小化量化误差、改善损失函数和减小梯度误差。我们还讨论了 硬件友好的架构设计和训练二值神经网络的有效技巧 。 此外,本文介绍了 目前广泛被用于评估二值神经网络的通用数据集和网络结构 ,并比较了当前方法在不同任务上的性能。

 

 

背景介绍

 

在全精度卷积神经网络中,基本运算可以表示为:

 

 

其中 w 和 a 分别表示网络层权重张量和之前的网络层生成的激活张量。σ(•) 表示非线性函数,z 表示输出张量,⊗ 表示卷积运算。在神经网络的正向推理过程中,卷积运算包含大量的浮点运算,包括浮点乘法和浮点加法,它们构成了神经网络推理中的绝大多数计算。

 

2.1 前向传播

 

网络二值化的目标是使用 1 位表示浮点权重 w 和 / 或激活 a。二值化函数的常用定义如下:

 

 

其中  和   代表二值化权重(卷积核)和二值化激活量的张量,相应的尺度因子分别为 α 和 β,用于二值化得到  和  的 sign 函数如下:

 

 

通过权重和激活二值化,可以将正向传播中的浮点卷积操作重新表示为:

 

其中 ⊙ 表示由位运算 XNOR 和 Bitcount 实现的向量内积。图 1 表示了二值神经网络中的卷积过程。

 

 

2.2 反向传播

 

在训练一个二值神经网络时,可以直接采用基于梯度下降的强大的反向传播(BP)算法来更新参数。但是,通常二值化函数(例如sign函数)是不可微的,甚至更糟的是,该函数的部分的导数值消失了(sign函数的导数几乎处处为0)。

 

因此,普通的基于梯度下降的反向传播算法不能直接应用于更新二值化的权重。Hinton 等人最早提出在反向传播中使用直通估计器(STE),用于解决训练中因为 sign 函数的导数几乎处处为 0 所产生梯度问题。STE 的导数定义如下:

 

 

通过应用 STE,我们可以使用与全精度神经网络相同的梯度下降方法直接训练二值神经网络。但是,在反向传播中使用函数近似 sign 函数时,如果全精度激活的绝对值大于 1,则无法在反向传播中进行更新。因此,在实际情况下,函数也会被用来近似 sign 函数的导数。

 

 

二值神经网络

 

近年来,各种各样的二值神经网络方法被提出,从使用预定义函数直接对权重和输入进行量化的朴素二值化方法,到使用基于多种角度和技术的基于优化的二值化方法,其中包括通过最小化量化误差来近似全精度值、通过修改网络损失函数来限制权重、和通过减小梯度误差来学习离散参数。表 1 汇总了不同类别二值化方法。

 

 

3.1 朴素的二值神经网络

 

朴素的二值神经网络通过固定的二值化函数将神经网络中的权重和激活直接量化为 1 位。然后在标准训练方式中采用带有 STE 的基本反向传播策略来优化深度模型。

 

2016 年,Courbariaux 等人提出的 BinaryConnect [1] 开创了二值神经网络的研究先河。BinaryConnect 将神经网络内部的全精度权重转换为 1 位的二值权重。

 

遵循网络二值化的标准范式,Courbariaux 等人进一步介绍了 Binarized Neural Network,并详细介绍了二值网络的训练和加速技巧。Smaragdis 等人也研究了网络的二值化,并提出了适合于资源受限环境的 Bitwise Neural Network [2]。

 

3.2 基于优化的二值神经网络

 

朴素的二值化方法具有节省计算资源的优点,因其以非常简单的方式量化网络。但是,由于不考虑二值化在前向和反向过程中的影响,这些方法不可避免地会在很多任务中造成精度损失。因此,为了减轻二值神经网络中的精度损失,在过去的几年中,大量基于优化的解决方案出现,相对于原始的解决方案,这些方案表现出了成功的提升。

 

3.2.1 最小化量化误差

 

为了优化二值神经网络,通常的做法是减少权重和激活的量化误差。这是一种简单的解决方案,类似于标准的量化机制,即量化参数应尽可能接近全精度参数,并期望二值神经网络模型的性能接近全精度模型。

 

作为考虑量化误差的早期研究,Rastegari 等人提出了二值权重网络(BWN)和 XNOR-Net [3]。BWN 采用二值化权重和全精度激活的设置,而 XNOR-Net将权重和激活都二值化。

 

与先前的研究不同,该工作通过引入二值参数的比例因子很好地近似了浮点参数。 具体来说,可以将 BWN 和 XNOR-Net 中的权重量化过程公式化为  ,其中 α 是二值化权重  的尺度因子(浮点数),然后通过将量化误差最小化确定最佳的比例因子和二值参数:

 

 

与直接使用 1 位(-1 / +1)相比,该解决方案的量化误差要小得多,从而提高了网络的推理精度。高阶残差量化(HORQ)为了进一步减少量化误差采用了基于量化残差的对于全精度激活的递归逼近,而不是 XNOR-Net 中使用的单步逼近,这进一步减小了网络中的量化误差 [4]。

 

3.2.2 改进网络损失函数

 

仅关注某一层很难保证经过一系列层的最终输出的精确性。因此,网络的训练需要能够全局考虑二值化以及特定的任务目标。

 

最近,大量研究工作在探究在二值化带来的限制下仍能引导网络参数的学习过程的损失函数。 通常,一般的二值化方案仅关注对浮点数的精确局部逼近,而忽略二值参数对全局损失的影响。

 

Hou 等人提出了损失感知二值化(LAB)[5],使用拟牛顿算法直接将与二值权重相关的总损失最小化。除了从量化角度考虑与任务相关的损失外,事实证明设计额外的量化感知损失项也是可行的。

 

Ding 等人总结了二值神经网络中由前向二值化和反向传播引起的问题,包括“退化”,“饱和”和“梯度不匹配”。用于训练二值神经网络的指导信息也可以从大规模的全精度模型中得出。Apprentice 方法使用预训练的全精度大规模教师网络训练低精度的学生网络 [6]。

 

3.2.3 降低梯度误差

 

二值神经网络的训练仍然依赖于广泛应用的 BP 算法。然而,sign 函数和 STE 生成的梯度之间存在明显的梯度不匹配。此外,还存在以下问题:[-1,+1] 范围之外的参数将不被更新。

 

这些问题很容易导致二值网络优化不足,从而严重降低性能。直观来看,精心设计的二值化的近似函数可以缓解反向传播中的梯度失配问题。

 

Bi-Real 提供了一个自定义的 ApproxSign 函数来替换 sign 函数以进行反向传播中的梯度计算 [7]。Binary Neural Networks +(BNN +)直接提出了对 sign 函数的导数的更好近似 [8],并引入了一个正则化函数来激励二进制值周围的可学习权重。

 

Gong 等人提出了一种可微分的软量化(DSQ)方法 [9],用软量化功能代替了传统的量化功能:

 

 

Qin 等人提出的 IR-Net 用一个自适应误差衰减估计器(EDE)来减少训练中的梯度误差 [10],它考虑了训练过程不同阶段的不同需求,并平衡了参数的更新能力和梯度误差的降低。

 

3.3 二值神经网络的高效计算架构

 

二值神经网络最大的亮点是它们具有计算速度快,功耗低和内存占用少的优点,可以支持计算资源有限的通用硬件(包括 FPGA,ASIC,CPU 等)。

 

FPGA 是使用最广泛的平台,因为它们允许自定义数据路径和调整设计。尤其是,FPGA 允许围绕 XNOR-Bitcount 操作来进行优化。 ASIC 也可以为二值神经网络提供其所需的功率和计算效率,因为 ASIC 的硬件布局可以根据网络结构进行设计。

 

为了使二值化算法在具有不同硬件环境的场景中更加实用,研究人员还致力于研究硬件友好的二值网络。

 

 

我们在表 2 中的不同 FPGA 平台上列出了不同的二值神经网络实现的比较。可以看出,一些提出的方法虽然效率不高,可以达到与全精度模型相当的精度。我们必须指出,尽管在开发硬件友好算法方面取得了进步,但到目前为止,在速度和准确性方面,只有很少的二值模型能够在如 ImageNet 之类的大型数据集上良好地运行。

 

3.4 二值神经网络的应用

 

图像分类是计算机视觉和机器学习中的一项基本任务。因此,大多数现有研究选择在图像分类任务上评估二值神经网络。BNN 可以显着加速和压缩神经网络模型,这对深度学习研究者具有极大的吸引力。BNN 中的权重和激活都是二进制数,从理论上讲,它可使卷积运算速度提高 58 倍,并节省 32 倍的内存。因此,二值神经网络也可以应用于其他常见任务,例如目标检测和语义分割。

 

在已有工作中,Kung  等人利用二值神经网络对红外图像进行目标识别和图像分类任务 [11]。在这项工作中,二值神经网络在 MNIST 和 IR 数据集上的性能与全精度网络相当,并且在 GPU 上实现了至少 4 倍的加速和三个数量级的节能。

 

BWBDN 通过统一预测和对象检测过程来解决快速对象检测算法 [18],它使用二值 VGG-16 网络获得了 62 倍的加速并节省了 32 倍的存储空间,其中除最后一个卷积层外,所有其他层都进行了二值化。

 

Li 等人基于 RetinaNet 和更快的 R-CNN 生成了量化的目标检测神经网络 [12],并证明这些检测器取得了令人满意的性能。Leng 等人将 BNN 应用于不同的任务,并在用于图像分类和目标检测的卷积神经网络以及用于语言模型的递归神经网络上评估了它们的方法 [13]。

 

Zhuang 等人提出了一种称为“组网”的“网络分解”策略,该策略显示出对不同任务(包括分类和语义分段)的强大概括,在准确性和节省大量计算方面均胜过以前最好的二值神经网络 [14]。SeerNet 通过低位量化来考虑特征图稀疏性,适用于一般的卷积神经网络和任务 [15]。

 

研究人员还试图通过模型二值化来增强神经网络模型的鲁棒性 [16]。二值模型通常被认为比全精度模型更健壮,因为它们被认为可以过滤部分输入噪声。

 

Lin 等人探索了量化对模型鲁棒性的影响,他们表明,对参数的量化运算可在噪声量较小时消除扰动影响,但对于一般 BNN,当噪声幅度较大时,噪声的影响会增大。

 

较差的鲁棒性来自 BNN 前向传播中的误差放大效应,其中量化操作进一步扩大了由放大噪声引起的距离。因此他们提出了防御性量化(DQ),以通过抑制噪声放大效应并使各层的噪声幅度较小来捍卫量化模型的对抗性示例。量化提高了鲁棒性,而不是使它在 DQ 模型中变差,因此它们比全精度网络更鲁棒。

 

3.5 训练二值神经网络的技巧

 

由于二值化的高度离散性,训练二值神经网络经常需要引入特殊的训练技术,以使训练过程更加稳定并且收敛精度更高。在本节中,我们从网络结构转换,优化器和超参数选择,梯度近似和渐近量化等方面总结了文献中广泛采用的通用高效二值神经网络训练方法。

 

3.5.1 网络结构调整

 

模型二值化将激活和权重量化到 {1, +1}。这实际等效于对数据进行正则化,从而使二值化后的数据改变分布,调整网络结构是使数据分布合理变化的有效方案。

 

简单地对网络中的层重新排序可以改善二值神经网络的性能。牛津大学的研究人员指出,几乎所有二值化研究都重新定位了池化层的位置。在卷积层之后立即使用池化层可以避免因二值化之后的最大池化而导致信息丢失。实验表明,这种位置重排在准确性上有很大的提高。

 

除池化层外,Batch Normalization (BN) 层的位置还极大地影响了二值神经网络训练的稳定性。TSQ 和 HWGQ 在所有量化操作之前插入批处理归一化层以纠正数据。经过这种变换,量化的输入服从稳定的分布(有时接近高斯分布),因此均值和方差保持在合理范围内,并且训练过程变得更加平滑。

 

基于类似的思想,最近的一些工作没有直接添加新的层,而是尝试直接修改网络结构。例如,Bi-Real 将每层卷积的输入特征图连接到后续网络,这种方法实质上是通过结构转换来调整数据分布的。

 

Mishra 等人设计了加宽低精度网络(WRPN),该网络增加了每层中的滤波器数量,从而改变了数据分布。二值集成神经网络(BENN)利用集成方法来拟合基础数据分布。Liu 等人提出了循环滤波器(CiFs)和循环二进制卷积(CBConv)来增强二值化卷积特征的表达能力,并且还提出了循环反向传播(CBP)来训练结构。BBG 甚至附加了门控残差以补偿其在转发过程中的信息丢失。

 

3.5.2 优化器和超参数选择

 

在训练二值神经网络时选择适当的超参数和特定的优化器也可以提高 BNN 的性能。大多数现有的二值神经网络模型都选择了自适应学习速率优化器,例如 Adam。使用 Adam 可以使训练过程更好,更快,并且二阶导数的平滑系数尤其关键。

 

一些工作表明,如果使用不考虑历史信息的固定学习率优化器,例如随机梯度下降(SGD)算法,则需要采用更大 batch 的数据来提高性能。同时,批次归一化动量系数的设置也很关键。通过比较不同动量系数下的精度结果,可以发现需要适当设置批归一化的参数以适应二值化操作引起的抖动。

 

3.5.3 渐近量化

 

由于量化操作对训练有负面影响,许多方法采用渐近量化策略,逐渐增加量化程度,以减少由参数二值化导致的性能损失。实践表明,这种逐步量化方法对寻找最优解是有效的。例如,INQ 对参数进行分组,并逐渐增加参与量化的组的数量,以实现基于组的逐步量化。

 

Zhuang 等人引入了逐步扩展位宽的想法,该方法首先量化为较高的位宽,然后量化为较低的位宽。这种策略可以帮助避免由极低位量化引起的较大扰动,从而补偿训练过程中量化参数的梯度误差。

 

3.5.4 梯度近似

 

在二值神经网络训练过程中,使用更平滑的估计器已成为一种常见的做法。由于直通估计器的使用,在反向传播中通常存在梯度误差。找到接近二值化函数的近似函数是一种简单而实用的解决方案。

 

这成为最近研究中广泛考虑的一种流行技术,其中根据不同的动机对近似函数进行了相应的调整,以替代引起梯度误差的标准削波函数。为了设计适当的近似函数,一个直接的想法是将其形状与二值化函数的形状对齐。

 

 

评估对比

 

4.1 数据集和网络结构

 

为了评估二值神经网络算法,研究者一般选择图像分类任务对比其性能,并通常使用两个常见的图像数据集:CIFAR-10 和 ImageNet。 CIFAR-10 是一个相对较小的数据集,其中包含 60,000 张具有 10 个类别的图像,而 ImageNet 数据集是当前最受欢迎的图像分类数据集。

 

对于其他任务,例如对象检测和语义分段,PASCAL VOC 和 COCO 也用于评估二值神经网络的性能。

 

PASCAL VOC 数据集源于 PASCAL 视觉目标检测比赛,它用于评估计算机视觉领域中各种任务的模型的性能。许多出色的计算机视觉模型(包括分类,定位,检测,分割,识别等)基于 PASCAL VOC 数据集,尤其是某些目标检测模型。

 

COCO 是 Microsoft 团队提供的用于图像识别和目标检测的数据集。它通过搜索 80 个对象类别和各种场景类型(例如 Flickr)来收集图像。

 

为了研究二值神经网络算法在不同网络结构上的泛化能力,包括 VGG,AlexNet,ResNet-18,ResNet-20,ResNet-34 和 ResNet-50 等。将被二值化和测试。

 

这些模型为深度学习的发展做出了杰出贡献,在I mageNet 分类任务中取得了重大突破。其中,VGG 网络包含大量参数和卷积运算,因此对 VGG 进行二值化可以明显显示不同算法的推理速度。ResNet 当前是许多任务中最受欢迎的深度模型,具有足够数量的层。

 

4.2 图像分类任务

 

比较二值神经网络在不同数据集上的性能,我们可以首先观察到二值神经网络可以在小数据集(例如 MNIST,CIFAR-10)上接近全精度神经网络的性能,但是在大型数据集(例如 ImageNet)。这主要是因为对于大型数据集,二值化网络缺乏足够的能力来捕获数据之间的较大差异。

 

这一事实表明,仍然需要付出巨大的努力来寻求精巧的二值化和优化解决方案,以设计出令人满意的二值神经网络。

 

从表 3 和表 4 可以得出结论:神经网络对激活的二值化更为敏感。当仅将权重量化为 1 位并将激活保持为全精度时,性能下降的幅度较小。

 

 

 

 

以 ImageNet 数据集上 ABC-Net 中的 ResNet-18 为例,对权重进行二值化后,精度损失仅约 7%,而对激活进行二值化后,精度损失又约 20%。

 

因此,在设计二进制网络时,消除激活二进制化的影响通常更为重要,这成为 RAD 和 PACT 等研究的主要动机。在对激活的分布添加合理的正则化之后,将减少二值化对激活造成的有害影响,随后自然提高了准确性。

 

此外,二值神经网络的鲁棒性与其结构高度相关。一些特定的结构模式对二值化很友好,例如 Bi-Real 提出的连接结构和在 WRPN 中提出的更宽的块。Bi-Real 通过连接结构将全精度特征图直接传递到下层,从而获得了接近全精度模型的性能。使用 3 倍的结构,ResNet-34 中的精度损失低于 1%。

 

实际上,他们实质上所做的是使信息尽可能地通过整个网络。尽管结构修改可能会增加计算量,但受益于 XNOR-Bitcount 操作,它们仍然可以得到显着的加速。

 

基于优化的不同方法代表对 BNN 的不同理解。在旨在最小化量化误差的论文中,提出了许多直接降低量化误差的方法,以使二元神经网络近似于高精度神经网络。这些论文认为二进制参数越接近全精度参数,BNN 的性能越好。另一个想法是改善损失函数。这种类型的方法通过修改损失函数,使 BNN 中的参数分布对二值化操作友好。

 

此外,BinaryConnect 中提出的 STE 粗糙,会导致一些问题,例如梯度不匹配。因此,许多最近的工作都使用诸如 tanh 函数之类的平滑过渡来减少梯度损失,并且使用更平滑的估计器成为一种常见的做法。

 

我们认为二值神经网络不应该被简单地视为全精度神经网络的近似,而需要针对 BNN 的特殊特性进行更具体的设计。实际上,一些最近的工作基本上是在此基础上的,例如 XNOR-Net ++,CBCN,Self-Binarizing Networks,BENN 等。

 

结果表明,考虑到 BNN 特性的特殊设计方法可以获得更好的性能。研究者证明了尽管 BNN 与全精度模型共享相同的网络体系结构,但仍需要不同的优化。 值得一提的是,准确性不是 BNN 的唯一标准,通用性是衡量一种方法是否可以在实践中使用的另一个关键。

 

现存论文中提出的一些方法非常通用,例如比例因子,反向平滑近似,附加结构连接等。由于这些方法实施简单且耦合低,所以这些方法是通用的。因此,它们成为了提高 BNN 性能的常见方法。一些方法通过设计或学习精细的量化器来提高二值神经网络的性能。这种量化器通常具有更强的信息保存能力。

 

但是,我们必须指出,其中一些需要复杂的计算甚至是多阶段的训练流水线,这有时对硬件实现不友好且不易复现。这意味着在实际部署中很难通过这种量化器有效地提高速度。因此,在不考虑加速实现的情况下单纯追求高精度是没有实际意义的。精度和速度之间的平衡也是二值化研究的重要标准,应始终牢记。

 

4.3 其他任务

 

从表 5 和表 6 中,我们可以看到,现有的二值化算法在目标检测任务上取得了令人鼓舞的进展,同时在实际系统中部署时带来了显着的加速。但也应注意,二进制模型仍然面临巨大挑战,尤其是当激活量化为 1 位时。

 

 

对于语义分割任务,如表 6 所示,最近的方法仅使用 1 位就实现了高精度,这几乎与全精度模型相同。但是尚不清楚它是如何工作的,仍然需要验证该方法的实际速度。

 

在这些结果中,我们发现尽管二值神经网络在分类任务上表现良好,但在其他任务上仍然存在无法接受的损失。这使得为分类任务而设计的二值神经网络很难直接应用于其他任务,例如对象检测和语义分割。

 

在分类任务中,网络更加关注全局特征,而忽略了二值化导致的局部特征损失。但是,局部特征在其他任务中更为重要。因此,当为其他任务设计二值神经网络时,需要更加关注特征图的局部特征。

 

在这些结果中,我们发现尽管二值神经网络在分类任务上表现良好,但在其他任务上仍然存在不可接受的精度损失。这使得为分类任务而设计的二值神经网络很难直接应用于其他任务,例如目标检测和语义分割。在分类任务中,网络更加关注全局特征,而忽略了二值化导致的局部特征损失。但是,局部特征在其他任务中更为重要。因此,在设计用于其他任务的二值神经网络时,需要更加关注特征图的局部特征。

 

未来趋势与结论

 

基于 1 位表示的二值神经网络虽然具有压缩存储和加快推理速度的优点,但是却存在性能下降的问题。正如我们在本次调查中总结的那样,为了弥补二进制模型和全精度模型之间的差距,近年来出现了各种解决方案,可以将其粗略地分类为朴素的方案和优化的方案。

 

我们的分析表明,使用不同方法优化的二值网络可以保证更好的性能。这些方法主要聚焦在如何在前向传播中保留信息以及如何在反向传播中优化网络。研究表明,在前向和反向传播中保留各种信息是训练高性能 BNN 的关键因素之一。

 

尽管已经取得了很大的进步,但是用于神经网络二值化的现有技术仍然面临性能损失的问题,尤其是对于大型网络和数据集而言。主要原因可能包括:1)目前尚不清楚什幺网络结构适合于二值化,即经过二值化后,也可以保留通过网络的信息;2)即使我们有用于二值化的梯度估计器或近似函数,在离散空间中优化二值网络也是一个难题。我们相信将来会出现更多的实践和理论研究来解决这两个问题。

 

此外,随着移动设备在现实世界中的广泛使用,将出现更多针对这些应用进行的研究工作,以实现不同的任务以及模型在不同硬件上的部署。例如,Wu 等人考虑到人脸识别的开放集特征,提出了一种新颖的旋转一致性损失,使用 4 位模型实现了与全精度模型相当的性能。因此,不同的研究课题将会出现,例如针对不同任务定制或转换二值网络,设计硬件友好或能耗较低的二值化算法等。

 

除了权重和激活之外,最近还出现了量化包括梯度在内的反向传播过程以加速整个训练过程的新研究点。Zhu 等人提出的统一框架从准确性和速度方面证明了神经网络的 8 位训练的可能性 [17]。为加快训练而进行的二值化反向传播计算的可行性值得进一步探讨。

 

最后,对可解释机器学习的研究表明,神经网络的推理中存在关键路径,并且不同的网络结构遵循不同的模式。因此,根据层的重要性设计混合精度策略,并设计出对二值神经网络的信息流友好的新网络结构,也具有重要意义。

 

Reference

 

[1] Courbariaux, Matthieu, Yoshua Bengio, and Jean-Pierre David. “Binaryconnect: Training deep neural networks with binary weights during propagations.” NeurIPS. 2015.

 

[2] Kim M, Smaragdis P. Bitwise neural networks[J]. arXiv preprint arXiv:1601.06071, 2016.

 

[3] Rastegari M, Ordonez V, Redmon J, et al. Xnor-net: Imagenet classification using binary convolutional neural networks[C]//ECCV. Springer, Cham, 2016: 525-542.

 

[4] Li Z, Ni B, Zhang W, et al. Performance guaranteed network acceleration via high-order residual quantization[C]//IEEE ICVV. 2017: 2584-2592.

 

[5] Hou L, Yao Q, Kwok J T. Loss-aware binarization of deep networks[J]. arXiv preprint arXiv:1611.01600, 2016.

 

[6] Mishra A, Marr D. Apprentice: Using knowledge distillation techniques to improve low-precision network accuracy[J]. arXiv preprint arXiv:1711.05852, 2017.

 

[7] Liu Z, Wu B, Luo W, et al. Bi-real net: Enhancing the performance of 1-bit cnns with improved representational capability and advanced training algorithm[C]// ECCV. 2018: 722-737.

 

[8] Darabi S, Belbahri M, Courbariaux M, et al. BNN+: Improved binary network training[J]. arXiv preprint arXiv:1812.11800, 2018.

 

[9] Gong R, Liu X, Jiang S, et al. Differentiable soft quantization: Bridging full-precision and low-bit neural networks[C]// IEEE ICVV. 2019: 4852-4861.

 

[10] Qin H, Gong R, Liu X, et al. IR-Net: Forward and Backward Information Retention for Highly Accurate Binary Neural Networks[J]. arXiv preprint arXiv:1909.10788, 2019.

 

[11] Kung J, Zhang D, Van der Wal G, et al. Efficient object detection using embedded binarized neural networks[J]. Journal of Signal Processing Systems, 2018, 90(6): 877-890.

 

[12] Li R, Wang Y, Liang F, et al. Fully quantized network for object detection[C]//IEEE CVPR. 2019: 2810-2819.

 

[13] Leng C, Dou Z, Li H, et al. Extremely low bit neural network: Squeeze the last bit out with admm[C]//AAAI. 2018.

 

[14] Zhuang B, Shen C, Tan M, et al. Structured binary neural networks for accurate image classification and semantic segmentation[C]//IEEE CVPR. 2019: 413-422.

 

[15] Cao S, Ma L, Xiao W, et al. Seernet: Predicting convolutional neural network feature-map sparsity through low-bit quantization[C]//IEEE CVPR. 2019: 11216-11225.

 

[16] Lin J, Gan C, Han S. Defensive quantization: When efficiency meets robustness[J]. arXiv preprint arXiv:1904.08444, 2019.

 

[17] Zhu F, Gong R, Yu F, et al. Towards Unified INT8 Training for Convolutional Neural Network[J]. arXiv preprint arXiv:1912.12607, 2019.

 

[18] Sun S, Yin Y, Wang X, et al. Fast object detection based on binary deep convolution neural networks[J]. CAAI Transactions on Intelligence Technology, 2018, 3(4): 191-197.

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注