二值连接:训练深度神经网络的传播中使用二值权重

BinaryConnect: Training Deep Neural Networks with binary weights during propagations

Abstract

深度神经网络(DNN)在广泛的任务中取得了优秀的成果,通过大型训练集和大型模型取得了最优结果。在过去,GPU因其更高的计算速度能够实现这些突破。将来,在训练和测试时间更快的计算可能对未来的发展和低功耗的消费者运用设备至关重要。因此,人们对深度学习(DL)专用硬件的研究和发展十分感兴趣。二值权重,即仅限于两个可能值(例如-1或1)的权重,通过简单累积替换许多乘法累加运算,将为专用DL硬件带来巨大好处,因为乘法器是神经网络数字实现的最大空间和功率组件。我们引入二值连接(BinaryConnect),这种方法包括在前向和后向传播期间训练具有二进制权重的DNN,同时保持累积梯度的存储权重的精度。与其它dropout方案一样,我们将BinaryConnect作为regularizer,在MNIST、CIFAR-10和SVHN数据集上使用BinaryConnect获得接近最优秀的结果。

1 Introduction

深度神经网络(DNN)已经在各种任务中实质性的推动了最优秀的技术,特别是在语音识别和计算机视觉方面,特别是图像中的目标识别。最近,深度学习在自然语言处理方面取得了重大进展,尤其是在统计机器翻译。有趣的是,实现这一重大进展的关键因素之一是图像处理单元(GPUs)的出现,其速度提升10到30倍,从distributed training开始以及相似的改进。实际上,在更多数据上训练更大模型的能力使得在过去几年中实现突破。如今,研究员和开发者设计新的深度学习算法和运用经常发现自己受到计算能力的限制。与将深度学习系统放到低功耗设备(与GPU不同)上驱动相比,大大增加了对深度网络专用硬件的研究和开发的兴趣。
在深度网络的训练和运用期间执行的大多数计算将real-value * real-value激活(在后向传播算法的识别或前向传播阶段)或梯度(在后向传播算法的后向传播阶段)。本文提出了一种称为BinaryConnect方法,通过在前向和后向传播中强制权重二值化来消除这些乘法器的需要,即仅约束为两个值(不一定为0和1)。在MNIST、CIFAR-10和SVHN可以实现最优秀的成果。
达到这种成果有两个原因:

  • 累积和平均大量随机梯度需要足够的精度,但是噪声权重(我们可以将离散化视为 一小部分值作为一种噪声形式,特别是如果我们是这种离散随机化)与随机梯度下降(SGD)完全匹配,深度学习的主要优化算法类型。SGD通过做出小而嘈杂的步骤探索参数的空间,并通过每个权重累积的随机梯度平均噪声。因此,为这些累加器保持足够的分辨率非常重要,乍看之下需要绝对的高精度。【1】【2】表明,随机或随机取舍可以用于提供无偏差的离散化。【1】已经表明,SGD需要至少6到8位的精度权重,并且【3】成功训练具有12位动态定点计算的DNN。此外,大脑突触的估计精度在6到12位之间波动。
  • 噪声权重实际上提供了一种正则化形式,可以帮助更好推广,如先前所示的可变权重噪声,Dropout和DropConnect,为增加的权重去激活或权重化。例如,最接近BinaryConnect的DropConnect,是一个非常有效的正则化,在传播期间用零随机替换一半权重。先前工作表明,只有权重预期值需要具有高精度,并且噪声实际上是有益的。
    本文主要贡献如下:
  • 我们介绍了BinaryConnect,这种方法包括前向和后向传播期间训练具有二值权重的DNN。
  • 我们表明BinaryConnect是一个正则化,我们在MNIST、CIFAR-10和SVHN获得最优秀的结果。
  • 我们为BinaryConnect提供代码。

2 BinaryConnect

本节中,我们给出BinaryConnect更详细介绍,考虑如何选择哪两个值,如何离散化,如何训练以及如何执行推理。

2.1 +1或-1

运用DNN主要包括卷积和矩阵乘法。因此,DL的关键算术运算是乘法累加运算。人工神经元基本上是乘法累加运算,计算其输入的加权和。
BinaryConnect在传播过程中将权值约束为+1或-1。结果,许多乘法累积器运算被简单的加法(和减法)取代。这是一个巨大的收获,因此定点加法器在面积和能耗方面比定点乘法累积器少的多。

2.2 Deterministic vs stochastic binarization

