吳 凡 王 康
(復旦大學計算機科學技術學院上海市智能信息處理重點實驗室 上海 200433)
隨著社交媒體及數字采集設備的普及,網絡上存在著海量的視頻及圖像數據。然而這些數據卻面臨著數據樣本分布不均衡、以及樣本無監督等問題,因此如何在樣本量不足甚至零樣本、以及樣本無標注的情況下,充分利用社交媒體中的數據,成為了計算機視覺領域的開放式問題。在一些實際應用中,標注的訓練樣本可能無法覆蓋所有目標類別,如物種識別[1]、動作識別[2]、異常檢測[3]等。零樣本學習[3-4]為解決這一類問題提供了一套系統的框架,即利用類的語義信息。這些語義信息,如屬性標注,標簽詞向量等,可以一致地編碼成屬性向量[5],后者也可稱作類嵌入或標簽語義嵌入。
零樣本學習(ZSL)用可見類的樣本訓練,學習視覺特征空間到類語義空間的映射,并將這種映射遷移到未見類上[5-6],來進行未見類的分類。
測試階段,ZSL只考慮對未見類的圖像進行分類,這需要假定測試樣本均來自未見類,而不含可見類樣本。然而,在實際應用中,一個專門的圖像識別系統通常需要對那一領域的所有類的新圖像進行分類,包括未見類和可見類。這個問題可以被泛化零樣本學習GZSL(Generalized Zero-shot Learning)解決。圖1展示了ZSL和GZSL任務的情況。

圖1 零樣本學習ZSL和GZSL示意圖
現有的主流ZSL模型[7]可分為以下3類:
1) 學習一個圖像特征和類嵌入之間的適配性函數,將ZSL的分類看作是一個適配分數排序問題[4,8-9]。這類方法提供了建立兩者聯系的通用框架,但也有以下問題:屬性標注是單點標注(pointwise)而非成對標注(pairwise),排序失去了絕對距離信息;適配性分數沒有上界;基于固定間隔的排序學習不到一些語義結構。
2) 將視覺特征和語義嵌入投影到一個公共的空間,將ZSL的學習問題看作一個脊回歸。這個公共空間可以是視覺空間、語義空間、或者兩者的共享空間。這類方法的預測過程是一個高維空間的近鄰搜索,可能會導致中心化問題(hubness problems)[10]。
3) 文獻[11]通過對神經網絡最后一層全連接施加一個語義一致正則化來實現基于可見類屬性矩陣的端到端的訓練。這一工作為端到端ZSL模型提供了一個新的思路,但該方法沒有考慮以下幾點:(1) 不同屬性對分類判別的幫助是不同的; (2) 可見類與未見類的屬性關聯以及未見類的屬性與訓練樣本特征之間的關系。
為了克服現有方法的問題,本文提出了一種基于屬性平衡正則化的深度零樣本學習框架ABN(Attribute Balancing Network)。本文主要貢獻有:1) 提出了一種簡單可擴展的端到端零樣本學習框架ABN;2) 針對ABN訓練中的問題,針對性地設計了一個屬性平衡的正則化約束,并結合現有工作給出了理論上的分析;3) 在主流視覺屬性數據集的ZSL和GZSL任務上進行了大量實驗,實驗結果達到了當前最高的水平,驗證了我們方法的有效性。
零樣本學習任務中,有ns個可見類別和nt個未見類別(上標分別表示源source和目標target,與遷移學習一致),總共n=ns+nt個不同的類別。在可見類別空間上,給定N個標注樣本的訓練集Ds={(Ii,yi),i=1,…,N},其中Ii是第i個訓練樣本的圖像,yi是其對應標簽。給定類別屬性矩陣A,其中As∈Ra×ns對應可見類別,At∈Ra×nt對應未見類別,a表示屬性特征的維度。

現有的ZSL方法已經實現了語義特征約束[11]、語義特征和視覺特征一起端到端訓練、多語義特征融合[5]等目標。但是當前最佳的端到端方案,存在以下問題:1) 可見類強關聯的屬性有足夠正樣本監督,但未見類關聯屬性正樣本監督相對不足,導致各屬性間不平衡,不利于提高ZSL測試準確率;2) 對屬性分類準確的依賴很大,ZSL會因為域漂移[12](同一屬性在已見類和未見類圖片上視覺表現有顯著差異)而準確率降低。
針對上述問題,本文提出了一種基于屬性平衡正則化的端到端零樣本學習框架ABN。如圖2所示。

