APP下载

基于深度可分离卷积的轻量级时间卷积网络设计

2020-09-18曹渝昆桂丽嫒

计算机工程 2020年9期
关键词:网络结构空洞残差

曹渝昆,桂丽嫒

(上海电力大学 计算机科学与技术学院,上海 200090)

0 概述

在深度学习领域,研究人员通常将循环神经网络(Recurrent Neural Network,RNN)视为序列建模的默认配置[1-2],但其普遍存在梯度消失或梯度爆炸且不能实现并行化等问题,而可实现并行化处理的卷积神经网络(Convolutional Neural Network,CNN)具有不同于序列时间方向的反向传播路径及稳定的梯度,因此其从20世纪80年代开始就被广泛应用于语音识别[3]、自然语言处理(Natural Language Processing,NLP)[4]、句子与文本分类[5-7]及音频与图像生成[8-9]等任务中。

卡内基梅隆大学的BAI等人于2018年提出一种时间卷积网络(Temporal Convolutional Network,TCN)[10],其在序列数据处理任务上相比经典循环神经网络具有更大的性能优势。虽然TCN提供了高效跨时间而非本地调用的方法,且无须完全按照顺序处理,加快了训练速度,但是其仍存在计算量大和参数冗余的问题,导致其难以应用于算力和存储空间受限的手机、平板电脑、笔记本电脑等终端设备。为此,本文基于深度可分离卷积,提出一种轻量级时间卷积网络(Lightweight TCN,L-TCN)结构。

1 L-TCN网络

1.1 网络结构

L-TCN网络结构主要受TCN网络结构的启发。TCN是基于卷积神经网络核心结构的一个简单架构,其在不同任务和数据集上的性能均优于经典递归神经网络,如长短期循环记忆(Long Short-Term Memory,LSTM)网络,同时具有更大的内存空间[10]。为简化TCN的规模,本文将深度可分离卷积应用于TCN中,提出L-TCN结构。L-TCN的主要特点是:1)使用因果卷积[7],确保了不发生信息泄露问题;2)使用深度可分离卷积[11],减少了卷积运算中的参数量,提高了计算效率[12];3)使用深度网络(残差层搭建)和空洞卷积[7]保存有效历史时间序列数据,从而利用历史值进行时间序列预测。

L-TCN使用因果空洞深度可分离卷积作为卷积层,并将每两个卷积层与恒等映射封装为一个残差模块,由残差模块堆叠出深度网络。基于深度可分离卷积的L-TCN结构如图1所示,其中,Z为卷积输入,T为输入序列个数,i为残差块个数。L-TCN由很多个残差块串联而成,残差块个数由具体任务的输入和输出尺寸决定。

图1 L-TCN网络结构Fig.1 Structure of L-TCN network

1.2 残差块

由于序列建模任务通常需要较大的感受野,而感受野尺寸依赖于网络深度及滤波器大小等,因此本文采用通用残差模块加强L-TCN网络的稳定性。残差网络(Residual Network,ResNet)通过加入shortcut connection,使其变得更加容易优化。包含一个shortcut connection的多层网络被称为一个残差块。一个深度网络中如果期望用一个非线性单元f(x,θ)去逼近目标函数h(x),则可以将目标函数拆分成恒等函数x和残差函数(h(x)-x)。

h(x)=x+(h(x)-x)

(1)

根据通用近似定理,一个由神经网络构成的非线性单元可近似逼近原始目标函数或残差函数,而对于后者的学习相比前者更简单[13]。因此,原优化问题转换为:使非线性单元f(x,θ)近似逼近残差函数(h(x)-x),并使用(f(x,θ)+x)逼近h(x)。

在L-TCN残差模块内,有两层因果空洞深度可分离卷积,根据非线性特性,使用修正线性单元(Rectified Linear Unit,ReLU)[14],并将权值归一化[15]应用于卷积滤波器。此外,L-TCN在残差模块内的每个因果空洞深度可分离卷积都可添加Dropout以实现正则化,防止过拟合现象,最终由多个残差模块堆叠出一个深度可分离的L-TCN。

