APP下载

基于Octave卷积的混合精度神经网络量化方法

2021-07-02张文烨尚方信

计算机应用 2021年5期
关键词:权值卷积精度

张文烨,尚方信,郭 浩,3

(1.中国人民大学信息学院,北京 100872;2.山西虚拟现实产业技术研究院有限公司,太原 030024;3.太原理工大学信息与计算机学院,太原030024)(*通信作者电子邮箱slicent@foxmail.com)

0 引言

近年来,卷积神经网络(Convolutional Neural Network,CNN)被成功应用于许多计算机视觉问题的解决上,例如图像分类[1-2]、目标检测[3]和实例分割[4]等。但随着神经网络性能的增强,这些模型所需的运算量也显著上升。现代深度学习模型大多运行在大容量内存和高性能计算设备上,如图形处理器(Graphics Processing Unit,GPU),带来高昂计算成本;同时,移动设备和嵌入式设备搭载神经网络模型的需求与日俱增,而相关应用程序的运算性能、功耗和可用内存,均受设备平台的限制。因此,对计算和内存的高需求成为在移动设备上部署深度神经网络模型的瓶颈。

目前,解决这一矛盾的途径可分为三类:即模型量化[5-6]、模型剪枝[7-8]和神经网络架构搜索[9]。其中,量化神经网络及二值神经网络(Binarized Neural Network,BNN),致力于在取值有限的离散空间中,表征卷积神经网络的权值。与32 位浮点数运算相比,较低位宽环境下进行的运算显著降低了运算量。特别地,二值神经网络将权值和激活函数输出约束至二值类型(即+1或-1),使得乘法和累加运算可以被二进制位运算代替,大幅降低了运算成本;然而,对网络权值与激活值的量化操作将限制相关数值的信息表征能力,在低位宽环境下将导致严重的预测精度损失。为了兼顾运算效率与模型性能,Wu 等[10]基于微分神经网络架构搜索技术,在尽量保持预测精度的同时,逐层搜索特定的量化位宽(bit 数),构建了混合精度模型。另一方面,2019 年,Chen 等[11]提出了Octave 卷积,将输入的特征图分解为高频信息和低频信息两部分,使用降采样压缩了低频特征图分辨率,在不损失预测精度的同时,显著降低了卷积运算量。

与最初的量化神经网络相比,混合精度架构在模型性能上有了明显进步。但是,现有方法大多仅考虑图像语义信息,或依赖损失函数及梯度指导精度混合模式,没有考虑不同位置、不同深度的卷积核对图像信息成分的侧重。

一幅如图1(a)所示的自然图像可以被分解为缓慢变化的,描述图像全局结构信息的低频分量(如图1(b))及描述快速变化的精细局部细节的高频分量(如图1(c));同时,由于图像低频分量在全局范围上缓慢变化,其对数值量化造成的信息损失不敏感。本文利用Octave 卷积的高低频信息混合架构,提出一种新的混合精度方法,在每一个卷积运算层面实现了量化特征图的混合,并未增加运算量。其次,得益于Octave卷积是一种网络结构无关的传统卷积层替代方案,本文方法可即插即用地适配任意卷积神经网络架构。与Octave卷积相比,本文方法进一步节省了运算成本与内存需求。

图1 图像的高低频分量示意图Fig.1 High-and low-frequency components of an image

1 相关理论

1.1 Octave卷积

作为卷积神经网络的输入信号,自然图像通常包含多种频率成分,其中,图像全局信息通常由低频成分编码,而图像局部的精细结构则常由高频成分来表现。如图2 所示,现有的基于传统卷积方法(vanilla convolution)搭建的卷积神经网络,其中一部分卷积核被训练用于提取低频特征,另一部分则专注于提取高频特征。传统卷积方法未考虑图像频率信息的差异,未针对不同频率的特征图进行有差别的处理;同时,低频信息在空间上变化较缓慢,因此对特征图分辨率不敏感。若实现高低频信息的差异化处理,则可以由降低低频特征图分辨率的方式,减少卷积运算量。