圖2 屬性平衡網絡ABN框架圖
ABN零樣本學習框架依次包含以下幾個模塊:
1) CNN模塊x=CNN(I)。用在ImageNet2012數據集預訓練好的CNN網絡,去掉最后一個全連接層,作為圖像特征提取器。為了比較方法的一致性,本文實驗中均以預訓練好的resnet50為例。這一層將輸出瓶頸特征(即高級圖像特征,這里是df=2 048維)。
2) 全連接FC層xt=WTx。這一全連接FC層將圖像的CNN特征x映射到a維的“屬性”空間。在端到端的訓練收斂后,這一層的輸出可以看作是圖像在各屬性上的評分。由于主要目標是提高在未見類圖像上的準確率,因此這一層不帶非線性激活和偏置,使得神經網絡盡可能訓練學到更好的視覺屬性的表達。
3) 類語義遷移層y*=softmax(ATxt)。其中AT是全體類別屬性矩陣A的轉置,矩陣維度為n×a。這一層可以看作是一個固定權重的無偏置全連接層,其權重設定為全體類別屬性矩陣A。訓練過程讓y*盡可能地逼近真實標注對應的one-hot向量,這樣就充分考慮了不同類的相對關系。
4) 損失函數層 由于前面的類語義遷移層相當于一個帶softmax的全連接層,該網絡依舊等價于一個經典的CNN分類網絡,考慮采用交叉熵損失:
q(y*,ytrue)=-ytrue·log(y*)
(1)
由于訓練過程可見類強關聯的屬性會有較多的正樣本監督,隨著訓練進行,他們的關聯強度會不斷加強,因此需要對這些關聯的權重做一些約束??偟膿p失函數L為:

(2)

受文獻[13]中映射可重構性的啟發,這里給出可重構性約束的ZSL目標函數如下:

(3)
式中:Xi是第i個樣本的視覺特征,Ai是該樣本標注類別對應的屬性向量。由于Ai固定,上式可轉化為:


(4)
在我們的ABN框架下,正好有:
yi=softmax(ATWTX)i
(5)


(6)
這與我們上一節的損失函數完全一致。這也從理論上解釋了我們的屬性平衡約束的合理性。
GZSL任務與ZSL類似,只是測試集樣本和測試的分類域都擴大到了全體類。現有的ZSL方法,大多基于樣本特征與標簽嵌入向量的適配度函數(或距離),都可以直接用到GZSL上。但由于訓練集只有可見類樣本,直接應用到GZSL上的方法都會面臨大量未見類樣本被分到可見類中。經分析有以下幾種角度解決這一問題:
1) 建立類似離群點檢測的新類樣本檢測機制,若測試樣本檢測為新類,在加入到ZSL分類器中,否則加入到可見類分類器中。這種兩步分類的方法優點是可見類和未見類區分后可解釋性強,兩塊的分類準確率也有保障;缺點是計算慢,區分的對待不利于建立可見類和未見類之間的聯系。若有部分未見類的圖片可加入訓練,該方法的性能提升也是局部的而非全局的。
2) 將GZSL看作一個訓練集極端不平衡的問題(可見:未見=∞)。通過改進損失函數,借用類屬性矩陣As和At,在訓練階段借用A將屬性上表達值傳遞到未見類,在測試階段對At部分做增強。
我們ABN模型中的屬性平衡正則項,起到了對As部分的約束,也有利于GZSL的準確率提高。但是,測試時可見類輸出依舊會大于未見類,為了保證相對高的GZSL準確率,設置一個閾值γ(一般γ>1)。當可見類與未見類中最高概率比超過這個閾值γ時取可見類中最匹配類,若未超過,則意味著檢測到未見類,故在未見類中取最匹配類為預測結果。預測類c為:
本文基于pyTorch[14]框架實現了ABN網絡,并在三大主流視覺屬性數據集上進行實驗。實驗環境是一臺擁有8張12 GB顯存的Titan Xp和8塊32 GB的CPU內存的Ubuntu服務器。
對ZSL和GZSL問題,我們參照文獻[7]的規范,選取了3個各具特點且有公開原始圖片方便端到端訓練的數據集,即SUN[15],AWA2[7],CUB[16]等屬性數據集。3個數據集基本信息如表1所示。