图2给出了L-TCN残差连接示例。残差块中有两层因果空洞深度可分离卷积,在L-TCN中输入与输出具有不同维度,因此需要使用额外的1×1卷积来确保对应元素相加具有相同维度。其中,k代表卷积核大小,本文取卷积核尺寸为3,d表示空洞系数,本文取空洞系数为1,相当于普通卷积操作。

图2 L-TCN残差连接示例Fig.2 Example of L-TCN residual connection

1.3 因果空洞深度可分离卷积层

1.3.1 因果卷积

序列问题强调先后顺序,RNN的特性使其有助于解决时间序列预测问题,但其由于串行处理序列数据,因此训练速度慢。CNN可以并行处理序列数据,速度比RNN快,但普通卷积网络会将序列中未来的数据和过去的数据同等对待,导致从未来数据到过去数据的泄露。因此,使用因果卷积[7]代替普通卷积处理序列数据,其计算公式如下:

(2)

如图3所示,在因果卷积中,t时刻的输出只与前一层中t时刻及更早时间的元素进行卷积,不存在从未来到过去的数据泄露。

图3 因果卷积Fig.3 Causal convolution

1.3.2 空洞卷积

一个简单的因果卷积只能通过网络深度保障历史时间序列数据的安全,而普通因果卷积网络的感受野很小,多层卷积感受野增长又太慢,不能覆盖较长的序列。这使得将因果卷积应用于序列任务会非常困难,尤其是需要较长历史的任务。文献[7]通过使用空洞卷积[13],在不增加参数量的同时增加了输出单元感受野[14]。

空洞卷积通过给卷积核插入“空洞”增加卷积核大小。若将(d-1)个空洞插入到卷积核的两个元素之间,则此时卷积核的有效大小为:

m′=m+(m-1)×(d-1)

(3)

其中,d为空洞系数。在加大了感受野后,每个卷积输出都包含较大范围的信息,如图4[16]所示。图4(a)对应3×3的空洞卷积,空洞为0,与普通卷积操作一样;图4(b)对应3×3的空洞卷积,实际的卷积核还是3×3,空洞为1,但是该卷积核的感受野已经增大到了7×7;图4(c)对应空洞卷积,实际的卷积核还是3×3,空洞为3,该卷积核的感受野已经增大到15×15。可以看出,增加空洞后,参数量不增加但是大幅增加了感受野的范围。

图4 空洞卷积Fig.4 Dilated convolution

1.3.3 深度可分离卷积

深度可分离卷积减少了卷积运算中的参数量,同时提高了计算效率,并且已在图像分类任务中取得成功应用[17],相比给定参数量的Xception架构[11]和给定级别执行所需参数量的MobileNets系列架构[12]更具性能优势。普通卷积需要同时考虑空间信息及通道相关性,然后对输出进行非线性激活。深度可分离卷积先进行通道卷积,将普通卷积在空间维度上进行分离,以增加网络宽度并丰富提取特征,再进行逐点卷积,不仅降低了卷积操作的计算复杂度,减少了参数量,并且不会对实验结果的精确度造成很大的影响[18]。

普通卷积操作的计算公式如下:

(4)

其中,W为卷积核,y为输入特征图,i、j为输入特征图分辨率,k、l为输出特征图分辨率,m为通道个数。

深度可分离卷积先进行通道卷积,如式(5)所示(其中⊙表示对应元素相乘),再进行逐点卷积,如式(6)所示,最后将式(5)代入式(6)得到深度可分离卷积,如式(7)所示。

(5)

(6)

SepConv(WP,Wd,y)(i,j)=

PonitwiseConv(i,j)(Wp,DepthwiseConv(i,j)(Wd,y))

(7)

L-TCN结构使用因果空洞深度可分离卷积作为卷积层:1)给普通卷积加上因果关系,使得卷积适用于序列任务;2)在因果卷积的基础上结合空洞卷积,使得空洞卷积可以改变卷积过程中的卷积核大小,增加卷积过程中的感受野;3)使用深度可分离卷积的卷积方式,先进行通道卷积再进行逐点卷积,从而改变了传统卷积方式。该卷积层通过这3种操作,限定了输入对输出的影响,并改变了卷积核大小及卷积方式,使其能更好地应用于序列建模任务。