图2 AlexNet的第一层卷积核的可视化Fig.2 Visualization of the first layer’s convolution kernel of AlexNet

2019 年,Chen 等[11]提出了Octave 卷积方法,如图3 所示。图中XH、XL代表输入的高频与低频特征图;WH→H、WL→L分别代表高频至高频、低频至低频的卷积核参数;WH→L、WL→H代表用于高频与低频信息融合的卷积核参数。Octave 卷积方法将输入卷积层的特征图沿通道方向分为两组,由高低频卷积核分别处理并进行升采样/降采样后,进行高低频分量的混合,最终输出特征图的高频与低频分量。输出通道数之和与传统卷积输出通道数相同,此外,空间上变化较缓慢的低频特征图分辨率被减半,以节约运算量。

图3 Octave卷积方法示意图Fig.3 Schematic diagram of Octave convolution method

研究人员指出,Octave 卷积并未改变输出特征图的总通道数,也未改变卷积核参数量,而是专注于降低卷积神经网络在空间维度(特征图宽高维度)的冗余,因而该方法与现有的多种网络拓扑结构和减少网络特征冗余的方法是正交和互补的,并可以即插即用地直接替代现有卷积层,不改变卷积网络整体的网络尺寸和模型参数量。

1.2 量化神经网络

卷积神经网络及相关改进方法在计算机视觉问题的解决上取得了广泛成功,但绝大多数模型的研究工作是在32 位浮点数环境下进行的,并需要同样的运算环境来部署模型。与此同时,卷积神经网络模型对于运算性能和内存的高要求,成为限制相关方法部署于移动设备和嵌入式设备的瓶颈。

数值量化是指减少表示数值的二进制数位数的操作,两组进行乘法/累加运算的二进制数位数越短,则运算量越小。研究人员发现,对神经网络中权值与激活值进行量化,不仅有助于加快模型运算速度,降低内存需求和运算成本,还可以减少模型权值文件的存储大小,节约硬盘存储容量。自2013年Bengio等[12]提出直通梯度估计(Straight Through gradient Estimator,STE)方法,为量化模型的训练提供了计算方法基础后,研究人员已广泛证明,可以使用8位整数(INT8)来表示模型权值和激活值,且不会导致模型精度的显著损失。目前,研究人员致力于在不显著损失模型精度的前提下,将神经网络量化至更低的位宽(如4/2/1 bits),以进一步压缩模型对运算资源的需求。

2016 年,Zhou 等[6]提出了DoReFa-Net,即基于DoReFa 量化方法构建的卷积神经网络,该方法支持模型权值、激活值与梯度被量化至不同位宽。要执行DoReFa量化方法,首先需要定义如下的量化方程:

在DoReFa 量化方法中,激活值xf被裁剪至[0,1],并按照如下方式量化至离散值xq:

模型权值wf按照式(3)、(4)进行量化:

DoReFa 首次将梯度纳入量化的范围内,但量化神经网络的主要应用场景是在高运算性能设备(如GPU)上进行模型训练和超参搜索等工作;而在移动端与嵌入式设备上,仅执行加载预训练权值和推断计算,无需考虑梯度。此外,研究人员发现,使用DoReFa 量化方法搭建的二值神经网络,难以取得令人满意的预测精度。

近年来,研究人员在STE 方法及其他梯度估计方法的基础上,提出了多种二值神经网络方法。如Rastegari 等[13]于2016 年提出的XNOR-Net 不仅将模型权值与卷积层输入均转化为二值表示,并使用同或逻辑运算(XNOR)代替卷积神经网络中的二进制向量点乘;通过引入比例因子的方法,帮助多个二值卷积核模拟全精度卷积核权值。2018 年,Liu 等[14]提出了Bi-Real Net,近似求解了不可微符号函数的梯度公式,并使用裁剪函数替代线性整流函数(Rectified Linear Unit,ReLU)为模型提供非线性变换。除通用的模型量化方法以外,2019 年,研究人员探索了目标检测模型的量化压缩问题,并取得成功[15]。此外,压缩后模型的部署问题也在近期取得进展,如量化后模型已可以在FPGA 平台[16]、ARM 移动端平台[17]等算力敏感的场景上完成部署。

