曹渝昆,桂麗嬡
(上海電力大學 計算機科學與技術學院,上海 200090)
在深度學習領域,研究人員通常將循環神經網絡(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)結構。
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
由于序列建模任務通常需要較大的感受野,而感受野尺寸依賴于網絡深度及濾波器大小等,因此本文采用通用殘差模塊加強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 因果卷積
序列問題強調先后順序,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種操作,限定了輸入對輸出的影響,并改變了卷積核大小及卷積方式,使其能更好地應用于序列建模任務。
通過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可以明顯降低網絡模型的參數量和計算量,無論在網絡訓練還是在網絡預測時,其均可減小存儲空間的占用,節約計算時間,并降低對硬件計算能力的要求。
實驗軟件環境為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種應用于時間序列預測的典型網絡進行性能對比。
在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的損失值更低,耗時更短。
在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次測試中的平均單次測試時間也大幅減少。
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次測試中的平均單次測試時間也大幅減少。
針對序列預測問題,本文通過將深度可分離卷積取代時間卷積網絡中的普通卷積,設計一種輕量級時間卷積網絡結構。理論分析與實驗結果表明,與TCN相比,該網絡結構在不犧牲預測精度的前提下,能明顯降低網絡參數量和計算量,節省網絡存儲空間和計算時間,從而說明輕量級網絡更適用于存儲空間和計算能力有限的移動終端。此外,實驗也證明了在同等網絡參數規模的情況下,輕量級時間卷積網絡相比傳統LSTM和GRU等循環神經網絡具有更高的預測精度及更少的預測時間。后續將對輕量級時間卷積網絡中的參數設置進行算法調優,以期得到更加精準的預測結果。