2 L-TCN参数量和计算量分析

通过L-TCN结构可以看出,网络主要包括卷积层、归一化层和Dropout层,主要参数和计算量均在卷积层,因此本文主要研究卷积层中的参数和计算量。L-TCN的轻量化设计主要通过卷积层的深度可分离卷积进行实现。深度可分离卷积[11-12]的核心思想是将一个完整的卷积运算分解为通道卷积与逐点卷积。深度可分离卷积相比普通卷积操作降低了参数量和计算量,这是因为其对每个通道都单独进行学习使每个通道对应不同过滤器,而不是所有通道对应同一个过滤器,得到的特征质量更佳。

本文提出的轻量化设计方法将网络模型中的一维普通卷积替换为深度可分离卷积,如图5所示。

图5 L-TCN轻量化设计Fig.5 Lightweight design of L-TCN

假设输入层是一个大小为M×1、N通道的序列,被P个大小为K×1×N的卷积核进行卷积,在步长为1、卷积补零的情况下,普通一维卷积所需的权重数量计算(忽略偏置参数)如式(8)所示,相应的操作次数计算如式(9)所示。

W1Dconv=K×1×N×P

(8)

O1Dconv=M×1×K×1×N×P

(9)

在使用深度可分离卷积后,忽略偏置参数时通道卷积部分的参数个数计算如式(10)所示,相应的操作次数计算如式(11)所示。点卷积部分的参数个数和操作次数计算如式(12)、式(13)所示。

Wdc=K×1×N

(10)

Odc=M×1×K×1×N

(11)

Wpc=N×P

(12)

Opc=M×1×N×P

(13)

在使用深度可分离卷积时的参数总个数计算(忽略偏置参数)如式(14)所示,相应的操作次数计算如式(15)所示。权重数量和操作次数的比值计算如式(16)、式(17)所示。

W1Dsc=K×1×N+N×P

(14)

O1Dsc=M×1×K×1×N+M×1×N×P

(15)

(16)

(17)

由以上公式可以看出,对于每一层卷积层,深度可分离卷积层与普通卷积层相比可明显降低参数量和计算量。L-TCN主要由深度可分离卷积层构成,因此与TCN相比,L-TCN可以明显降低网络模型的参数量和计算量,无论在网络训练还是在网络预测时,其均可减小存储空间的占用,节约计算时间,并降低对硬件计算能力的要求。

3 实验结果与分析

实验软件环境为Windows 10操作系统,深度学习框架为Tensorflow 1.12。实验硬件环境为Intel Core i3-8100HQ 四核处理器,内存为16 GB,GPU为NVIDIA®GeForce GTX 1060。

L-TCN在The adding problem[19-21]数据集、Copy memory[20-22]数据集和Sequential MNIST[23-24]数据集上进行实验评估,并与TCN、LSTM和门控循环单元(Gated Recurrent Unit,GRU)这3种应用于时间序列预测的典型网络进行性能对比。

3.1 The adding problem数据集

在The adding problem数据集[18-20]中,数据集输入数据由两行组成,第一行包含0到1之间的随机浮点数,第二行除了期望随机选择的两个位置标记为1外,其余都为0,相应的输出标签是一个浮点数,将输入数据第一行中的两个数字相加,而这两个数字在第二行中标记为1,其中T表示输入序列的长度。本文使用L-TCN、TCN、LSTM、GRU进行时间序列预测,实验结果如图6和表1所示,其中输入为400×2的序列,输出为1个浮点数,T取400,训练集为50 000条时间序列,测试集为10 000条时间序列。该实验使用了1个残差块和2层可分离卷积,每层滤波器个数为24,卷积核尺寸为5,优化器为Adam。

图6 4种网络结构在The adding problem数据集上的实验结果Fig.6 Experimental results of four network structureson The adding problem dataset

