翟永杰 吳童桐
(華北電力大學(xué)自動化系 河北 保定 071003)
隨著人工智能技術(shù)的不斷發(fā)展,計算機視覺技術(shù)隨著深度學(xué)習(xí)發(fā)展不斷進步,在圖像分類[1-4]、目標檢測[5-8]和圖像理解[9-13]等各個方面都有了極大的提升。但是深度學(xué)習(xí)模型效果的提升一方面來源于大模型和大算力,另一方面是在如今的大數(shù)據(jù)時代能獲得大量數(shù)據(jù)進行訓(xùn)練[14]。
傳統(tǒng)的圖像分類問題都是有監(jiān)督學(xué)習(xí)問題,需要人工對大量的數(shù)據(jù)進行標注,最著名的ImageNet項目就是一個包含2萬多個類別,總計400萬幅圖像的綜合數(shù)據(jù)庫。隨著網(wǎng)絡(luò)時代的到來,人們獲取信息的途徑越來越廣泛,有著大量的圖像數(shù)據(jù)可供使用,但是在實際項目中,不一定就會有已經(jīng)標注好的大規(guī)模數(shù)據(jù)或者不一定便于獲取特定類別的數(shù)據(jù),例如某些珍稀動物的圖像并不容易獲取,樣本數(shù)量很少,很難實現(xiàn)預(yù)期的訓(xùn)練效果。
零樣本學(xué)習(xí)的方法源自半監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí)是通過結(jié)合一部分標注樣本數(shù)據(jù)和大部分的未標注樣本數(shù)據(jù)來進行學(xué)習(xí)[15]。零樣本學(xué)習(xí)的方法通過圖像特征的共通性和類別屬性空間作為中間知識聯(lián)系,實現(xiàn)了通過模型的訓(xùn)練,再去識別在訓(xùn)練集未出現(xiàn)的樣本類別的方法,改善了傳統(tǒng)的圖像多分類問題對足夠的樣本和數(shù)據(jù)標簽的依賴,實現(xiàn)了更好的半監(jiān)督學(xué)習(xí)效果。零樣本學(xué)習(xí)方法指在模型訓(xùn)練時,即使某一類別的訓(xùn)練樣本未出現(xiàn),但是通過中間屬性空間知道該類別的特征屬性,然后通過模型的訓(xùn)練建立圖像特征和屬性特征之間的聯(lián)系,便可以將未出現(xiàn)的類別識別出來,這也就是基于屬性的直接預(yù)測模型(Direct Attribute Prediction,DAP)[16]。
零樣本學(xué)習(xí)方法的成功主要歸功于對圖像特征的學(xué)習(xí)和由圖像特征空間到類別屬性空間映射關(guān)系的學(xué)習(xí)是具有可遷移性的[17],可以應(yīng)用遷移學(xué)習(xí)將已學(xué)習(xí)到的特征提取方法也就是模型的參數(shù)遷移到新的任務(wù)模型中。利用相似任務(wù)間模型學(xué)習(xí)到的底層特征提取方法的通用性,也可以認為圖像識別任務(wù)的很多數(shù)據(jù)和任務(wù)是相關(guān)的,所以遷移學(xué)習(xí)可以將從大規(guī)模數(shù)據(jù)集上學(xué)習(xí)的模型參數(shù)應(yīng)用到特定任務(wù)中,從而改善模型效果并且加快模型收斂的速度。
傳統(tǒng)的零樣本學(xué)習(xí)方法主要是基于屬性的直接預(yù)測模型,以人工標注的屬性特征作為中間類別描述信息。如圖1所示,每一個類別的圖像都有著其對應(yīng)的屬性特征,包含對應(yīng)類別的描述信息。將屬性特征和圖像特征提取的結(jié)果以向量形式進行結(jié)合,通常以交叉熵損失函數(shù)作為目標進行訓(xùn)練,建立類別、圖像、類別屬性之間的映射[18]。實際情況下,針對類別進行屬性的特征表述,就需要統(tǒng)一標準并進行大量細致的屬性標記,這方面會用到大量的人工標記,比單純標注分類標簽要復(fù)雜得多。因此利用一種無監(jiān)督學(xué)習(xí)詞向量訓(xùn)練的方法,這也是語義信息遷移學(xué)習(xí)的應(yīng)用,將文本信息作為中間輔助的屬性特征,并在詞向量的訓(xùn)練過程中對關(guān)鍵信息進行加強。
圖1 零樣本學(xué)習(xí)模型
從網(wǎng)絡(luò)上獲取大量無標簽的圖像數(shù)據(jù)和文本數(shù)據(jù)用于模型的訓(xùn)練,但是非結(jié)構(gòu)化的圖像特征數(shù)據(jù)和自然語言的文本數(shù)據(jù)存在語義鴻溝[19]。圖像特征分布和語義空間的潛在語義信息存在偏差,這是圖像理解,也可以說在語義和圖像結(jié)合領(lǐng)域的最大障礙。因此在利用語義信息進行零樣本學(xué)習(xí)方法時,對模型進行改進,加強了語義信息并提取關(guān)鍵信息,與圖像特征空間的對應(yīng)類別圖像特征進行匹配。
針對上述問題,本文提出一種基于語義空間信息映射加強的零樣本學(xué)習(xí)方法。主要貢獻包括:設(shè)計了加強語義信息并將語義信息進行合成分析的方法,改進了整體的訓(xùn)練框架,更好地挖掘與發(fā)現(xiàn)語義特征空間和圖像特征空間之間特征的相似關(guān)聯(lián),改善了零樣本學(xué)習(xí)的效果。
基于語義空間信息映射的零樣本學(xué)習(xí)任務(wù)所采用的算法模型是基于一種直接預(yù)測模型,其基本架構(gòu)如圖2所示。
圖2 零樣本學(xué)習(xí)模型
零樣本學(xué)習(xí)模型核心目的是建立一個由圖像特征到對應(yīng)標簽所代表類別信息的非線性映射[20]。第一層是圖像提取層,該層主體為卷積神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)可以通過圖像卷積激活的方式提取圖像的局部特征,將經(jīng)過預(yù)處理的圖像數(shù)據(jù)輸入到卷積神經(jīng)網(wǎng)絡(luò)模型中提取出其對應(yīng)的圖像特征向量,并將其輸入到中間層。第三層是類別信息層,包含訓(xùn)練集中出現(xiàn)的類別和未出現(xiàn)的類別的屬性描述信息,通常為基于人工標注的屬性特征或者基于詞向量的語義特征。在訓(xùn)練時,將對應(yīng)圖像的標簽輸入到類別信息層中,在這一層中獲取對應(yīng)類別信息的特征向量,并將其輸入到中間層。在中間層中需要將對應(yīng)圖像特征和類別信息特征建立映射關(guān)系,并對該映射關(guān)系進行訓(xùn)練。訓(xùn)練時在中間層中訓(xùn)練對應(yīng)每一個圖像特征和類別信息的分類器,當輸入某一類別的圖像數(shù)據(jù)時,判定圖像特征模型提取的結(jié)果是否符合其類別信息,并將偏差作為損失進行最優(yōu)化訓(xùn)練。
測試時將圖像經(jīng)過特征提取的結(jié)果,與類別信息層中各個類別對應(yīng)的信息對比,以圖像特征和類別信息的映射結(jié)果最為相似的類別作為分類結(jié)果,實現(xiàn)了利用訓(xùn)練集訓(xùn)練模型,并通過類別信息作為中間輔助知識,達到實現(xiàn)測試集中未見過的樣本的效果。
在零樣本學(xué)習(xí)方法中,一般而言,無論是訓(xùn)練集中出現(xiàn)的樣本,還是在測試時使用的在訓(xùn)練集中未出現(xiàn)的類別樣本,都需要提供類別描述信息。本文利用無監(jiān)督學(xué)習(xí)方法生成的詞向量作為類別描述信息,這樣可以用大規(guī)模的文本語料進行訓(xùn)練,訓(xùn)練模型為Skip-Gram模型[21],核心是根據(jù)詞匯去預(yù)測其上下文,并針對特定的名詞進行數(shù)據(jù)增強采樣,將獲得的詞向量作為類別描述信息輸入到模型中。
本文使用維基百科語料數(shù)據(jù)進行采樣:
The cat has a fatty meat pad.
設(shè)定skip-gram預(yù)測上下文的范圍為3,因此,從輸入單詞的附近為3的范圍內(nèi)抽取輸出單詞作為模型的預(yù)測結(jié)果,經(jīng)過采樣,模型的輸入和輸出樣例為:
[the, cat][the, has][the, a]
[cat, the][cat, has][cat, a][cat, fatty]
[has, the][has, cat][has, a][has, fatty][has, meat]
[a, the][a, cat][a, has][a, fatty][a, meat][a,pad]
…
同理,這句話還可以用上述方式以fatty、meat和pad作為輸入對抽取出很多單詞對。按照這種方式從輸入單詞附近抽取需要預(yù)測的上下文單詞進行詞向量的訓(xùn)練,最重要的是要結(jié)合圖像進行零樣本學(xué)習(xí)。所以,為了加強類別文本所包含的語義信息,使信息更為準確豐富,在從語料庫中抽取數(shù)據(jù)時,針對零樣本學(xué)習(xí)任務(wù)出現(xiàn)的類別名稱文本進行數(shù)據(jù)增強,以實現(xiàn)詞向量在訓(xùn)練中,對這部分文本進行重復(fù)多次采樣以對其語義相互關(guān)系進行更好的信息加強。
使用維基百科語料的共計大約400萬文本段,提取類別庫中類別文本和其附近的段落整體,并對類別文本所在的句子進行重復(fù)采樣,共計10萬文本段,并從文本數(shù)據(jù)中提取出現(xiàn)頻率前10 000的單詞,包含類別文本,構(gòu)建詞匯表,進行詞向量的訓(xùn)練。
Skip-Gram模型如圖3所示,輸入是單詞的one hot向量,設(shè)定詞向量的維度為300維,也就是隱藏層的單元數(shù),對one hot特征向量建立映射也就是建立了一個對應(yīng)[10 000,300]維的矩陣,對應(yīng)詞匯表維度和隱藏層單元數(shù),一般被稱為嵌入向量。所以詞向量又被稱為詞嵌入(Word Embedding),將輸入特征從10 000維的向量轉(zhuǎn)化為300維嵌入向量,最后連接輸出層,輸出維度和詞表相對應(yīng),結(jié)果為z,使用Softmax多分類激活函數(shù),將輸出轉(zhuǎn)化為對各個單詞的預(yù)測概率:
圖3 Skip-Gram模型
(1)
(2)
最終將對應(yīng)one hot向量映射到隱藏層的值作為對應(yīng)單詞的詞向量,實現(xiàn)了將高維稀疏語義空間轉(zhuǎn)化成低維稠密語義空間的詞向量,將其進行降維顯示,結(jié)果如圖4所示。
圖4 Word Embedding降維顯示結(jié)果
可以看出,詞向量具有可以將相似文本聚類的效果,普通動物、食肉猛獸、植物分別在相似的區(qū)域內(nèi),表明具有相同屬性或者說語義相關(guān)的類別文本詞向量會接近,這種語義特征和圖像特征是具有一定共通性的。詞向量訓(xùn)練中對上下文的預(yù)測本質(zhì)上也是一種對詞語共現(xiàn)統(tǒng)計特征的學(xué)習(xí)[22],例如:代表cat的詞向量與代表dog的詞向量的相似度偏差為a,與代表tree的詞向量的偏差為b,映射到圖像特征空間中,如果某一幅圖片與圖片dog特征向量的偏差同樣為a,與圖片tree特征向量的偏差為b,于是可以判斷這幅圖片為cat。這就是詞向量可以用于零樣本學(xué)習(xí)的類別信息的原因,雖然語義空間和圖像特征空間存在差異,但是其中包含可用于圖像區(qū)分的信息。本文在使用時對存在于類別庫中的特定文本進行了數(shù)據(jù)增強,加強了其中包含的信息。
詞向量的信息和圖像特征存在偏差,為了將詞向量代表的語義特征和圖像特征之間的映射關(guān)系進行加強,本文在詞向量后接一個全連接層來用于語義信息的分析與合成,其整體模型如圖5所示。
圖5 基于語義信息映射加強的模型
CNN圖像特征提取部分是基于VGG16的卷積神經(jīng)網(wǎng)絡(luò)模型,模型輸入圖片大小是224×224×3,經(jīng)過第一個conv×2和max pool卷積模塊,是由兩層conv和一層max pooling組成,其中conv采用ReLU激活函數(shù),并使用最大池化的方法,模塊輸出為112×112×128。同理將其繼續(xù)輸入到第二個conv×2和max pool卷積模塊、第三個conv×3和max pool卷積模塊、第四個conv×3和max pool卷積模塊,最后經(jīng)過一個conv和max pool層并將其展開生成4 096維的向量,并添加一個全連接層輸出為1 024維的向量t,使用tanh激活函數(shù),其輸出為[-1,1]。
(3)
利用式(3)對向量中各個元素進行歸一化處理以便于進行余弦相似度的計算。VGG卷積模型如圖6所示,該模型提取出代表圖像的特征向量。
圖6 VGG圖像特征提取模型
另外,將由無監(jiān)督學(xué)習(xí)得到的詞向量作為類別描述信息輸入到模型中。圖像總計有190類圖片,將其對應(yīng)每一個類別的詞向量組合起來得到一個類別文本詞向量庫,其大小為300×190,其中300為詞向量的維度,將其連接全連接層進行語義的分析和合成,這也是用來加強語義信息的一種方法,自動匹配語義和圖像中的信息關(guān)鍵點,有助于語義和圖像之間進行映射。全連接層輸出維度為1 024,同樣在此層設(shè)定激活函數(shù)為tanh,并以此作為代表類別描述信息的語義向量,其代表語義向量β。
將圖像特征向量α和語義向量β進行匹配,同為1 024維,以其余弦相似度作為向量之間相似匹配的距離度量,將圖像特征和語義特征在高維空間進行映射。將圖像特征向量1 024×1和由類別文本詞向量庫生成的語義向量庫1 024×190中每個類別代表的語義向量進行余弦相似度計算,得到190維向量S,計算公式為:
(4)
S中每一項對應(yīng)圖像和庫中各個類別的相似程度,余弦相似度最小的類別即為模型預(yù)測圖片的類別。
使用Python語言,利用TensorFlow 1.1搭建實驗?zāi)P?,實驗環(huán)境是Ubuntu 16.04版本訓(xùn)練服務(wù)器,配備4塊1080Ti顯卡。
本文使用的數(shù)據(jù)集共計37 221幅圖片,包含190類圖片,每類有人工標注的30維屬性特征用作對比實驗。采用本文所提出的基于語義映射加強的零樣本識別方法,重復(fù)10次隨機選出160類樣本作為訓(xùn)練集,30類樣本作為測試集,訓(xùn)練集和測試集樣本類別不重合。
同時針對樣本庫中出現(xiàn)的數(shù)量較多的類別,如動物類(32類)、植物類(18類)、昆蟲類(16類)、家具類(10類)、交通工具類(8類),這些類別圖像數(shù)據(jù)超過3 000幅的大類單獨拆分出來2 000幅圖片作為測試集,測試模型對各個類別的零樣本學(xué)習(xí)效果的效果。
在訓(xùn)練階段,首先對訓(xùn)練集樣本數(shù)據(jù)進行擴充,為了平衡樣本空間內(nèi)各類別圖片的數(shù)目,對出現(xiàn)次數(shù)較少的類別樣本數(shù)據(jù)進行增強,采用翻轉(zhuǎn)的方法進行擴充。將訓(xùn)練圖像數(shù)據(jù)輸入到模型中,得到圖像特征向量和每個類別代表的語義特征向量進行余弦相似度計算的結(jié)果S,其分別對應(yīng)190個類別的匹配程度評分。
一般而言,損失函數(shù)就是預(yù)測值和真實值之間的差異,零樣本學(xué)習(xí)要實現(xiàn)對未知樣本預(yù)測,在訓(xùn)練時更需要建立準確的由圖像特征空間到語義空間的映射。傳統(tǒng)零樣本學(xué)習(xí)的損失函數(shù)是由輸入圖像特征提取出的圖像特征向量和其對應(yīng)類別的語義特征向量之間的差值構(gòu)成,本文結(jié)合對比損失[23]的思路,以其作為損失函數(shù)的基礎(chǔ)。
設(shè)類別總數(shù)為N,訓(xùn)練集中圖像相匹配的第k類圖像樣本的余弦相似度為Sk+,不匹配類別的余弦相似度為Sk-,且i≠k,i=1,2,…,N。對Si-的值進行求和,取平均值的負數(shù),與相匹配類別的余弦相似度Sk+相加,并使用SGD作為損失函數(shù)的優(yōu)化器。損失函數(shù)計算式表示為:
(5)
這樣處理可以使得圖像特征向量與語義空間中正確類別語義特征向量的相似度更高,與不正確類別語義特征向量的相似度更低。一方面可以將各個類別的特征向量在高維空間中分割開;另一方面便于之后出現(xiàn)在訓(xùn)練集中未出現(xiàn)的類別時,能更準確匹配到正確樣本類別對應(yīng)的特征向量。通過這種方式實現(xiàn)了語義空間信息到圖像的映射加強,提高了成對的圖像特征和語義特征的匹配程度。
使用在準備階段被專門抽出測試集樣本驗證結(jié)果,保證了測試集樣本類別和模型訓(xùn)練時訓(xùn)練集樣本類別不重合,且模型不能經(jīng)過預(yù)訓(xùn)練。
測試時,將測試集的圖像輸入到圖像特征提取模型中,和樣本類比庫中對應(yīng)每一個類別文本的語義向量進行匹配計算,得到圖像特征和每個類別語義向量的余弦相似度計算的190維向量S,使用最近鄰法判定。向量S中余弦相似度值最小者為圖像最為可能的匹配類別,預(yù)測結(jié)果可能出現(xiàn)訓(xùn)練集中出現(xiàn)的樣本類別,也可能預(yù)測為訓(xùn)練集中未見過的樣本類別,這樣也就實現(xiàn)了零樣本學(xué)習(xí)方法。
為了驗證本文所提出的語義空間信息映射加強的方法,本文實驗和基于屬性特征的零樣本識別方法進行對比,分別驗證在基于語義空間信息模型的基礎(chǔ)上,詞向量文本訓(xùn)練數(shù)據(jù)增強、詞向量連接全連接層進行語義分析和合成、訓(xùn)練過程中針對正負余弦結(jié)合基于對比損失進行優(yōu)化等各個改進的策略效果。最終訓(xùn)練集(經(jīng)過訓(xùn)練的樣本)正確率和測試集(未訓(xùn)練的樣本)正確率如表1所示。
表1 模型對比正確率 %
使用訓(xùn)練集對圖像模型進行測試,主要是為了證明在建立的模型中,圖像和語義之間建立映射匹配的效果。因為訓(xùn)練集中樣本都是經(jīng)過訓(xùn)練的圖片,所以對于語義空間映射加強的方法,訓(xùn)練集效果的提升對驗證零樣本學(xué)習(xí)的效果無意義,但是也可以說明這些方法對建立圖像和語義之間的映射是存在幫助的。
零樣本學(xué)習(xí)的效果主要是由驗證過程中對未知樣本的分類能力決定,以測試集正確率確定模型改進的效果??梢钥闯?,如果使用基于屬性的零樣本模型和基本的語義模型對比,基礎(chǔ)語義模型的測試集正確率反而更低一些,說明了語義和圖像之間存在偏差。
在使用基礎(chǔ)語義模型情況下,使用詞向量的文本訓(xùn)練數(shù)據(jù)增強的方法,其正確率能夠小幅度提升,由43.3%到45.8%,提升了2.5個百分點,說明了通過關(guān)鍵文本數(shù)據(jù)的增強可獲得更多的類別相關(guān)信息。不經(jīng)過文本數(shù)據(jù)的增強,直接將詞向量經(jīng)過全連接層對語義進行分析與合成之后,正確率提升到了50.2%,說明通過全連接層語義信息的分析和合成極大加強了語義空間信息映射的效果,起到了關(guān)鍵的作用。同時進行詞向量增強和連接全連接層,能夠?qū)崿F(xiàn)獲得更好的語義特征向量的效果,正確率提升到了50.7%。最后,基于對比損失的思路的改進損失函數(shù),將正確率提升到了52.1%,更好地搭建了由語義空間到圖像空間的映射。
通過驗證不同類別的圖像分離出來用作測試集的效果,將之前拆分出來的動物類、植物類、昆蟲類、家具類和交通工具類分別作為測試集,以驗證信息映射加強對各個類別圖像零樣本識別的效果,均進行多次重復(fù)實驗取正確率均值。各個類別測試集的正確率如表2所示。
表2 不同類別測試正確率 %
可以看出,基于屬性的零樣本學(xué)習(xí)模型的各個類別的圖片樣本識別效果是存在差距的,其原因在于屬性特征和圖像特征的對應(yīng)情況,對效果較好的動物類、家具類,其圖像顏色、特征等屬性可能比較突出,從而更好地和屬性特征進行了結(jié)合匹配。使用語義模型能夠通過語義信息改進類似昆蟲類、植物類的零樣本分類效果,這就是使用語義模型能夠提升零樣本分類效果的一部分原因,但是其整體上因為語義和圖像偏差的問題,效果不好。在進行語義空間的信息映射之后,其整體效果獲得了提升,對各個類別的樣本測試的效果都獲得了提升。
本文基于使用詞向量進行零樣本學(xué)習(xí)方法進行研究,提出了基于語義空間信息映射加強的零樣本學(xué)習(xí)方法,主要改進為:(1)在詞向量的無監(jiān)督學(xué)習(xí)過程中,針對圖像樣本庫中出現(xiàn)類別的文本進行重復(fù)采樣,以獲得更充分的語義信息。(2)針對詞向量連接全連接層作為語義特征向量與圖像特征向量對應(yīng),這樣對語義信息進行了分解和合成,能夠更好地和圖像特征形成映射。(3)模型訓(xùn)練過程中,采用對比損失的原理,對基于余弦相似度的損失函數(shù)進行了改進,使得圖像特征空間和語義特征空間的對應(yīng)類別匹配程度更好。實驗結(jié)果和評估驗證了上述對語義空間信息映射加強的零樣本學(xué)習(xí)方法的有效性。