于 全,宋金玉,余曉晗
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210007)
Zhou等人[1]提出了一個(gè)對(duì)抽象標(biāo)簽的圖像分類(lèi)問(wèn)題,如圖1中的圖像,該圖像的標(biāo)簽不再是傳統(tǒng)的具體標(biāo)簽,如“巴士”、“人”、“房子”,而是抽象的標(biāo)簽“城鎮(zhèn)”?!俺擎?zhèn)”不屬于圖像中包含的任何一個(gè)內(nèi)容,而是對(duì)多個(gè)具體對(duì)象的整合。
這類(lèi)抽象標(biāo)簽的圖像分類(lèi)問(wèn)題在實(shí)際應(yīng)用中不少見(jiàn),如醫(yī)學(xué)領(lǐng)域的CT圖像癌癥識(shí)別問(wèn)題、作戰(zhàn)領(lǐng)域的作戰(zhàn)意圖識(shí)別問(wèn)題都涉及了抽象的標(biāo)簽。以作戰(zhàn)意圖識(shí)別為例,作戰(zhàn)意圖具有抽象性,是指揮員根據(jù)當(dāng)前敵方的戰(zhàn)場(chǎng)態(tài)勢(shì)圖綜合推理出的。利用人工智能技術(shù)進(jìn)行作戰(zhàn)意圖識(shí)別,識(shí)別模型需要根據(jù)戰(zhàn)場(chǎng)態(tài)勢(shì)圖的輸入信息判斷出敵方的作戰(zhàn)意圖(如進(jìn)攻或防守),傳統(tǒng)的技術(shù)更多的是理解態(tài)勢(shì),如敵方兵力和位置,如何在具體的態(tài)勢(shì)理解基礎(chǔ)上完成抽象的作戰(zhàn)意圖識(shí)別,相關(guān)的研究工作還不多。
Zhou等認(rèn)為可以使用多示例學(xué)習(xí)方法解決這類(lèi)問(wèn)題,并提出了多示例學(xué)習(xí)算法MIML[1],該算法先學(xué)習(xí)一組子標(biāo)簽(“巴士”、“人”、“房子”),然后在此基礎(chǔ)上推導(dǎo)出圖像的抽象標(biāo)簽(“城鎮(zhèn)”),如圖1所示。但是在模型驗(yàn)證實(shí)驗(yàn)中使用的數(shù)據(jù)依然是基于老虎、大象、狐貍這類(lèi)帶有具體標(biāo)簽的圖像數(shù)據(jù),并沒(méi)有真正將算法應(yīng)用于像“城鎮(zhèn)”這類(lèi)帶有抽象標(biāo)簽的圖像數(shù)據(jù)。
圖1 通過(guò)開(kāi)發(fā)子標(biāo)簽推導(dǎo)出“城鎮(zhèn)”這個(gè)抽象標(biāo)簽
多示例學(xué)習(xí)(multi-instance learning,MIL)最早是由Dietterich等人[2]在研究藥物分子活性預(yù)測(cè)中提出的,是傳統(tǒng)監(jiān)督學(xué)習(xí)的一種變體。在傳統(tǒng)的監(jiān)督學(xué)習(xí)中,每個(gè)對(duì)象都有一個(gè)標(biāo)簽來(lái)指導(dǎo)算法模型學(xué)習(xí),而在多示例學(xué)習(xí)中訓(xùn)練集由若干個(gè)具有標(biāo)簽的包組成,每個(gè)包由若干對(duì)象組成,這些對(duì)象稱(chēng)為示例,只有包有準(zhǔn)確的標(biāo)簽信息,示例的標(biāo)簽是未知的。MIL的目的是從給定標(biāo)簽的包中學(xué)習(xí)分類(lèi)器,并對(duì)未知標(biāo)簽的包進(jìn)行分類(lèi)。多示例學(xué)習(xí)自提出以來(lái),廣受學(xué)者重視,開(kāi)發(fā)出了各種應(yīng)對(duì)多示例學(xué)習(xí)的算法,諸如Citation-kNN算法[3]、SMILE算法[4]、MI-NET算法[5]、MInD算法[6]等,已被應(yīng)用到藥物活性預(yù)測(cè)[7]、文本分類(lèi)[8-9]、數(shù)據(jù)挖掘[10]、圖像識(shí)別[11-12]等問(wèn)題上。
為了實(shí)現(xiàn)抽象標(biāo)簽的圖像分類(lèi)的目標(biāo),該文借助多示例學(xué)習(xí)方法思路,基于Yolo(you only look once)[13]模型和多層感知機(jī)設(shè)計(jì)并實(shí)現(xiàn)了解決帶有抽象標(biāo)簽的圖像分類(lèi)問(wèn)題的算法模型,稱(chēng)為多示例兩階段模型。首先利用Yolo模型完成圖像中具體對(duì)象的提取,然后將提取出的具體對(duì)象輸入到多層感知機(jī)中完成圖像抽象概念的預(yù)測(cè)。通過(guò)實(shí)驗(yàn)案例表明,多示例兩階段模型能夠快速并準(zhǔn)確對(duì)帶有抽象標(biāo)簽的圖像進(jìn)行分類(lèi),體現(xiàn)了多示例兩階段模型的可行性。
對(duì)于傳統(tǒng)的監(jiān)督學(xué)習(xí),每個(gè)訓(xùn)練樣本都被標(biāo)記,而多示例學(xué)習(xí)[14]是監(jiān)督學(xué)習(xí)的一種變體,MIL的標(biāo)記對(duì)象不再是一個(gè)樣本,而是一個(gè)包(bag)。每個(gè)包是若干個(gè)樣本組成的集合,這些樣本也稱(chēng)為示例(instances),并且每個(gè)包都有一個(gè)訓(xùn)練標(biāo)簽(記為正標(biāo)簽或負(fù)標(biāo)簽),但包中的示例沒(méi)有標(biāo)簽。如果包為負(fù)標(biāo)簽,則包中所有示例都認(rèn)為是負(fù)示例;如果包為正標(biāo)簽,則包中至少有一個(gè)示例被認(rèn)為是正標(biāo)簽。MIL的目的是從給定標(biāo)簽的正包和負(fù)包中學(xué)習(xí)分類(lèi)器,并將未知標(biāo)簽的包進(jìn)行分類(lèi),劃分為正包或負(fù)包。
假設(shè)有N個(gè)包{B1,B2,…,BN},第i個(gè)包Bi由ai個(gè)示例組成{Bi,1,Bi,2,…,Bi,ai},每個(gè)示例都是一個(gè)k維屬性值向量。例如第i個(gè)包的第j個(gè)示例為[Bi,j,1,Bi,j,2,…,Bi,j,k]T,其中T表示向量的轉(zhuǎn)置。N個(gè)包對(duì)應(yīng)的標(biāo)簽集為{yi|yi∈{0,1},i=1,2,…,N},其中1代表包為正標(biāo)簽,0代表包為負(fù)標(biāo)簽。
模型框架:
在進(jìn)行MIL的建模時(shí),通常為每類(lèi)示例構(gòu)建分類(lèi)器:
(1)
其中,fij(·)表示用于示例Bij的分類(lèi)器,θ表示分類(lèi)器的參數(shù),E(·)表示分類(lèi)器的誤差函數(shù),N表示樣本數(shù)據(jù)個(gè)數(shù)。上述模型為每一類(lèi)示例構(gòu)建了一個(gè)分類(lèi)器fij(·),借助取大函數(shù),將每個(gè)分類(lèi)器輸出,整合成包的最終輸出,即公式中的maxj{fij(Bij,θ)},然后將該輸出與對(duì)應(yīng)的標(biāo)簽值yi比較取誤差。以往解決圖像分類(lèi)的多示例算法模型都是基于公式(1)構(gòu)建的,但是使用max函數(shù)整合多個(gè)示例的輸出過(guò)于簡(jiǎn)化,不能很好描述復(fù)雜情況。為此,該文考慮構(gòu)建一個(gè)新的分類(lèi)器t(·)替換該max函數(shù),來(lái)整合所有示例輸出fi1(Bi1,θ),fi2(Bi2,θ),…,fiai(Biai,θ)。其概率模型如下:
(2)
(3)
(4)
其中,公式(3)和公式(4)分別表示第一、二階段模型,fij(·)和t(·)分別表示分類(lèi)器1(第一階段模型)和分類(lèi)器2(第二階段模型),θ1和θ2分別是分類(lèi)器1和分類(lèi)器2的參數(shù),E1(·)和E2(·)分別是分類(lèi)器1和分類(lèi)器2的誤差函數(shù)。在第一階段模型中,輸入N個(gè)包到分類(lèi)器1計(jì)算每個(gè)示例的輸出fij(Bij,θ1),然后根據(jù)這些輸出與對(duì)應(yīng)的標(biāo)簽值z(mì)j的誤差,進(jìn)而優(yōu)化參數(shù)θ1;在第二階段模型中,將分類(lèi)器1的輸出fi1(Bi1,θ1),fi2(Bi2,θ1),…,fiai(Biai,θ1)放入分類(lèi)器2計(jì)算包Bi的最終預(yù)測(cè)結(jié)果,即公式中的ti({fij(Bij,θ1)},θ2),通過(guò)對(duì)比標(biāo)簽值yi優(yōu)化參數(shù)θ2。
多示例兩階段模型框架如圖2所示,分類(lèi)器1和分類(lèi)器2各自訓(xùn)練、共同預(yù)測(cè)?;诎芯唧w包含哪些示例的標(biāo)簽,訓(xùn)練分類(lèi)器1的參數(shù)。例如計(jì)算機(jī)視覺(jué)領(lǐng)域已經(jīng)有比較成熟的方法用于預(yù)測(cè)一張圖片中的多個(gè)對(duì)象,可以借助已有方法完成分類(lèi)器1的訓(xùn)練。在完成分類(lèi)器1訓(xùn)練的基礎(chǔ)上,利用分類(lèi)器1和包的標(biāo)簽對(duì)分類(lèi)器2進(jìn)行訓(xùn)練。成功訓(xùn)練后,可用于多示例樣本的預(yù)測(cè)。
圖2 多示例兩階段模型框架
針對(duì)圖像抽象概念分類(lèi)問(wèn)題,該文設(shè)計(jì)了第一階段使用Yolo[13]模型,第二階段使用多層感知機(jī)(MLP)的多示例兩階段模型,如圖3所示。
圖3 多示例兩階段模型
Yolo是基于深度神經(jīng)網(wǎng)絡(luò)的對(duì)象識(shí)別和定位算法,被應(yīng)用到計(jì)算機(jī)視覺(jué)領(lǐng)域目標(biāo)檢測(cè)與分類(lèi)中[15-17]。輸入一張圖像,可以輸出圖像中所包含的所有對(duì)象,以及每個(gè)對(duì)象在圖像中對(duì)應(yīng)的位置,具有很高的實(shí)用性。使用Yolo作為第一階段模型,可以很好地實(shí)現(xiàn)對(duì)圖像中各個(gè)子對(duì)象的識(shí)別,并給出子對(duì)象的置信度(存在概率)。同時(shí)Yolo模型很成熟,可靠性高,可借鑒實(shí)例多。非常適合作為圖像抽象概念分類(lèi)的第一階段模型。
第一階段使用Yolo模型的作用是對(duì)包中示例進(jìn)行初步分類(lèi),得到包中所有示例存在的概率,這需要在Yolo模型的基礎(chǔ)上對(duì)其輸出方式進(jìn)行修改。
Yolo模型的輸入圖像被劃分為7×7的網(wǎng)格,其中一個(gè)網(wǎng)格的輸出為30維向量,那么一張圖像通過(guò)Yolo模型會(huì)得到7×7×30的張量。其中,一個(gè)網(wǎng)格輸出的30維向量共由三部分組成:一是20個(gè)對(duì)象的概率(20種不同的對(duì)象包括人、鳥(niǎo)、貓、汽車(chē)等),所以這20個(gè)值分別表示該網(wǎng)格位置存在這20種對(duì)象的概率,記作P(Oj|Object),表示該網(wǎng)格存在一個(gè)對(duì)象Object,且該對(duì)象是Oj的概率是P(Oj|Object);二是2個(gè)邊框的位置,每個(gè)邊框由4個(gè)數(shù)值表示其位置;三是2個(gè)邊框的置信度,一個(gè)邊框的置信度表示該邊框是否包含對(duì)象且位置準(zhǔn)確的程度,第s個(gè)邊框的置信度記作Confidences。根據(jù)得到的7×7×30的輸出張量,Yolo模型利用非極大值抑制算法(non-maximal suppression,NMS)輸出其中最有可能的那些對(duì)象及其所在位置。
下面根據(jù)第二階段模型的需要對(duì)第一階段Yolo模型的輸出方式進(jìn)行必要的修改。在Yolo模型輸出的7×7×30張量中,有49組針對(duì)J個(gè)示例的條件概率數(shù)據(jù):
…
(5)
(6)
其中,m表示第m個(gè)網(wǎng)格?;谏鲜龇椒ㄓ?jì)算包中包含各示例的概率P(I1),P(I2),…,P(IJ),計(jì)算過(guò)程如圖4所示。
圖4 第一階段模型的輸出
在設(shè)計(jì)實(shí)現(xiàn)第一階段模型后,完成對(duì)包的初步分類(lèi)得到包中所有示例在該包中存在的概率P(I1),P(I2),…,P(IJ),本節(jié)將設(shè)計(jì)第二階段模型基于第一階段計(jì)算出的概率用于包的分類(lèi)。
第二階段模型由一個(gè)三層結(jié)構(gòu)的多層感知機(jī)(MLP)構(gòu)成,最底層是輸入層,輸入層有J個(gè)神經(jīng)元,分別用于輸入J個(gè)概率P(I1),P(I2),…,P(IJ)。中間是單隱藏層,其中神經(jīng)元有K個(gè),最后是輸出層,輸出層只有一個(gè)神經(jīng)元,對(duì)應(yīng)兩階段模型最終輸出y,即圖像的抽象標(biāo)簽,層與層之間是全連接的。給定訓(xùn)練數(shù)據(jù){(B1,y1),…,(BN,yN)|Bi∈R1×J,yi∈{0,1}},對(duì)如式(7)的第二階段模型進(jìn)行訓(xùn)練:
(7)
其中,矩陣W(1)∈RJ×K和W(2)∈RK×1分別表示輸入層與隱藏層之間和隱藏層與輸出層之間的權(quán)重參數(shù),b(1)∈R1×K和b(2)∈R1×1分別表示添加到隱藏層和輸出層的偏置,gi(·)為激活函數(shù)。因?yàn)榈诙A段模型屬于一個(gè)二分類(lèi)的分類(lèi)器,所以gh(·)使用logistic函數(shù)f(x)=1/(1+e-x)獲得0到1之間的輸出值,在進(jìn)行預(yù)測(cè)時(shí)設(shè)置閾值0.5,將大于或等于0.5的輸出包的預(yù)測(cè)結(jié)果為1,否則為0。分類(lèi)損失函數(shù)定義為:
(8)
本節(jié)通過(guò)實(shí)驗(yàn)說(shuō)明利用多示例兩階段模型解決抽象標(biāo)簽的圖像分類(lèi)問(wèn)題的過(guò)程。
對(duì)于帶有抽象標(biāo)簽的圖像分類(lèi)問(wèn)題,目前還沒(méi)有一個(gè)標(biāo)準(zhǔn)測(cè)試集,該文基于圖像數(shù)據(jù)集VOC 2012,引入抽象標(biāo)簽設(shè)計(jì)圖像分類(lèi)實(shí)驗(yàn)。
首先看一下VOC 2012數(shù)據(jù)集,該數(shù)據(jù)集中訓(xùn)練集中有2 501張圖像用于模型訓(xùn)練,測(cè)試集中有4 952張圖像用于模型測(cè)試,數(shù)據(jù)集中圖像的標(biāo)簽一共分為20類(lèi)(人、鳥(niǎo)、貓、汽車(chē)等),其中每張圖像標(biāo)簽不只有一個(gè)。但是這20類(lèi)標(biāo)簽都屬于圖像中包含的具體標(biāo)簽,無(wú)法直接作為抽象標(biāo)簽用于實(shí)驗(yàn)。所以該文根據(jù)數(shù)據(jù)集特點(diǎn)利用專(zhuān)家的知識(shí)和經(jīng)驗(yàn)構(gòu)造出規(guī)則庫(kù)生成圖像的抽象標(biāo)簽“室內(nèi)/室外”,其中“室內(nèi)”作為多示例數(shù)據(jù)的正包,“室外”作為多示例數(shù)據(jù)的負(fù)包,同時(shí)將20類(lèi)標(biāo)簽則作為包中的20個(gè)示例,用于實(shí)驗(yàn)。數(shù)據(jù)集標(biāo)注結(jié)果如下:在VOC 2012訓(xùn)練集的2 501張圖像中,得到330張標(biāo)簽為“室內(nèi)”的圖像,2 171張標(biāo)簽為“室外”的圖像,用于多示例兩階段模型的訓(xùn)練,VOC 2012測(cè)試集的4 952張圖像中,得到651張標(biāo)簽為“室內(nèi)”的圖像,4 301張標(biāo)簽為“室外”的圖像,用于多示例兩階段模型的測(cè)試。
下面根據(jù)得到的標(biāo)注數(shù)據(jù)結(jié)合多示例兩階段模型進(jìn)行圖像分類(lèi)的實(shí)驗(yàn)。
實(shí)驗(yàn)分為訓(xùn)練和測(cè)試兩個(gè)階段,在訓(xùn)練階段中將提出的第一階段模型和第二階段模型分開(kāi)進(jìn)行訓(xùn)練,其中第一階段模型使用Yolo模型在VOC 2012訓(xùn)練集上集訓(xùn)練好的模型[13],第二階段模型中多層感知機(jī)的超參數(shù)通過(guò)調(diào)試最終設(shè)置如下:輸入層的單元數(shù)為20、隱藏層的單元數(shù)為4、輸出層單元數(shù)為1、迭代次數(shù)為100、學(xué)習(xí)率為0.05、輸出的閾值為0.5。在測(cè)試階段,使用訓(xùn)練好的第一階段模型和第二階段模型共同測(cè)試。
實(shí)驗(yàn)結(jié)果從兩部分給出:一是在實(shí)驗(yàn)數(shù)據(jù)集上的分析;二是通過(guò)一個(gè)實(shí)驗(yàn)案例進(jìn)行展示。
3.3.1 實(shí)驗(yàn)數(shù)據(jù)分析
在訓(xùn)練集上,利用python對(duì)多示例兩階段模型進(jìn)行仿真,并在測(cè)試集上對(duì)訓(xùn)練好的多示例兩階段模型進(jìn)行測(cè)試,選擇損失值和準(zhǔn)確率分別對(duì)訓(xùn)練過(guò)程和測(cè)試過(guò)程進(jìn)行分析,其中損失值Loss通過(guò)公式(8)計(jì)算得到,準(zhǔn)確率Acc通過(guò)下式計(jì)算得到。
(9)
圖5 多示例兩階段模型在訓(xùn)練集上的 損失隨迭代次數(shù)的變化
圖6 多示例兩階段模型在測(cè)試集上的 準(zhǔn)確率隨迭代次數(shù)的變化
圖5和圖6分別顯示了多示例兩階段模型在訓(xùn)練集上的損失和測(cè)試集上的準(zhǔn)確率隨迭代次數(shù)的變化曲線,表1顯示了多示例兩階段模型迭代結(jié)束后在訓(xùn)練集上的損失和測(cè)試集上的準(zhǔn)確率以及測(cè)試集上平均運(yùn)行時(shí)間。
表1 多示例兩階段模型迭代結(jié)束后在訓(xùn)練集上的損失、測(cè)試集上的準(zhǔn)確率和測(cè)試集上的平均運(yùn)行時(shí)間
指標(biāo)值訓(xùn)練集上的損失0.024測(cè)試集上的準(zhǔn)確率0.935測(cè)試集上的平均運(yùn)行時(shí)間1.1 s
從圖5和表1可以看出,隨著迭代次數(shù)的增加,模型不斷向著損失函數(shù)減小方向不斷進(jìn)化在80代左右,損失函數(shù)逐漸收斂至最小值0.024,說(shuō)明設(shè)計(jì)實(shí)現(xiàn)的兩階段模型能夠在訓(xùn)練集上成功進(jìn)行訓(xùn)練。從圖6和表1中可以看出,在80代左右模型在測(cè)試集上的準(zhǔn)確率收斂至0.935,且對(duì)一張圖像分類(lèi)平均需要1.1 s,說(shuō)明提出的多示例兩階段模型能夠以較好的預(yù)測(cè)效果和較快速度解決抽象標(biāo)簽的圖像分類(lèi)問(wèn)題。
3.3.2 實(shí)驗(yàn)案例
為了體現(xiàn)多示例兩階段模型的可行性,給出一張圖像的分類(lèi)案例,如下:首先從測(cè)試集中選擇一張標(biāo)簽為“室內(nèi)”的圖像。將該圖像作為輸入,通過(guò)訓(xùn)練好的第一階段模型計(jì)算得到輸出,如表2和圖7所示。
表2 第一階段模型的輸出
圖7 第一階段模型的輸出
表2得到了圖像(包)中包含的20個(gè)對(duì)象(示例)的概率,其中,該圖像包含椅子的概率為0.386、包含沙發(fā)的概率為0.128、包含電視/顯示器的概率為0.664,其余17個(gè)對(duì)象都不足0.1。然后將這20個(gè)概率通過(guò)訓(xùn)練好的第二階段模型計(jì)算,輸出為1,也就是說(shuō)將該圖像分類(lèi)為“室內(nèi)”(正包),即與該圖像的標(biāo)簽“室內(nèi)”一樣,對(duì)該圖像完成正確分類(lèi)。
基于多示例學(xué)習(xí)利用Yolo模型和多層感知機(jī)創(chuàng)新性地設(shè)計(jì)并實(shí)現(xiàn)了多示例兩階段模型,解決了抽象標(biāo)簽的圖像分類(lèi)問(wèn)題。第一階段模型繼承了Yolo對(duì)圖像識(shí)別方面快速、準(zhǔn)確的優(yōu)勢(shì),引入max函數(shù)設(shè)計(jì)多示例學(xué)習(xí)算法完成對(duì)包的初步分類(lèi),得到包中所有示例在該包中存在的概率。第二階段模型則借助成本低、效率高的多層感知機(jī)來(lái)完成包中示例到包抽象類(lèi)別的推導(dǎo)。最后,通過(guò)將多示例兩階段模型應(yīng)用于圖像分類(lèi)領(lǐng)域的一個(gè)帶有抽象標(biāo)簽的實(shí)驗(yàn)案例,驗(yàn)證了該模型在解決更復(fù)雜的圖像分類(lèi)問(wèn)題時(shí)具有一定的可行性,成功拓展了多示例學(xué)習(xí)的應(yīng)用領(lǐng)域。
目前,提出的多示例兩階段模型還存在不足,一是第二階段中使用的是比較簡(jiǎn)單的多層感知機(jī)對(duì)于圖像抽象標(biāo)簽的推導(dǎo)不具有可解釋性;二是多示例兩階段模型只是在圖像數(shù)據(jù)集上進(jìn)行驗(yàn)證,還沒(méi)有應(yīng)用于實(shí)際場(chǎng)景中。下一步的目標(biāo)是利用模糊樹(shù)、模糊決策引入專(zhuān)家知識(shí)來(lái)設(shè)計(jì)第二階段模型,使模型具有可解釋性,同時(shí)將多示例兩階段模型應(yīng)用于作戰(zhàn)意圖識(shí)別這樣的實(shí)際應(yīng)用場(chǎng)景中。