張忠豪 董方敏 胡楓 吳義熔, 孫水發(fā),
在過去的十幾年里,深度學習的提出對全球各個領域帶來了巨大的影響.深層神經網絡、卷積神經網絡和循環(huán)神經網絡(Recurrent neural network,RNN)等神經網絡模型被廣泛應用于各個領域.其中,循環(huán)神經網絡具有捕獲長序依賴的能力,因此被廣泛應用于語音識別[1]、語言建模[2]、機器翻譯[3]等自然語言處理[1?4]領域.然而,普通循環(huán)神經網絡會因為梯度消失[5]和梯度爆炸問題而變得不穩(wěn)定,于是學者們提出基于長短期記憶單元(Long short-term memory,LSTM)的時間遞歸神經網絡[1,6]來緩解梯度消失和梯度爆炸問題.雖然LSTM 確實有效,但其門限繁雜,于是近些年有許多針對LSTM的改良方案被提出,其中門控循環(huán)單元(Gated recurrent unit,GRU)[7]是LSTM 最具代表性的一種改進方案.
深度學習的成功主要歸因于它的深層結構[8?9],然而訓練一個深層網絡是較為困難的事.隨著網絡層數的增加,梯度消失、梯度爆炸、網絡退化[10]等問題會導致模型被損壞.為了能夠進行更深的網絡訓練,目前已有多種深層前饋神經網絡的結構被提出,最具代表性的有高速公路網絡[9],用于卷積神經網絡的殘差網絡[11],以及最近被提出的能夠進行更深網絡訓練的簡單循環(huán)單元(Simple recurrent units,SRU)[12?13].
在循環(huán)神經網絡體系中,因為通常使用了飽和激活函數,所以很少會發(fā)生梯度爆炸問題,但是由飽和激活函數而帶來的梯度消失問題卻很常見.雖然LSTM 和GRU 相比傳統(tǒng)的RNN 是具備緩解梯度消失問題的能力,但實際上這種緩解是有限的,這個問題將在后文通過實驗來具體展現.在循環(huán)神經網絡中也存在著網絡退化問題,導致循環(huán)神經網絡的性能隨著網絡層數的增加而越來越糟糕.采用高速公路網絡的方法能夠緩解網絡的退化問題,但是這種方法會增加網絡參數量和訓練耗時[11].近兩年備受關注的SRU 網絡也包含了類似高速公路網絡的結構[13],同時SRU 舍去了循環(huán)單元中的時間參數,所以在運行快速的同時在一些任務中也能夠進行更深的網絡訓練.
本文通過對GRU 結構的深入研究,發(fā)現通過修改其候選隱狀態(tài)的激活函數并添加殘差連接,可以有效地解決原始GRU 的梯度消失和網絡退化問題.而對于使用了非飽和激活函數而可能導致的梯度爆炸隱患,本文則是采用了批標準化(Batch normalization,BN)[14]的方法來解決.在本文的3 類不同對比實驗中,本文設計的(Residual-GRU,Re-GRU)在3 類實驗中均取得了比GRU、LSTM、Highway-GRU、SRU 等網絡更好的效果,并且在同樣的配置下,本文設計的Re-GRU 比LSTM 和Highway-GRU 耗時更短.
門控循環(huán)單元(GRU)是LSTM 的簡化改進,GRU和LSTM 的共同點是每個神經元都是一個處理單元,每個處理單元都包含了若干個門限,門限可以判斷輸入的信息是否有用.與LSTM 不同的是,每個GRU 處理單元僅有兩個門限,并且GRU 的單元只有一個時序輸出,所以GRU在保證能有效傳遞時序相關信息的條件下,擁有更少的參數量.GRU 單元結構如圖1 所示,公式定義如下:
圖1 GRU 單元結構Fig.1 GRU structure
式中,xt表示當前層的t時刻輸入值,ht?1是t?1 時刻的狀態(tài)輸出值,zt和rt分別為t時刻的更新門和重置門,更新門和重置門的激活函數σ是Sigmoid 函數,at為t時刻的候選隱狀態(tài),ht表示當前時間t的狀態(tài)向量,Tanh是候選隱狀態(tài)的雙曲正切激活函數,模型權重參數是Wz、Wr、Wa、Uz、Ur和Ua,偏置向量為bz、br和ba.
在普通神經網絡中,若網絡層數過高且沒有特殊限制,往往會產生冗余的網絡層,冗余網絡層存在不必要的計算,這通常會導致網絡性能變差.要想讓網絡不產生冗余,就需要對網絡結構進行特殊的設計.假設x是網絡某層的輸入,F(x) 表示x經過了某種運算,H(x) 是此層的輸出,則普通網絡的輸出為H(x)=F(x).如果能在經過冗余的網絡層時讓輸出H(x) 直接等同于輸入x,也就是構成一個恒等映射H(x)=x,這樣就能避免了信息通過不必要的計算,從而保證了信息的有效傳遞,實現消除網絡退化的目的.
高速公路網絡[9]是一種能實現深度神經網絡的結構,高速公路網絡通過一個輔助門控T來控制輸出的信息.假設某層的輸入為x,原始的輸出為F(x). 則當T=1 時則新的輸出H(x) 完全由F(x) 構成,當T=0 時則新輸出H(x)完全由上一層的信息x構成.通過門控T即可讓有效信息有效傳遞,從而使網絡層不冗余.常用的高速公路網絡結構見圖2,公式定義如下:
圖2 高速公路網絡結構Fig.2 Highway-network structure
式中,x是輸入,w是權重,b是偏置向量,F(x) 是未經過高速公路網絡之前的輸出,C與T是高速公路網絡的門控,σ是門控T的激活函數,H(x) 是高速公路網絡輸出.
高速公路網絡通過門控的控制,可以確保相有效信息能夠暢通流動.SRU 網絡也是運用了這種類似的結構[13],使其網絡能夠更好地保證信息傳輸.
殘差網絡[11]的主要貢獻是更好地解決了學習恒等映射函數問題,并且沒有增加網絡參數數量.殘差網絡將擬合恒等映射函數H(x)=x轉化為優(yōu)化殘差函數F(x)=H(x)?x.當殘差函數中F(x)=0 時就構成了H(x)=x的恒等映射,這樣就避免了多余網絡層產生的冗余,使得網絡在梯度下降的時候能夠有效地應對網絡退化問題[11].有研究表明,網絡退化的原因是權重矩陣的退化[10],而殘差連接的不對稱性能夠很好地應對權重矩陣退化問題.
殘差網絡與高速公路網絡不同在于: 高速公路網絡認為需要通過門限來控制殘差的量,而殘差網絡認為殘差是隨時存在的,所以在計算的時候不需要門限的限制.通過建立與之前層的信息通道,使得網絡可以堆積殘差,從而網絡可以進行更深層的訓練.所以殘差網絡能更有效地學習殘差映射且不會有更高的復雜度.殘差網絡公式見式(8),原始殘差網絡如圖3 所示[11].而在沒有殘差計算的時候,輸出y則完全由σ(Wxl+bl) 提供.
圖3 殘差網絡結構[11]Fig.3 Residual-Networks structure[11]
式中,xl表示l層的輸入,xl?1表示l?1 層的輸入,y表示l層的輸出,bl為l層的偏置項,σ為激活函數.
在循環(huán)神經網絡中,梯度消失和網絡退化尤為嚴重.針對這兩個問題,本文通過對GRU 改進來解決.在GRU的算法公式中最核心的公式為候選隱狀態(tài)式(3).式(3)的輸出值和前一時刻隱狀態(tài)的輸出值共同決定了GRU 隱狀態(tài)的最終輸出.所以本文的改進主要針對GRU 的候選隱狀態(tài)公式,主要分為以下3 點:
1)非飽和激活函數
將GRU 的候選隱狀態(tài)的激活函數改為線性整流函數(Rectified linear unit,ReLU),這樣能夠讓本文的改進網絡能夠很好地避免由飽和函數引起的梯度消失,進而能夠應對更深度的網絡訓練[15].常見的ReLU 函數為:
式中,ReLU函數的輸入是f(x),f(x) 表示x經過某種運算.
由于ReLU在負半區(qū)的導數為0,所以一旦神經元激活后的值為負,則梯度為 0. 當f(x) 大于 0 時,有:
ReLU激活函數可以保證信息傳輸更加直接,相比飽和的激活函數,ReLU不存在飽和激活函數帶來的梯度消失問題,且能更好地配合殘差信息的傳遞.將式(3)改為:
在過去的循環(huán)神經網絡中,使用無邊界的非飽和激活函數通常會產生梯度爆炸問題.ReLU是非飽和激活函數的代表,也存在梯度爆炸問題.而將非飽和激活函數與批標準化技術相結合,可以有效地使梯度爆炸問題得到有效的緩解[11, 16].其中文獻[16]在GRU 上進行了類似的改進,也表明了在GRU 網絡上使用非飽和激活函數的有效性.本文選擇ReLU 是由于其具有代表性,使用其他類似的非飽和激活函數亦是可行的[17].
2)添加殘差連接
本文參考卷積神經網絡中殘差網絡的方式來對GRU進行改進,從而解決GRU 中的梯度消失和網絡退化問題.具體地,本文是將殘差連接放在式(11)中.對于引入的殘差信息,本文使用的是前一層的還未激活的候選隱狀態(tài)值,而不是前一層的隱狀態(tài)輸出值原因是未激活的值相比激活后的值具有更多的原始信息.本文所設計的改進方案與卷積神經網絡中的殘差網絡不同,Re-GRU 的每一層都有殘差連接.改進后的隱狀態(tài)公式為:
此外,也有研究者嘗試過在循環(huán)神經網絡上建立殘差連接[13],也設計過在GRU 公式的其他公式中添加殘差,例如直接在式(4)中添加殘差連接,或在式(3)的激活函數之外添加殘差連接,而通過大量實驗和算法推導發(fā)現本文所提方案是實驗中性能最佳的改進方案.
3)批標準化
批標準化[14]通過對每個訓練小批量的每個層的預激活的均值和方差進行規(guī)范化來解決數據內部協變量偏移,同時也能夠加速訓練工程和提高系統(tǒng)性能.同時也能夠加速訓練工程和提高系統(tǒng)性能.使用批標準化可以緩解非飽和激活函數造成的梯度爆炸問題[16].本文通過改變GRU 的激活函數同時添加殘差連接,再運用批標準化的優(yōu)秀性質,可以達到消除傳統(tǒng)GRU 中的梯度消失和網絡退化的目的.結合批標準化之后本文的Re-GRU 第l 層的單元結構見圖3,結構單元公式如下:
式中,BN表示采用的批標準化.由于批標準化的性質就是消除偏差,所以式(14)、式(15)和式(17)中的偏置向量b被忽略.
由于循環(huán)神經網絡具備層數空間,同時也具備時序性,所以在循環(huán)神經網絡中存在反向傳播和沿時間的反向傳播.本文設計的Re-GRU 是基于神經網絡上下層而建立的殘差網絡,所以本文僅對Re-GRU 的候選隱狀態(tài)的反向傳播展開討論.
使用F(m) 對式(17)中的部分函數進行等效替換,替換后的結構如圖4 所示.
圖4 Re-GRU 結構Fig.4 Re-GRU structure
假設此時時刻為t,設L為網絡當前層數,設l為要計算的誤差項所在層數,L層到l層之間有若干個網絡層.設網絡每層的神經元個數相同,此時式(17)的維度匹配矩陣V可以被忽略,則式(17)可以簡化為:
由于ReLU 在負半區(qū)的導數為0,一旦神經元激活后的值為負,則梯度為0,也就相當于不進行訓練.所以當大于0 時,有:
結合ReLU 的性質,在梯度大于0 時有:
式中,E為誤差,表示L層t時刻的狀態(tài)向量,為L層更新門門限.
Re-GRU 的權重以及權重都使用來計算更新.由式(24)可知,在改變激活函數并添加殘差連接后,Re-GRU第l層候選隱狀態(tài)誤差項就能避免因L層到l層之間的多層連續(xù)相乘而導致的梯度消失.通過Re-GRU 的反向傳播,可以表明本文的Re-GRU 相比傳統(tǒng)的循環(huán)神經網絡更有利于有效信息在層之間進行傳遞,也表明了Re-GRU對梯度變化的敏感性,達到了解決網絡退化的目的.
本文實驗中的神經網絡都是在Linux 系統(tǒng)上利用Pytorch 平臺搭建神經網絡完成模型訓練,都使用NVIDIA Ge-Force GTX 1060 顯卡進行加速訓練.本文分別對圖像識別、語言模型預測和語音識別三類情況各進行了實驗.圖像識別使用MNIST數據集[18],語言模型預測使用PTB 數據集[2?3,19]和WikiText-2 數據集[20],語音識別使用TIMIT數據集[1, 21].為了方便本文更快完成地實驗,并且為了公平性,本文實驗中的每種循環(huán)神經網絡都只使用單向的循環(huán)網絡結構.
本文的第1 個實驗任務是圖像識別,采用了MNIST手寫字數據集.該數據集包含了60000 張28 × 28 像素圖片的訓練集和10000 張28 × 28 像素圖片的測試集,選擇這個數據集主要是它能很好地展現梯度消失現象,并且小數據集很方便進行模型試驗.在此數據集上,本文使用了RNN、GRU、LSTM、RNN-relu、GRU-relu、Highway-GRU、Re-GRU、SRU 來進行對比實驗.其中的RNN-relu是將激活函數替換成ReLU 的RNN,GRU-relu 是將候選隱狀態(tài)激活函數換成ReLU 的GRU,Highway-GRU 是使用了高速公路網絡結構的GRU.本文對每個神經網絡都使用相同的配置: 均使用交叉熵損失函數作為損失函數;梯度下降優(yōu)化器均使用均方根傳遞(Root mean square propagation,RMSProp);均使用一層全連接層來匹配輸出維度和目標維度;隱藏層的神經元均為64 個,初始學習率均為0.01.所有網絡分別進行1、2、7、10、14 層的網絡訓練.
實驗的評估標準為識別測試集的準確率.具體實驗結果見表1.由表1 可以看出,RNN、GRU、LSTM 在網絡層數增加時,其模型的準確率則逐漸降低.在7 層之后RNN、GRU、LSTM 模型的識別精度降低到約10%.由于這個任務要做的是識別一個手寫字圖到底是0~ 9 中的哪一個數字,而隨機給出一個數字命中正確的概率就為10%,所以10%的準確率相當于隨機的預測,此時的模型已是無效模型.
本文對RNN 和GRU 的激活函數進行修改,將飽和的激活函數(RNN-relu)改為非飽和激活函數(GRU-relu).由表1可以看出,RNN-relu 和GRU-relu 相比,RNN 和GRU 具有更好的表現.這種效果的提升主要是使用了非飽和激活函數,從而避免了飽和激活函數帶來的梯度消失問題.圖5 展示了同為7 層的GRU、GRU-relu、Re-GRU 的訓練過程中的損失值變化曲線.通過對比圖5 中的GRU 和GRUrelu 的損失值變化,可以很直觀地看出,在使用飽和激活函數時,GRU 深層網絡的梯度無法得到有效更新,使得損失函數不能有效的降低,而使用了非飽和激活函數,則能避免這種因使用了飽和激活函數而導致的梯度消失問題.
圖5 7 層網絡的GRU、GRU-relu、Re-GRU 在MNIST 數據集上的損失變化曲線Fig.5 Loss curve of GRU,GRU-relu and Re-GRU on the MNIST data set of a seven-layer network
表1 MNIST 數據集測試結果 (%)Table 1 MNIST dataset test results (%)
但是,簡單地修改激活函數只能解決梯度消失問題,卻并不能應對網絡退化問題.從2~ 14 層準確率變化情況可以看出,GRU-relu 和RNN-relu 的準確率隨著層數遞增而不斷下降,到第14 層時兩者的模型都發(fā)生損壞,這種情況主要是由于網絡退化而導致的.Highway-GRU 的結果可以表明利用不對稱算法的方式是可以緩解網絡退化的問題.對于Highway-GRU,在2~ 10 層時,模型都表現較好,但到了第14 層時,模型也發(fā)生了問題,使得準確率大幅度下跌,這種情況是Highway-GRU 模型在網絡層數較深時產生了梯度問題.對于SRU,能維持較好模型效果的主要原因是其結構單元舍棄了時間信息參數,所以在不需要時序信息的圖像任務中有較好的表現.
通過對比表1 可以看出,本文設計的Re-GRU相比其他模型不僅具備更好的識別效果,同時在網絡層數很深時依然是一個有效且良好的模型.而在圖5 中,對比3 種模型的損失值變化曲線,能夠很清晰地反映出本文設計的Re-GRU 損失值下降更加平滑且有效.在更加深層的訓練中,本文設計的Re-GRU 能夠避免梯度問題,依然能保持良好的準確率.值得注意的是,本文設計的Re-GRU 在層數增加時,準確率會小幅度降低.這種情況主要是因為MNIST數據集較小,很容易產生過擬合現象,而Re-GRU 并不能避免過擬合的發(fā)生.
本文第2 個實驗是語言模型預測,使用的數據集是在語言模型預測中常用的數據集Penn Treebank (PTB)[19].該數據集包含了10000 個不同的詞語和語句結束標記符,以及標記稀有詞語的特殊符號.與圖像任務不同,語言模型任務是時序性的,能更好地對比不同循環(huán)神經網絡的性能.本文使用了Pytorch 官方的語言模型示例源碼來完成PTB 數據集的訓練和測試,其中的網絡結構部分源碼是本文重新構建的.在此數據集上,本文同樣使用了RNN、GRU、
LSTM、RNN-relu、GRU-relu、SRU、Highway-GRU、Re-GRU 進行對比實驗.實驗采用困惑度(Perplexity,PPL)評估標準,一般來說PPL 值越小則表明模型效果越好[2].實驗中的每個循環(huán)神經網絡配置都是完全相同的: 均設置了650 個神經元;嵌入層的大小均為650,均使用了批標準化,丟棄率均為50%.每種網絡分別進行3、5、7 層的網絡訓練,具體結果如表2 所示,其中逗號左為PPL 值,逗號右為迭代一次的運行時間.
表2 PTB 的測試結果 (PPL,s)Table 2 PTB dataset test results (PPL,s)
表2 中,除了本文的Re-GRU 之外,表現最好的是LSTM,在第5 層的時PPL 達到了41.03.但是當網絡層數升高到7 層時,LSTM 的PPL 值升高了一倍.
由表2 可知,Highway-GRU 在實驗2 中表現不理想.與GRU 和LSTM 的測試結果相對比,Highway-GRU 的表現要差很多.雖然Highway-GRU 能夠在網絡層數增加時有效降低PPL 值,但是其時間消耗是相對最多的.本文同時對Highway-GRU 進行了更深的網絡訓練,在9 層網絡時,Highway-GRU 的PPL 值為90.86,11 層時為90.64,這樣的結果相比其他的模型效果是較差的,因為Highway-GRU 的復雜結構并不適用于這個任務.SRU與高速公路網絡具有類似的結構,而SRU 舍棄了時序參數.所以SRU雖然運行速度很快,但是效果卻并不理想.
由表2 可以看出,本文設計的Re-GRU 不僅有著最優(yōu)的PPL 值,而且在網絡層數升高的同時依然保持良好的效果.將GRU 和和Re-GRU在訓練過程中每次迭代得到的損失值進行統(tǒng)計,并繪制了損失值變化曲線(見圖6).其中圖6(a)為完整變化曲線,圖6(b)為局部放大圖.通過對比圖6 的損失變化曲線可以明顯地看出,本文設計的Re-GRU 在迭代時損失下降更加平滑且更快.這正是由于本文設計的Re-GRU 網絡對梯度變化敏感,使得Re-GRU 在網絡的空間上的反向傳播能夠更有效的傳遞信息,從而使模型能更有效的完成學習任務.表2 直觀地表明,本文設計的Re-GRU 相比GRU 和LSTM 的PPL 值降低了超過50%,并且本文設計的Re-GRU 在網絡較深時依然能夠擁有較好的模型效果.在時間消耗的對比上,本文設計的Re-GRU 低于LSTM和Highway-GRU.值得一提的是,在PTB 數據集上,本文設計的Re-GRU 所得到的困惑度達到23.88,這個測試結果比此前最佳記錄的效果提升超過了一倍[2, 22].
圖6 GRU與Re-GRU 在PTB 數據集上的損失值變化曲線Fig.6 Loss curve of GRU and Re-GRU on PTB dataset
為了進一步探索網絡模型在語言模型任務上的有效性,本文采用了一個與PTB 數據集相類似的WikiText-2數據集[20]作為本文的第3 個實驗.WikiText-2 相比PTB數據集規(guī)模更大一倍.本文挑選了RNN、GRU、LSTM、SRU、Re-GRU 網絡來完成實驗,均使用7 層的網絡結構,其他參數設定與本文實驗2 的參數設置相同.實驗結果見表3,其中逗號左為PPL 值,逗號右邊為一次迭代的時間消耗.
表3 WikiText-2 的測試結果(PPL,s)Table 3 WikiText-2 dataset test results (PPL,s)
表3 中,本文設計的Re-GRU 依然擁有最低的PPL,并且運行時間低于LSTM.通過表3與表2的數據對比 可以發(fā)現,各個網絡的在PTB 數據集和WikiText-2 數據集上的實驗效果基本類似,表明了本文改進方法的有效性.
另外,經過多次實驗和分析,實驗所用各個網絡模型效果較好的主要原因是使用了批標準化算法.當不使用標準化時,以上網絡結構實際性能普遍都達不到表2 和表3的結果.當使用了批標準化技術后,各網絡結構的性能皆有較大提升,而各個模型的性能差異主要是網絡結構的不同,其中本文設計的Re-GRU 結構在表2 和表3 中均有最佳困惑度的表現.
本文第4 個實驗是語音識別,主要是語音識別聲學模型訓練,采用經典的TIMIT 語音識別數據集[23].該數據集一共包含6300 個句子,由來自美國8 個主要方言地區(qū)的630 個人每人說出給定的10 個句子,所有的句子都在音素級別上進行了手動分割好和標記[21].語音識別也是一個時序的任務,通過這個任務,進一步證明了本文設計的Re-GRU的可靠性和適用性.該數據集的訓練集和測試集分別占90%和10%.數據的特征是,首先采用Kaldi 工具箱[24]提取的39 維梅爾頻率倒譜系數;接著,使用Kaldi 工具箱來完成語音識別基線任務,標簽是通過對原始訓練數據集執(zhí)行強制對齊過程而得到的.有關的更多細節(jié)參見Kaldi的標準s5配置;然后,在Pytorch平臺上利用Pytorch-Kaldi[21]構建神經網絡完成聲學模型訓練;最后,本文使用Kaldi 的解碼器完成語音識別效果評估任務,評估標準采用標準的音素識別錯誤率(Phone error rate,PER).
在語音識別實驗中,本文同樣進行了RNN、GRU、LSTM、RNN-relu、GRU-relu、SRU、Highway-GRU、Re-GRU 的循環(huán)神經網絡模型訓練,并且補充了一個使用了非飽和激活函數的GRU 改進網絡Light-GRU (Li-GRU)[21].所有神經網絡模型分別進行了3、5、7 層網絡的實驗,最后使用Softmax 分類器進行分類.本文為每個循環(huán)神經網絡都設置了每層450 個神經元;均設置了20%的遺忘率;初始化方式均為正交初始化[25];批處理大小設置為每次8個句子;損失函數均使用交叉熵損失函數;優(yōu)化器均使用RMSProp 算法;均使用了批標準化技術;初始學習率均設置為0.0008;所有的模型進行25 次迭代訓練,均設置了相同的學習率衰減.具體實驗結果見表4,其中逗號左為PER 值,逗號右為一次迭代的時間消耗.
由表4 可以看出,RNN、GRU、SRU、Li-GRU 和LSTM 在層數增加時錯誤率明顯上升.Highway-GRU 相對于GRU 有更低的音素識別錯誤率,并且在層數增加時有著更好的模型效果,但其消耗的時間卻明顯高于其他結構.而本文設計的Re-GRU 在7 層網絡時,比GRU 的音素識別錯誤率低1.4%,比LSTM 低0.8%,比Li-GRU 低1%.此外,在訓練耗時方面,Re-GRU 的時間消耗低于LSTM和Highway-GRU.
表4 TIMIT 的測試結果(%,s)Table 4 TIMIT dataset test results (%,s)
圖7(a)為GRU 和Re-GRU 在訓練過程中對訓練集的損失值變化曲線,為了讓對比效果更明顯,本文選擇了3 層、5 層和7 層網絡并且沒有使用學習率衰減.其中圖7(b)為圖7(a)的第20~ 25 次迭代的損失值曲線放大圖.由圖7 可以看出,傳統(tǒng)GRU 的損失值隨著網絡層數的增加而越來越大,而本文設計的Re-GRU 能隨層數增加而有效降低損失值.損失值的有效降低使得本文設計的Re-GRU模型音素識別錯誤率能夠低于其他模型.
圖7 GRU與Re-GRU 在TIMIT 數據集上的損失值變化曲線Fig.7 Loss curve of GRU and Re-GRU on TIMIT dataset
當本文在TIMIT 數據集的梅爾頻率倒譜系數特征值上使用Pytoch-Kaldi 平臺構建7 層網絡的雙向Re-GRU時,模型的音素識別錯誤率低至15.0%,對比文獻[21]方法,本文設計的Re-GRU 具有更優(yōu)的模型效果.
此外,本文采用了類似于文獻[11]的構建跨越兩層的殘差連接,將Re-GRU 的跨越一層改為跨越兩層.跨越兩層可以更遠的傳遞信息,通過這種方式可以使網絡進行更遠的殘差學習.在TIMIT 數據集上進行額外的對比實驗,發(fā)現在同樣網絡深度下,跨越兩層的Re-GRU 比跨越一層的Re-GRU 音素識別錯誤率大約要更低0.1%~ 0.3%.
在循環(huán)神經網絡體系中,存在著梯度消失和網絡退化問題,本文基于GRU 提出的Re-GRU 具備解決梯度消失和網絡退化問題的能力.與傳統(tǒng)循環(huán)神經網絡相比,本文的Re-GRU 在網絡層數較深時模型依然能有較好的性能,并且本文的改進并沒有增加網絡的參數量.相比傳統(tǒng)的循環(huán)神經網絡,本文的Re-GRU 有著更低的錯誤率和較低的訓練耗時.在缺點方面,本文設計的Re-GRU 不能夠避免過擬合現象: 如果使用了特別深的網絡,雖然模型的損失值可能繼續(xù)降低或者保持不變,但模型效果卻可能變差.此外,之前也對RNN 和LSTM進行了類似的改進并進行實驗,發(fā)現本文的改進方法在RNN 上使用后能夠相對RNN 有較大效果提升,但卻并不適用于LSTM.通過理論分析和具體實驗發(fā)現: 當將LSTM 的兩個或其中一個時序傳輸公式中的飽和激活函數修改為非飽和激活函數時,都會導致模型發(fā)生梯度爆炸問題;并且,僅僅對LSTM 直接添加殘差連接未能取得較大效果提升.