2 本文方法

传统卷积方法在输入和输出特征图在所有通道上均使用相同的空间分辨率。同时,Octave Conv 的工作证明,自然图像及其特征图可以被分解为编码全局信息的低频分量与编码局部细节信息的高频分量,且现有卷积方法在空间分辨率上存在冗余。

为便于说明,本文将以四维张量表示的二维卷积核,沿卷积核的空间方向展开为三维张量。如图4 所示,Octave Conv卷积核WH→H、WL→H、WH→L、WL→L可分别被看作传统卷积核在输入通道与输出通道方向按比例的切分结果;ain和aout分别代表输入特征图与输出特征图在通道方向被分解为低频特征图的比例;k为二维卷积核尺寸。

图4 QOCN卷积核示意图Fig.4 Schematic diagram of convolution kernel of QOCN

目前,量化卷积神经网络方法大多立足于对传统卷积方法的卷积核的量化操作,在空间分辨率上同样存在冗余信息。为进一步降低量化神经网络的运算量,本文根据Octave Conv的思想将输入特征图分解为高频和低频两部分,并将处理低频信息的卷积核WL→L,WL→H使用Bi-Real 方法量化至1 bit,处理高频信息的卷积核WH→H,WH→L由DoReFa 方法量化至较高的位宽。接着,沿用Octave Conv 的高低频混合架构,同时完成频率混合与量化位宽混合。这样的量化卷积运算规则被命名为QOCN 卷积(Quantized Octave Convolution,QOCN),下文简称QOCN Conv。具体地,本文在实验部分分别将高频网络分支量化至2 bits、4 bits、8 bits 和16 bits,并进行了对比实验。

结合BiReal量化方法与DoReFa量化方法,结合式(4),有卷积核量化函数如下:

值得注意的是,对卷积运算的量化操作仅约束了卷积核的离散取值空间,并未限制输入特征图,即激活值的取值范围。而全精度的激活张量中常常包含统计上的异常值,进而影响量化卷积输出特征图的取值,并带来了额外的运算量。目前主流的量化方法以量化激活值的方式解决这一问题。与量化卷积类似,本文提出的QOCN 方法基于Bi-Real 方法的1 bit 激活函数与DoReFa 对激活函数的量化操作,将低频卷积的输出特征图量化至1 bit;高频卷积的输出特征图则量化至与高频卷积核相同的位宽。

现代卷积神经网络中,通常由卷积层、归一化层和非线性激活层组成一个基本单元。本文方法需要通过量化激活函数的方式提供量化卷积图,一个完整的QOCN Module 同样由卷积、归一化和激活函数三部分组成,输入的高低频特征图经QOCN Conv 处理后,输出混合精度的高低频特征图并分别进行归一化处理。接着,高频特征图由DoReFa Net 方法的量化激活函数处理,低频特征图由Bi-Real Net方法的激活函数(符号函数)处理,分别进行非线性变换,最终输出量化的特征图。

在梯度反向传播阶段,BiReal 方法对1 bit 位宽下激活函数和量化卷积的梯度进行了近似估计,DoReFa 方法基于直通梯度估计方法,给出了量化激活函数与量化卷积的梯度估计。本文沿用了相关设定。

3 实验

本章首先基于CIFAR-10/100 和ImageNet 在图像分类任务上验证了本文提出的QOCN 方法性能,即使用不同位宽分别量化卷积组内的高低频分量,将多个卷积组按照特定拓扑结构相连,如残差神经网络(Residual neural Network,ResNet)、MobileNet 等,作为一个整体进行实验。实验结果表明,基于Octave Conv 卷积方法对高低频特征图的混合机制设计的混合精度模型,可以在较低的量化位宽环境下达到与全精度模型接近的预测精度。将QOCN模型按照低频位宽+高频位宽的方式命名,如QOCN(1+4)代表模型中每一卷积组的低频分支被量化至1 bit,而高频分支被量化至4 bits。其次,为进一步理解QOCN方法的工作原理,体现基于不同位宽的卷积核获得的卷积结果,本文基于在ImageNet 上训练的ResNet18-QOCN(1+8)模型进行了不同位宽的特征图可视化,对比了量化操作对高低频特征图的信息表征能力的影响。本文实验代码:https://github.com/parap1uie-s/quantization_octconv。

