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