二值化操作将实值转换为两个可能的值。一个非常简单的二值化操作将基于sign函数:
这里写图片描述
其中,wb是二值权值,w是实值权值。虽然这是确定性的操作,但对隐藏单元的许多输入权重平均这种离散化可以补偿信息的丢失。允许更精准和更准确的平均过程发生的替代方案是随机二值化:
这里写图片描述
其中σ是“hard Sigmoid”公式:
这里写图片描述
我们使用hard Sigmoid而不是soft版本,因为它的计算能耗低很多(在软件和专用硬件实现中),并且在我们的实验中产生了很好的结果。类似于【4】引入的“hard tanh”非线性。它也是分段线性的,对应于整流的有界形式。

2.3 Propagations vs updates

让我们考虑使用SGD进行反向传播的不同步骤,以及在每个步骤对权值进行离散化是否有意义。

  • 给定DNN输入,逐层计算单元激活,在给定输入情况下,顶层是DNN的输出。该步骤是前向传播。
  • 给定DNN目标,计算训练目标梯度w.r.t.,每层激活,从顶层开始逐层向下,直到第一个隐藏层。该步骤称为反向传播或方向传播的反向阶段。
  • 计算每层参数梯度w.r.t.,然后使用计算的梯度和之前的值更新其参数。此步骤称为参数更新。

使用BinaryConnect理解的一个关键点是我们只在前向和后向传播(步骤1和2)期间对权值进行二值化,而不是在参数更新(步骤3)期间,如算法1所示。在SGD更新期间保持良好的精度权值是非常重要的。由于梯度下降这些参数变化很小,例如,SGD在大量提升训练目标(加噪声)的方向上实现大量几乎无穷小的变化。描述这所有的方法是假设在训练结束时,最重要的是权重w*符号,但是为了弄清楚,我们对连续值w进行很小的变化。并且只在最后考虑它的标志:
这里写图片描述
这里写图片描述
这里写图片描述
设想这种离散化的另一种方式作为一种corruption形式,因此作为正则化,我们的实验结果证实这一假设。此外,通过适当地随机化离散,我们可以使不同权重上的离散误差相互抵消,同时保持很高的精度。我们提出了一种随机离散化形式,它保留了离散权重的预期值。
因此,在训练时,BinaryConnect为每个权重,每个minibatch,backprop的前向和后向传播阶段,随机选择两个权重的两个值之一。但是,SGD更新在实值变量存储参数中累加。
理解BinaryConnect的一个有趣的类比是DropConnect算法。就像BinaryConnect,DropConnect仅在传播过程中权重有噪声。虽然DropConnect的噪声加了Bernouilli噪声,BinaryConnect的噪声是二值采样过程。在这两种情况下,损坏的值都具有干净的原始值作为预期值。

2.4 Clipping

由于当其幅度超过二值+1/-1时,二值化操作不受实值权重w变化的影响,并且由于为了正则化约束权值(通常是权重向量)是通常做法,我们选择按照算法1在权值更新之后将实值权重限制在[-1, 1]间隔。否则,实值权重将变得非常大而不会对二值权重产生任何影响。

2.5 A few more tricks

这里写图片描述
表1:根据优化方法(optimization method)以及是否用【4】中的权重初始化系数缩放学习速率在CIFAR-10上训练一个(小的)CNN测试误差率。
我们在实验中都使用批量归一化(BN),不仅可以通过减少内部协变量偏移来加速训练,还可以降低权值范围的整体影响。此外,我们在所有CNN实验中使用ADAM学习规律。最后非常重要的是,我们分别使用【4】中权值初始化系数(当用ADAM优化)和使用SGD或Nesterov动量优化这些系数的平方来缩放权重学习率。表1说明了这些技巧的有效性。

2.6 Test-Time Inference

  • 使用生成的二值权重wb(这对BinaryConnect的确定性形式最有意义)。
  • 使用实值权重w,例如,二值化仅有助于实现更快的训练但不会更快的测试时间的性能。
  • 在随机情况下,可以通过根据等式2对每个权重采样wb来对许多不同网络进行采样。然后可以通过对各个网络的输出求平均来获得这些网络的整体输出。

我们使用第一种具有确定形式的BinaryConnect的方法。至于BinaryConnect的随机形式,我们专注于训练优势,并在实验中使用第二种方法,例如,使用实值权重的测试时间推断。这遵循Dropout方法的实践,其中在测试时间时删除噪声。
Table 2
根据方法,在MNIST(无卷积和无监督训练)、CIFAR-10(无数据增强)和SVHN训练的DNN的测试错误率。
Figure 1
图1:根据正则化在MNIST上训练MLP的第一层的特征。从左到右:没有正则化,deterministic BinaryConnect,随机BinaryConnect和Dropout。

3 Benchmark results