3.1 分类实验

为验证混合精度的QOCN 方法的有效性,本文在3 个公开数据集CIFAR-10、CIFAR-100 和ImageNet 上进行了对比实验,并使用标准数据扩增策略。具体来说,本文在CIFAR-10/100 上对训练集图像进行随机水平翻转和随机垂直翻转;在ImageNet 训练集上使用随机裁剪、随机水平翻转和随机垂直翻转,并调整图像大小至224 px×224 px,ImageNet验证集上将图像大小调整至256 px×256 px 并进行中心裁剪至224 px,以匹配模型输入尺寸。在数据预处理环节,本文根据各数据集的均值和方差对图像进行了归一化。

在相同迭代轮次与训练计划的约束下,基于预训练全精度模型权值训练出的量化模型,其预测精度要高于从随机初始状态开始训练的量化模型。QOCN 模型均以相应的预训练全精度模型权值作为初始权值。本文实验详细训练计划,如表1 所示。除表中列出数据以外,本文实验基于PyTorch1.4和4x Nvidia-V100 GPU 完成,训练过程中使用包含动量项的随机梯度下降(Stochastic Gradient Descent,SGD)优化器调整模型参数,BatchSize=256,αin与αout均为0.5。

表1 训练计划Tab.1 Training plan

表2~4 展示了传统卷积(Vanilla Conv)、Octave Conv 与QOCN 在相同的网络架构下搭建模型的性能表现,以正确率(Top-1 Accuracy)为度量模型性能的指标,其中,正确率是指预测类别正确的样本数量与总样本量的比值。特别地,Top-1正确率以模型输出概率最大值所属类别与真实类别是否相等作为预测正确的标准。首先,本文在最为简单的CIFAR-10数据集上采用ResNet-20 和ResNet-56 结构,对比了QOCN 方法与基线方法(Baseline)的性能。如表2 所示,采用Octave 卷积的全精度模型(32 bits Octave Conv)取得了最高的正确率,而高低频分支均被量化至1 bit 的模型(1 bit Octave Conv)分类性能与全精度模型具有显著差异;高低频分支均被量化至8 bits 时(8 bits Octave Conv),可获得与32 bits 全精度模型接近的分类性能。这表明全精度ResNet 结构在CIFAR-10 分类任务上具有冗余参数和模型容量,但不足以支持全部运算在1 bit下进行。采用本文提出的混合精度方法时,仅具有2 bits高频分支、低频分支仍保持1 bit 位宽的QOCN(1+2),其分类性能已接近全精度模型;QOCN(1+4)则取得了与8 bit Octave Conv 接近的分类性能,说明了混合精度方法的有效性,且进一步缩小了与全精度模型的差异。

表2 QOCN和基线模型在CIFAR-10数据集上的分类性能对比Tab.2 Classification performance comparison of QOCN with baseline models on CIFAR-10 dataset

值得注意的是,本文提出的混合量化方法试图取得模型性能(正确率)与运算代价之间的平衡,即尽可能少地损失正确率以换取尽可能多地减少运算代价。在相同模型结构前提下,以加载卷积参数所消耗的内存空间计算,加载全1 bit模型占用内存约为全精度模型的3%;加载全8 bits模型占用内存约为全精度模型的25%。当αin与αout均为0.5时,以QOCN(1+8)为例,占用内存约为全精度模型的14%,全8 bits模型的56%;更激进的QOCN(1+2)则仅使用8 bits模型18%的内存消耗,获得与1 bit模型相比近11%的正确率增幅,接近了全8 bits 模型的性能。特别地,定制化的计算设备使用移位运算实现1 bit参数相关的运算,其运算延时远小于全精度模型的1/32。

