呂 凡,胡伏原,沈軍宇,孫 鈺
(蘇州科技大學 電子與信息工程學院,江蘇 蘇州 215009)
近年來,圖像多標簽分類獲得了許多學者的關(guān)注。傳統(tǒng)的多標簽分類算法分為兩種[1],分別是問題轉(zhuǎn)換法和算法適應法。其中問題轉(zhuǎn)換法將多標簽問題轉(zhuǎn)化為單標簽問題進行計算,例如Binary Relevance算法[2]和Classifier Chains算法[3],等等;算法適應法將已有的單標簽分類算法應用到多標簽分類問題上,例如多標簽k-NN算法[4]和多標簽決策樹算法[5]。目前,針對圖像多標簽分類問題,基于深度學習的方法受到廣泛關(guān)注,其中基于CNN的方法和基于CNN-RNN的方法取得了較好的效果。CNN方法通過卷積神經(jīng)網(wǎng)絡[6](Convolutional Neural Network,CNN)提取圖像中的高維特征,直接利用傳統(tǒng)分類器對特征進行分類。Gong等人[7]基于CNN構(gòu)建了一個配準排序的top-k的目標函數(shù),優(yōu)化后可以使得正樣本的排序高于負樣本,從而進行分類。Wei等人[8]提出了一種基于圖像子區(qū)域的方法,將圖像分解為多個包含單標簽的子區(qū)域以簡化多標簽問題。CNN-RNN方法借助循環(huán)神經(jīng)網(wǎng)絡[9](Recurrent Neural Network,RNN)的序列處理能力將圖像的多標簽分類問題看作是一個序列生成問題。Wang等人[10]利用LSTM解析從CNN中提取的圖像特征,生成相關(guān)的圖像多標簽序列。Liu等人[11]通過正確的標簽來規(guī)則化CNN的參數(shù),并采用CNN的預測值初始化LSTM進行標簽序列生成。上述CNN-RNN方法中,其前提在于將圖像的多個標簽看作是具有一定規(guī)則的序列。
Jin等人[12]提出了在CNN-RNN結(jié)構(gòu)中,多標簽預測結(jié)果和標簽的順序具有密切關(guān)聯(lián),并驗證了采用不同的標簽順序?qū)淖冾A測的效果。但由于圖像的多個標簽是并列的關(guān)系,并不存在具體的前后順序,從而無法確定絕對合適的標簽序列。僅采用一種設定的順序使得標簽容易在RNN的迭代過程中丟失,無法保證預測到全部標簽。例如,構(gòu)建CNN-RNN結(jié)構(gòu)對圖1所示圖像進行多標簽預測,采用從左至右順序的預測結(jié)果為“sofa,bottle,plant,tv”,采用從遠至近順序的預測結(jié)果是“tv,chair,sofa”,二者分別丟失了標簽“chair”和標簽“bottle,plant”。
圖1 按照不同順序預測的標簽(括號內(nèi)代表缺失的標簽)
筆者針對CNN-RNN方法中采用單一標簽順序而導致預測效果不足的問題,提出了一種雙LSTM的方法CNN-BiLSTM。該方法在CNN-RNN的基礎上,構(gòu)建兩個LSTM序列生成模塊,通過不同的序列規(guī)則生成預測標簽序列??紤]到雖然兩個LSTM的標簽順序不同,但是標注的內(nèi)容應當是一致的,通過均方誤差縮小由不同序列規(guī)則生成標簽的差異。最終,通過結(jié)合兩個LSTM的標簽預測結(jié)果減少標簽的丟失,從而得到最終的預測標簽。通過在PascalVOC2007數(shù)據(jù)集上的實驗驗證了提出方法的有效性。
將圖像的多標簽分類問題定義為一個標簽序列生成問題,以預測出給定圖像所有可能的標簽。給定圖像訓練集 X={x1,x2,…,xN}和對應的標簽 Y={y1,y2,…,yN},其中 N 代表訓練圖像的數(shù)目。第 i張圖像 xi對應的標簽是 yi={yi1,yi2,…,yiC},其中 C 代表標簽數(shù)目;yij=1 代表圖像 xi包含標簽 j,否則 yij=0。文中構(gòu)建端到端的模型,學習從圖像到標簽的映射h:X→Y。測試時,給定一張圖像,通過映射h預測出圖像對應的多個標簽。
文中設計的雙LSTM方法CNN-BiLSTM,其模型框架基于CNN-RNN的模型結(jié)構(gòu)。文中方法服從“編碼器-解碼器”(Encoder-Decoder)設計模式,通過這種模式可以學習從一種表征方式到另一種表征方式的轉(zhuǎn)化方法。編碼器部分利用CNN從所給圖像中提取圖像的高維特征,并在解碼器中利用RNN對特征進行解碼生成相關(guān)的圖像標簽序列。模型結(jié)構(gòu)如圖2所示。
圖2 雙LSTM結(jié)構(gòu)的圖像多標簽分類方法
基于CNN-RNN結(jié)構(gòu),模型中將圖像的多個標簽看作是一種序列。文中首先利用CNN從圖像中提取出特征I。為了充分利用深度神經(jīng)網(wǎng)絡的特性,采用從最后一層全連接層提取特征。RNN部分構(gòu)建雙LSTM結(jié)構(gòu),其中每一個LSTM對圖像按照不同標簽序列進行預測。RNN經(jīng)常應用在序列的生成等任務[13],LSTM[14](Long-Short Term Memory)是 RNN 的變種結(jié)構(gòu),如圖3所示。在RNN的基礎上,LSTM加入了三個控制門,即遺忘門、輸入門和輸出門,分別來控制是否遺忘當前的狀態(tài),是否獲取當前的輸入信息以及是否輸出當前的狀態(tài)。這三個控制門使得LSTM在長短期的序列記憶中都能夠有較好的表現(xiàn),并且使得模型更易于優(yōu)化。參照文獻[15],文中的LSTM的前傳流程可以表示為
圖3 LSTM的單元結(jié)構(gòu)
其中所有的W和b都代表待訓練參數(shù),yt代表t時刻的輸入。it,ft和ot分別代表了LSTM中的輸入門、遺忘門和輸出門。ct和ht分別表示了LSTM的記憶單元和隱藏狀態(tài)。σ(x)=1/(1+e-x)為sigmoid激活函數(shù)。
文中在傳統(tǒng)的CNN-RNN的基礎上設計了雙LSTM的結(jié)構(gòu)CNN-BiLSTM。如圖2所示,通過CNN解析出圖像特征I之后,解碼器中構(gòu)建獨立的兩個LSTM結(jié)構(gòu)LSTM-1和LSTM-2,同時接受來自CNN的圖像特征。在此過程中,對輸入到LSTM中的每一個標簽進行相同的Embedding操作
其中,ek=[0,…,0,1,0,…,0]是第 k 個標簽的 one-hot編碼形式,說明圖像包含標簽 k,其中 ek[k]=1;UE代表Embedding矩陣。通過LSTM單元運算之后,在預測下一個單詞的時候,對LSTM的隱藏狀態(tài)進行計算,得到當前過程預測的標簽
模型在LSTM的每一步預測都會計算一個局部損失,即考慮預測的標簽和LSTM規(guī)定采用的序列順序中出現(xiàn)的標簽一致。因此,文中對LSTM-1和LSTM-2分別計算其對數(shù)似然運算,得到各自的損失函數(shù)L1(i)和
在此基礎上,LSTM-1和LSTM-2雖然采用的不同序列規(guī)則生成多標簽圖像的預測,但是其本身對應的是同一張圖像,因此,生成的標簽序列雖然順序不同,但應當內(nèi)容一致。例如,針對圖2中的圖像,預測的順序可能是“男孩、披薩、桌子”也可能時“披薩、男孩、桌子”,但是表現(xiàn)的內(nèi)容是一致的。因此,文中構(gòu)建了損失函數(shù)L3,來縮小二者之間的差異
綜上,構(gòu)建最終的損失函數(shù)L
文中采用了圖像多標簽數(shù)據(jù)集PascalVOC2007[16]對所提算法進行驗證。PASCAL Visual Object Classes Challenge(Pascal VOC)數(shù)據(jù)集被廣泛使用在圖像多標簽分類和語意分割等領(lǐng)域。數(shù)據(jù)集包含5 011張訓練圖像和4 952張測試圖像,共包含20個類。
所提方法中,CNN部分采用VGG-16[17]的網(wǎng)絡結(jié)構(gòu),并從其最后一個全連接層fc_7提取圖像特征。VGG-16的參數(shù)采用在ImageNet大規(guī)模單標簽數(shù)據(jù)集上將預訓練的參數(shù)進行初始化。文中,LSTM-1和LSTM-2的隱藏狀態(tài)和記憶單元的大小都設為512。為了方便預測,在預測的文本序列中,插入了獨立的開始標簽
文中的對比方法包括 INRIA[18]、FV[19]、CNN-SVM[20]、I-FT[8]、HCP[8]、CNN Multi-label以及 CNN-RNN。文中的雙LSTM方法CNN-BiLSTM中兩個LSTM采用了不同的標簽序列規(guī)則。文獻[12]中的分析,采用四種不同的多標簽序列規(guī)則,分別是:(1)高頻排序(Frequency),按照數(shù)據(jù)集中各個標簽出現(xiàn)的頻率從高到低排序;(2)低頻排序(Rare),按照數(shù)據(jù)集中各個標簽出現(xiàn)的頻率從低到高排序;(3)字典排序(Dictionary),按照各個標簽的單詞首字母的在字典順序排序;(4)隨機排序(Random),按照隨機順序排序。
文中構(gòu)建的CNN-BiLSTM中的兩個LSTM分別采用高頻和低頻的順序進行標簽的預測。
實驗結(jié)果見表1。文中提出的CNN-BiLSTM方法達到了85.4%的mAP(mean Average Precision),并且在標簽 “table”、“dog”、“person” 和 “tv” 上取得了最好的效果。對比方法中,HCP-2000C取得了近似的結(jié)果85.2%,但該方法將圖像分割為多個子區(qū)域,并在訓練中引入額外的2 000個類信息提高訓練效果,效率較低且依賴于子區(qū)域的提取效果。在CNN-RNN的方法中,采用高頻排序(84.7%)和低頻排序(84.9%)取得的效果要明顯好于字典排序(84.1%)和隨機排序(83.8%),說明了標簽的順序?qū)Y(jié)果具有較大影響。文中提出的CNN-BiLSTM的兩個LSTM分別采用高頻和低頻的排序方式,結(jié)合兩種序列規(guī)則,最終的結(jié)果高于單獨采用二者的結(jié)果,這證明了文中提出算法的有效性。如圖4所示,采用文中的CNN-BiLSTM結(jié)構(gòu)進行預測,對每一張圖像分別列出了其LSTM-1、LSTM-2、最終預測Pd和真實標簽Gt。盡管LSTM-1和LSTM-2預測的結(jié)果可能不同或者不全部正確,但是通過融合二者的預測結(jié)果,可以使得最終的預測結(jié)果更加準確。
表1 在VOC 2007上的實驗結(jié)果(包括每一個類的平均精度AP和所有類別的均值平均精度mAP)
圖4 在Pasocal VOC 2007上的預測圖例
筆者提出了一種雙LSTM的圖像多標簽分類方法CNN-BiLSTM,該方法在CNN-RNN的基礎上,同時考慮不同序列順序的預測方式,構(gòu)建了兩個獨立的LSTM分別按照不同的標簽順序規(guī)則預測。實驗證明,該方法能夠有效提高傳統(tǒng)CNN-RNN的效果,提高了只考慮一種標簽順序情況的效果。