陶云松,張麗紅
(山西大學 物理電子工程學院,山西 太原 030006)
近些年,基于計算機視覺和自然語言處理的基礎(chǔ),在圖像描述研究方面進行了大量研究.圖像描述的過程是將圖像輸入到“編碼-解碼模型”中生成語言描述.編碼將輸入圖像轉(zhuǎn)化成一個固定長度向量的過程,解碼將生成的向量轉(zhuǎn)化成輸出語言序列.在圖像描述中常用的編碼器模型是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN),解碼器是各種變體循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱RNN),如長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory Network,簡稱LSTM)[1].近幾年,Kelvin Xu等人將注意力機制引入其中,在生成描述時關(guān)注圖像的顯著部分,從而提高描述的準確率[2];Justin Johnson等人提出了密集描述,對圖片生成多句描述,句子之間并無聯(lián)系[3];Jonathan Krause等人提出了段落描述,該任務(wù)對圖片生成一段描述,這段描述在語義上是連通的[4].這些工作在生成當前描述時只考慮圖像與上文信息,并沒有考慮下文信息.在當前描述與前后信息相關(guān)性較高的情況下,模型只考慮圖片與生成的上文信息,將使描述的準確率降低.為解決此問題,本文提出一種新的結(jié)構(gòu)——雙注意力機制模型,將其與雙向長短時記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory Network,簡稱Bi-LSTM)結(jié)合構(gòu)成雙向雙注意力網(wǎng)絡(luò),并將其應(yīng)用于圖像描述模型中.
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),主要處理和預(yù)測序列數(shù)據(jù).圖1 展示了一個典型的循環(huán)神經(jīng)網(wǎng)絡(luò).
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)展開圖Fig.1 Expansion diagram of recurrent neural network
在每一時刻,輸入xt和上一時刻隱層狀態(tài)ht-1作為循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入,循環(huán)神經(jīng)網(wǎng)絡(luò)產(chǎn)生輸出ot并更新ht傳入下一時刻.由于循環(huán)神經(jīng)網(wǎng)絡(luò)中的變量與運算在不同的時刻是相同的,循環(huán)神經(jīng)網(wǎng)絡(luò)可以看作是同一神經(jīng)網(wǎng)絡(luò)被復制無限次數(shù)的結(jié)果.A代表隱層內(nèi)部其他所有狀態(tài).
循環(huán)神經(jīng)網(wǎng)絡(luò)只有一個“因果”結(jié)構(gòu),在當前時刻的狀態(tài)只能從過去的狀態(tài)和當前的輸入獲取信息.但是在許多應(yīng)用任務(wù)中,輸出量很有可能是依賴于整個序列的.為解決該問題,提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bidirectional Recurrent Neural Network,簡稱Bi-RNN),Bi-RNN結(jié)合時間從序列起點開始移動的RNN和時間上從序列末尾開始移動的RNN[5].其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示.
圖2 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)Fig.2 Bidirectional recurrent neural network
循環(huán)神經(jīng)網(wǎng)絡(luò)模型只能應(yīng)用于依照短期信息預(yù)測的任務(wù).當任務(wù)更復雜時,例如,當前的預(yù)測信息與相關(guān)信息之間的文本間隔巨大時,圖1 中簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)就無法學習到如此遠間隔的信息.
長短期記憶網(wǎng)絡(luò)LSTM可解決該問題.RNN只包含簡單的tanh單元,而LSTM內(nèi)部含有3種門,分別是輸入門、遺忘門、輸出門.LSTM依靠這些門結(jié)構(gòu)讓信息有選擇性地影響循環(huán)神經(jīng)網(wǎng)絡(luò)的每個狀態(tài).LSTM內(nèi)部結(jié)構(gòu)如圖3 所示.
圖3 長短時記憶網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)Fig.3 Internal structure of long short-term memory network
本文采用Bi-RNN和LSTM相結(jié)合的雙向長短期記憶網(wǎng)絡(luò),該網(wǎng)絡(luò)既可以克服無法獲取下文信息問題,又可以學習到間隔時間較長的信息.
在一般圖像描述任務(wù)中,解碼部分在不同的時刻對全部信息等同處理.但是對于人類視覺行為,關(guān)注的信息是有選擇的,有注意焦點的.因此模型在生成單詞時關(guān)注的信息也應(yīng)是不一樣的.注意力機制就是為了實現(xiàn)在生成一個詞時去關(guān)注當前所應(yīng)該關(guān)注的顯著信息這一目的而設(shè)計的.通過對輸入信息的各個局部賦予權(quán)重來實現(xiàn)注意力機制方法.注意力機制結(jié)構(gòu)網(wǎng)絡(luò)如圖4 所示.
圖4 注意力機制內(nèi)部結(jié)構(gòu)Fig.4 Internal structure of attentional mechanism
首先,空間注意力機制的上下文向量Ct的定義為
(1)
式中:g是注意力機制函數(shù).原始的圖像特征V來自于卷積神經(jīng)網(wǎng)絡(luò)的卷積層[6],而不是最后的全連接層.通過壓縮原始圖像特征V的寬W和高H,得到V=[v1,v2,…,vL]圖像特征集合[2].其中,L=W·H.vi∈RD.vi是D維度的空間圖像特征,同時代表著圖片中的某個區(qū)域.ht-1是在t-1 時刻LSTM隱層狀態(tài).
我們將圖像特征和LSTM的隱層狀態(tài)傳入一個單層的神經(jīng)網(wǎng)絡(luò)層,之后再通過一個softmax函數(shù)去產(chǎn)生圖片K個區(qū)域的注意力分布.
(2)
αt=softmax(zt),
(3)
式中:wv,wta和wn是一組需要學習的權(quán)重參數(shù);α是圖像特征的注意權(quán)重.基于注意力分布,圖像顯著信息為
(4)
提出的雙向單注意網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示.前向長短期記憶網(wǎng)絡(luò)中,注意力機制得到上一次LSTM的隱層狀態(tài)h和圖片特征V,輸出圖像的顯著信息Cf.同樣在后向網(wǎng)絡(luò)中,隱層狀態(tài)g和圖片特征V一起預(yù)測得到顯著信息Cb.每一次描述生成時,顯著圖像信息Cf和Cb都分別作為前向和后向長短期記憶網(wǎng)絡(luò)的輸入.雙向LSTM整合前向和后向的隱層狀態(tài)h與g,獲取最終結(jié)果.
圖5 雙向單注意網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.5 Bidirectional single attention network model structure
該模型采用端到端的訓練方式,即在整個學習流程中并不進行人為的子問題劃分,而是完全交給深度學習模型直接學習從原始輸入到期望輸出的映射.
單注意力機制在LSTM上的實現(xiàn)是用過去的隱層信息ht-1去預(yù)測當前圖像的顯著信息Ct,如圖6(a)所示.不同于當前語言描述與過去信息和未來信息相關(guān)性極大的特點,圖像顯著信息與當前隱層狀態(tài)顯著相關(guān).于是,我們進一步提出雙注意力機制,如圖6(b)所示.將圖6(a)中由ht-1和V得到的Ct對應(yīng)作為雙注意力機制中的Ct-1,為LSTM 的輸入,并且在框架中加入新的注意力機制.該機制的輸入是當前隱層狀態(tài)ht和圖像特征V.
圖6 單注意力機制與雙注意力機制Fig.6 Single attentional mechanism and double attentional mechanism
將雙注意機制替換圖5中單注意機制得到雙向雙注意網(wǎng)絡(luò).雙向雙注意力網(wǎng)絡(luò)圖像描述模型如圖7 所示.圖片經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)提取特征,將最后一層卷積層的圖像特征作為注意力機制的輸入.在描述生成時,模型首先使用上一次的隱層狀態(tài),顯著圖像信息以及本次的輸入預(yù)測出當前的隱層狀態(tài),再將和輸入到注意力機制中得到當前顯著信息.后向循環(huán)神經(jīng)網(wǎng)絡(luò)過程相同.最后的預(yù)測則是同時考慮了前向隱層狀態(tài),顯著信息,后向隱層狀態(tài),顯著信息一起進行預(yù)測.
圖7 含有雙向雙注意力網(wǎng)絡(luò)的圖像描述模型結(jié)構(gòu)Fig.7 Image description model structure with bidirectional and dual attention networks
模型的評價標準為損失函數(shù)
(5)
模型中前向訓練過程公式為
it=σ(Wxixt+Whiht-1+CiCft-1+bi),
(6)
ft=σ(Wxfxt+Whfht-1+CfCft-1+bf),
(7)
ot=σ(Wxoxt+Whoht-1+CoCft-1+bo),
(8)
ct=ftct-1+ittanh(Wcxt+hcht-1+CcCft-1+bc),
(9)
ht=ottanh(ct).
(10)
后向LSTM訓練過程公式與前向公式式(6)~式(10)一致.結(jié)合前向后向的顯著信息與隱層狀態(tài),預(yù)測概率公式為
pt+1=Softmax(Whht+Wggt+WfCft+
WbCbt+b),
(11)
式中:it,ft,ot,ct,ht,gt分別是LSTM中的輸入門狀態(tài),遺忘門狀態(tài),輸出門狀態(tài),記憶單元狀態(tài),前向隱層狀態(tài),后向隱層狀態(tài).pt+1詳細展開是p(xt+1|V,x1,…,xt),指在圖像信息與上文信息的條件下 ,當前輸出xt+1的概率.因為當前時刻的輸入xt是上一時刻的輸出yt-1,p(xt+1|V,x1,…,xt)可表示為p(yt|V,y0,…,yt-1),簡寫為pt+1.
值得注意的是,在訓練階段,xt是有監(jiān)督地輸入正確的描述詞向量.測試階段xt則是之前的狀態(tài)產(chǎn)生的預(yù)測詞向量.
實驗采用MSCOCO數(shù)據(jù)集與Flickr30k數(shù)據(jù)集.MSCOCO數(shù)據(jù)集是圖像描述中最大的數(shù)據(jù)集,擁有訓練樣本82 783張、驗證樣本40 504張、測試樣本40 775張.每張圖片擁有5個人的描述.在訓練時,驗證和測試圖片都是5 000張.Flickr30k數(shù)據(jù)集中含有31 783張圖像,模型在該數(shù)據(jù)集上測試泛化性,實驗結(jié)果如表1 和圖8 所示.表1 是本文模型與其他模型評估分數(shù)對比表,使用的評估指標有雙語評估替換分數(shù)(Bilingual Evaluation Understudy,簡稱BLEU)[7]和機器翻譯評價方法(Machine Translation Evaluation System,簡稱METEOR)[8].圖8(a)是Hard-Attention模型生成的描述,圖8(b)是本文雙向雙注意力機制模型對圖片生成的描述.
表1 本文模型與其他模型評估分數(shù)對比表Tab.1 Comparison table of evaluation scores between this model and other models
圖8 圖像描述比較Fig.8 Image description diagram
表1 中,雙向單注意力機制網(wǎng)絡(luò)模型相對于只有注意力機制的Hard-Attention模型和只有雙向長短期記憶網(wǎng)絡(luò)的Deep-Bi-LSTM模型,準確率獲得了提高.并且雙向雙注意力機制進一步提高了準確率,說明當前圖像顯著信息與當前隱層狀態(tài)顯著相關(guān),由過去隱層狀態(tài)篩選出的圖像顯著信息應(yīng)該只作為長短期記憶網(wǎng)絡(luò)的輸入.模型在Flickr30k數(shù)據(jù)集上驗證,表明模型具有較好的泛化性.
由圖8所示,圖8(b)中雙向雙注意力網(wǎng)絡(luò)模型生成的圖像描述比圖8(a)中Hard-Attention模型的圖像描述體現(xiàn)了更多的細節(jié),并且描述更加準確.
本文首先在經(jīng)典注意力機制基礎(chǔ)上提出一種單注意力機制網(wǎng)絡(luò),將單注意力機制與雙向長短期記憶網(wǎng)絡(luò)相結(jié)合生成圖像描述,再進一步將單注意力機制改進成雙向注意力機制進行圖像描述.實驗結(jié)果表明雙向單注意力網(wǎng)絡(luò)模型準確率高于只含有注意力機制網(wǎng)絡(luò)和雙向長短期記憶網(wǎng)絡(luò),改進的雙注意力機制進一步提高了模型的準確率,而且具有很好的泛化性.