吳 凡 王 康
(復(fù)旦大學(xué)計算機(jī)科學(xué)技術(shù)學(xué)院上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室 上海 200433)
隨著社交媒體及數(shù)字采集設(shè)備的普及,網(wǎng)絡(luò)上存在著海量的視頻及圖像數(shù)據(jù)。然而這些數(shù)據(jù)卻面臨著數(shù)據(jù)樣本分布不均衡、以及樣本無監(jiān)督等問題,因此如何在樣本量不足甚至零樣本、以及樣本無標(biāo)注的情況下,充分利用社交媒體中的數(shù)據(jù),成為了計算機(jī)視覺領(lǐng)域的開放式問題。在一些實(shí)際應(yīng)用中,標(biāo)注的訓(xùn)練樣本可能無法覆蓋所有目標(biāo)類別,如物種識別[1]、動作識別[2]、異常檢測[3]等。零樣本學(xué)習(xí)[3-4]為解決這一類問題提供了一套系統(tǒng)的框架,即利用類的語義信息。這些語義信息,如屬性標(biāo)注,標(biāo)簽詞向量等,可以一致地編碼成屬性向量[5],后者也可稱作類嵌入或標(biāo)簽語義嵌入。
零樣本學(xué)習(xí)(ZSL)用可見類的樣本訓(xùn)練,學(xué)習(xí)視覺特征空間到類語義空間的映射,并將這種映射遷移到未見類上[5-6],來進(jìn)行未見類的分類。
測試階段,ZSL只考慮對未見類的圖像進(jìn)行分類,這需要假定測試樣本均來自未見類,而不含可見類樣本。然而,在實(shí)際應(yīng)用中,一個專門的圖像識別系統(tǒng)通常需要對那一領(lǐng)域的所有類的新圖像進(jìn)行分類,包括未見類和可見類。這個問題可以被泛化零樣本學(xué)習(xí)GZSL(Generalized Zero-shot Learning)解決。圖1展示了ZSL和GZSL任務(wù)的情況。
圖1 零樣本學(xué)習(xí)ZSL和GZSL示意圖
現(xiàn)有的主流ZSL模型[7]可分為以下3類:
1) 學(xué)習(xí)一個圖像特征和類嵌入之間的適配性函數(shù),將ZSL的分類看作是一個適配分?jǐn)?shù)排序問題[4,8-9]。這類方法提供了建立兩者聯(lián)系的通用框架,但也有以下問題:屬性標(biāo)注是單點(diǎn)標(biāo)注(pointwise)而非成對標(biāo)注(pairwise),排序失去了絕對距離信息;適配性分?jǐn)?shù)沒有上界;基于固定間隔的排序?qū)W習(xí)不到一些語義結(jié)構(gòu)。
2) 將視覺特征和語義嵌入投影到一個公共的空間,將ZSL的學(xué)習(xí)問題看作一個脊回歸。這個公共空間可以是視覺空間、語義空間、或者兩者的共享空間。這類方法的預(yù)測過程是一個高維空間的近鄰搜索,可能會導(dǎo)致中心化問題(hubness problems)[10]。
3) 文獻(xiàn)[11]通過對神經(jīng)網(wǎng)絡(luò)最后一層全連接施加一個語義一致正則化來實(shí)現(xiàn)基于可見類屬性矩陣的端到端的訓(xùn)練。這一工作為端到端ZSL模型提供了一個新的思路,但該方法沒有考慮以下幾點(diǎn):(1) 不同屬性對分類判別的幫助是不同的; (2) 可見類與未見類的屬性關(guān)聯(lián)以及未見類的屬性與訓(xùn)練樣本特征之間的關(guān)系。
為了克服現(xiàn)有方法的問題,本文提出了一種基于屬性平衡正則化的深度零樣本學(xué)習(xí)框架ABN(Attribute Balancing Network)。本文主要貢獻(xiàn)有:1) 提出了一種簡單可擴(kuò)展的端到端零樣本學(xué)習(xí)框架ABN;2) 針對ABN訓(xùn)練中的問題,針對性地設(shè)計了一個屬性平衡的正則化約束,并結(jié)合現(xiàn)有工作給出了理論上的分析;3) 在主流視覺屬性數(shù)據(jù)集的ZSL和GZSL任務(wù)上進(jìn)行了大量實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果達(dá)到了當(dāng)前最高的水平,驗(yàn)證了我們方法的有效性。
零樣本學(xué)習(xí)任務(wù)中,有ns個可見類別和nt個未見類別(上標(biāo)分別表示源source和目標(biāo)target,與遷移學(xué)習(xí)一致),總共n=ns+nt個不同的類別。在可見類別空間上,給定N個標(biāo)注樣本的訓(xùn)練集Ds={(Ii,yi),i=1,…,N},其中Ii是第i個訓(xùn)練樣本的圖像,yi是其對應(yīng)標(biāo)簽。給定類別屬性矩陣A,其中As∈Ra×ns對應(yīng)可見類別,At∈Ra×nt對應(yīng)未見類別,a表示屬性特征的維度。
現(xiàn)有的ZSL方法已經(jīng)實(shí)現(xiàn)了語義特征約束[11]、語義特征和視覺特征一起端到端訓(xùn)練、多語義特征融合[5]等目標(biāo)。但是當(dāng)前最佳的端到端方案,存在以下問題:1) 可見類強(qiáng)關(guān)聯(lián)的屬性有足夠正樣本監(jiān)督,但未見類關(guān)聯(lián)屬性正樣本監(jiān)督相對不足,導(dǎo)致各屬性間不平衡,不利于提高ZSL測試準(zhǔn)確率;2) 對屬性分類準(zhǔn)確的依賴很大,ZSL會因?yàn)橛蚱芠12](同一屬性在已見類和未見類圖片上視覺表現(xiàn)有顯著差異)而準(zhǔn)確率降低。
針對上述問題,本文提出了一種基于屬性平衡正則化的端到端零樣本學(xué)習(xí)框架ABN。如圖2所示。
圖2 屬性平衡網(wǎng)絡(luò)ABN框架圖
ABN零樣本學(xué)習(xí)框架依次包含以下幾個模塊:
1) CNN模塊x=CNN(I)。用在ImageNet2012數(shù)據(jù)集預(yù)訓(xùn)練好的CNN網(wǎng)絡(luò),去掉最后一個全連接層,作為圖像特征提取器。為了比較方法的一致性,本文實(shí)驗(yàn)中均以預(yù)訓(xùn)練好的resnet50為例。這一層將輸出瓶頸特征(即高級圖像特征,這里是df=2 048維)。
2) 全連接FC層xt=WTx。這一全連接FC層將圖像的CNN特征x映射到a維的“屬性”空間。在端到端的訓(xùn)練收斂后,這一層的輸出可以看作是圖像在各屬性上的評分。由于主要目標(biāo)是提高在未見類圖像上的準(zhǔn)確率,因此這一層不帶非線性激活和偏置,使得神經(jīng)網(wǎng)絡(luò)盡可能訓(xùn)練學(xué)到更好的視覺屬性的表達(dá)。
3) 類語義遷移層y*=softmax(ATxt)。其中AT是全體類別屬性矩陣A的轉(zhuǎn)置,矩陣維度為n×a。這一層可以看作是一個固定權(quán)重的無偏置全連接層,其權(quán)重設(shè)定為全體類別屬性矩陣A。訓(xùn)練過程讓y*盡可能地逼近真實(shí)標(biāo)注對應(yīng)的one-hot向量,這樣就充分考慮了不同類的相對關(guān)系。
4) 損失函數(shù)層 由于前面的類語義遷移層相當(dāng)于一個帶softmax的全連接層,該網(wǎng)絡(luò)依舊等價于一個經(jīng)典的CNN分類網(wǎng)絡(luò),考慮采用交叉熵?fù)p失:
q(y*,ytrue)=-ytrue·log(y*)
(1)
由于訓(xùn)練過程可見類強(qiáng)關(guān)聯(lián)的屬性會有較多的正樣本監(jiān)督,隨著訓(xùn)練進(jìn)行,他們的關(guān)聯(lián)強(qiáng)度會不斷加強(qiáng),因此需要對這些關(guān)聯(lián)的權(quán)重做一些約束。總的損失函數(shù)L為:
(2)
受文獻(xiàn)[13]中映射可重構(gòu)性的啟發(fā),這里給出可重構(gòu)性約束的ZSL目標(biāo)函數(shù)如下:
(3)
式中:Xi是第i個樣本的視覺特征,Ai是該樣本標(biāo)注類別對應(yīng)的屬性向量。由于Ai固定,上式可轉(zhuǎn)化為:
(4)
在我們的ABN框架下,正好有:
yi=softmax(ATWTX)i
(5)
(6)
這與我們上一節(jié)的損失函數(shù)完全一致。這也從理論上解釋了我們的屬性平衡約束的合理性。
GZSL任務(wù)與ZSL類似,只是測試集樣本和測試的分類域都擴(kuò)大到了全體類?,F(xiàn)有的ZSL方法,大多基于樣本特征與標(biāo)簽嵌入向量的適配度函數(shù)(或距離),都可以直接用到GZSL上。但由于訓(xùn)練集只有可見類樣本,直接應(yīng)用到GZSL上的方法都會面臨大量未見類樣本被分到可見類中。經(jīng)分析有以下幾種角度解決這一問題:
1) 建立類似離群點(diǎn)檢測的新類樣本檢測機(jī)制,若測試樣本檢測為新類,在加入到ZSL分類器中,否則加入到可見類分類器中。這種兩步分類的方法優(yōu)點(diǎn)是可見類和未見類區(qū)分后可解釋性強(qiáng),兩塊的分類準(zhǔn)確率也有保障;缺點(diǎn)是計算慢,區(qū)分的對待不利于建立可見類和未見類之間的聯(lián)系。若有部分未見類的圖片可加入訓(xùn)練,該方法的性能提升也是局部的而非全局的。
2) 將GZSL看作一個訓(xùn)練集極端不平衡的問題(可見:未見=∞)。通過改進(jìn)損失函數(shù),借用類屬性矩陣As和At,在訓(xùn)練階段借用A將屬性上表達(dá)值傳遞到未見類,在測試階段對At部分做增強(qiáng)。
我們ABN模型中的屬性平衡正則項,起到了對As部分的約束,也有利于GZSL的準(zhǔn)確率提高。但是,測試時可見類輸出依舊會大于未見類,為了保證相對高的GZSL準(zhǔn)確率,設(shè)置一個閾值γ(一般γ>1)。當(dāng)可見類與未見類中最高概率比超過這個閾值γ時取可見類中最匹配類,若未超過,則意味著檢測到未見類,故在未見類中取最匹配類為預(yù)測結(jié)果。預(yù)測類c為:
本文基于pyTorch[14]框架實(shí)現(xiàn)了ABN網(wǎng)絡(luò),并在三大主流視覺屬性數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境是一臺擁有8張12 GB顯存的Titan Xp和8塊32 GB的CPU內(nèi)存的Ubuntu服務(wù)器。
對ZSL和GZSL問題,我們參照文獻(xiàn)[7]的規(guī)范,選取了3個各具特點(diǎn)且有公開原始圖片方便端到端訓(xùn)練的數(shù)據(jù)集,即SUN[15],AWA2[7],CUB[16]等屬性數(shù)據(jù)集。3個數(shù)據(jù)集基本信息如表1所示。
表1 屬性數(shù)據(jù)集統(tǒng)計(分割方式同文獻(xiàn)[7])
表1中的數(shù)據(jù)集特點(diǎn)是:SUN類別數(shù)多,AWA2單類圖片多,CUB屬性個數(shù)多。
如未特殊聲明,本文實(shí)驗(yàn)均采用resnet50[17]作為CNN模塊,其最上層Pooling層輸出特征維度是D=1 024。該CNN在ILSVRC2012的1 000分類數(shù)據(jù)上預(yù)訓(xùn)練好[14],top-1錯誤率為23.85%。所有輸入圖片大小均調(diào)為224×224。正如框架圖2所示,訓(xùn)練階段FC層隨機(jī)初始化,語義遷移層則權(quán)重固定為屬性矩陣A,兩層均無偏置項。測試階段ZSL則將語義遷移層權(quán)重設(shè)為At,GZSL則為A并加上新類檢測機(jī)制。
新類檢測閾值γ一般根據(jù)實(shí)際數(shù)據(jù)集訓(xùn)練情況選取。如果訓(xùn)練類的每類樣本數(shù)量多,意味著已見類影響遠(yuǎn)大于未見類,需要設(shè)置較大的γ。在屬性平衡正則化因子λ取0.1的情況下,本文3個數(shù)據(jù)集γ均取1.4。
訓(xùn)練主要分為兩個階段:
1) 前3個epoch:由于CNN模塊已經(jīng)預(yù)訓(xùn)練好來提取ImageNet通用的視覺特征,可將CNN模塊參數(shù)凍結(jié),用Adam優(yōu)化訓(xùn)練全連接FC層。
2) 全局訓(xùn)練:這一階段訓(xùn)練層數(shù)復(fù)雜,因此采用簡單的SGD優(yōu)化,學(xué)習(xí)率為0.001,逐漸減小,minibatch大小為32。ZSL任務(wù)需要嚴(yán)格防止過擬合,為了提高泛化能力,權(quán)值衰減因子β設(shè)為0.005,且采取提前終止(early stopping)策略。
為了更好地對比和分析,我們按ABN網(wǎng)絡(luò)訓(xùn)練,并在每一個訓(xùn)練周期(epoch)對模型進(jìn)行ZSL/GZSL測試。圖3、圖4分別表示了訓(xùn)練過程中CUB和SUN數(shù)據(jù)集上ZSL/GZSL準(zhǔn)確率的變化。圖中Training-ACC表示在訓(xùn)練集上的分類準(zhǔn)確率,val表示在可見類驗(yàn)證集上的分類準(zhǔn)確率,ZSL表示在未見類測試集上的ZSL準(zhǔn)確率。tr、ts、H為GZSL指標(biāo),其中tr表示在可見類測試集上準(zhǔn)確率,ts表示在未見類測試集上的GZSL準(zhǔn)確率,H為tr和ts的調(diào)和平均數(shù)。
圖3 訓(xùn)練過程中CUB數(shù)據(jù)集上ZSL/GZSL準(zhǔn)確率的變化
分析圖3和圖4可知:
1) ZSL/GZSL測試集各項指標(biāo)的波動情況與val保持一致,這是因?yàn)楫?dāng)val增加時,表示神經(jīng)網(wǎng)絡(luò)學(xué)到了更好的圖像表示和屬性評分,從而在ZSL測試中也能有提高。這一現(xiàn)象告訴我們,在實(shí)際的零樣本學(xué)習(xí)任務(wù)中,可以借助可見類驗(yàn)證集的準(zhǔn)確率來選擇合適的ZSL模型。
2) 隨著訓(xùn)練進(jìn)行ZSL準(zhǔn)確率一開始迅速提高,之后會在一定值附近出現(xiàn)較大波動。這是因?yàn)閆SL的訓(xùn)練集可以看作一個極端不平衡的數(shù)據(jù)集,未見類的樣本不參加訓(xùn)練,屬性平衡正則項有效地約束了可見類的過擬合現(xiàn)象,但也避免不了出現(xiàn)偶爾的大幅波動。因此,在ZSL實(shí)際應(yīng)用中,建議保存訓(xùn)練過程中每一個val極大值的模型參數(shù),然后綜合選擇合適的最終模型參數(shù)。
我們參照文獻(xiàn)[7]將ABN的ZSL結(jié)果與最新文獻(xiàn)中的結(jié)果進(jìn)行對比,如表2所示。
表2 不同方法在3個數(shù)據(jù)集上的ZSL結(jié)果對比
為了合理對比,我們在同一個預(yù)訓(xùn)練模型resnet50上復(fù)現(xiàn)了Deep-SCoRe和DEM的結(jié)果。表2結(jié)果表明,我們提出的ABN模型在3個視覺屬性數(shù)據(jù)集上,都達(dá)到了當(dāng)前的最好水平,且λ=0.1的屬性平衡約束對ZSL準(zhǔn)確率在3個數(shù)據(jù)集上都有一定提高,而且遠(yuǎn)遠(yuǎn)超過了已有的深度ZSL方法。
同文獻(xiàn)[7]的數(shù)據(jù)集設(shè)置,在GZSL任務(wù)上不同方法的實(shí)驗(yàn)結(jié)果如表3和表4所示。
表3 不同方法在SUN和AWA2上的GZSL結(jié)果對比
表4 不同方法在CUB上的GZSL結(jié)果對比
表3和表4結(jié)果表明,我們提出的ABN模型對GZSL的各項指標(biāo),均有非常大的提升,其中λ=0.1的屬性平衡約束起了非常大的作用。這表明在GZSL訓(xùn)練中添加屬性平衡約束,能夠很有效地避免過擬合,引導(dǎo)神經(jīng)網(wǎng)絡(luò)學(xué)到更全面的圖像與各類別屬性之間的關(guān)聯(lián)。
我們提出的基于屬性平衡正則化的深度零樣本學(xué)習(xí)框架ABN,在ZSL和GZSL任務(wù)上均取得了當(dāng)前最好的結(jié)果,尤其是在GZSL任務(wù)上,相對于不帶屬性平衡約束,準(zhǔn)確率有了非常大的提升。而且ABN框架簡單,便于實(shí)現(xiàn)和擴(kuò)展,而且可以很方便地改進(jìn)為在線學(xué)習(xí)的框架,以應(yīng)用于實(shí)際場景中。