吳 禹, 靳華中
(湖北工業(yè)大學計算機學院, 湖北 武漢 430068)
圖像描述生成是一個融合計算機視覺、自然語言處理和機器學習的綜合問題。圖像描述生成方法使用符合人類語言習慣的句子描述圖像。算法模型在檢測圖像中的目標的同時,還要對目標的視覺元素,如目標的動作和屬性有一定的認知。在此基礎上,通過理解目標之間的相互關系,構建圖像的場景,目的是生成具有語義關系的、符合自然語言習慣的描述句子。
目前圖像描述生成模型普遍采用編碼器-解碼器框架。編碼器利用卷積神經(jīng)網(wǎng)絡(CNN)從圖像中提取圖像特征[1],解碼器使用循環(huán)神經(jīng)網(wǎng)絡作為語言模型來預測文本,引入注意力機制,有效地選擇視覺特征向量來初始化語言模型隱藏狀態(tài)[2],提高視覺信息處理效率,在客觀指標上展現(xiàn)出明顯優(yōu)勢。但在語言模型的構建上存在不足,使得語義信息不能充分表達。文獻[3]將圖像特征向量與每個單詞的嵌入連接起來,以便為以后生成的單詞保留視覺信息,但難以解決RNN梯度消散問題。文獻[4]提出通過與自動重構網(wǎng)絡(ARnet)耦合來增加相鄰隱藏狀態(tài)之間的相關性。并嵌入上一隱藏層狀態(tài)解碼更多語義特征信息,然而使用歐幾里得距離的正則化方法可能會直接減少每個隱藏狀態(tài)的L2范數(shù),使得評價指標沒有獲得較大改善。文獻[5]在自下而上和自上而下的組合注意力機制的基礎上融入圖文匹配模型 (Stacked Cross Attention Network,SCAN)[6]對注意力機制的訓練過程進行弱監(jiān)督,增強了注意力機制對單詞和圖像區(qū)域的對應能力,但難以表征圖像目標之間語義關系。這些方法的語言模型普遍只將當前單詞隱藏狀態(tài)作為輸入,并僅針對一種輸出狀態(tài)計算結果,忽略了相鄰單詞之間的文本層級結構,容易在最終生成的文本中帶來累積的錯誤。
而在自然語言處理領域,已有文獻利用文本層級結構進行語言建模。文獻[7]引入了句法距離這一概念來引導語言模型完成句法解析任務,但算法實現(xiàn)的復雜度較高,很難在實際情況中使用。文獻[8]使用具有不同時間尺度的遞歸模型獲取層次結構,更新RNN的隱藏狀態(tài),但需要施加預定義的層次結構。受此啟發(fā),本文在解碼器階段構建雙層LSTM網(wǎng)絡,第一層視覺選擇LSTM融合注意力機制,從整體上得到圖像中目標之間的語義信息,同時能夠從細節(jié)得到圖像特征信息。第二層語言模型LSTM使用有序長短時記憶網(wǎng)絡[9],在訓練過程利用文本層級結構預測描述,增強語言模型表達能力,從而生成更符合自然語言習慣的描述。
在自然語言處理領域中,語言的表現(xiàn)形式遵循一定的層級結構[10],組成語句的各個單位處于語義層面,構成樹狀的文本層級結構[11],即自然語言是由處在不同層級結構的單位要素組成的層級裝置。如圖1所示,在英文句子中,單詞可以認為是最低層級的結構,詞組次之。
圖 1 文本層級結構示例
語言與其他數(shù)據(jù)一個顯著的區(qū)別就在于其本身擁有一定的層級結構,因為語言的組成受到語法規(guī)則限制,低層級的語義單元組成高層級的語義單元,而最高層級的語義單元就代表了整個句子的含義。人們曾經(jīng)試圖對語言的這種結構進行建模,利用語法規(guī)則進行語義解析,建立語義分析樹,再根據(jù)解析的結果從下而上遞歸獲得句子的表征。單位結構層級越高,在句子中的跨度就越大。這意味著編碼時能區(qū)分高低層級的信息;其次,高層級的信息意味著它要在高層級對應的編碼區(qū)間保留更久,而低層級的信息則意味著它在對應的區(qū)間更容易被遺忘。
針對語言的層級結構,文獻[9]提出了有序長短時記憶網(wǎng)絡(Ordered Neurons Long Short-Term Memory,ON-LSTM)。傳統(tǒng)LSTM網(wǎng)絡中,神經(jīng)元通常都是無序的,運算過程中涉及到的所有向量的位置按照相同方式重新打亂,權重的順序也將相應地打亂,輸出結果可以只是原來向量的重新排序,信息量不變。有序長短時記憶網(wǎng)絡則把神經(jīng)元的序信息利用起來,按排序分區(qū)間更新狀態(tài),使其表示一些特定的結構。用這種結構來表征文本層級信息,使ON-LSTM在訓練中自然地學習到文本的層級結構,從而增強語言模型表達能力。算法流程如圖2所示。
圖 2 有序長短時記憶網(wǎng)絡算法流程
具體過程為:ON-LSTM單元狀態(tài)ct按照向量索引值進行排序,語法層次較高的信息儲存在ct上面的維度中,較低的則儲存在下面的維度。定義兩個one -hot向量代表歷史信息最低層級lf和當前信息最高層級li,分區(qū)間更新規(guī)則為:1)lf
經(jīng)過以上規(guī)則分區(qū)間更新ct,文本高層信息更新頻率較低,在模型循環(huán)過程中能保留較長距離,文本底層信息在每一個時間步內都可能更新。從而通過定序嵌入層級結構,即按信息跨越幅度分組更新輸入文本序列的層級結構。如圖3所示,對于給定語言序列[x1,x2,x3]及其句法樹,ON-LSTM通過上述算法流程,動態(tài)分配其隱藏狀態(tài)向量的維數(shù),用以對應表示給定文本[x1,x2,x3]的層級結構。
圖 3 文本層級結構表征
本節(jié)提出了基于文本層級結構的圖像描述生成算法,如圖3所示,模型采用編碼器-解碼器架構,編碼器提取圖像特征,解碼器接收特征進行解碼,生成圖像的最終描述。在編碼器階段,用CNN對圖像進行特征提取,并根據(jù)神經(jīng)網(wǎng)絡卷積層特性分別獲取圖像對應的全局特征和局部特征。然后,在第二個階段使用注意力機制和雙層有序長短時記憶網(wǎng)絡將初始圖像全局特征和局部特征信息相融合,將融合后的信息特征輸入ON-LSTM進行解碼。
圖 4 本文模型框架結構
在編碼器階段應用了兩種不同尺度的圖像特征,分別為局部特征和全局特征,全局特征包含圖像目標語義關系,引導第一層視覺LSTM關注特定目標;局部信息包含目標具體特征,引導第二層語言LSTM解碼準確信息。這兩種不同尺度的圖像特征全部由解碼器經(jīng)過預先訓練好的卷積神經(jīng)網(wǎng)絡提取得到。在本文中用f表示局部特征,則有:
f={f1,f2,…,fk},fk∈1*r
其中,{f1,f2,…,fk}表示k個局部特征,fk∈1*r表示每個圖像區(qū)域的特征維度為1*r。局部特征通過全局平均池化得到圖像的全局特征
在attend部分中輸入為所有的圖像特征f={f1,f2,…,fk},fk∈1*r和視覺選擇 LSTM的輸出具體使用的是兩層全連接層,attend模塊的輸出ct的計算過程如下式所示:
(1)
αt=softmax(zt)
(2)
(3)
式(1)中,Wa、Wg分別表示兩個全連接層的映射矩陣,輸出結果如經(jīng)過式(2)一層softmax得到對某一區(qū)域關注度αt。在(3)式中,關注度用α
其中cusum為累積函數(shù),以主動分配維度來存儲長期或短期信息,避免在高級維度和低級維度之間進行嚴格劃分。將單元狀態(tài)的維度動態(tài)地重新分配給每個節(jié)點,迫使神經(jīng)元在不同的時間尺度上代表信息。給定任意序列[y1,y2,…,yn],cusum計算公式如下:
cusum([y1,y2,…,yn])=
[y1,y1+y2,…,y1+y2+…yn]
本文采用的數(shù)據(jù)集為微軟COCO2014,包含三部分內容,訓練集、驗證集和測試集。各部分數(shù)據(jù)集由圖像和json文件組成,json文件包含對每幅圖像的5個英文描述。數(shù)據(jù)集包含的圖像總共82 783張,對應的英文描述為413 915個。
描述文本的預處理階段過程為:1)圖像描述中的特殊符號“&”用“and”代替,標點符號用空格代替;2)使用圖像id、圖像文件名和圖像描述建立描述句庫,通過檢索圖像信息來查找圖像描述;3)使用數(shù)據(jù)集描述出現(xiàn)單詞建立詞匯表,詞匯表向量每一維度對應數(shù)據(jù)集中單詞,語言模型通過檢索詞匯表索引值生成描述單詞。
本文圖像描述生成方法在tensorflow平臺上建立。采用小批量梯度下降法對損失函數(shù)進行優(yōu)化,提高模型訓練的收斂速度。學習速率為0.01,迭代次數(shù)為100次,最小批次為128次。
目前圖像自動標注領域常用的評價標準主要分為5類,分別是BLUE、METEOR、ROUGE、CIDEr和SPICE。這5類標準能對模型生成的圖像描述進行量化標準的客觀評價。在本文實驗中采用BLUE、METEOR和CIDEr對生成描述進行評分。
表1 MSCOCO數(shù)據(jù)集實驗對比
實驗結果證明,本文模型在BLUE、METEOR和CIDEr評價指標上要優(yōu)于NIC、mRNN、Log BIliner[12]和Soft-Attend模型。
在實驗結果可視化對比中,圖5中本文模型對比mRNN模型,mRNN模型生成描述句法樹高度為6,葉子結點數(shù)為7,本文模型生成描述句法樹高度為7,葉子結點數(shù)為11。生成描述將“field”生成為“hillside”,并生成了“l(fā)ush green”加以修飾,即提取到了更為復雜的語義特征,使描述更加生動。圖5中本文模型對比soft-attend模型,soft-attend模型生成描述句法樹高度為5,葉子結點數(shù)為8,本文模型生成描述句法樹高度為6,葉子結點數(shù)為11。預測了“in the ocean”這一空間背景信息,從整體上提取到更豐富的語義信息,模型語義表達能力較soft-attend更強。
圖 5 實驗結果可視化對比
針對現(xiàn)有采用編碼器-解碼器框架的圖像描述生成算法,在解碼階段由于語言模型結構簡單,解碼表達能力較弱,容易造成語義缺失的問題。本文方法通過引入有序長短時記憶網(wǎng)絡構建雙層LSTM架構,來改進現(xiàn)有模型解碼器,使模型能夠顯式的提取描述文本層級結構,解碼出更豐富的語義特征。本文改進的方法在MSCOCO數(shù)據(jù)集上進行訓練和測試,實驗結果表明,改進的算法能夠有效提取文本層級結構,充分利用圖像空間信息與內容語義對齊來改善語言模型解碼表達能力,最終提高了圖像描述實驗效果,生成更加符合自然語言習慣的描述語句。