董虎勝,徐建峰,孫浩,吳銘儀
(1.江蘇省智能服務(wù)工程技術(shù)研究開(kāi)發(fā)中心,蘇州215009;2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,蘇州215009)
圖像描述生成(Image Caption)[1-2]是計(jì)算機(jī)視覺(jué)中一項(xiàng)新興的任務(wù),它的目標(biāo)是對(duì)給定的圖像自動(dòng)生成一段有意義的描述性內(nèi)容。由于該任務(wù)除了計(jì)算機(jī)視覺(jué)中傳統(tǒng)的檢測(cè)、分類等工作外,還涉及到對(duì)自然語(yǔ)言的處理,因此非常用具有挑戰(zhàn)性。作為對(duì)圖像的高層語(yǔ)意理解,圖像描述生成技術(shù)在圖像檢索、圖像與視頻事件分析、輿情分析等應(yīng)用中具有廣泛的前景,因此一經(jīng)提出便獲得了廣泛的關(guān)注。
目前在對(duì)圖像描述生成方法的研究中,基本上都采用了Encoder-Decoder的系統(tǒng)架構(gòu)[3],借助于在其他視覺(jué)任務(wù)中取得了優(yōu)秀性能的深度卷積神經(jīng)網(wǎng)絡(luò)作為Encoder來(lái)獲得圖像的特征表達(dá),再使用Decoder網(wǎng)絡(luò)根據(jù)特征表達(dá)訓(xùn)練解碼器生成最終的文本描述序列。由于深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)具有優(yōu)秀的特征學(xué)習(xí)能力,而長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)[4]具有很好的序列數(shù)據(jù)處理性能,使用CNN+LSTM的圖像描述生成方法在獲得的圖像描述質(zhì)量上要顯著優(yōu)于圖像特征與描述語(yǔ)句特征匹配的方法,與使用固定文本描述模板添加關(guān)鍵詞的方法相比,更具有靈活多樣性[5]。
在對(duì)圖像中的內(nèi)容使用自然語(yǔ)言進(jìn)行描述時(shí),除了從整體把握?qǐng)D像之外,人們也會(huì)更加關(guān)注圖中一些局部的信息,這對(duì)應(yīng)于表達(dá)語(yǔ)句中的一些關(guān)鍵詞語(yǔ),而句子中的其他詞語(yǔ)主要對(duì)這些關(guān)鍵詞語(yǔ)進(jìn)行上下文的描述。
當(dāng)前的深度學(xué)習(xí)領(lǐng)域已經(jīng)提出了多種模型架構(gòu),如GoogleLeNet、VGG、ResNet等,這些架構(gòu)在諸如圖像識(shí)別、目標(biāo)檢測(cè)等其他計(jì)算機(jī)視覺(jué)任務(wù)中表現(xiàn)出了優(yōu)秀的性能。另外這些優(yōu)秀的模型還提供了在ImageNet數(shù)據(jù)集上作了訓(xùn)練的參數(shù),在其他任務(wù)中作適當(dāng)調(diào)優(yōu)即可作為優(yōu)秀的特征提取器使用。因此,本文采用了在性能與網(wǎng)絡(luò)架構(gòu)上取得比較好的平衡的ResNet-101深度殘差網(wǎng)絡(luò)(Residual Net)[6]作為模型的 Encoder,模型的參數(shù)為在ImageNet上訓(xùn)練后的結(jié)果。
與其他的網(wǎng)絡(luò)架構(gòu)相比,深度殘差網(wǎng)絡(luò)設(shè)計(jì)了一種特殊的“短路”結(jié)構(gòu)。若將輸入設(shè)為x,將某一網(wǎng)絡(luò)層設(shè)為H,那么以x作為輸入后該層的輸出將為H(x)。如AlexNet和VGG等一般架構(gòu)的CNN網(wǎng)絡(luò)會(huì)直接通過(guò)訓(xùn)練學(xué)習(xí)出H的各個(gè)參數(shù),即直接學(xué)習(xí)H:x?H(x)。但殘差學(xué)習(xí)的是使用多個(gè)網(wǎng)絡(luò)層學(xué)習(xí)輸入與輸出之間的殘差之間的殘差-x,即學(xué)習(xí)的是 H:x?+x,其中 x為恒等映射(identity mapping),而即為有參網(wǎng)絡(luò)層需要學(xué)習(xí)的輸入與輸出之間的殘差。在DCNN模型中基本上都采用了多個(gè)“卷積-池化”層的堆疊來(lái)實(shí)現(xiàn)對(duì)圖像進(jìn)行空間嵌入,隨著模型層數(shù)的加深,所獲得的特征圖在空間尺寸上越來(lái)越小,但是在通道數(shù)上越來(lái)越多,一方面達(dá)到對(duì)嵌入空間的降維,同時(shí)也能夠捕捉原始圖像不同方面的特征。總體上,隨著層數(shù)的加深,學(xué)習(xí)到的特征也越來(lái)越抽象,更接近于對(duì)圖像高層語(yǔ)義信息的提取。本文在使用ResNet-101架構(gòu)時(shí)丟棄了最后兩層,即全連接層與分類層,僅取最后輸出的2048個(gè)通道的14×14大小的特征圖(Feature Map)用作為Decoder的輸入。
作為圖像描述自動(dòng)生成模型中的Decoder,其主要任務(wù)是接收Encoder輸出的特征圖并逐字生成對(duì)圖像的描述的句子。由于生成句子時(shí)需要按序列逐字生成,因此當(dāng)前使用的Decoder模型均為循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[7]。不過(guò)盡管樸素的RNN模型具有比較強(qiáng)的序列處理能力,但是僅能利用前一時(shí)刻的信息,無(wú)法捕捉到較遠(yuǎn)間隔前的相關(guān)信息。與樸素RNN相比,常短時(shí)記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)采用了四個(gè)特殊的門結(jié)構(gòu)來(lái)實(shí)現(xiàn)對(duì)長(zhǎng)時(shí)依賴關(guān)系的處理,有效地解決了序列數(shù)據(jù)中的長(zhǎng)時(shí)記憶與短時(shí)依賴。圖1給出了LSTM網(wǎng)絡(luò)的結(jié)構(gòu)。
如圖1所示,LSTM實(shí)際上是一種具有重復(fù)神經(jīng)網(wǎng)絡(luò)模塊(即LSTM Cell)的鏈?zhǔn)叫问?。在LSTM Cell中包含了遺忘門、輸入門、輸出門三個(gè)門結(jié)構(gòu),它們分別控制了當(dāng)前的輸入樣本與Cell前一時(shí)刻的狀態(tài)對(duì)當(dāng)前狀態(tài)Ct的影響,以及當(dāng)前Cell狀態(tài)中有多少信息被輸出到LSTM的輸出ht中。通過(guò)對(duì)這些處理的循環(huán)迭代,LSTM就實(shí)現(xiàn)了對(duì)Cell狀態(tài)的序列化更新處理。訓(xùn)練好的LSTM網(wǎng)絡(luò)就能夠捕獲序列數(shù)據(jù)中長(zhǎng)短時(shí)依賴關(guān)系及數(shù)據(jù)內(nèi)在模式。
圖1 LSTM網(wǎng)絡(luò)展開(kāi)結(jié)構(gòu)圖
LSTM中的遺忘門決定了當(dāng)前Cell需要從前一個(gè)時(shí)刻的狀態(tài)Ct-1中丟棄什么信息,遺忘門接收前一時(shí)刻的狀態(tài)ht-1與當(dāng)前輸入的樣本xt,并使用sigmoid函數(shù)輸出一個(gè)位于(0,1)之間的數(shù),實(shí)現(xiàn)對(duì)原有記憶信息進(jìn)行選擇性的保留和遺忘。該步驟的運(yùn)算式為:
式中Wf和bf分別為權(quán)重矩陣與偏置向量,表示向量的拼接運(yùn)算,為sigmoid函數(shù)。
在前一時(shí)刻的狀態(tài)ht-1與當(dāng)前輸入的樣本xt經(jīng)過(guò)遺忘門后,下一步需要決定讓多少新的信息被存儲(chǔ)進(jìn)Cell狀態(tài)中。這一過(guò)程分為兩步,首先是使用遺忘門來(lái)決定哪些信息需要被更新,即獲得圖1所示的it;其次是使用一個(gè)tanh層生成用于Cell狀態(tài)更新的備選向量接下來(lái),Cell新的狀態(tài)將由通過(guò)遺忘門的信息與通過(guò)輸入門的信息相加來(lái)獲得。整個(gè)過(guò)程可以被表達(dá)為如下的算式:
式中的?表示對(duì)向量按元素進(jìn)行相乘的運(yùn)算。
LSTM Cell最終的輸出是Ct過(guò)濾后信息,首先由輸出門來(lái)確定Cell中哪些信息將被輸出,即獲得一個(gè)過(guò)濾模板Ot,然后將通過(guò)tanh激活的Ct與Ot相乘獲得最終輸出ht。整個(gè)過(guò)程可表達(dá)為如下的算式:
盡管直接使用LSTM作為Decoder即可實(shí)現(xiàn)對(duì)圖像描述的生成,但是語(yǔ)言描述生成時(shí)采用的是按序列逐詞生成的方式,這些詞與圖像中的內(nèi)容應(yīng)具有很強(qiáng)的圖-文相關(guān)性,但是從整幅圖像中提取的特征會(huì)引入不必要的噪聲,增強(qiáng)了圖像特征的語(yǔ)意模糊性。反之,若能夠生成的詞語(yǔ)找到圖像中的對(duì)應(yīng)的區(qū)域,再提取特征則可以增強(qiáng)圖像特征的表達(dá)能力。這種在圖像特征提取取對(duì)圖像不同區(qū)域施加不同權(quán)重的策略即為注意力機(jī)制。圖像的注意力機(jī)制應(yīng)滿足=1的條件,即圖中的各像素點(diǎn)的權(quán)重αp,t的和應(yīng)為1,p指代像素點(diǎn)位置。
本文的注意力網(wǎng)絡(luò)接收Encoder網(wǎng)絡(luò)生成的特征圖后,首先將使用扁平化運(yùn)算將其變形為N×14×14×2048維的向量,然后通過(guò)由三層全連結(jié)層、一層ReLU激活層和一層Softmax層構(gòu)成的網(wǎng)絡(luò)。Softmax層的輸出即為獲得的注意力權(quán)重。
獲得權(quán)重后,在描述句子的生成中的每一步中,都需要使用注意力網(wǎng)絡(luò)根據(jù)Encoder生成的特征圖與LSTM前一步的狀態(tài)ht-1計(jì)算每個(gè)像素的權(quán)重,然后再根據(jù)LSTM前一步生成的單詞與當(dāng)前加權(quán)的特征圖生成下一個(gè)單詞。完整的圖像描述生成模型如圖2所示。
圖2本文基于注意力機(jī)制引導(dǎo)的圖像描述生成模型
為了驗(yàn)證本文基于注意力機(jī)制引導(dǎo)的圖像描述生成模型的有效性,在MSCOCO(Microsoft Common Objects in Context)2014數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。MSCOCO2014數(shù)據(jù)集為每張圖像提供了至少5個(gè)文字描述句子,而且已經(jīng)作了訓(xùn)練集、驗(yàn)證集、測(cè)試集的劃分,其中分別包含113287、5000、5000張圖像。本文僅在訓(xùn)練集上對(duì)模型進(jìn)行訓(xùn)練,并在測(cè)試集上進(jìn)行圖像描述句子的生成,采用人工觀測(cè)圖像描述進(jìn)行評(píng)價(jià),未引入客觀量化評(píng)分標(biāo)準(zhǔn)。
在實(shí)驗(yàn)中單詞嵌入維度為512維,由于訓(xùn)練集中圖像描述句子中單詞數(shù)量長(zhǎng)短不一,為了使輸入的序列具有相同的長(zhǎng)度,在對(duì)各個(gè)句子按單詞數(shù)量降序后進(jìn)行了填補(bǔ)。在LSTM與注意力網(wǎng)絡(luò)中設(shè)置隱藏層與Softmax輸出的維度均為512維。在訓(xùn)練時(shí)設(shè)置Encoder與Decoder模型的優(yōu)化器均為Adam,初始學(xué)習(xí)率分別為0.0001與0.0005,并每隔20個(gè)epoch進(jìn)行0.9倍的衰減。此外,實(shí)驗(yàn)中取批次大小為32,訓(xùn)練最大epoch數(shù)為120。模型使用Ubuntu環(huán)境下的PyTorch深度學(xué)習(xí)框架實(shí)現(xiàn),采用NVIDIA GTX 1080顯卡進(jìn)行硬件加速。
圖3給出本文模型在測(cè)試集上獲得的圖像描述生成結(jié)果,從圖中可以看出訓(xùn)練后的模型能夠生成比較流暢的文本描述,語(yǔ)句的結(jié)構(gòu)比較完整,與圖中內(nèi)容也比較匹配吻合。
圖3
本文提出了基于注意力機(jī)制引導(dǎo)的圖像描述生成算法。模型使用深度卷積神經(jīng)網(wǎng)絡(luò)作為圖像特征的提取器,在獲得圖像的特征圖后使用LSTM語(yǔ)言模型來(lái)生成圖像描述,為了使生成的描述句子更為準(zhǔn)確,根據(jù)LSTM的輸出與特征圖計(jì)算了注意力權(quán)重,使得提取的特征具有更好的表達(dá)能力。在MSCOCO數(shù)據(jù)集上的實(shí)驗(yàn)表明本文模型能夠生成比較優(yōu)秀的文本描述。