劉 丹,葉 茂
(電子科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,成都 611731)
自20世紀(jì)80年代以來(lái),人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)已經(jīng)成為人工智能領(lǐng)域的研究熱點(diǎn).ANN是一種旨在模擬大腦神經(jīng)系統(tǒng)對(duì)外界復(fù)雜信息的處理機(jī)制的數(shù)學(xué)模型,其在模式識(shí)別、智能機(jī)器人、自動(dòng)控制等領(lǐng)域表現(xiàn)出了良好的智能特性.傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)(Full Connected Neural Network,F(xiàn)CNN),也稱(chēng)前饋神經(jīng)網(wǎng)絡(luò)(Feed-forward Neural Network,F(xiàn)NN),如圖1(左)所示.它采用單向多層結(jié)構(gòu),同一層的神經(jīng)元之間沒(méi)有相互連接,是彼此獨(dú)立的.換句話說(shuō),對(duì)于FNN,一個(gè)輸入對(duì)應(yīng)一個(gè)輸出,不同的輸入之間是沒(méi)有聯(lián)系的.感知機(jī)在1957年首次被提出,作為最早的ANN,感知機(jī)是一種最簡(jiǎn)單的網(wǎng)絡(luò)模型.作為深度FNN的經(jīng)典網(wǎng)絡(luò)——卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1]依靠其局部連接和共享權(quán)值的設(shè)計(jì)理念,在圖像識(shí)別、自然語(yǔ)言處理等領(lǐng)域被廣泛應(yīng)用,尤其在手寫(xiě)數(shù)字識(shí)別任務(wù)中取得了良好的識(shí)別效果[2,3].但是,F(xiàn)NN無(wú)法處理在時(shí)間或空間上有前后關(guān)聯(lián)的信息輸入問(wèn)題.所以,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的應(yīng)用受到了限制.
圖1 (左)前饋神經(jīng)網(wǎng)絡(luò)和(右)回復(fù)式神經(jīng)網(wǎng)絡(luò)Fig.1 (left)FNN and(right)RNN
針對(duì)需要處理序列信息的學(xué)習(xí)任務(wù),如文本翻譯、智能對(duì)話、股票行情預(yù)測(cè)等,它們的輸入是有時(shí)間順序的序列數(shù)據(jù),回復(fù)式神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)作為一類(lèi)用于處理和預(yù)測(cè)序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型應(yīng)運(yùn)而生.RNN在文本生成、機(jī)器翻譯、語(yǔ)音識(shí)別、視頻標(biāo)記等任務(wù)中被廣泛地應(yīng)用研究,并且已經(jīng)取得豐碩的研究成果[4-6].作為神經(jīng)網(wǎng)絡(luò)的一個(gè)重要模型,RNN克服了傳統(tǒng)機(jī)器學(xué)習(xí)方法對(duì)輸入輸出數(shù)據(jù)的許多限制,無(wú)論從理論上還是應(yīng)用層面上,深入分析研究回復(fù)式神經(jīng)網(wǎng)絡(luò)(RNN)具有重要的現(xiàn)實(shí)意義.圖2是ANN的體系結(jié)構(gòu)圖,它包括前饋神經(jīng)網(wǎng)絡(luò)和反饋神經(jīng)網(wǎng)絡(luò)兩大類(lèi)型.
圖2 人工神經(jīng)網(wǎng)絡(luò)分類(lèi)Fig.2 Classification of the ANN
本文將首先闡述RNN的基本原理、計(jì)算過(guò)程和訓(xùn)練方法,然后針對(duì)傳統(tǒng)RNN在實(shí)際應(yīng)用中存在的缺陷,介紹幾種流行的優(yōu)化結(jié)構(gòu),包括模型結(jié)構(gòu)特點(diǎn)、組件功能;接著描述RNN的常用應(yīng)用領(lǐng)域、相關(guān)工作以及對(duì)RNN的未來(lái)研究發(fā)展方向展開(kāi)探討;最后總結(jié)全文內(nèi)容.
1982年,美國(guó)加州理工學(xué)院物理學(xué)家Hopfield提出Hopfield網(wǎng)絡(luò)模型用以解決組合優(yōu)化問(wèn)題,該網(wǎng)絡(luò)擁有很強(qiáng)的計(jì)算能力并且具有聯(lián)想記憶功能,這是最早的RNN的雛形.之后Jordan和Elman對(duì)其進(jìn)行改進(jìn)和簡(jiǎn)化,便有了最初的僅包含單個(gè)自連接節(jié)點(diǎn)的RNN模型.但是,由于梯度消失和梯度爆炸問(wèn)題,訓(xùn)練RNN非常困難,致使RNN的應(yīng)用受到限制.直到1997年,Hochreiter和Schmidhuber[7]提出長(zhǎng)短時(shí)記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò),該網(wǎng)絡(luò)使用門(mén)控單元以及記憶狀態(tài)大大緩解了早期RNN訓(xùn)練問(wèn)題.LSTM模型的提出改進(jìn)了RNN結(jié)構(gòu),拓寬了RNN的應(yīng)用范圍,為后續(xù)序列建模的發(fā)展奠定了基礎(chǔ).
與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,RNN相當(dāng)于加入了人的先驗(yàn)知識(shí),即將數(shù)據(jù)信息按照時(shí)間順序輸入到對(duì)應(yīng)模型.RNN最大的特點(diǎn)就是隱藏層神經(jīng)元的狀態(tài)不僅依賴(lài)于當(dāng)前時(shí)刻的輸入,也與當(dāng)前系統(tǒng)前一時(shí)刻的隱藏狀態(tài)相關(guān),如圖1(右)所示,RNN在隱藏層單元間添加了橫向連接,這種結(jié)構(gòu)使得神經(jīng)元?dú)v史信息能夠傳遞到當(dāng)前神經(jīng)元中,適合處理時(shí)間序列數(shù)據(jù),因此RNN可以保持?jǐn)?shù)據(jù)之間的依賴(lài)關(guān)系.
RNN的前向傳播計(jì)算公式如公式(1)、公式(2)所示,其中x表示輸入層,h表示隱藏層,y表示輸出層,W和b分別表示權(quán)重參數(shù)和偏移項(xiàng),σ為激活函數(shù),t表示時(shí)間索引.
ht=σ(Wh[xt,ht-1]+bh)
(1)
yt=σ(Wyht+by)
(2)
由于RNN的循環(huán)連接方式,將公式(1)反復(fù)帶入公式(2)中,可以看到RNN可以向前查看任意時(shí)刻的輸入,因此,RNN具有記憶功能,尤其適用于注重信息時(shí)序性的任務(wù).
(3)
對(duì)于RNN,因?yàn)橐幚頃r(shí)序數(shù)據(jù),所以它采用基于時(shí)間的反向傳播(Back-Propagation Through Time,BPTT)算法.BPTT算法的基本原理和BP算法相同[8].RNN每一時(shí)刻t都會(huì)產(chǎn)生一個(gè)損失值losst,因此網(wǎng)絡(luò)的總損失可以表示為L(zhǎng)=∑tlosst.在RNN訓(xùn)練過(guò)程中,梯度一方面會(huì)按照空間結(jié)構(gòu)傳播(輸出層,隱藏層,輸入層),即yt→ht→xt,這種情況與BP算法一致;另一方面,梯度要沿著時(shí)間通道傳播,即ht→ht-1→…→h1,此時(shí),基于公式(1)循環(huán)迭代地計(jì)算各層梯度,這也是BPTT算法名稱(chēng)的由來(lái).表1總結(jié)了BP算法和BPTT算法的特點(diǎn)和訓(xùn)練過(guò)程.
表1 BP算法和BPTT算法比較Table 1 Comparison of BP and BPTT algorithms
RNN受限于短期記憶問(wèn)題,根據(jù)其隱藏層單元狀態(tài)的計(jì)算方式,越晚的時(shí)間步輸入對(duì)后續(xù)影響越大,越早的輸入對(duì)后續(xù)影響越小.如果一個(gè)輸入序列足夠長(zhǎng),RNN可能會(huì)遺漏該序列的前期重要信息,這就是RNN存在的短期記憶問(wèn)題.另外,在使用BPTT算法訓(xùn)練RNN時(shí),梯度會(huì)在反向傳播的過(guò)程中快速消失,也就是所謂的梯度消失問(wèn)題.當(dāng)前已經(jīng)存在大量的研究工作用于解決RNN存在的這些問(wèn)題[7,10-12],其中最具代表性的優(yōu)化結(jié)構(gòu)算法是LSTM網(wǎng)絡(luò)和GRU網(wǎng)絡(luò),它們都使用跳躍連接(SC)的技巧讓梯度跨過(guò)一些時(shí)間步,從而只保留重要的信息.
RNN隱藏層只有一個(gè)狀態(tài)h,不能處理長(zhǎng)期依賴(lài)問(wèn)題,LSTM網(wǎng)絡(luò)通過(guò)在隱藏層添加一個(gè)細(xì)胞狀態(tài)c來(lái)保存長(zhǎng)期依賴(lài)關(guān)系,然后利用門(mén)控單元來(lái)控制外部信息向長(zhǎng)期狀態(tài)c的流入和流出.如果將網(wǎng)絡(luò)看作一個(gè)黑匣子,圖3則簡(jiǎn)單明了的說(shuō)明了RNN與LSTM的根本區(qū)別,即LSTM添加了門(mén)控單元和存儲(chǔ)長(zhǎng)期記憶的細(xì)胞狀態(tài)c.
圖3 RNN和LSTM的內(nèi)部機(jī)制示意圖Fig.3 Internal mechanism diagram of the RNN and LSTM
LSTM設(shè)計(jì)三個(gè)門(mén)控開(kāi)關(guān)來(lái)控制外部信息向長(zhǎng)期狀態(tài)c的流入和流出.圖4展示了LSTM單元結(jié)構(gòu).其中,輸入門(mén)it控制當(dāng)前網(wǎng)絡(luò)輸入xt有多少信息可以保存到記憶單元,遺忘門(mén)ft決定上一時(shí)刻的單元狀態(tài)ct-1有多少信息可以保留到當(dāng)前狀態(tài)ct,而輸出門(mén)ot則用來(lái)控制單元狀態(tài)ct有多少信息可以輸出到LSTM的當(dāng)前的輸出值ht.三個(gè)門(mén)的計(jì)算公式如下:
圖4 LSTM單元結(jié)構(gòu)Fig.4 Structure of LSTM cell
it=σ(Wi[ht-1,xt]+bi)
(4)
ft=σ(Wf[ht-1,xt]+bf)
(5)
ot=σ(Wo[ht-1,xt]+bo)
(6)
其中[ht-1,xt]表示t-1時(shí)刻的隱藏層狀態(tài)向量ht-1和t時(shí)刻的輸入狀態(tài)向量xt的拼接.LSTM隱藏層的最終輸出ht的計(jì)算方式為:
ct=ft⊙ct-1+it⊙tanh(Wc·[ht-1,xt]+bc)
(7)
ht=ot⊙tanh(ct)
(8)
其中⊙代表對(duì)應(yīng)元素相乘.Gers等人[13]在LSTM的基礎(chǔ)上提出窺視孔連接(Peephole Connection,PC),其主要思想是增加三個(gè)門(mén)控單元和記憶單元的連接,門(mén)控單元也可以觀察到記憶單元的內(nèi)容.但是,研究者們發(fā)現(xiàn)[14]在語(yǔ)言模型任務(wù)中,LSTM和帶PC的LSTM網(wǎng)絡(luò)性能基本相當(dāng),但是后者需要更多的網(wǎng)絡(luò)參數(shù),所以現(xiàn)在大多數(shù)研究工作都不使用帶PC的LSTM網(wǎng)絡(luò)結(jié)構(gòu).另外,實(shí)驗(yàn)證明輸入門(mén)、輸出門(mén)和輸入激活函數(shù)對(duì)LSTM網(wǎng)絡(luò)結(jié)構(gòu)的性能影響很大.
綜上所述,LSTM網(wǎng)絡(luò)通過(guò)引入門(mén)控單元(輸入門(mén)、輸出門(mén)、遺忘門(mén))和長(zhǎng)期記憶細(xì)胞狀態(tài),有效克服了RNN中存在的梯度消失問(wèn)題,尤其在長(zhǎng)距離依賴(lài)的序列學(xué)習(xí)任務(wù)中表現(xiàn)優(yōu)異.
GRU是RNN的另一種流行變體,它與LSTM單元非常相似,它將LSTM中的遺忘門(mén)和輸入門(mén)合成了一個(gè)門(mén),并且只使用隱藏狀態(tài)來(lái)傳輸信息.由于同等規(guī)模下,GRU網(wǎng)絡(luò)比LSTM網(wǎng)絡(luò)的訓(xùn)練參數(shù)少,所有能夠有效避免訓(xùn)練過(guò)程中的過(guò)擬合問(wèn)題.
在GRU中,更新門(mén)zt代替了LSTM中的遺忘門(mén)和輸入門(mén),它決定了要丟棄哪些信息和添加哪些信息;另一個(gè)門(mén)是重置門(mén)rt,用于決定丟棄之前信息的程度.圖5展示了GRU的內(nèi)部結(jié)構(gòu),更新門(mén)zt和重置門(mén)rt的計(jì)算過(guò)程如下所示:
zt=σ(Wz[ht-1,xt]+bz)
(9)
rt=σ(Wr[ht-1,xt]+br)
(10)
圖5 GRU單元結(jié)構(gòu)Fig.5 Structure of GRU cell
在更新門(mén)zt,重置門(mén)rt的作用下,當(dāng)前時(shí)刻隱藏層的候選輸入狀態(tài)h′t,當(dāng)前時(shí)刻的隱藏層輸出狀態(tài)ht可由公式(11)、公式(12)計(jì)算所得.
h′t=tanh(Wh′[rt⊙ht-1,xt]+bh′)
(11)
ht=(1-zt)⊙ht-1+zt⊙h′t
(12)
綜上所述,GRU網(wǎng)絡(luò)可以看作是LSTM的變體,由于GRU網(wǎng)絡(luò)中的變量參數(shù)少,因此可以用更少的時(shí)間來(lái)訓(xùn)練它.在手寫(xiě)句子識(shí)別、復(fù)調(diào)音樂(lè)識(shí)別等任務(wù)中[14],GRU和LSTM單元所表現(xiàn)出來(lái)的網(wǎng)絡(luò)性能基本相同,但是在訓(xùn)練大數(shù)據(jù)集的情況下,LSTM表達(dá)性更優(yōu).
在經(jīng)典的RNN中,神經(jīng)元狀態(tài)是從前向后單向傳播的,然而,有些任務(wù)當(dāng)前時(shí)刻的輸出不僅與之前狀態(tài)有關(guān),也與后續(xù)狀態(tài)相關(guān).比如,要預(yù)測(cè)一個(gè)句子中缺失的詞語(yǔ),我們必須考慮上下文才能做出正確預(yù)測(cè),這時(shí)就需要雙向的RNN(Bi-directional RNN,BiRNN)來(lái)綜合前后文信息.
(13)
(14)
(15)
圖6表示BiRNN信息流向示意圖.通俗地講,BiRNN的隱藏層由兩層神經(jīng)元組成,一層處理按時(shí)間正向排序的輸入序列,另一層處理反向排序的輸入序列,而輸出則由這兩者綜合計(jì)算得來(lái).將傳統(tǒng)的RNN單元替換為L(zhǎng)STM單元或者GRU結(jié)構(gòu),則BiRNN就變成了雙向LSTM(Bi-directional LSTM,BiLSTM)網(wǎng)絡(luò)或者雙向GRU(Bi-directional GRU,BiGRU)網(wǎng)絡(luò).
圖6 雙向RNN示意圖Fig.6 BiRNN schematic
綜合來(lái)說(shuō),LSTM和GRU都能通過(guò)門(mén)控單元將時(shí)間序列信息中的重要特征保留,保證在長(zhǎng)期的反向傳播中梯度不會(huì)消失.在實(shí)際應(yīng)用中,需要根據(jù)具體任務(wù)選擇具體模型結(jié)構(gòu),不能籠統(tǒng)地說(shuō)哪一種網(wǎng)絡(luò)結(jié)構(gòu)更優(yōu).
機(jī)器翻譯(Machine Translation,MT)是指利用計(jì)算機(jī)實(shí)現(xiàn)將源語(yǔ)言轉(zhuǎn)換成目標(biāo)語(yǔ)言的過(guò)程,是自然語(yǔ)言處理領(lǐng)域中的一個(gè)重要應(yīng)用方向,具有很高的科學(xué)研究?jī)r(jià)值.傳統(tǒng)的機(jī)器翻譯方法需要依靠大量的人力和時(shí)間對(duì)眾多平行語(yǔ)料進(jìn)行分析,最終構(gòu)造翻譯系統(tǒng).基于RNN的機(jī)器翻譯模型,往往通過(guò)一個(gè)RNN將源語(yǔ)言輸入序列(x1,x2,…,xT)轉(zhuǎn)換成固定長(zhǎng)度的特征向量v,然后通過(guò)另一個(gè)RNN將該固定向量轉(zhuǎn)換成目標(biāo)語(yǔ)言輸出序列(y1,y2,…,yT′).根據(jù)條件概率公式,可以得到:
(16)
編碼-解碼器(Encoder-Decoder)模型[15,16]就是由兩個(gè)RNN構(gòu)造而成的機(jī)器翻譯模型,也可以叫做Seq2Seq模型.該模型最重要的地方在于輸入序列和輸出序列的長(zhǎng)度是可變的,可以用于翻譯、聊天機(jī)器人、句法分析、文本摘要等任務(wù).
語(yǔ)音識(shí)別(Speech Recognition,SR)就是將聲音波形轉(zhuǎn)換成計(jì)算機(jī)可讀的語(yǔ)言,進(jìn)而通過(guò)解碼技術(shù)轉(zhuǎn)變?yōu)槿祟?lèi)能夠理解的文本的過(guò)程.RNN能夠?qū)φZ(yǔ)音的長(zhǎng)時(shí)相關(guān)性進(jìn)行建模,從而提高識(shí)別準(zhǔn)確率[17].2015年,百度公開(kāi)發(fā)布的采用LSTM+CTC(Connectionist Temporal Classification,CTC)[18]模型大幅度降低了語(yǔ)音識(shí)別的錯(cuò)誤率,采用這種技術(shù)在安靜環(huán)境下的標(biāo)準(zhǔn)普通話的識(shí)別率接近97%.Arisoy等人[19]提出使用BiRNN來(lái)解決語(yǔ)音識(shí)別語(yǔ)言建模任務(wù),并證明了BiRNN在處理語(yǔ)音識(shí)別任務(wù)中優(yōu)于單向的RNN結(jié)構(gòu).Tian等人[20]建議利用層級(jí)訓(xùn)練和指數(shù)移動(dòng)平均方法來(lái)構(gòu)造一個(gè)深層LSTM網(wǎng)絡(luò),它在語(yǔ)音識(shí)別任務(wù)中取得優(yōu)異成果.
行為識(shí)別(Action Recognition,AR)是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要研究課題,它分為兩類(lèi)任務(wù):一類(lèi)是給定一段視頻,需要定位其中每個(gè)行為的起始時(shí)間,并為每個(gè)行為分配類(lèi)別標(biāo)簽;另一類(lèi)是給定一段已經(jīng)被預(yù)先剪切好地?cái)?shù)據(jù),只需要為該數(shù)據(jù)分配一個(gè)行為類(lèi)別標(biāo)簽即可.行為視頻中的幀與幀之間的時(shí)序關(guān)系在識(shí)別行為的過(guò)程中至關(guān)重要,而RNN能夠?qū)W習(xí)到長(zhǎng)期的時(shí)間依賴(lài)關(guān)系,已經(jīng)被廣泛地應(yīng)用在該任務(wù)地學(xué)習(xí)中.Donahue等人[21]利用LSTM網(wǎng)絡(luò)學(xué)習(xí)視頻中的時(shí)間動(dòng)力學(xué)和長(zhǎng)期依賴(lài)關(guān)系.Liu等人[22]使用RNN來(lái)建模行為序列,利用序列預(yù)測(cè)學(xué)習(xí)的方法來(lái)解決行為識(shí)別問(wèn)題.
情感分析(Sentiment Analysis,SA)就是判斷一段文本所表達(dá)的情緒狀態(tài),可以是正面、負(fù)面,也可以是開(kāi)心、悲傷等.該任務(wù)屬于典型的文本分類(lèi)問(wèn)題,即將一段變長(zhǎng)的文本序列映射為文本的類(lèi)別.為了學(xué)習(xí)到一個(gè)好的情感分析系統(tǒng),算法必須考慮文本中單詞的順序.Can等人[23]提出利用RNN來(lái)訓(xùn)練一個(gè)情感分析模型.另外,一些研究者[24]利用多模態(tài)數(shù)據(jù)(文本、視頻、音頻等)訓(xùn)練多種RNN變體結(jié)構(gòu)來(lái)解決情感分析任務(wù).
RNN作為深度學(xué)習(xí)算法中極為重要的一種,已經(jīng)在眾多領(lǐng)域大放異彩,除了上述介紹的幾種應(yīng)用場(chǎng)景外,RNN在對(duì)話(問(wèn)答)系統(tǒng)、圖像描述、推薦系統(tǒng)、步態(tài)識(shí)別、目標(biāo)檢測(cè)等領(lǐng)域也取得了優(yōu)異成果[25-29].換句話說(shuō),一切與時(shí)序相關(guān)的計(jì)算機(jī)任務(wù)都可以嘗試使用RNN來(lái)處理學(xué)習(xí).
從RNN到LSTM、GRU單元結(jié)構(gòu),傳統(tǒng)的循環(huán)網(wǎng)絡(luò)通過(guò)增加一些門(mén)控單元在一定程度上解決了RNN訓(xùn)練梯度消失問(wèn)題和短期記憶問(wèn)題.但是,這些復(fù)雜的單元內(nèi)部結(jié)構(gòu)以及循環(huán)網(wǎng)絡(luò)本身的時(shí)序輸入性,嚴(yán)重影響了網(wǎng)絡(luò)的訓(xùn)練速度,如何有效提高循環(huán)網(wǎng)絡(luò)訓(xùn)練效率、簡(jiǎn)化單元內(nèi)部結(jié)構(gòu),依然是企業(yè)和學(xué)術(shù)研究者要解決的問(wèn)題.
Bradbury等人[30]提出類(lèi)回復(fù)式神經(jīng)網(wǎng)絡(luò)(Quasi-Recurrent Neural Network,QRNN),它交替使用跨時(shí)間步并行處理的卷積層來(lái)進(jìn)行序列建模,實(shí)驗(yàn)表明QRNN在保持算法性能的基礎(chǔ)上有效提高了網(wǎng)絡(luò)訓(xùn)練和測(cè)試的速度.同理,研究者們?cè)O(shè)計(jì)只與當(dāng)前時(shí)刻輸入有關(guān)的門(mén)控單元來(lái)簡(jiǎn)化LSTM單元內(nèi)部結(jié)構(gòu),提出簡(jiǎn)單回復(fù)式單元網(wǎng)絡(luò)(Simple Recurrent Unit,SRU),SRU的門(mén)控單元丟棄時(shí)間依賴(lài)關(guān)系,但記憶單元仍保持時(shí)間依賴(lài)關(guān)系,這種設(shè)計(jì)能夠在網(wǎng)絡(luò)性能和訓(xùn)練速度之間獲得權(quán)衡[31].Bouaziz等人[32]在原始LSTM基礎(chǔ)上,設(shè)計(jì)并行的LSTM來(lái)執(zhí)行多個(gè)并行同步輸入序列,預(yù)測(cè)相應(yīng)的輸出.上海交通大學(xué)的研究者[33]提出切片回復(fù)式神經(jīng)網(wǎng)絡(luò)(Sliced Recurrent Neural Network,SRNN),它可以通過(guò)將序列分割成多個(gè)子序列來(lái)實(shí)現(xiàn)計(jì)算并行化,在不改變循環(huán)單元的情況下,SRNN的訓(xùn)練速度是標(biāo)準(zhǔn)RNN的136倍.
人腦神經(jīng)機(jī)制的一個(gè)重要特征就是選擇性,它表示人類(lèi)過(guò)濾掉無(wú)用信息的能力,這就是所謂的注意力機(jī)制[34,35].RNN通過(guò)添加跨越時(shí)間點(diǎn)的自連接對(duì)時(shí)序數(shù)據(jù)建模,但是對(duì)于時(shí)序信息來(lái)說(shuō),不同時(shí)刻的輸入的重要性對(duì)于學(xué)習(xí)任務(wù)來(lái)說(shuō)是不一樣的.注意力機(jī)制已經(jīng)被廣泛應(yīng)用在自然語(yǔ)言處理、圖像識(shí)別等各個(gè)領(lǐng)域,顯著提升了模型表現(xiàn)能力.
He等人[36]提出一種新型的基于注意力機(jī)制的混合神經(jīng)網(wǎng)絡(luò)模型,該模型在BiLSTM網(wǎng)絡(luò)的基礎(chǔ)上添加單詞級(jí)的注意力模塊來(lái)提取文本語(yǔ)義信息.Huang等人[37]將注意力機(jī)制應(yīng)用在情感分析任務(wù)中,提出利用多模態(tài)注意力融合模塊探索圖像和文本之間的內(nèi)部關(guān)聯(lián)性,甚至在弱標(biāo)簽的數(shù)據(jù)集上也驗(yàn)證了算法的有效性.除此之外,Sudhakaran等人[38]利用長(zhǎng)短時(shí)注意力機(jī)制(Long Short-Term Attention,LSTA)學(xué)習(xí)行為視頻的時(shí)間和空間特征.Xu等人[39]提出基于注意力機(jī)制的Encoder-Decoder模型用于圖像描述任務(wù),實(shí)驗(yàn)證明注意力機(jī)制為模型生成過(guò)程提供了更多可解釋性,如圖7所示.
圖7 注意力的可視化Fig.7 Visualization of attentional map
普通RNN主要著重對(duì)時(shí)序信息進(jìn)行建模,然而,現(xiàn)實(shí)世界中的許多任務(wù)不僅僅與時(shí)序相關(guān),往往集合多種網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)勢(shì)才能更好的提升算法性能.比如,F(xiàn)CNN可以將輸入數(shù)據(jù)映射到更離散的空間,經(jīng)常在各種網(wǎng)絡(luò)的最上層使用.CNN擅長(zhǎng)學(xué)習(xí)局部信息,能夠最大限度地過(guò)濾輸入數(shù)據(jù).隨著深度學(xué)習(xí)熱度的延續(xù),更靈活的組合方式、更多的網(wǎng)絡(luò)結(jié)構(gòu)將會(huì)被開(kāi)發(fā)出來(lái).
Donahue等人[40]首次將CNN與LSTM進(jìn)行結(jié)合,提出一種新型回復(fù)式卷積結(jié)構(gòu),該模型在視頻識(shí)別與視頻描述任務(wù)上都取得了很好的效果.Sainath等人[41]同時(shí)使用卷積結(jié)構(gòu)、循環(huán)結(jié)構(gòu)與全連接結(jié)構(gòu)(即CNN、RNN、FCNN)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,該模型在論文中的語(yǔ)音識(shí)別任務(wù)上比LSTM性能提升4-6%,充分地利用了幾種網(wǎng)絡(luò)結(jié)構(gòu)的互補(bǔ)性.Minaee等人[42]結(jié)合CNN和LSTM網(wǎng)絡(luò)來(lái)解決情感分析任務(wù),CNN網(wǎng)絡(luò)學(xué)習(xí)文本的局部結(jié)構(gòu)特征,而LSTM網(wǎng)絡(luò)學(xué)習(xí)時(shí)序關(guān)系.Lee等人[43]提出條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)和RNN的結(jié)合使用,用以解決命名實(shí)體識(shí)別問(wèn)題.
目前,回復(fù)式神經(jīng)網(wǎng)絡(luò)已經(jīng)成為深度學(xué)習(xí)領(lǐng)域中一類(lèi)非常重要的網(wǎng)絡(luò)模型,本文對(duì)其進(jìn)行展開(kāi)討論.首先介紹了RNN的發(fā)展歷程,并闡述其基本原理、網(wǎng)絡(luò)計(jì)算方式和網(wǎng)絡(luò)訓(xùn)練方法.其次,面對(duì)傳統(tǒng)RNN在實(shí)際應(yīng)用中存在的短期記憶和梯度消失問(wèn)題,詳細(xì)分析了RNN中被廣泛使用的變體結(jié)構(gòu):LSTM、GRU和其對(duì)應(yīng)的雙向變體結(jié)構(gòu).接著總結(jié)了RNN的熱門(mén)研究領(lǐng)域并分析相關(guān)研究工作.最后,結(jié)合近幾年工業(yè)界和學(xué)術(shù)圈對(duì)RNN的研究進(jìn)展,對(duì)RNN的發(fā)展趨勢(shì)進(jìn)行總結(jié)介紹,這也是我們未來(lái)研究的方向.