在本节中,我们展示了BinaryConnect充当正则化,并且我们在置换不变的MNIST、CIFAR-10和SVHN获得最优秀的结果。

3.1 Permutation-invariant MNIST

MNIST是一个benchmark图像分类数据集。包含28x28灰度图像60000训练集和10000个测试集,从0到9的数字。Permutation-invariance意味着模型必须图像(2-D)结构的不清楚(换句话说,CNN被禁止)。此外,我们不使用任何数据增强,预处理或无监督训练。我们训练MNIST包括3个1024ReLU的隐含层和一个L2-SVM输出层(L2-SVM在几个分类benchmark中表现优于Softmax)。The square hinge loss is minimized with SGD without momentum. 我们使用指数衰减学习率。使用大小200的批量标准化来加速训练。通常,我们使用训练集最后10000样本作为验证集 for early stopping and model selection. 我们在1000 epochs之后最佳验证错误率相关联的测试错误率(我们不在验证集上重新训练)。我们用不同初始化重复每个实验6次,结果如表2。BinaryConnect的随机版本可以被当做初始化,尽管在这种情况下,比Dropout稍微强一些。
Figure 2
图2:根据正则化,训练MNIST,MLP的第一层的权重的直方图。在这两种情况下,似乎权重都试图变的确定性以减少训练误差。似乎deterministic BinaryConnect的一些权重被固定在0左右,在-1和1之间不定。
Figure 3
图3:训练CIFAR-10取决于正则化。虚线表示训练cost(square hinge losses),连续线表示相应验证错误率。BinaryConnect的两个版本都显著提高了培训成本,减慢了培训速度,降低了验证错误率,这正是我们期望的Dropout方案。

3.2 CIFAR-10

CIFAR-10是benchmark图像分类数据集。包含32x32彩色图像的50000训练集和10000测试集,飞机、骑车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。我们使用全局对比度归一化和ZCA whitening对数据进行预处理。我们不适用任何数据增强(可能真的是这个数据集的游戏改变者)。CNN的框架是:
The architecture of CNN
其中C3是3x3 ReLU卷积层,MP2是一个2x2最大池化层,FC是完全连接层,SVM是L2-SVM输出层。结构受到VGG极大启发。使用ADAM可以最大限度减少square hinge loss。使用指数衰减的学习率。使用大小为50的批量标准化来加速训练。使用训练集最后5000个样本作为验证集。在500 training epochs之后测试误差与最佳验证误差率相关联(不在验证集上重新训练)。结果见表2和图3。

3.3 SVHN

SVHN是benchmark图像分类数据集。包括32x32的604000张训练集和26000张测试集的彩色图片。从0-9的数字。我们遵循用于CIFAR-10相同程序,但有些值得注意的例外:我们使用一半隐藏层,训练200 epochs而不是500 epochs(因为SVHN是一个非常大的数据集)。结果见表2。

4 Related works

训练具有二值权重的DNN已经成为最近工作的主题。尽管我们有着共同的目标,但是我们的方法截然不同。【5】【6】不使用反向传播(BP)训练DNN,而是使用期望反向传播(EBP)的变种。EBP基于期望传播(EP)【7】,用于概率图像模型中的进行推理的贝叶斯方法的变种。对比:

  • 优化权重posterior distribution(不是二值)。在这方面,方法相似,因为保留了权重实值版本。
  • 将神经元输出和权值二值化,比仅仅二值化权重对硬件更加友好。
  • 为全连接网络(在MNIST上)产生良好的分类精度,但对ConvNets却没有。

在前向和后向传播期间重新训练具有三元权重的神经网络:

  • 训练高精度神经网络
  • 训练后,将权重三角化为三个可能的值-H、0和H,并调整H以最小化输出误差
  • 最终,在传播期间使用三元权重进行重新训练,并在更新期间使用高精度

相比之下,在传播过程中使用二值权重训练,例如,训练过程可以有效专用硬件来实现,避免前向和后向传播乘法,相当于2/3的乘法。

5 Conclusion and future works

我们在前向后后向传播过程中引入一个新的二值化方法,称为BinaryConnect。已经证明在MNIST、CIFAR-10和SVHN数据集上使用BinaryConnect训练DNN,并获得优秀的结果。通过移除2/3的乘法需求,这种方法对深度网络的专用硬件实现的影响是主要的,因此可能允许在训练时加速3倍。使用BinaryConnect的确定性版本,测试时的影响可能更为重要,完全消除乘法并减少至少16(从16 bits单浮点精度到单比特精度)的内存要求,这对内存的计算带宽和可运行的模型大小有影响。未来的工作将这些扩展到其他模型和数据集,并通过从权值更新计算移除来消除在训练期间的乘法。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值