李文惠,曾上游,王金金
(廣西師范大學(xué)電子工程學(xué)院,廣西桂林 541004)
(*通信作者電子郵箱zsy@mailbox.gxnu.edu.cn)
圖像描述是將圖像用自然語言句子表達(dá)出來,它是計(jì)算機(jī)視覺的主要研究任務(wù)之一。圖像描述對于計(jì)算機(jī)而言不僅需要識別圖像中的對象,而且還要理解圖像中的內(nèi)容以及對象之間存在的關(guān)系,最后計(jì)算機(jī)還要用自然語言句子去將圖像內(nèi)容正確地表達(dá)出來,因此圖像描述任務(wù)對于計(jì)算機(jī)視覺領(lǐng)域的研究來說還是存在一定的難度。目前圖像描述存在的問題主要包括圖像分類問題和自然語言處理問題。針對圖像分類問題,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)通過自動提取圖像特征,使圖像分類的準(zhǔn)確率達(dá)到甚至超過了人類肉眼對圖像分類識別的標(biāo)準(zhǔn);針對自然語言處理問題,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)通過記住句子中詞的相對關(guān)系,去處理自然語言句子。然而對于上述兩者問題的結(jié)合而言,雖然目前存在相關(guān)網(wǎng)絡(luò)能夠在一定程度上簡單地描述圖像,但沒有在各自領(lǐng)域研究得那么深入。實(shí)現(xiàn)圖像描述的方法主要分三種:基于模板的圖像描述生成方法、基于檢索的圖像描述生成方法和基于深度學(xué)習(xí)的圖像描述生成方法。近年來,圖像描述主流方法是深度學(xué)習(xí)。深度學(xué)習(xí)模型的訓(xùn)練方式是端到端,其優(yōu)點(diǎn)是它可以自己學(xué)習(xí)特征,避免了人為地去設(shè)計(jì)參數(shù)。對于圖像描述生成模型,整體大致分為兩個部分:編碼(ENCODER)和解碼(DECODER)[1]。在圖像編碼中,通過多層深度卷積神經(jīng)網(wǎng)絡(luò)[2-4]針對圖像中的物體特征建立起模型;在圖像解碼中,通過循環(huán)神經(jīng)網(wǎng)絡(luò)針對文本信息建立起模型。運(yùn)用循環(huán)神經(jīng)網(wǎng)絡(luò)[5-6]將文本信息與圖像信息映射在同一個空間中,利用圖像信息引導(dǎo)文本句子生成。隨著深度學(xué)習(xí)研究的不斷深入,強(qiáng)化學(xué)習(xí)[7-8]和基于注意力機(jī)制[9-10]的研究方法相繼涌現(xiàn)。該方法對模板、規(guī)則的約束少,能自動推斷出測試圖像及其相對應(yīng)的文本,自動地從大量的訓(xùn)練集中學(xué)習(xí)圖像和文本信息,生成更靈活、更豐富的圖像描述句子,還能描述從未見過的圖像內(nèi)容特征。本文引入改進(jìn)的注意力機(jī)制,不僅可以減少模型參數(shù),而且能更準(zhǔn)確地生成描述圖像的自然語言句子和提升圖像描述生成模型的評價指標(biāo)。
首先簡單介紹有關(guān)圖像描述生成和注意力機(jī)制先前工作的背景。2014 年Vinyals 等[1]提出了一個基本的卷積神經(jīng)網(wǎng)絡(luò)(CNN)聯(lián)合循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的圖像描述框架,在圖像描述的領(lǐng)域中取得了巨大的突破,同時也提出了評價圖像描述生成模型性能的指標(biāo),但是依然沒有考慮到詞對應(yīng)圖像位置這一缺陷?;诖藛栴},2016 年Xu 等[11]從人的視覺上受到啟發(fā),在文獻(xiàn)[1]框架中引入了注意力機(jī)制,使得計(jì)算機(jī)描述圖像更加符合人類的描述機(jī)制,在指標(biāo)上也得到相應(yīng)的提升,同時也驗(yàn)證了注意力機(jī)制的可行性。上述所說的基于深度學(xué)習(xí)的描述算法雖能產(chǎn)生描述圖像的自然語言句子,但總體上有一定的局限性,如參數(shù)過多、注意力還有很大的提升空間。
本文提出了一種基于CNN 和長短期記憶元的圖像描述生成,并引入改進(jìn)的注意力機(jī)制的模型。改進(jìn)的注意力機(jī)制是在文獻(xiàn)[11]的基礎(chǔ)模型上改進(jìn)的,改進(jìn)的點(diǎn)是將原全連接層替換成了文中注意力機(jī)制(ATTENTION),全連接層不僅參數(shù)多而且關(guān)注很多無用的信息,造成信息冗余,文中引入注意力機(jī)制的結(jié)構(gòu)能有效地避開這些問題。本文提取圖像特征采用了兩種卷積神經(jīng)網(wǎng)絡(luò),分別是VGG(Visual Geometry Group)和ResNet(Residual Network),解碼采用長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[12],同時引入改進(jìn)的注意力機(jī)制,最終生成圖像描述的自然語言句子,能夠有效提升圖像中的內(nèi)容與句子描述的相關(guān)聯(lián)度,同時圖像描述的相關(guān)評估指標(biāo)有所提升,生成更接近人類語言的圖像描述自然語言句子。
本文模型分為兩個模塊:ENCODER 模塊和DECODER 模塊。ENCODER 模塊采用卷積神經(jīng)網(wǎng)絡(luò),其功能在于提取圖像的特征,對圖像進(jìn)行編碼,將圖像編碼為特征向量;DECODER 模塊是將編碼后的圖像解碼成自然語句,它主要通過長短期記憶網(wǎng)絡(luò)解碼圖像信息,其功能是提取句子單詞之間的句法特征,依據(jù)選擇的圖像特征生成圖像描述的自然語言句子。本文使用CNN+LSTM+ATTENTION 的基本框架[13]來完成。將圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)中,得到網(wǎng)絡(luò)輸出的特征向量,文本的詞通過嵌入(EMBEDDING)層將詞轉(zhuǎn)成詞向量,將特征向量和詞向量拼接后輸入到長短期記憶單元,產(chǎn)生新的預(yù)測詞,通過集束搜索(Beam Search)的方式產(chǎn)生預(yù)測的句子。模型整體結(jié)構(gòu)如圖1所示。
圖1 本文模型整體結(jié)構(gòu)Fig.1 Overall structure of the proposed model
ENCODER 模塊采用的是VGG19 網(wǎng)絡(luò)和ResNet101,VGG19網(wǎng)絡(luò)是使用3×3卷積核的卷積層堆疊并交替最大池化層,VGG 網(wǎng)絡(luò)的一大優(yōu)點(diǎn)是簡化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本文選取VGG19 網(wǎng)絡(luò)中最后一個最大池化層的輸出特征圖,再加一個1×1 卷積使得VGG19 和ResNet101 的輸出特征圖維度相同,1×1 卷積輸出的特征圖經(jīng)自適應(yīng)池化層后,得到的自適應(yīng)特征圖作為整個網(wǎng)絡(luò)中的ENCODER 模塊輸出特征圖。VGG19只有19 層,ResNet101 有101 層,它們在網(wǎng)絡(luò)深度上完全不是一個量級,ResNet101可以使用一個稱為殘差模塊的標(biāo)準(zhǔn)網(wǎng)絡(luò)組件來組成更復(fù)雜的網(wǎng)絡(luò),網(wǎng)絡(luò)加深的同時也保持了網(wǎng)絡(luò)的性能,解決了深度網(wǎng)絡(luò)的退化問題,本文選取ResNet101 網(wǎng)絡(luò)平均池化層的輸入特征圖,將經(jīng)自適應(yīng)池化層后的特征圖作為整個網(wǎng)絡(luò)中的ENCODER 模塊輸出特征圖。DECODER 模塊采用LSTM 網(wǎng)絡(luò),該網(wǎng)絡(luò)可以連接先前的信息到當(dāng)前的信息,語句的預(yù)測是和詞的先前信息有一定的關(guān)聯(lián)的,而LSTM網(wǎng)絡(luò)適合處理這類時間序列問題[14]。
本文引入分組注意力機(jī)制,結(jié)構(gòu)如圖2 所示。Encoder_out 是卷積神經(jīng)網(wǎng)絡(luò)輸出的特征圖,大小為2 048×14×14,Decoder_hidden是LSTM的隱藏輸出,大小為512×1×1。
圖2 改進(jìn)的注意力機(jī)制Fig.2 Improved attention mechanism
本文設(shè)計(jì)的是分組卷積注意力,通過1×1 卷積(Conv_1×1)分別整合圖片特征和詞特征,用激活函數(shù)ReLU(Rectified Linear Unit)將整合的特征引入非線性,得到激活特征并將其分成兩組卷積,分別是3×3 卷積(Conv_3×3)和1×1 卷 積(Conv_1×1),且都使用激活函數(shù)ReLU 引入非線性,再拼接輸入到線性層(linear)中,通過softmax函數(shù)得到圖像和詞的關(guān)聯(lián)度,進(jìn)而形成新的注意力分布。通過分組的特征注意力,可以更加合理地分布原圖和詞對應(yīng)的注意力,新的注意力分布與輸入的圖像相乘,得到詞對應(yīng)圖像的注意圖(Attention_feature)。
實(shí)驗(yàn)環(huán)境 本實(shí)驗(yàn)使用pytorch 作為深度學(xué)習(xí)底層框架,計(jì)算機(jī)內(nèi)存為32 GB RAM、英特爾i7-6700K 四核八線程CPU以及NVIDIA-GTX1080Ti GPU,操作系統(tǒng)為Windows 10 64位。
本文使用了多種評價指標(biāo):BLEU(Bilingual Evaluation Understudy)[15]、CIDEr(Consensus-based Image Description Evaluation)[16]、ROUGE-L(Recall-Oriented Understudy for Gisting Evaluation)[17]和METEOR(Metric for Evaluation of Translation with Explicit Ordering)[18]。與此同時,本文列出了上述評價指標(biāo)的計(jì)算公式。
3.1.1 BLEU
BLEU 用于比較候選譯文和參考譯文里的n-gram 的重合程度,重合程度越高就認(rèn)為譯文質(zhì)量越高。pn中的n表示ngram,pn表示n-gram的精度。
式(2)中:BP表示長度懲罰因子,lc表示翻譯譯文的長度,ls表示參考答案的有效長度,當(dāng)存在多個參考譯文時,選取和翻譯譯文最接近的長度。當(dāng)翻譯譯文長度大于參考譯文的長度時,懲罰系數(shù)為1,表示不懲罰,只有機(jī)器翻譯譯文長度小于參考答案才會計(jì)算懲罰因子。
由于各n-gram 統(tǒng)計(jì)量的精度隨著gram 階數(shù)的升高而呈指數(shù)形式遞減,所以為了平衡各階統(tǒng)計(jì)量的作用,式(3)中對其采用幾何平均形式求平均值然后加權(quán),再乘以長度懲罰因子,得到最后的評價公式,n的上限取值為4,即最多只統(tǒng)計(jì)4-gram的精度。
3.1.2 ROUGE-L
ROUGE-L 計(jì)算的是候選摘要與參考摘要的最長公共子序列長度,長度越長,得分越高。
其中:X表示候選摘要,Y表示參考摘要,LCS(Longest Common Subsequence)表示候選摘要與參考摘要的最長公共子序列的長度,m表示參考摘要的長度,n表示候選摘要的長度,Rlcs和Plcs分別表示召回率和準(zhǔn)確率。
3.1.3 CIDEr
式中:c表示候選標(biāo)題,S表示參考標(biāo)題集合,n表示評估的是n-gram,M表示參考字幕的數(shù)量,gn(·)表示基于n-gram 的TFIDF(Term Frequency-Inverse Document Frequency)向 量。CIDEr 是把每個句子看成文檔,然后計(jì)算其TF-IDF 向量的余弦夾角,據(jù)此得到候選句子和參考句子的相似度。
3.1.4 METEOR
其中:α為可調(diào)控的參數(shù),m為候選翻譯中能夠被匹配的一元組的數(shù)量,c為候選翻譯的長度,r為參考摘要的長度。式(8)中,pen為懲罰因子,懲罰的是候選翻譯中的詞序與參考翻譯中的詞序的不同。
本次實(shí)驗(yàn)采用了Flickr8K[19]和Flickr30K[20]數(shù)據(jù)集,兩個數(shù)據(jù)集都是一張圖片對應(yīng)5句描述自然語言句子,F(xiàn)lickr8K數(shù)據(jù)集約8 000 幅圖像,F(xiàn)lickr30K 約30 000 幅圖像,這兩個數(shù)據(jù)集中的圖像都是針對特定對象和動作的。如圖3所示。
圖3 某張圖像對應(yīng)的自然語言句子Fig.3 Natural language sentences corresponding to one image
本文設(shè)置的詞嵌入維度是512,LSTM 的輸出維度為512,輸入數(shù)據(jù)的batch size 為32。微調(diào)卷積神經(jīng)網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)時,卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置為1E-4,長短期記憶網(wǎng)絡(luò)學(xué)習(xí)率設(shè)置為4E-4。整個網(wǎng)絡(luò)采用Adam 優(yōu)化器訓(xùn)練,防止反向傳播梯度爆炸,如果連續(xù)8 個epoch 評價指標(biāo)都沒有改善,則學(xué)習(xí)率降低為原來的0.8,并在20 個epoch 后終止訓(xùn)練,實(shí)驗(yàn)時在反向傳播中加入了梯度截?cái)?,可以有效地避免梯度爆炸。損失函數(shù)使用的是交叉熵?fù)p失函數(shù)。在測試中使用集束搜索的方式,假設(shè)詞匯表關(guān)聯(lián)詞匯beam size的大小為5。
在Flickr8K 和Flickr30K 兩個數(shù)據(jù)集的比對實(shí)驗(yàn)中,數(shù)據(jù)集使用的是公共劃分標(biāo)準(zhǔn)[21],使用數(shù)據(jù)集中的1 000張圖像進(jìn)行驗(yàn)證,1 000 張圖像進(jìn)行測試,其余用于訓(xùn)練。根據(jù)文獻(xiàn)[21]可知數(shù)據(jù)集拆分的差異不會對整體性能產(chǎn)生實(shí)質(zhì)性的影響。用傳統(tǒng)的CNN+LSTM 網(wǎng)絡(luò)和本文所使用的CNN+LSTM+ATTENTION 網(wǎng)絡(luò)在上述的兩個數(shù)據(jù)集上做對比實(shí)驗(yàn),對圖像描述的各項(xiàng)指標(biāo)如表1所示。
表1 不同模型在Flickr8K數(shù)據(jù)集上的幾種評價指標(biāo)對比 單位:%Tab.1 Comparison of several evaluation indicators of different models on Flickr8K dataset unit:%
本文提出的注意力機(jī)制是通過對圖像的特征和詞的特征分組卷積,得到不同的注意力,再經(jīng)過線性層整合這些不同的注意力,生成一個圖像和詞相關(guān)聯(lián)的新注意力分布,將提出的注意力機(jī)制嵌入到傳統(tǒng)的模型中,能更加準(zhǔn)確地生成描述圖像的自然語言句子。因此當(dāng)選取的卷積神經(jīng)網(wǎng)絡(luò)為VGG19時,VGG19+LSTM+ATTENTION 比VGG19+LSTM 網(wǎng)絡(luò)在指標(biāo)上都有所提高,引入分組注意力的模型比傳統(tǒng)模型的BLEU_4提升了1.08 個百分點(diǎn),ROUGE_L 提升了0.91 個百分點(diǎn),CIDEr提升了3.06個百分點(diǎn)。
從表1 可知,當(dāng)卷積神經(jīng)網(wǎng)絡(luò)為更深、更復(fù)雜的ResNet101 時,ResNet101+LSTM 網(wǎng)絡(luò)在各評價指標(biāo)已經(jīng)高于VGG19+LSTM+ATTENTION 和VGG19+LSTM 網(wǎng)絡(luò)。在引入改 進(jìn) ATTENTION 的 ResNet101+LSTM 網(wǎng) 絡(luò) 之 后,比ResNet101+LSTM 網(wǎng)絡(luò)的評價指標(biāo)有更加明顯的提高,特別是,BLEU_4 和CIDEr 分別提升了1.94 個百分點(diǎn)和6.13 個百分點(diǎn)。在Flickr8K 數(shù)據(jù)集上引入注意力機(jī)制的VGG 網(wǎng)絡(luò)和ResNet,通過各項(xiàng)指標(biāo)的比較,驗(yàn)證了本文提出的注意力機(jī)制的可行性和高效性。為了進(jìn)一步驗(yàn)證改進(jìn)的注意力機(jī)制的高效性,在數(shù)據(jù)集Flickr30K 上做了相同的對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同模型在Flickr30K數(shù)據(jù)集上的幾種評價指標(biāo)對比 單位:%Tab.2 Comparison of several evaluation indicators of different models on Flickr30K dataset unit:%
傳統(tǒng)的模型沒有考慮到詞和圖片位置的關(guān)系,而本文所提的改進(jìn)注意力機(jī)制,使模型能夠關(guān)注到詞和圖像的對應(yīng)位置,更加符合人類的肉眼觀察機(jī)制,在較大的Flickr30K 數(shù)據(jù)集中,通過引入改進(jìn)注意力機(jī)制模型和傳統(tǒng)編解碼模型這兩種模型的對比,ResNet101 網(wǎng)絡(luò)的各項(xiàng)指標(biāo)比VGG19 網(wǎng)絡(luò)有更為突出的效果,在該數(shù)據(jù)集上,引入改進(jìn)的注意力機(jī)制ResNet101 和VGG19 網(wǎng)絡(luò)在評價指標(biāo)BLEU_4 上各提升了4.91個百分點(diǎn)和4.71個百分點(diǎn)。
在Flickr8K 數(shù)據(jù)集和Flickr30K 數(shù)據(jù)集中各自隨機(jī)選取一張圖像,并可視化描述語句對應(yīng)該圖片的注意力分布圖,如圖4和圖5所示。
圖4 Flickr8K數(shù)據(jù)集中單詞對應(yīng)的注意力熱力圖Fig.4 Attention heat map corresponding to words in Flickr8K dataset
圖5 Flickr30K數(shù)據(jù)集中單詞對應(yīng)的注意力熱力圖Fig.5 Attention heat map corresponding to words in Flickr30K dataset
改進(jìn)的注意力模型根據(jù)對語句中當(dāng)前單詞和圖像關(guān)注到接下來需要描述的圖像部分,將局部注意力映射到原圖中,模型中分支的3×3 卷積和1×1 卷積可以分別關(guān)注詞對應(yīng)的不同局部特征,再連接分支的不同局部特征輸入到全連接后,得到詞對應(yīng)多個存在關(guān)聯(lián)的局部特征區(qū)域即注意力分布,不僅有效地減少特征的冗余,而且得到多個局部注意力特征。
表3 中Google NIC 模型是首次提出圖像描述生成的編碼-解碼基本框架,圖像描述生成任務(wù)中引入這樣的架構(gòu)已成為主流。注意力機(jī)制的基本思想是利用卷積層獲取圖像特征后,對圖像特征進(jìn)行注意力加權(quán),之后再送入RNN 中進(jìn)行解碼,表3 中 的SCA-CNN-VGG(Spatial and Channel-wise Attention in Convolutional Neural Networks)模型是用通道注意力和空間注意力結(jié)合的方式來進(jìn)行圖像描述生成,Hard-Attention 是即將圖像中最大權(quán)重置為1,而將其他區(qū)域權(quán)重置0,以達(dá)到僅注意一個區(qū)域的目的,雙向單注意力網(wǎng)絡(luò)和雙向雙注意力網(wǎng)絡(luò)都是近年對注意力較新的改進(jìn),ATTENTION 機(jī)制已經(jīng)成為一種主流的模型構(gòu)件。
表3 所提模型與其他模型幾種評價指標(biāo)對比 單位:%Tab.3 Comparison of several evaluation indicators of the proposed model and other models unit:%
由表3 可知,有注意力機(jī)制的模型比Google NIC 指標(biāo)都有比較明顯的提升,ENCODER 模塊是使用相同的卷積神經(jīng)網(wǎng)絡(luò),DECODER 模塊是使用相同的長短記憶元網(wǎng)絡(luò),保證了實(shí)驗(yàn)的合理性和公平性。本文提出的改進(jìn)注意力機(jī)制通過分組卷積注意力,更合理地分布原圖和詞對應(yīng)的注意力。相對于其他的注意力模型,進(jìn)一步提升了準(zhǔn)確率,說明本文改進(jìn)的注意力機(jī)制能更有效地篩選有用特征作為長短記憶元網(wǎng)絡(luò)的輸入,表3中所有的模型都在Flickr30K數(shù)據(jù)集上驗(yàn)證,表明本文改進(jìn)模型有較好的泛化性。隨機(jī)選取Flickr8K 數(shù)據(jù)集和Flickr30K的示例圖分別為圖6和圖7,對比傳統(tǒng)模型和改進(jìn)模型對圖像描述生成效果。
圖6 Flickr8K示例圖片對應(yīng)的自然語言句子Fig.6 Natural language sentences corresponding to Flickr8K sample image
圖7 Flickr30K示例圖片對應(yīng)的自然語言句子Fig.7 Natural language sentences corresponding to Flickr30K sample image
傳統(tǒng)模型(ResNet101+LSTM)生成的自然語言句子:
a man in a blue jacket is sitting on a wooden bench.
改進(jìn)模型(ResNet101+LSTM+ATTENTION)生成的自然語言句子:
a man in a red jacket is sitting on a bench.
傳統(tǒng)模型將圖片中的紅色夾克信息生成了錯誤的藍(lán)色夾克信息,而改進(jìn)模型準(zhǔn)確地生成了紅色夾克信息。
傳統(tǒng)模型(ResNet101+LSTM)生成的自然語言句子:
a little girl in a pink shirt is playing with a hula hoop.
改進(jìn)模型(ResNet101+LSTM+ATTENTION)生成的自然語言句子:
a little girl in a pink shirt pushing a green stroller.
傳統(tǒng)模型對Flickr30K 示例圖片中生成了錯誤的呼啦圈信息,而改進(jìn)模型準(zhǔn)確地生成綠色的嬰兒推車信息。
在Flickr8K 數(shù)據(jù)集和Flickr30K 數(shù)據(jù)集中,ResNet101+LSTM 生成的語句中存在一些錯誤,翻譯得不是很準(zhǔn)確,而ResNet101+LSTM+ATTENTION 模型能較為準(zhǔn)確地翻譯圖片內(nèi)容,且基本沒有語法錯誤。
本文提出了一種基于CNN 和LSTM 且引入了改進(jìn)的注意力機(jī)制的網(wǎng)絡(luò)模型,采用了經(jīng)典VGG19 網(wǎng)絡(luò)以及具有更深層的ResNet101網(wǎng)絡(luò)對圖像進(jìn)行特征編碼,通過用EMBEDDING對自然語言句子的詞進(jìn)行詞編碼進(jìn)而得到詞向量,經(jīng)LSTM將特征向量和詞向量映射到同一空間中,在引入改進(jìn)的注意力機(jī)制作用下,使圖像信息引導(dǎo)生成與圖像更加符合的自然語言句子,同時也提升了本文所提出的模型的魯棒性。實(shí)驗(yàn)結(jié)果表明,本文提出的模型泛化能力明顯更好一些,在圖像描述生成的自然語言句子和評價指標(biāo)上都優(yōu)于傳統(tǒng)的模型。