CIFAR-10 数据集仅要求模型提供较为简单的10 分类能力。为更加充分地展示QOCN 方法的优势,说明该方法兼顾了模型分类性能与运算资源需求压缩,本文引入了更为复杂的CIFAR-100 和ImageNet 数据集。相关实验数据如表3 和表4所示。

表3 QOCN和基线模型在CIFAR-100数据集上的分类性能对比Tab.3 Classification performance comparison of QOCN with baseline models on CIFAR-100 dataset

表4 QOCN和基线模型在ImageNet数据集上的分类性能对比Tab.4 Classification performance comparison of QOCN with baseline models on ImageNet dataset

在CIFAR-100 的实验中,本文选取MobileNet V2、ResNet-26 和ResNet-101 分别代表主流的轻量化网络、中等规模网络和大型网络。其中,被量化至1 bit的MobileNet V2表现最差,证明轻量化网络具有更少的冗余运算量;但基于QOCN(1+2)构建的MobileNet V2 的分类性能已显著上升。同时,QOCN(1+4)构建的所有模型,在CIFAR-100和ImageNet上均可以获得与全精度方法接近的分类性能。

为充分展示QOCN 混合精度方法的有效性,本文在ImageNet 数据集上进行进一步实验,并与主流神经网络量化方法XNOR-Net[13]、DoReFa-Net[6]和层量化网络(Layer-wise Quantization Net,LQ-Net)[18]对比,并使用与对比方法相同的模型结构与量化方案,为与前段实验区分,本段实验以“QOCN*”标注。具体地,将典型的ResNet-18 结构中,“卷积+批归一化+激活函数”的结构替换为“批归一化+卷积+激活函数”的结构,并解耦低频分支的权值与激活值的量化位宽,W为量化权值位宽,A 为激活值位宽;保持高频分支量化位宽与激活值一致。实验结果如表5 所示。其中,XNOR-Net 方法仅用于1 bit 模型量化,作为基线结果;LQ-Net 与Dorefa-Net 均遵循卷积结果量化与激活值量化的混合模式,且使用自适应量化器的LQ-Net 方法指标上优于Dorefa-Net。采用高低频分支卷积的本文方法可更有效地提取图像中全局与局部信息,并在相同量化参数下获得了优于上述基线方法的正确率。

表5 所提方法与主流模型混合量化方法对比Tab.5 Comparison of the proposed methods with mainstream mixed precision methods for model

3.2 特征图可视化

为进一步理解QOCN 方法的工作原理,本节从ResNet18-QOCN(1+8)模型Stage1的输出抽取了特征图。由于原始特征图通道数为64,不便进行可视化。为尽量反映特征图的原始分布,本文于32 bits位宽下,将特征图沿通道方向逐像素平均后,未进行二值化等后处理,因此低频分量特征图可视化结果并非严格的二值化图像。如图5 所示,高频分量(H→H、H→L)借助较高的位宽保留了绝大多数目标相关的局部细节,而低频分量(L→H、L→L)则承载了较低位宽就可以表达的图像全局特征。

图5 QOCN(1+8)高低频分支特征图可视化Fig.5 Visualization of high-and low-frequency branch feature maps of QOCN(1+8)

4 结语

基于Octave 卷积,本文提出一种即插即用式的量化卷积神经网络方法,并使用典型卷积网络ResNet50,在主流数据集CIFAR-10/100 和ImageNet 上进行了广泛实验。实验验证了本文方法的有效性,在模型压缩至1 bit+4 bits时,本文方法仍能在ImageNet 数据集上取得超过70%的准确率。在下一步工作中,将对QOCN 方法和混合精度模型进行更广泛研究,进一步减少量化产生的性能损失。

猜你喜欢

权值卷积精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
近似边界精度信息熵的属性约简
财务风险跟踪评价方法初探
基于洪泛查询的最短路径算法在智能交通系统中的应用
浅谈ProENGINEER精度设置及应用