卓亞琦,魏家輝,李志欣
(1.桂林理工大學(xué)理學(xué)院,廣西桂林 541004;2.廣西師范大學(xué)廣西多源信息挖掘與安全重點(diǎn)實(shí)驗(yàn)室,廣西桂林 541004)
圖像描述生成旨在為圖像生成準(zhǔn)確的自然語言描述,包括獲取一幅圖像、分析其視覺內(nèi)容、生成文本描述以說明圖像中的顯著目標(biāo)和行為等步驟[1].傳統(tǒng)的視覺任務(wù)(如物體檢測(cè)[2]或圖像自動(dòng)標(biāo)注[3])都是在有限個(gè)類別上測(cè)試檢測(cè)器或分類器的精度.相比之下,圖像描述生成的任務(wù)結(jié)合了計(jì)算機(jī)視覺和自然語言處理兩個(gè)領(lǐng)域,更具綜合性和挑戰(zhàn)性.
圖像描述系統(tǒng)通常采用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)作為編碼器從輸入圖像中提取視覺特征,同時(shí)采用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)作為解碼器將編碼信息逐詞地解碼為自然語言描述[4~6].為了更好地將圖像信息整合到語言模型中,Xu等[7]首先在圖像描述系統(tǒng)中引入了軟、硬兩種視覺注意機(jī)制.Chen 等[8]在此基礎(chǔ)上提出了一種基于空間和通道的雙注意圖像描述生成方法.Lu 等[9]發(fā)現(xiàn)在語句生成過程中有些單詞是不需要參考視覺信息的,提出了一種基于視覺哨兵的自適應(yīng)注意模型.You等[10]提出了基于語義注意的圖像描述方法,從圖像中提取一些視覺語義概念來實(shí)現(xiàn)視覺信息的增強(qiáng).近年來,自注意機(jī)制也引起了越來越多研究人員的關(guān)注.Vaswani 等[11]提出Transformer 模型,完全拋棄了RNN,僅通過自注意機(jī)制就實(shí)現(xiàn)了機(jī)器翻譯的最新成果.Yu等[12]提出用于機(jī)器閱讀理解的QANet,使用CNN 和自注意機(jī)制相結(jié)合構(gòu)建網(wǎng)絡(luò)模型.此外,許多研究人員嘗試?yán)脧?qiáng)化學(xué)習(xí)技術(shù)進(jìn)一步優(yōu)化圖像描述生成模型,通過梯度估計(jì)等方法直接優(yōu)化評(píng)估度量,從而生成更符合人類感知的描述語句[13,14].
綜上所述,目前圖像描述生成的主流方法是基于編碼器-解碼器架構(gòu)并結(jié)合注意機(jī)制的方法[7~10],但仍然存在一些問題.首先,注意模型大多是單詞級(jí)的局部注意,缺乏對(duì)圖像整體的掌控.其次,模型在訓(xùn)練和測(cè)試之間存在“暴露偏差”(exposure bias)[13].最后,存在訓(xùn)練損失和評(píng)估指標(biāo)不匹配的問題.模型在訓(xùn)練時(shí)通常使用交叉熵?fù)p失,而在測(cè)試時(shí)一般使用BLEU[15]、METEOR[16]、ROUGE-L[17]、CIDEr[18]這樣的指標(biāo)來評(píng)估生成語句的質(zhì)量.
針對(duì)以上問題,提出了一種新的基于自注意的圖像描述生成方法來探討圖像全局注意信息對(duì)于描述生成的有效性.自注意機(jī)制可以自動(dòng)地從圖像中提取語句級(jí)的注意信息,具有比單詞級(jí)注意特征更完整的視覺表示.在訓(xùn)練時(shí),通過在解碼器的每個(gè)時(shí)間步中對(duì)語句級(jí)注意信息的調(diào)整,可以使它滿足生成整個(gè)語句的需求.語句級(jí)注意圖和單詞級(jí)注意圖的示例如圖1 所示.此外,為了能結(jié)合兩種注意的優(yōu)勢(shì),生成更加準(zhǔn)確的描述,進(jìn)一步提出了雙注意模型,通過集成兩種注意模型來生成最終的描述語句.最后,為了解決“暴露偏差”和損失-評(píng)估不匹配問題[13,14],將強(qiáng)化學(xué)習(xí)應(yīng)用于兩階段訓(xùn)練方法來優(yōu)化模型的評(píng)估度量.
圖1 視覺注意圖示例
本方法使用統(tǒng)一的編碼器-解碼器架構(gòu)生成圖像描述.首先使用CNN 將輸入的圖像編碼為空間特征I,然后利用RNN 的變體長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)將特征向量解碼為單詞序列Y=(y1,y2,…,yT),其中yi∈D是預(yù)測(cè)生成的單詞,D是包含所有單詞的詞典,T是語句的最大長(zhǎng)度.單詞由詞嵌入向量表示,每個(gè)語句的開頭用一個(gè)特殊的<start>標(biāo)記,結(jié)尾用一個(gè)特殊的<end>標(biāo)記.在模型解碼過程中,上一時(shí)間步生成的單詞會(huì)被反饋到LSTM 中,結(jié)合圖像的注意信息和上一時(shí)間步的隱狀態(tài)ht-1,生成當(dāng)前時(shí)間步的隱狀態(tài)ht,然后根據(jù)ht預(yù)測(cè)生成當(dāng)前單詞yt.
單詞級(jí)注意是傳統(tǒng)的上下文注意[7],根據(jù)視覺上下文信息的變化動(dòng)態(tài)地從圖像中提取注意信息,在不同的時(shí)間步注意信息是不同的,定義如下:
其中Wh∈RC’×C’和Ww∈RC’×C是將隱狀態(tài)ht-1和圖像特征I映射到同一維度的變換矩陣,Wa∈RC’是變換行向量,bw和ba是偏置項(xiàng).⊕運(yùn)算表示向量Qt與矩陣K的加運(yùn)算,將向量加到矩陣的每一列中.計(jì)算出at是一個(gè)行向量,而αt為最終的權(quán)重向量,表示空間注意權(quán)重的分布,其維數(shù)與V中的通道特征向量個(gè)數(shù)相同.由此可以得到加權(quán)后的單詞級(jí)注意特征
圖像的各個(gè)區(qū)域之間存在非常重要的語義關(guān)系,對(duì)象間的語義關(guān)系對(duì)圖像描述語句的生成至關(guān)重要,但是單詞級(jí)注意只能關(guān)注到少量的局部特征,很難有完整的視覺表示.因此,提出一種具有語句級(jí)注意的圖像描述生成方法.通過對(duì)整幅圖像的觀察,從圖像中挑選出對(duì)于整個(gè)生成語句最有用的信息,通過自注意機(jī)制在圖像空間區(qū)域上產(chǎn)生注意權(quán)重,得到圖像的注意特征.在自注意機(jī)制中,Q、K和V表示經(jīng)過變換后的圖像空間特征.圖2 給出了語句級(jí)注意模型的結(jié)構(gòu),首先使用1×1 卷積層將原始圖像空間特征I轉(zhuǎn)換為三個(gè)功能空間特征,然后使用單層的神經(jīng)網(wǎng)絡(luò)來融合Q和K兩個(gè)特征向量,最后通過softmax 函數(shù)在V上生成注意權(quán)重分布.具體表示如下:
圖2 語句級(jí)注意模型結(jié)構(gòu)圖
其中Wq∈RC’’×C、Wk∈RC’’×C和Wv∈RC’×C是1×1 卷積層的參數(shù)矩陣.1×1卷積可以通過對(duì)每個(gè)通道的信息進(jìn)行計(jì)算來實(shí)現(xiàn)通道間的信息整合,同時(shí)還可以有效地降低模型的計(jì)算復(fù)雜度.Ws∈RC’’是一個(gè)融合Q和K的變換行向量,bs是偏置項(xiàng).α表示得到的空間注意權(quán)重分布,α和V具有相同的空間大小,即L=k×k,由此可得到加權(quán)后的語句級(jí)圖像特征V s=Vα.
此外,本文方法在模型的損失中加入了雙隨機(jī)注意正則化.在上下文注意模型中,視覺注意隨著上下文信息的變化而不斷變化.為了防止一些區(qū)域的特征丟失,通常在模型的訓(xùn)練損失中加入雙隨機(jī)注意正則化[7],即:
其中λ是雙隨機(jī)正則化系數(shù),αt,i是在t時(shí)間步第i個(gè)圖像區(qū)域的注意權(quán)重.
而在語句級(jí)注意模型中,αi在每個(gè)時(shí)間步都是相同的,并不需要關(guān)注到圖像的每個(gè)區(qū)域.相反,模型可以選擇性地只關(guān)注對(duì)整個(gè)語句最有用的部分.因此,語句級(jí)注意模型的雙隨機(jī)注意正則化表示為:
本文集成了兩種注意模型進(jìn)一步提出雙注意模型,并嘗試采用兩種不同的方式來構(gòu)建雙注意模型.兩種構(gòu)建方式分別為:
(1)串聯(lián)結(jié)合方式:圖像首先經(jīng)過語句級(jí)注意模型進(jìn)行初步篩選,得到圖像的語句級(jí)特征表示,然后通過單詞級(jí)注意模型進(jìn)一步根據(jù)每個(gè)單詞提取更加精細(xì)化的圖像信息,最終將兩個(gè)單注意模型生成的預(yù)測(cè)結(jié)果進(jìn)行加權(quán)求和來預(yù)測(cè)最終輸出的單詞,結(jié)構(gòu)如圖3 所示.計(jì)算公式為:
圖3 串聯(lián)型雙注意模型
其中β為可學(xué)習(xí)參數(shù).
(2)并聯(lián)結(jié)合方式:直接將兩個(gè)單注意模型生成的預(yù)測(cè)向量進(jìn)行加權(quán)求和來預(yù)測(cè)模型最終輸出的單詞,結(jié)構(gòu)如圖4所示.計(jì)算公式為:
圖4 并聯(lián)型雙注意模型
但是,當(dāng)兩種注意結(jié)合在一起時(shí),不可避免地會(huì)導(dǎo)致信息間的相互干擾.因此,本文在模型的中間階段實(shí)施監(jiān)督和優(yōu)化,使用多任務(wù)學(xué)習(xí)方法將兩個(gè)單注意模型的損失添加到最終的訓(xùn)練損失中,以調(diào)節(jié)兩個(gè)單注意模型在每個(gè)時(shí)間步的輸出,以此來解決兩個(gè)模型信息間的干擾問題.模型最終的訓(xùn)練損失可表示如下:
其中Ls、Lw和Ld分別是語句級(jí)注意、單詞級(jí)注意和雙注意模型的損失,最終模型的訓(xùn)練損失是三個(gè)損失之和,ηs和ηw是雙隨機(jī)注意正則化項(xiàng).
傳統(tǒng)的圖像描述模型在訓(xùn)練和測(cè)試之間存在差異.此外,模型使用交叉熵?fù)p失來進(jìn)行訓(xùn)練,這與測(cè)試時(shí)使用的BLEU[15]和CIDEr[18]等評(píng)估度量并不相關(guān).為了解決這些問題,可以通過強(qiáng)化學(xué)習(xí)方法直接在評(píng)估度量上優(yōu)化模型語句的生成.其中LSTM 解碼器可以看作是與外部環(huán)境進(jìn)行交互的代理,而策略pθ由模型的參數(shù)θ來定義.該模型接收各種狀態(tài),并通過策略來確定下一步動(dòng)作pθ:yt~pθ,即預(yù)測(cè)下一個(gè)生成的單詞.當(dāng)語句生成結(jié)束時(shí),可以通過計(jì)算所生成語句的評(píng)估度量分?jǐn)?shù)來獲得語句級(jí)的獎(jiǎng)勵(lì)r(Y),LSTM 更新其內(nèi)部“狀態(tài)”.基于強(qiáng)化學(xué)習(xí)方法的訓(xùn)練目標(biāo)是最大限度地減小負(fù)獎(jiǎng)勵(lì)期望:
梯度?θL(θ)通過REINFORCE 算法[19]來計(jì)算.實(shí)際上,對(duì)于每個(gè)小批量的訓(xùn)練樣本,可以使用來自pθ的蒙特卡羅樣本Y=(y1,y2,…,yT)來估計(jì)梯度:
然而,蒙特卡羅采樣方法通常具有較大的方差.為了減小方差,遵循SCST(Self-Critical Sequence Training)方法[14],將模型通過蒙特卡羅采樣生成的語句的CIDEr得分作為獎(jiǎng)勵(lì)r(Y),使用模型貪心搜索生成的語句的CIDEr 得分作為基線獎(jiǎng)勵(lì)不同之處在于,訓(xùn)練時(shí)將強(qiáng)化學(xué)習(xí)方法應(yīng)用于兩階段的訓(xùn)練,一階段是優(yōu)化單注意模型生成的描述,使用單注意模型自身生成的語句來作為基線,二階段是優(yōu)化模型最終生成的描述,不僅使用模型最終生成的語句來作為基線,而且還將一階段中兩個(gè)單注意模型生成的語句也作為基線.可表示為:
其中,
其中Y1,s,Y1,w,Y2分別是模型通過蒙特卡羅抽樣在一階段生成的兩個(gè)語句和最終生成的語句是通過貪心搜索獲得的語句.
為了證明提出方法的有效性,在MSCOCO 數(shù)據(jù)集上進(jìn)行了充分的實(shí)驗(yàn)評(píng)估,并與當(dāng)前先進(jìn)的模型進(jìn)行了對(duì)比,從定量和定性兩個(gè)方面進(jìn)行了結(jié)果分析.
本文選擇最常用的MSCOCO 數(shù)據(jù)集來進(jìn)行實(shí)驗(yàn)驗(yàn)證.MSCOCO數(shù)據(jù)集中共113287幅圖像作為訓(xùn)練集,但測(cè)試集中沒有標(biāo)注語句.根據(jù)Karpathy 的劃分[5],從驗(yàn)證集中挑選出5000 幅圖像用于驗(yàn)證,5000 幅圖像用于測(cè)試.實(shí)驗(yàn)使用BLEU(1-4)[15],METEOR[16],ROUGEL[17]和CIDEr[18]作為評(píng)估指標(biāo)來衡量生成語句的質(zhì)量.
實(shí)驗(yàn)實(shí)現(xiàn)了三種基于注意的圖像描述模型:?jiǎn)卧~級(jí)注意模型、語句級(jí)注意模型和雙注意模型,并且在雙注意模型中對(duì)提出的兩種不同構(gòu)建方式分別進(jìn)行了驗(yàn)證.這些實(shí)驗(yàn)基本遵循相同的參數(shù)設(shè)置.首先使用在ImageNet上預(yù)訓(xùn)練過的ResNet-101[20]對(duì)圖像進(jìn)行編碼,然后在目標(biāo)數(shù)據(jù)集上對(duì)參數(shù)進(jìn)行微調(diào).將CNN 最后一個(gè)卷積層的輸出作為圖像視覺編碼特征,并使用空間自適應(yīng)平均池化將它們調(diào)整為2048×14×14的固定大小輸出.同時(shí),通過目標(biāo)檢測(cè)器來提取圖像區(qū)域特征,獲得圖像顯著區(qū)域的特征表示,并使用加權(quán)方法融合兩種特征.實(shí)驗(yàn)中LSTM 的神經(jīng)元數(shù)量統(tǒng)一設(shè)置為512,語句級(jí)注意模型中三個(gè)1×1 卷積層的神經(jīng)元分別設(shè)置為64、64、512,單詞級(jí)注意層中的神經(jīng)元數(shù)量設(shè)置為512.雙隨機(jī)注意正則化系數(shù)設(shè)置為1.除了CNN 部分之外,其他部分的參數(shù)采用隨機(jī)初始化.
在訓(xùn)練過程中,首先關(guān)閉CNN 的微調(diào)功能,使用Adam優(yōu)化器[21]在交叉熵?fù)p失下訓(xùn)練模型.初始學(xué)習(xí)率為4×10-4,動(dòng)量參數(shù)為0.9,批量大小為100,共訓(xùn)練25輪.然后打開CNN 微調(diào)功能,在之前的基礎(chǔ)上繼續(xù)訓(xùn)練,此時(shí)批量大小調(diào)整為32,訓(xùn)練10 輪.最后,在訓(xùn)練好的模型上運(yùn)行基于強(qiáng)化學(xué)習(xí)的訓(xùn)練方法來優(yōu)化模型的CIDEr評(píng)估指標(biāo).在這個(gè)階段,學(xué)習(xí)率設(shè)置為5×10-5,批量大小為64,訓(xùn)練15輪.
在訓(xùn)練過程中,首先固定CNN 的參數(shù),在交叉熵?fù)p失下訓(xùn)練模型達(dá)到最好的效果,然后在先前訓(xùn)練的模型上對(duì)CNN 進(jìn)行微調(diào)訓(xùn)練.表1 展示了本文模型在MSCOCO 數(shù)據(jù)集上CNN 微調(diào)前和微調(diào)后結(jié)果的對(duì)比(FT 表示微調(diào)后的結(jié)果),其中SAIC 表示語句級(jí)注意模型,WAIC 表示單詞級(jí)注意模型,DAIC 表示雙注意模型(其中DAICs 表示串聯(lián)方式構(gòu)建的雙注意模型,DAICp表示并聯(lián)方式構(gòu)建的雙注意模型).從表1中可以看出,微調(diào)CNN對(duì)所有的模型都有非常大的提升.
表1 在MSCOCO數(shù)據(jù)集上微調(diào)CNN對(duì)結(jié)果的影響
表2 列出了本文模型在MSCOCO 數(shù)據(jù)集上的性能表現(xiàn)以及與其他先進(jìn)模型的對(duì)比,其中XE 表示使用交叉熵?fù)p失訓(xùn)練后的結(jié)果,RL 表示使用強(qiáng)化學(xué)習(xí)優(yōu)化后的結(jié)果.
表2 在MSCOCO數(shù)據(jù)集上的性能比較
從表中實(shí)驗(yàn)數(shù)據(jù)可以看出,本文模型相比于其他先進(jìn)模型有更好的性能表現(xiàn).首先,對(duì)于在交叉熵?fù)p失訓(xùn)練下的結(jié)果,雖然語句級(jí)注意模型SAIC 只有語句級(jí)的特征,但依然取得了很好的效果,這是由于語句級(jí)注意特征能很好地表達(dá)圖像中最主要的信息,并且通過微調(diào)CNN 可以更好地發(fā)揮語句級(jí)注意的特點(diǎn),得到更好的語句級(jí)特征表示.但是從相比于單詞級(jí)注意模型,語句級(jí)注意模型的整體效果還是會(huì)稍差,這是由于語句級(jí)注意特征由圖像本身計(jì)算,不能隨著上下文信息的變動(dòng)來分析圖像,而且在每個(gè)時(shí)間步都輸入整個(gè)語句級(jí)的注意特征,不可避免的會(huì)引入更多的噪聲.但是,可以看到將其與單詞級(jí)注意模型協(xié)同,可以生成更好的描述.與單注意模型相比,雙注意模型DAIC 在所有指標(biāo)上都取得了更好的表現(xiàn),充分表明語句級(jí)和單詞級(jí)注意模型的結(jié)合可以顯著提高圖像描述系統(tǒng)的性能.
為了更加直觀地證明本文方法可以捕獲到準(zhǔn)確的視覺注意特征,將方法的注意權(quán)重進(jìn)行了可視化.首先將注意權(quán)重?cái)U(kuò)張24 倍,并使用高斯濾波器將其調(diào)整到與輸入圖像相同的尺寸,然后將注意分布圖疊加在原始輸入圖像上.如圖5 所示,W 表示單詞級(jí)注意模型的生成結(jié)果,S 表示語句級(jí)注意模型的生成結(jié)果,D 表示雙注意模型的生成結(jié)果.從圖中可以看出,語句級(jí)注意可以針對(duì)生成的語句關(guān)注到對(duì)圖像中最有用的部分,而不包含語義信息的圖像邊緣等區(qū)域通常不會(huì)分配注意,而單詞級(jí)注意可以準(zhǔn)確地關(guān)注到圖像中的各個(gè)局部實(shí)體.此外,也可以看到比于單詞級(jí)和語句級(jí)注意模型,雙注意模型生成的描述相對(duì)會(huì)更好.例如,在圖5的前三組圖像中,生成的“with wine”,“on a runway”和“red and white”這些短語都使描述語句更加豐富和準(zhǔn)確.但同時(shí)由于雙注意模型結(jié)合了兩個(gè)單注意模型,有時(shí)也會(huì)因?yàn)閱蝹€(gè)模型的錯(cuò)誤,而導(dǎo)致最終生成的語句不好,例如在第四組圖像中生成的“frisbee”,但從定量分析的各種評(píng)價(jià)指標(biāo)上看,整體上雙注意模型有更好的生成效果.
圖5 生成結(jié)果的可視化
本文首先提出一種基于語句級(jí)注意的圖像描述生成方法,引入自注意機(jī)制提取具有更完整視覺表示的語句級(jí)圖像特征.在此基礎(chǔ)上,進(jìn)一步提出了雙注意模型,通過對(duì)語句級(jí)注意和單詞級(jí)注意的集成使最終模型有更好的生成效果.此外,本文將強(qiáng)化學(xué)習(xí)方法運(yùn)用到兩階段的訓(xùn)練來優(yōu)化模型的評(píng)估度量,大大提升了模型的整體性能.實(shí)驗(yàn)結(jié)果表明,雙注意模型可以生成更好的描述語句,并且在各項(xiàng)評(píng)估指標(biāo)上優(yōu)于目前許多先進(jìn)的模型.當(dāng)然,也要看到本文方法需要大量的標(biāo)注樣本,在小數(shù)據(jù)集上的性能不是很令人滿意.未來打算引入半監(jiān)督學(xué)習(xí)和因果推理等技術(shù)進(jìn)一步提升圖像描述生成的性能.