表1 4种网络结构在The adding problem数据集上的性能对比Table 1 Performance comparison of four network structureson The adding problem dataset

由图6和表1可以看出:1)在数据参数量只有TCN的20%时,L-TCN可以取得与TCN同等的损失值,说明L-TCN确实减少了参数量,与上文理论分析相符合;2)在同等损失值的条件下,L-TCN预测耗时约为TCN的27.8%,也说明了L-TCN确实降低了网络计算量,速度更快,与上文理论分析相符合;3)在同等参数条件下,L-TCN比LSTM和GRU的损失值更低,耗时更短。

3.2 Copy memory数据集

在Copy memory数据集中,每个输入序列的长度为T+20。序列的前10个数字在1~8中随机产生,最后11个数字全部为9(第1个9是一个标记分隔符),序列中的其他数字都是0。该实验目标是生成一个长度相同的输出,除了分隔符后面的最后10个值之外,其他位置都为0,因此网络模型的主要任务是在此重复输入10个值[19-21]。实验结果如图7和表2所示,其中输入为601×1的序列,输出为长度相同的601个数字,训练集为30 000条时间序列,测试集为6 000条时间序列。该实验使用了1个残差块和2层可分离卷积,每层滤波器个数为10,卷积核尺寸为8,优化器为RMSProp。

图7 4种网络结构在Copy memory数据集上的实验结果Fig.7 Experimental results of four network structureson the Copy memory dataset

表2 4种网络结构在Copy memory数据集上的性能对比Table 2 Performance comparison of four network structureson Copy memory dataset

由图7和表2可以看出,在TCN与L-TCN损失值水平差不多的情况下,网络模型数据量降低了约66.7%,说明L-TCN确实减少了模型参数量。在同等损失值的条件下,L-TCN预测耗时也比TCN降低了约66.7%,说明L-TCN确实降低了网络模型的计算量,损失值也明显比另外两种循环网络结构更具优势,并且在1 000次测试中的平均单次测试时间也大幅减少。

3.3 Sequential MNIST数据集

Sequential MNIST是一个手写的数字分类数据集,经常被用于测试循环神经网络保存历史时间序列数据的能力[22-23]。实验结果如图8和表3所示,其中输入为784×1的序列,使用了2个残差块和4层可分离卷积,每层滤波器尺寸为6,每层滤波器个数为20,优化器为Adam。

图8 4种网络结构在Sequential MNIST数据集上的实验结果Fig.8 Experimental results of four network structureson the Sequential MNIST dataset

表3 4种网络结构在Sequential MNIST数据集上的性能对比Table 3 Performance comparison of four network structureson Sequential MNIST dataset

由图8和表3可以看出,在预测精度方面,L-TCN比其他循环神经网络具有更好的表现,与TCN相比,网络模型数据量降低了约66.7%,但预测精度基本相同,并且在1 000次测试中的平均单次测试时间也大幅减少。

4 结束语

针对序列预测问题,本文通过将深度可分离卷积取代时间卷积网络中的普通卷积,设计一种轻量级时间卷积网络结构。理论分析与实验结果表明,与TCN相比,该网络结构在不牺牲预测精度的前提下,能明显降低网络参数量和计算量,节省网络存储空间和计算时间,从而说明轻量级网络更适用于存储空间和计算能力有限的移动终端。此外,实验也证明了在同等网络参数规模的情况下,轻量级时间卷积网络相比传统LSTM和GRU等循环神经网络具有更高的预测精度及更少的预测时间。后续将对轻量级时间卷积网络中的参数设置进行算法调优,以期得到更加精准的预测结果。

猜你喜欢

网络结构空洞残差
基于双向GRU与残差拟合的车辆跟驰建模
锻造过程中大截面塑料模具钢中空洞缺陷的闭合行为
基于残差学习的自适应无人机目标跟踪算法
如何避免想象作文空洞无“精神”
基于递归残差网络的图像超分辨率重建
空洞的眼神
基于广义混合图的弱节点对等覆盖网络结构
体系作战信息流转超网络结构优化
基于互信息的贝叶斯网络结构学习
复杂网络结构比对算法研究进展