郭淑濤,趙德新
(天津理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,天津300384)
深度神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、多媒體分析等多方領(lǐng)域被廣泛使用并取得了突出的效果,展現(xiàn)出優(yōu)異的學(xué)習(xí)能力和表達(dá)能力,同樣的,深度神經(jīng)網(wǎng)絡(luò)可以應(yīng)用于圖像描述任務(wù).圖像描述任務(wù)作為跨學(xué)科跨領(lǐng)域的交叉研究問(wèn)題,實(shí)質(zhì)就是使計(jì)算機(jī)能夠自動(dòng)的對(duì)圖片生成一句描述性文字,這對(duì)人來(lái)說(shuō)很容易,對(duì)機(jī)器來(lái)說(shuō)卻很有挑戰(zhàn)性.計(jì)算機(jī)需要提取圖像的物體特征、空間聯(lián)系、語(yǔ)義關(guān)系等信息,生成人類可讀的清晰表達(dá)出圖像內(nèi)容的句子,并力求句子準(zhǔn)確、通順.一直以來(lái),在圖像內(nèi)容和語(yǔ)義解釋之間建立合理的聯(lián)系被認(rèn)為是一種彌合語(yǔ)義鴻溝的有效方式[1],圖像描述任務(wù)就是試圖建立這種合理的聯(lián)系.當(dāng)前該任務(wù)主流的研究方向是如何將圖像生成英文描述,顯然,這項(xiàng)研究不應(yīng)該受到語(yǔ)言限制,中文作為世界上使用人數(shù)最多的一種語(yǔ)言,有著廣泛的使用人群,因此,中文圖像描述的研究很有必要性.
鑒于神經(jīng)網(wǎng)絡(luò)成功應(yīng)用于圖像分析領(lǐng)域,所以,基于神經(jīng)網(wǎng)絡(luò)的圖像描述成為目前主流的研究方法,其中大多數(shù)都是利用編碼器和解碼器結(jié)構(gòu),卷積神經(jīng)網(wǎng)絡(luò)convolutional neural network(CNN)充當(dāng)編碼器,編碼器負(fù)責(zé)圖像視覺(jué)特征的提取,循環(huán)神經(jīng)網(wǎng)絡(luò)recurrent neural network(RNN)充當(dāng)解碼器,解碼器負(fù)責(zé)句子的生成.Vinyals[2]等人提出了用端到端的方式系統(tǒng)解決圖像描述任務(wù),并發(fā)布了Google NIC模型. Jia[3]等人提出了一種拓展的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)gLSTM,從圖像中提取語(yǔ)義信息作為圖像的額外補(bǔ)償輸入到每個(gè)gLSTM 的單元中,gLSTM 取代LSTM生成最終的描述.Xu[4]等人提出了注意力機(jī)制,該機(jī)制能夠提取最顯著的圖像特征,更好的表達(dá)圖像的細(xì)節(jié),使得最終生成的描述句子更準(zhǔn)確.劉澤宇[5]等人在編碼器端采用了CNN 網(wǎng)絡(luò)結(jié)構(gòu)Ineption-v3[6]來(lái)提取圖像的視覺(jué)特征,同時(shí)構(gòu)建一個(gè)小的CNN 網(wǎng)絡(luò)結(jié)構(gòu)生成圖像的多標(biāo)簽關(guān)鍵詞,解碼器端用LSTM生成圖像的描述.Rennie[7]等人加入強(qiáng)化學(xué)習(xí)機(jī)制,提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,生成了準(zhǔn)確的描述句子.Yang[8]等人在LSTM 生成句子描述的過(guò)程中加入了表示情感的詞匯,生成的句子更富有情感.之前的工作中,已經(jīng)提出了一種多模態(tài)神經(jīng)網(wǎng)絡(luò)模型[9],該模型在編碼器端采用了CNN 網(wǎng)絡(luò)Ineption-v3 提取圖像的視覺(jué)特征,提出了ATTssd 來(lái)補(bǔ)充圖像屬性信息,提出了CNNm 來(lái)補(bǔ)充序列生成時(shí)丟失的重要信息.此次,采用了比Ineption-v3 更復(fù)雜的CNN 網(wǎng)絡(luò)Inception-v4 和Inception-ResNet-v2[10],它們?nèi)诤狭俗⒁饬C(jī)制來(lái)降低卷積過(guò)程的損失,得到更好的圖像視覺(jué)特征,提出了記憶助手來(lái)解決RNN 生成序列時(shí)信息丟失的問(wèn)題.
提出的多模態(tài)神經(jīng)網(wǎng)絡(luò)模型是由編碼器和解碼器組成,如圖1 所示,編碼器采用CNN,具體是Inceptionv4 和Inception-ResNet-v2,章節(jié)1.1 將會(huì)介紹這兩種CNN 網(wǎng)絡(luò)結(jié)構(gòu). 解碼器采用的是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),RNN 具體使用的是LSTM 和GRU,章節(jié)1.2將會(huì)介紹這兩種RNN 網(wǎng)絡(luò)結(jié)構(gòu).在RNN 預(yù)測(cè)每一個(gè)單詞的過(guò)程中,注意力機(jī)制重新計(jì)算圖像中顯著位置的權(quán)重并聚焦于圖像中相應(yīng)的區(qū)域,重新計(jì)算的權(quán)重將輸入到RNN 中,這有利于提取更細(xì)節(jié)的圖像視覺(jué)特征.在RNN 預(yù)測(cè)每一個(gè)單詞的過(guò)程中,記憶助手將關(guān)鍵的單詞信息填充到RNN 中,引導(dǎo)RNN生成更好的句子.
圖1 多模態(tài)神經(jīng)網(wǎng)絡(luò)模型Fig.1 Multi-modal neural network model
編碼器采用的CNN 來(lái)提取圖像的視覺(jué)特征,我們的CNN 采用的是Inception-v4 和Inception-ResNetv2,Inception-v4 是在Ineption-v3 的基礎(chǔ)上發(fā)展得來(lái)的,改善了Ineption-v3 的模型結(jié)構(gòu),是inception 模型的進(jìn)一步發(fā)展,實(shí)驗(yàn)證明Inception-v4 比較于Ineption-v3 對(duì)單幀圖像的識(shí)別能力更強(qiáng),因此采用了Inception-v4 進(jìn)行實(shí)驗(yàn).由于殘差網(wǎng)絡(luò)模型ResNet[11]優(yōu)異的表現(xiàn),Inception-ResNet-v2 借鑒了ResNet 的設(shè)計(jì)思想,是一種在Inception-v3 的基礎(chǔ)上改進(jìn)并提出的CNN 模型結(jié)構(gòu),該模型提取圖片的紋理信息和細(xì)節(jié)更完善.Inception-v4 和Inception-ResNet-v2 模型大體上沿用上Ineption-v3 的思想,采用小的卷積核來(lái)代替大的卷積核,這種替代保持感受野的范圍的同時(shí)減少了參數(shù)量,反而不會(huì)導(dǎo)致表達(dá)損失. 同時(shí),在模型當(dāng)中廣泛添加非線性激活函數(shù)來(lái)提高模型的性能.采用遷移學(xué)習(xí)的方法,兩種模型在大規(guī)模數(shù)據(jù)集ImageNet 上得到預(yù)訓(xùn)練的模型參數(shù).對(duì)圖像固定縮放、隨機(jī)裁剪、水平翻轉(zhuǎn),得到229×299 的3通道圖像.
解碼器結(jié)構(gòu)采用的是LSTM 和GRU,它們能夠有效的避免傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的梯度消失和梯度爆炸,有效解決了信息傳輸過(guò)程中長(zhǎng)期依賴的問(wèn)題,確保了信息在長(zhǎng)過(guò)程傳輸中不丟失. GRU 是LSTM 的變體,GRU 結(jié)構(gòu)比LSTM 更加簡(jiǎn)單,但是對(duì)于信息的捕獲能力卻很強(qiáng),GRU 將輸入門和遺忘門融合調(diào)整為更新門,將細(xì)胞狀態(tài)和隱藏狀態(tài)混合,復(fù)位門控制當(dāng)前狀態(tài)中哪些部分用于計(jì)算下一個(gè)目標(biāo)狀態(tài),更新門更新相應(yīng)的信息.在中文圖像描述的過(guò)程中,注意力機(jī)制需要關(guān)注編碼器提取的圖像的內(nèi)容和解碼器生成的中文詞語(yǔ)信息,并依據(jù)輸入的圖像內(nèi)容和序列生成的中文詞語(yǔ)信息預(yù)測(cè)下一個(gè)中文詞語(yǔ)信息,并聚焦于該圖像所在區(qū)域. 采用的是soft-attention[4],它和復(fù)雜的CNN 網(wǎng)絡(luò)可以更好地把握?qǐng)D像的細(xì)節(jié). 解碼器端是生成句子描述的關(guān)鍵,在LSTM 和GRU 生成描述的過(guò)程中,往往會(huì)丟失重要的詞信息,從而導(dǎo)致生成的序列不準(zhǔn)確,因此提出了記憶助手,在RNN 生成詞信息的過(guò)程中,記憶助手會(huì)加入關(guān)鍵的詞信息,引導(dǎo)生成更好的句子.
在RNN 生成序列的時(shí)候,隨著RNN 時(shí)間片的增長(zhǎng),梯度誤差在反向傳播過(guò)程中會(huì)逐漸消失,從而導(dǎo)致后續(xù)時(shí)間片生成的單詞缺乏先前的信息引導(dǎo),這也會(huì)導(dǎo)致預(yù)測(cè)的單詞不準(zhǔn)確,甚至生成的整個(gè)序列有錯(cuò)誤. 為了解決這一問(wèn)題,在RNN 做每一個(gè)單詞預(yù)測(cè)時(shí),記憶助手會(huì)提取當(dāng)前圖像的重要的序列特征,并將這些特征加入RNN 每一個(gè)單詞預(yù)測(cè)的過(guò)程中,引導(dǎo)RNN 生成更加準(zhǔn)確的句子.在RNN 做每一個(gè)單詞的預(yù)測(cè)時(shí)引入記憶助手,記憶助手提供16個(gè)重要的詞信息填充到循環(huán)神經(jīng)網(wǎng)絡(luò)中.
圖2 記憶助手用于提取序列特征Fig.2 Memory aid used to extract sequence features
受到記憶網(wǎng)絡(luò)[12]的啟發(fā),提出的記憶助手提取序列特征.如圖2 所示,記憶助手需要建立兩個(gè)記憶插槽(memory slot),分別是輸入插槽(input memory slot)和輸出插槽(output memory slot).針對(duì)一句話中的序列x0,x1…xi通過(guò)嵌入層A 處理后得到一個(gè)嵌入矩陣A(大小為嵌入層維度× 詞表長(zhǎng)度),序列x0,x1…xi通過(guò)嵌入層B 處理后得到一個(gè)嵌入矩陣B(大小為嵌入層維度× 詞表長(zhǎng)度),輸入插槽和輸出插槽分別經(jīng)過(guò)全連接層和激活層處理. 使用Mi,Mo區(qū)分輸入插槽和輸出插槽,使用i,o作為上標(biāo)區(qū)分輸入和輸出.
兩個(gè)記憶插槽的最大存儲(chǔ)長(zhǎng)度定為d= 16,最終輸入插槽Mi和輸出插槽Mo的定義如下:
當(dāng)t≥d時(shí),輸入的句子將會(huì)被裁剪成只保留后16 個(gè)詞向量的句子.當(dāng)t 當(dāng)前時(shí)間片的輸入詞向量xt經(jīng)過(guò)一層全連接層和激活層轉(zhuǎn)換成內(nèi)部狀態(tài)inst: Wins∈R512×512,bins∈R512×512,輸入插槽Mi和inst矩陣相乘后,經(jīng)softmax 函數(shù)得到中間狀態(tài)u,u是概率向量,表示輸入插槽中不同詞向量的重要程度.u和輸出插槽Mo按照元素相乘()重新調(diào)整輸出插槽的每一列. 其中,Msum∈Rd×512,利用時(shí)間卷積層[13]對(duì)序列數(shù)據(jù)提取特征.時(shí)間卷積層定義為: 一共經(jīng)過(guò)5 個(gè)時(shí)間卷積層,卷積核h大小依次為5,5,4,3,3. 然后,增加一個(gè)多模態(tài)融合層,它融合了當(dāng)前詞向量xt、記憶助手提取的句子特征表達(dá)和注意力機(jī)制得到的圖像向量ATTt,多模態(tài)融合層的公式表達(dá)如下: 當(dāng)前時(shí)刻的詞向量xt和直接相加,再連接ATTt,然后經(jīng)tanh 函數(shù)激活.采用“⊕”表示不同數(shù)據(jù)間的連接操作. 接下來(lái)是實(shí)驗(yàn)部分,采用多種實(shí)驗(yàn)指標(biāo)來(lái)進(jìn)行衡量. 本文采用的AI CHALLENGER 數(shù)據(jù)集[14]是2017年提出的人為標(biāo)注的大規(guī)模中文數(shù)據(jù)集,其中,訓(xùn)練集有21 萬(wàn)張圖片,驗(yàn)證集有3 萬(wàn)張圖片,測(cè)試集有3萬(wàn)張圖片,數(shù)據(jù)集的質(zhì)和量都完全超過(guò)其他中文數(shù)據(jù)集,大規(guī)模的數(shù)據(jù)集使得實(shí)驗(yàn)的準(zhǔn)確度和可信度更高.如上圖3 所示,A、B、C 圖中句子較長(zhǎng),語(yǔ)言準(zhǔn)確完整,5 句話的描述相近,都能準(zhǔn)確的表達(dá)出圖像內(nèi)容. 在實(shí)驗(yàn)過(guò)程中,使用的操作系統(tǒng)是Ubuntu18.04 LTS,使用的顯卡是NVIDIA 1080 Ti,使用的深度學(xué)習(xí)框架是Pytorch,使用的中文分詞工具是結(jié)巴分詞. AI CHALLENGER 數(shù)據(jù)集詞匯表大小為8 564,詞匯表中添加 圖3 中文數(shù)據(jù)集示例Fig.3 Example of Chinese data set 本文一共采用了7 種指標(biāo)衡量中文描述生成結(jié)果的質(zhì)量. BLEU[15]:常用來(lái)當(dāng)作機(jī)器翻譯的評(píng)價(jià)指標(biāo),能夠分析機(jī)器生成語(yǔ)句和參考語(yǔ)句間的N 元文法準(zhǔn)確率.METEOR:利用單精度的加權(quán)調(diào)和平均數(shù)和單字召回率的方法改善BLEU 指標(biāo)存在的問(wèn)題.ROUGE-L:通過(guò)比較召回率的相似度來(lái)度量指標(biāo),不足之處是該算法的N 元文法要求是連續(xù)的.CIDEr:通過(guò)共識(shí)評(píng)價(jià)指標(biāo),是一種特別的圖像描述評(píng)價(jià)指標(biāo),具有重要參考價(jià)值.在表1 中,用B@1,2,3,4 指代BLEU-1,2,3,4,Rouge 指代ROUGE-L,Incepv4 指代Inception-v4,Incepresv2 指代Inception-ResNet-v2,ATT 指代注意力機(jī)制,MA 指代記憶助手. 如表1 所示,Baseline[14]是官方公布的在AI CHALLENGER 數(shù)據(jù)集的各項(xiàng)指標(biāo),提出的基于注意力和記憶助手的多模態(tài)神經(jīng)網(wǎng)絡(luò)模型取得最好的實(shí)驗(yàn)效果,其他的4 種不同子模型組成的網(wǎng)絡(luò)模型也都提高了各項(xiàng)實(shí)驗(yàn)指標(biāo). 通過(guò)對(duì)比實(shí)驗(yàn),發(fā)現(xiàn)當(dāng)CNN 結(jié)構(gòu)同是采用Inception-v4 時(shí),LSTM 的表現(xiàn)要稍微好于GRU,推測(cè)對(duì)圖像描述這一任務(wù)LSTM 的效果比GRU 要更好. 當(dāng)RNN 結(jié)構(gòu)同是采用LSTM 時(shí),Inception-v4 和Inception-ResNet-v2 的實(shí)驗(yàn)指標(biāo)基本相同.雖然Inception-ResNet-v2 比Inception-v4 結(jié)構(gòu)復(fù)雜,網(wǎng)絡(luò)深度深,但對(duì)圖像描述任務(wù)來(lái)說(shuō),二者提取圖像視覺(jué)特征的能力大致相同. 如圖5 的展示,發(fā)現(xiàn)Inception-ResNet-v2 提取的細(xì)節(jié)信息更多,Inception-v4 提取的宏觀特征更好. 當(dāng)CNN 為Inception-ResNet-v2 時(shí),加入注意力機(jī)制(ATT)后,Inception-ResNet-v2+LSTM+ATT 的神經(jīng)網(wǎng)絡(luò)模型取得比Inception-ResNet-v2 + LSTM 更好的實(shí)驗(yàn)效果.當(dāng)加入記憶助手(MA)后,Inception-ResNet-v2+LSTM+ATT+MA 進(jìn)一步提升了各項(xiàng)實(shí)驗(yàn)指標(biāo). 如下圖4 所示,圖中的黑色字體為原數(shù)據(jù)集上的中文描述,圖中的彩色字體為不同的實(shí)驗(yàn)?zāi)P蜕傻木渥? 顯然,Inception-v4 + LSTM 比Inception-v4 +GRU 生成的句子更長(zhǎng),語(yǔ)言更加準(zhǔn)確細(xì)膩.Inception-ResNet-v2+LSTM 和Inception-v4+LSTM 生成的句子長(zhǎng)短相近,但是圖像細(xì)節(jié)表達(dá)的更多.加入注意力機(jī)制(ATT)后生成的句子更準(zhǔn)確通順,例如:A 圖中去掉了繁瑣的不準(zhǔn)確的描述,加入了兩個(gè)人、椅子、電腦等關(guān)鍵信息,B 圖中能夠識(shí)別處圖中有4 個(gè)人,而不是3 個(gè)人,C 圖的細(xì)節(jié)表達(dá)很好,能夠識(shí)別出一群人,但是卻將帽子認(rèn)成了頭盔,加入記憶助手后,語(yǔ)句表達(dá)更加飽滿,圖像細(xì)節(jié)描述的更完善,A 圖中能識(shí)別出深色上衣、淺色上衣、桌子,B 圖中點(diǎn)出白色衣服、裙子,C 圖中識(shí)別出了帽子,而沒(méi)有識(shí)別成頭盔. 表1 AI CHALLENGER 數(shù)據(jù)集上各模型的指標(biāo)Tab.1 AI CHALLENGER evaluation indicators for models on datasets 圖4 實(shí)驗(yàn)?zāi)P蜕傻闹形拿枋鯢ig.4 Chinese image caption of experimental model generation 本文提出了一種自動(dòng)生成圖像中文描述的多模態(tài)神經(jīng)網(wǎng)絡(luò)模型,并提出了記憶助手來(lái)解決循環(huán)神經(jīng)網(wǎng)絡(luò)生成序列時(shí)信息丟失的問(wèn)題,實(shí)驗(yàn)指標(biāo)顯著提升,生成的句子更準(zhǔn)確,語(yǔ)言表達(dá)更飽滿,不同的子模型組成的多模態(tài)神經(jīng)網(wǎng)絡(luò)模型同樣提高了實(shí)驗(yàn)指標(biāo).3 實(shí)驗(yàn)過(guò)程
4 實(shí)驗(yàn)結(jié)果
5 結(jié) 論