权重量化的深度神经网络模型压缩算法

2019-04-22 08:02蔡晓东梁晓曦
西安电子科技大学学报 2019年2期
关键词:二值压缩率卷积

陈 昀,蔡晓东,梁晓曦,王 萌

(桂林电子科技大学 信息与通信学院,广西壮族自治区 桂林 541004)

得益于深度神经网络的应用,许多领域[1-3]取得了重大进展。然而,大多数深度神经网络模型对计算机内存空间和计算能力有着较高的要求,这限制了其在一些存储空间和计算能力较低的设备中部署。

在计算机视觉领域,深度卷积神经网络算法在图像识别[4-5]和检测[6-7]等任务中表现优异。但是通过这些算法得到的模型通常不适用于移动设备和嵌入式设备。例如:AlexNet[8]存在6 100百万个参数需要249MB的存储空间,使用其去分类一张图片需要执行15亿次高精度运算。对于那些参数更多的网络如VGG[9]、Inception-ResNet[10]、DenseNet[11]、ResNeXt[12]等,则需要更高的存储空间和计算能力。

为了在移动设备和嵌入式设备中部署深度神经网络算法,大量的研究人员开始探索深度神经网络模型的参数冗余问题。该问题主要表现在权重矩阵和特征图的冗余,通过消除这些冗余可实现在不影响准确率的情况下压缩深度神经网络模型以节省计算机内存和计算资源。目前的研究主要在两个方面:(1)减少深度神经网络的权重和连接[13-16];(2)对深度神经网络的权重编码压缩[17-18]。文中重点研究后者。

目前已经有一些算法通过对权重量化编码来压缩深度神经网络模型。二值权重网络[19](Binary Weight Networks,BWN)算法将全精度权重量化为-1和1,并引入一个缩放因子使量化后的权重去近似全精度权重,虽然可达到32倍的模型压缩,但是识别准确率大幅下降,已无法满足复杂任务的识别或检测。三值权重网络(Ternary Weight Networks,TWN)[20]算法针对二值权重网络算法识别准确率大幅下降的问题提出了一种三值权重网络,将全精度权重量化为-1、0和1来提高深度神经网络模型的容量,并且通过两位二进制数编码量化后的权重可实现16倍的模型压缩。

在编码压缩阶段,由于两位二进制数存在4种状态而三值权重网络算法只需要其中3种状态,未充分利用其编码容量。因此,文中基于三值权重网络算法提出权重量化的深度神经网络模型压缩算法,将全精度权重量化为-2、-1、1和2四种状态以充分利用两位二进制数的编码容量,并同时提高压缩后深度神经网络模型的容量。

1 网络压缩模型的设计

深度神经网络模型压缩主要是在高模型压缩率和高模型容量间寻找一种最优关系。文中在深度卷积神经网络上进行算法设计,但是可适用于其它类型的深度神经网络。对于模型压缩率,二值权重网络可实现32倍的模型压缩,三值权重网络可实现16倍的模型压缩。对于模型容量,一个尺寸为3×3的卷积滤波器,二值权重网络将权重量化为两种状态,所以存在23×3=512种状态;三值权重网络将权重量化为三种状态,所以存在33×3=19 683种状态。文中基于三值权重网络算法将全精度权重量化为四种状态,使用两位二进制数对其编码可获得16倍的模型压缩,对于尺寸为3×3的卷积滤波器可达到43×3=262 144种状态。相比三值权重网络,文中算法在保持相同模型压缩率的情况下,模型容量可提高至约13.3倍。

1.1 权重量化的深度卷积神经网络

(1)

其中,n表示滤波器的尺寸。对于尺寸为3×3的卷积滤波器,n等于9。

(2)

其中,*表示全连接层或卷积层运算。

为了解决式(1)的优化问题,将其进行展开,如式(3)所示。

(3)

(4)

四值滤波器如式(5)所示。

(5)

其中,阈值Δ使用三值权重网络[20]算法提出的计算方式,其值随着网络权重的更新不断调整,如式(6)所示。

(6)

1.2 编码

文中算法使用一个两位二进制数编码一个四值权重,其中低位和高位编码分别如式(7)和如(8)所示。

(7)

(8)

编码转换表如表1所示。

表1 四值权重编码表

n1=0^(x1≪(2×s)) ,
n2=n1^(x2≪(2×s+1)) ,

n31=n30^(x1≪(2×s)) ,
n31=n31^(x2≪(2×s+1)) ,

(9)

其中,^表示二进制异或运算,s∈{0,1,…,15}。

1.3 解码

压缩后的模型在测试阶段,首先需要对四值权重编码后的32位二进制编码进行解码,如式(10)所示。其次使用解码得到的四值权重进行深度卷积神经网络的前向传播计算。

(10)

其中,x1和x2通过循环位与运算求解,如式(11)所示。

x1=m&(1≪(2×j)) ,
x2=m&(1≪(2×j+1)) ,

(11)

其中,m为32位的二进制编码,&表示二进制与运算,j∈{0,1,…,15}。

2 实验数据与实验结果分析

2.1 实验环境

训练部分配置:Intel i3-4130 CPU(3.40GHz × 4)、8GB内存、GTX980ti显卡、ubuntu14.04操作系统、Caffe深度学习开源框架。测试部分配置:Intel i3-4130 CPU(3.40GHz × 4)、8GB内存、GTX980ti显卡、ubuntu14.04操作系统、Caffe深度学习开源框架。

2.2 训练和验证数据集

图1 MNIST数据集

MNIST数据集如图1所示。该数据集是一个简单的视觉计算数据集,包括55 000份训练数据和10 000份测试数据,每份数据都由图片和对应的0~9标签组成,图片尺寸均为28×28像素。

