神经网络模型的复杂性增加近年来成倍地扩大内存消耗和计算成本,从而阻碍他们的应用程序在ASIC, FPGA和其他移动设备。因此,压缩,加快神经网络是必要的。在这项研究中,我们引入一个新的策略训练低位网络权重和激活量化由几位和地址两个相应的基本问题。一是通过低位离散化近似激活减少网络计算成本和记忆点积。另一种是指定重量为离散权重量化和更新机制,避免梯度不匹配。与量化低位重量和激活,昂贵的软件不能操作将取而代之的是移位操作。我们评估该方法常见的数据,结果表明,该方法可以大大压缩轻微的神经网络精度损失。
深层神经网络,比如手写字符、图像识别、和许多新兴的人工智能应用,近年来取得了极大的成功(
在本节中,我们讨论相关工作从以下方面:
在本节中,我们专注于训练量化低位网络。具体来说,层输出的激活是量子化的,零个或两种减少存储和计算的能力。网络的权重也以同样的方式限制获得稀疏的模型。通过约束权重和激活零个或两个孩子的权力,可以取代昂贵的浮点乘法操作便宜转变操作(
深层神经网络通常由多个层,每个神经元在不同层计算激活功能:
卷积操作管道。(一)一般卷积操作没有量化的重量和激活。(b)的描述方法与重量和激活量子化的低位。
在本节中,我们提出了一种新颖的近似策略激活量化和相应的合适的方法来保持反向传播的效率。
按照上面的讨论中,网络的激活是量子化的,零个或两个在这一节中。制定优化模型如下:
期望误差的不同<我nline-formula>
| 计划 |
|
|
|
|
|
|---|---|---|---|---|---|
|
|
0.4078 | ||||
|
|
0.3298 | ||||
|
|
0.2102 | ||||
|
|
0.0790 | ||||
|
|
0.0204 | 0.0193 | |||
|
|
|
|
0.0193 |
自后相同时间间隔内积值相等用近似法,提出零导数几乎无处不在。因此,我们在这里提出了一个更好的可能落后的解决方案,最后反向传播过程中实验结果证明其可行性。
为<我nline-formula>
为<我nline-formula>
上面显示的重量量化可以解决使用各种方法,如BWN DoReFa-Net, XNOR [
在一开始,我们已经考虑了体重在前进过程中离散化和更新在离散域的限制。然而,重量是量子化的离散序列相等的比例,这是很难在反向传播更新相应规定的量化值。离散值的非均匀分布是主要问题。类似的作品如BWN、DoReFa-Net XNOR,体重在这些方面的导数为零几乎无处不在,这显然不符合反向传播,不能和梯度计算是基于存储位置权重,和频繁的数据交换需要在培训阶段。针对这一点,我们寻求直接离散网络权重为零或权力的两个逆向过程中为了避免梯度不匹配问题,除了前进的过程。
我们引入离散值的权重更新机制落后的过程中为了避免梯度不匹配。从之前的作品,我们发现可以限制重量值(−1,1)在我们的量化方法。在一开始,我们引入离散状态转换(DST)问题,供以后使用。我们让<我nline-formula>
二名式命名法的选择未定义的状态<我nline-formula>
最后,定义的体重状态需要转化成重量值:
通过这种方式,我们可以成功地连续重量转换成离散定义权重。我们将重量变化转换成定义离散状态转换。首先,我们分解<我nline-formula>
通过这种方式,我们都约束权重<我nline-formula>
在本节中,我们评估我们的算法在MNIST (LeNet5) SVHN (VGG)和CIFAR10 Pytorch (ResNet-18)图像分类。大多数以前的作品并不数字转换第一个和最后一个层。在我们的方法中,我们没有数字转换第一层。此外,我们报告每个实验的平均结果超过三分,自适应估计优化器(亚当)。
我们说明的行为的不同组合权重和激活一个标准ResNet-18 CIFAR10数据集。我们量化权重<我nline-formula>
比较准确量化权重的不同组合和激活。横轴表示激活近似的量化比特位,纵轴代表网络的重量。
一般来说,体重量化导致一些精度下降。图
测试误差比较在多个数据集。
| 方法 | 重量(位) | 激活(位) | MNIST | SVHN | CIFAR10 |
|---|---|---|---|---|---|
| BNN | |||||
| BWN | |||||
| TWN | |||||
| DoReFa | |||||
| 我们的 |
CIFAR100精度比较。
| 真空断路 | BNN | XNOR | 我们的 |
|---|---|---|---|
| ResNet-34 | |||
| ResNet-50 |
我们探索的影响参数<我nline-formula>
比较准确量化权重的不同组合和激活。横轴表示激活近似的量化比特位,纵轴代表网络的重量。
第一个和最后一个层网络量化研究根据以前作品的关键。在当前的研究中,我们所有的实验不使量子化第一层。我们试图调查第一层量化的影响。结果总结在表
精度比较量化的姓或卷积层。
| CIFAR10 / MNIST | BWN | BNN | 我们的 |
|---|---|---|---|
| +姓− | |||
| +姓+ | |||
| −姓+ | |||
| 首先−−去年 |
显然,精度退化可能发生当量化第一或最后一层。我们的方法略优于BNN但并不比BWN量子化属性权重。
大多数当前的人工智能应用程序是基于ResNet。因此,我们分析参数对ResNet-18稀疏。前夹大量权重的方法设置最重量的小值为零但不完全零(
稀疏ResNet-18 CIFAR10。
| 层张量(重量) | 完整的精度(1−稀疏)(%) | 我们的方法(1−稀疏)(%) |
|---|---|---|
| Conv1 (64 3, 3, 3) | ||
| Conv2 (64、64、3、3) | ||
| Conv3 (64、64、3、3) | ||
| Conv4 (64、64、3、3) | ||
| Conv5 (64、64、3、3) | ||
| Conv6 (128、64、3、3) | ||
| Conv7 (128、128、3、3) | ||
| Conv8 (128、64、1、1) | ||
| Conv9 (128、128、3、3) | ||
| Conv10 (128、128、3、3) | ||
| Conv11 (256、128、3、3) | ||
| Conv12 (256、256、3、3) | ||
| Conv13 (256、128、1、1) | ||
| Conv14 (256、256、3、3) | ||
| Conv15 (256、256、3、3) | ||
| Conv16 (512、256、3、3) | ||
| Conv17 (512、512、3、3) | ||
| Conv18 (512、256、1、1) | ||
| Conv19 (512、512、3、3) | ||
| Conv20 (512、512、3、3) | ||
| 1−稀疏 | ||
| 精度 |
显然,我们的方法可以获得大型稀疏卷积层参数,和几位高级层网络可能有价值的最终评价。后面比前面一层是稀疏的,这可能是修剪我们的未来的工作。作为一个尝试,我们修剪漂亮的稀疏层(conv19 conv20),发现精度下降和获得更紧凑的层。更有意义,培训和推理时间在一定程度上这可能显著降低硬件实现。
深陷网络,计算成本和存储能力是关键因素,直接影响到学习的性能。压缩和加速网络旨在减少复杂模型的冗余。因此,我们引入了一个方法来训练网络权重和激活量子化的几位。我们发现我们的方法网络精度略有下降,而大幅减少存储和计算。有趣的是,我们的量化模型有明显稀疏,可能修剪ASIC或FPGA在未来人工智能。
使用的数据来支持本研究的发现是开放的数据集可以发现一般网站,和datasers也是免费的。
作者宣称没有利益冲突有关的出版。
这项研究支持部分由中国国家自然科学基金(资助号61602494),湖南省自然科学基金。