表1 屬性數據集統計(分割方式同文獻[7])
表1中的數據集特點是:SUN類別數多,AWA2單類圖片多,CUB屬性個數多。
如未特殊聲明,本文實驗均采用resnet50[17]作為CNN模塊,其最上層Pooling層輸出特征維度是D=1 024。該CNN在ILSVRC2012的1 000分類數據上預訓練好[14],top-1錯誤率為23.85%。所有輸入圖片大小均調為224×224。正如框架圖2所示,訓練階段FC層隨機初始化,語義遷移層則權重固定為屬性矩陣A,兩層均無偏置項。測試階段ZSL則將語義遷移層權重設為At,GZSL則為A并加上新類檢測機制。
新類檢測閾值γ一般根據實際數據集訓練情況選取。如果訓練類的每類樣本數量多,意味著已見類影響遠大于未見類,需要設置較大的γ。在屬性平衡正則化因子λ取0.1的情況下,本文3個數據集γ均取1.4。
訓練主要分為兩個階段:
1) 前3個epoch:由于CNN模塊已經預訓練好來提取ImageNet通用的視覺特征,可將CNN模塊參數凍結,用Adam優化訓練全連接FC層。
2) 全局訓練:這一階段訓練層數復雜,因此采用簡單的SGD優化,學習率為0.001,逐漸減小,minibatch大小為32。ZSL任務需要嚴格防止過擬合,為了提高泛化能力,權值衰減因子β設為0.005,且采取提前終止(early stopping)策略。
為了更好地對比和分析,我們按ABN網絡訓練,并在每一個訓練周期(epoch)對模型進行ZSL/GZSL測試。圖3、圖4分別表示了訓練過程中CUB和SUN數據集上ZSL/GZSL準確率的變化。圖中Training-ACC表示在訓練集上的分類準確率,val表示在可見類驗證集上的分類準確率,ZSL表示在未見類測試集上的ZSL準確率。tr、ts、H為GZSL指標,其中tr表示在可見類測試集上準確率,ts表示在未見類測試集上的GZSL準確率,H為tr和ts的調和平均數。

圖3 訓練過程中CUB數據集上ZSL/GZSL準確率的變化
分析圖3和圖4可知:
1) ZSL/GZSL測試集各項指標的波動情況與val保持一致,這是因為當val增加時,表示神經網絡學到了更好的圖像表示和屬性評分,從而在ZSL測試中也能有提高。這一現象告訴我們,在實際的零樣本學習任務中,可以借助可見類驗證集的準確率來選擇合適的ZSL模型。
2) 隨著訓練進行ZSL準確率一開始迅速提高,之后會在一定值附近出現較大波動。這是因為ZSL的訓練集可以看作一個極端不平衡的數據集,未見類的樣本不參加訓練,屬性平衡正則項有效地約束了可見類的過擬合現象,但也避免不了出現偶爾的大幅波動。因此,在ZSL實際應用中,建議保存訓練過程中每一個val極大值的模型參數,然后綜合選擇合適的最終模型參數。
我們參照文獻[7]將ABN的ZSL結果與最新文獻中的結果進行對比,如表2所示。

表2 不同方法在3個數據集上的ZSL結果對比
為了合理對比,我們在同一個預訓練模型resnet50上復現了Deep-SCoRe和DEM的結果。表2結果表明,我們提出的ABN模型在3個視覺屬性數據集上,都達到了當前的最好水平,且λ=0.1的屬性平衡約束對ZSL準確率在3個數據集上都有一定提高,而且遠遠超過了已有的深度ZSL方法。
同文獻[7]的數據集設置,在GZSL任務上不同方法的實驗結果如表3和表4所示。

表3 不同方法在SUN和AWA2上的GZSL結果對比

表4 不同方法在CUB上的GZSL結果對比
表3和表4結果表明,我們提出的ABN模型對GZSL的各項指標,均有非常大的提升,其中λ=0.1的屬性平衡約束起了非常大的作用。這表明在GZSL訓練中添加屬性平衡約束,能夠很有效地避免過擬合,引導神經網絡學到更全面的圖像與各類別屬性之間的關聯。
我們提出的基于屬性平衡正則化的深度零樣本學習框架ABN,在ZSL和GZSL任務上均取得了當前最好的結果,尤其是在GZSL任務上,相對于不帶屬性平衡約束,準確率有了非常大的提升。而且ABN框架簡單,便于實現和擴展,而且可以很方便地改進為在線學習的框架,以應用于實際場景中。