CIFAR-10数据集如图2所示。该数据集包括10个分类,每个分类含有6 000张图片,尺寸为32×32像素。其中分为5个训练和1个测试批次,每个批次有10 000张图片。测试批次从10类图片中每一类随机取1 000张构成,剩下的图片随机排列组合构成训练批次。

图2 CIFAR-10数据集

CIFAR-100数据集如图3所示。该数据集由60 000张图像构成,包含100个类别,每个类别600张图像,其中500张用于训练,100张用于测试,尺寸为32×32像素。

图3 CIFAR-100数据集

2.3 实验结果及分析

文中采用CMC作为准确率评估方法,将文中提出的算法与二值权重网络和三值权重网络进行比较。

2.3.1 基于MNIST数据集准确性与压缩效率实验

本实验使用LeNet-5[21]网络结构,也可使用其它优秀的网络结构,用于分析模型压缩后对简单的手写体数字识别准确率的影响,该网络结构如图4所示。其中卷积层1的滤波器尺寸为5×5,步长为1,输出为32,卷积层2的滤波器尺寸为5×5,步长为1,输出为64,池化层1和池化层2的滤波器尺寸为2×2,步长为2,全连接层1的维度为512,全连接层2的维度为10,分类损失层使用Softmax Loss,并且在每个卷积层之后使用一个BatchNorm层对网络进行加速。

图4 LeNet-5网络结构

网络训练使用的超参数如表2所示。

MNIST数据集上的实验结果如表3所示。在CMC测试中,文中算法Top1准确率为99.41%,与全精度深度卷积神经网络模型准确率相同,相比三值权重网络模型和二值权重网络模型分别提高了0.06%和0.6%,这表明在MNIST数据集上三值权重网络和二值权重网络都有着优秀的表现,但是文中提出的四值权重模型更精确。

表2 MNIST数据集网络训练超参数

表3 MNIST数据集实验结果

文中算法的模型压缩率为6.74%,与三值权重网络算法相同,相比二值权重网络算法的模型压缩率增加至约2.14倍,这表明文中算法可实现与三值权重网络相同的模型压缩率,但是高于二值权重网络的压缩率。结果表明,对于简单的手写体数字识别任务,文中算法实现了全精度深度神经网络模型的高精度小容量模型转换。

2.3.2 基于CIFAR-10数据集准确性与压缩效率实验

本实验使用一种小型深度卷积神经网络结构,也可使用其它优秀的网络结构,用于分析模型压缩后对物体分类准确率的影响,该网络结构如图5所示。其中卷积层1和卷积层2的滤波器尺寸为5×5,步长为1,输出为32,卷积层3的滤波器尺寸为5×5,步长为1,输出为64,最大池化层1的滤波器尺寸为3×3,步长为2,平均池化层1和平均池化层2的滤波器尺寸为3×3,步长为2,全连接层1的维度为10,分类损失层使用Softmax Loss,并且在最大池化层1和平均池化层1之后使用一个BatchNorm层对网络进行加速。

图5 小型深度卷积神经网络结构

网络训练使用的超参数如表4所示。

CIFAR-10数据集上的实验结果如表5所示。在CMC测试中,文中算法Top1准确率为79.64%,相比三值权重网络模型和二值权重网络模型提高了0.82%和52.36%,相比全精度模型降低了1.58%,这表明在CIFAR-10数据集上二值权重网络模型准确率大幅度下降,而文中算法模型相比三值权重网络模型具有更高的准确率。

文中算法的模型压缩率为6.88%,与三值权重网络算法相同,相比二值权重网络算法的模型压缩率增加至约1.97倍。结果表明,在物体分类任务上,二值权重网络模型已不适用,文中算法依然可实现全精度深度卷积神经网络模型的高精度小容量模型转换,并且准确率上优于三值权重网络模型。

表4 CIFAR-10数据集网络训练超参数

表5 CIFAR-10数据集实验结果

表6 CIFAR-10数据集实验结果

2.3.3 基于CIFAR-100数据集准确性与压缩效率实验

本实验使用的网络结构与2.3.2节的相似,不同之处在于全连接层的输出特征维度为100,以用于100种物体的分类。网络训练的超参数与2.3.2节的一致。

CIFAR-100数据集上的实验结果如表6所示。在CMC测试中,文中算法Top1准确率为36.19%,相比三值权重网络模型和二值权重网络模型提高了1.51%和27.94%,相比全精度模型降低了1.65%,模型压缩率为6.62%,与三值权重网络算法相同,相比二值权重网络算法的模型压缩率增加至约2倍。这表明在CIFAR-100数据集上,文中算法模型相比三值权重网络模型压缩率相同,但具有更高的准确率。

3 结论

文中基于三值权重网络提出权重量化的深度神经网络模型压缩算法,可对全精度权重进行高效、精确的编码压缩。与三值权重网络相比,文中算法将全精度权重量化为四种状态,既可提高编码效率,也能提高压缩后模型的容量。在MNIST、CIFAR-10和CIFAR-100数据集上的实验结果表明,文中算法具有与三值权重网络相同的模型压缩能力,但是模型容量可得到大幅度提升。文中算法虽然可对模型进行高效、精确的压缩,但是无法提升特征提取速度。进一步研究可结合输入特征量化,减少前向传播中的向量乘法运算,以同时实现深度神经网络模型压缩和加速。

猜你喜欢
二值压缩率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
水密封连接器尾部接电缆的优化设计
缠绕垫片产品质量控制研究
面向网络边缘应用的新一代神经网络
某型飞机静密封装置漏油故障分析
基于二值图像数字水印算法研究
基于傅里叶域卷积表示的目标跟踪算法
基于稀疏表示的二值图像超分辨率重建算法