楊晨曦,左劼,孫頻捷
(1.四川大學計算機學院,成都610065;2.上海政法學院,上海200000)
2009 年,Lampert C H 等人首次提出零樣本學習(Zero-Shot Learning)[1]這一概念。這是一類特殊的機器學習問題,它所要解決的問題是在測試階段推斷出訓練階段從未出現過的類別,換句話說,訓練集類別和測試集類別是相互正交的,分別稱為已見類和未見類。該問題如果使用傳統的判別式分類模型會面臨極其嚴重的過擬合,所以通常做法是依靠輔助信息,作為語義向量嵌入中間語義層,通過學習一個投影函數來進行視覺特征空間與語義空間的相互映射,從而實現知識遷移(Knowledge Transfer)并達到跨域泛化的目的。該領域有一個核心難題,稱為映射域偏移問題(Projection Domain Shift)[2]。2017 年,Kodirov E 等人首次提出將自編碼器(AutoEncoder)應用到零樣本學習問題上[3],通過歸納式學習(Inductive Learning)的方式解決映射域偏移問題。在此之后,出現了大量基于自編碼器及其變種的零樣本學習的研究,其中大部分研究在公開數據集上都取得了較為優秀的效果,進一步證明了自編碼器在零樣本學習問題上的有效性和研究價值。
在零樣本學習領域,一些研究采用雙線性兼容框架來建模視覺特征向量與類別語義向量的關系。Frome A 等人使用成對排序公式學習雙線性模型的參數[4];Romera-Paredes B 等人使用將兼容性模型映射到類別空間[5];Xian Y 等人使用能夠產生分段線性決策邊界的多個雙線性模型[6]。雖然雙線性兼容性模型簡單優雅,但在推理時語義受限,因此有部分研究嘗試通過嶺回歸將視覺特征向量映射到語義空間。Kodirov E 等人在映射特征上使用額外的重建約束來應對映射域偏移問題[7],這也是第一篇將自編碼器應用于零樣本學習的論文;Zhang L 等人提出了從語義空間到視覺空間的逆向映射[8],用以解決樞紐點問題,但這會丟失語義結構。另有一些研究嘗試利用流形學習來解決零樣本學習問題,Xu X 利用矩陣三因式分解來學習投影函數并能夠保留視覺空間和語義空間的基本流形結構[9]。
自編碼器[10]這一概念很早之前就被提出,它是神經網絡的一種,能夠讓輸入和輸出近似地保持一致。由兩部分組成:編碼器和解碼器。前者可以表示為函數h=f(x),后者可以表示為函數r=g(h),整個網絡結構可以表示為r=f(g(h)),并且加上r=x 的約束。在這種編碼器-解碼器的結構以及重構約束下,我們可以在提取訓練數據的顯著性特征的同時,盡可能不丟失原有數據的信息。
語義自編碼器(SAE)[3]是第一篇將自編碼器用于零樣本學習的論文。該方法引入了一個線性且對稱的編碼器-解碼器結構,其中編碼器負責將視覺特征向量投影到語義空間中,這和現有的零樣本學習模型相類似。和其他模型不同點在于解碼器額外施加了一個重構約束,使得投影后的隱變量能夠通過解碼器恢復原有的特征。映射域偏移問題能夠一定程度上通過重構約束來緩解,使得經過已見類訓練后的投影函數能夠更好地在未見類中泛化。
該方法提出了一個最簡單的自編碼器結構,只包含一個隱藏層,由編碼器和解碼器共享。給定輸入X ∈?d×N,包含N 個D 維特征向量。通過投影矩陣W ∈?k×d,將特征向量投影到k 維的隱變量空間(Latent Space),其中隱變量的向量組表示為S ∈?k×N。之后通過另一個投影矩陣W*∈?d×k,將隱變量投影回特征空間,最終輸出X^ ∈?d×N。值得注意的是k<d,即語義空間為低維空間,隱變量表示對輸入特征表示進行了降維。該方法希望X^ 與X 盡可能相似,即重構誤差盡可能小。故損失函數定義為:

傳統的自編碼器是非監督學習,而SAE 是監督式學習的自編碼器,由SAE 學習到的隱變量空間具有明確的語義含義。達到這一目的的方法是強制隱變量空間與語義空間保持一致,也就是說在訓練階段隱變量空間成為了可以直接被觀測到的顯性變量空間。另外,為了能夠應用于大規模數據,需要進一步簡化模型,故定義W*=WT。由此,加上額外約束的損失函數定義為:

對式(2)的損失函數進行最優化求解。為了便于求解,首先將WX=S 的硬約束重定義為軟約束,式(2)轉化為:

其中前項為解碼器約束,后項為編碼器約束,λ 負責控制兩項的重要度。式(3)是一個標準的二次型凸函數,有著全局最優解。對式(3)求導并令導數等于零,可以得到:


這是一個標準的西爾維斯特方程,可以通過巴特爾斯·斯圖爾特算法直接求出W 的閉式解。利用求解到的投影矩陣,可以通過兩種方法進行求解:
第一種方法是利用編碼器投影矩陣,實現特征空間到語義空間的投影,通過對嵌入語義表示和語義原型進行相似度度量,度量距離最近的語義原型對應的類別是我們最終求解的類別。形式化描述如下:

第二種方法是利用解碼器投影矩陣,實現語義空間到特征空間的投影,語義原型投影到特征空間并和原有特征進行相似度度量,度量距離最近的語義原型投影對應的類別是最終求解的類別。形式化描述如下:

傳統的零樣本學習方法通常都是將類別在語義空間中表示成一個點,這樣做會導致模型無法應對類內方差。為了解決這一問題,零樣本變分自編碼器模型[11]將可見類和未見類表示成類別特定的隱空間分布,并將隱空間分布作為VAE 的先驗概率分布。訓練階段,只使用可見類進行端到端的訓練。測試階段,將最大化變分下界的隱變量對應的類別作為測試樣本的類別。
變分自編碼器(VAE)在2013 年,由Kingma D P 等人提出[12],是一個深度生成模型,能夠通過隱變量學習復雜的概率密度模型。標準的VAE 模型使用標準正態分布作為隱向量的先驗假設,可以表示為N( 0,I ),而零樣本變分自編碼器模型與標準VAE 不同,它假設隱向量服從,且:

不引入額外復雜度的情況下,假設fμ(·)和fσ(·)為線性函數,即有了隱向量z 的類別特定的先驗分布,便可以定義該框架下的變分下界:

其中隱向量先驗概率分布參數ψ,VAE 編碼器參數θ,VAE 解碼器參數φ 均是可學習參數。
式(2)鼓勵編碼器生成的變分概率分布qθ( )z|x 與特定類別的隱向量概率分布pψ( )z|a 盡可能靠近。但由于最終任務是分類,故在目標函數式(2)的基礎上加上最大邊界損失促使變分概率分布和其他類別的隱向量概率分布相遠離。加上邊界正則化項之后,得到了最終的損失函數:

訓練階段通過對損失函數式(10)做最大化求解。當參數學習完畢之后,進入測試階段。給定未見類的一個測試集樣本,通過求解式(11)便能得到樣本的最佳分類:

通常零樣本學習有兩種空間投影的方式,第一種是將視覺特征向量投影到語義空間,第二種是將語義原型向量投影到視覺特征空間。前者的優勢在于可以完整地保留嵌入特征之間的語義關系,但存在一個嚴重的問題,那便是樞紐點問題(Hubness Problem),這是高維空間固有的問題,表現為在高維空間中,某些點會成為大多數點的最近鄰點,這會導致識別或者分類的精度降低。所以一些研究開始嘗試第二種投影方式,也就是將語義向量投影到視覺特征張成的空間中,目的就是消除樞紐點帶來的影響。但這種投影方式存在另一個問題,那就是無法保留語義空間的結構,因為視覺特征空間是在one-hot 類標簽監督下訓練而成,類別之間并不包含任何語義性質。
語義關系保留自編碼器模型[13]的提出,就是為了同時解決樞紐點消除、語義空間結構保留這兩大問題。它的問題定義和傳統的零樣本學習保持一致,用來表示訓練集樣本,用來表示對應類別的語義向量,可以是屬性向量,也可以是詞向量,a 代表語義向量的維度。在此基礎上,創新性地定義了語義向量間的關系,將關系分為三類:相同、語義相似、語義不相似。通過δmn=s(ym,yn)表示兩個語義向量的相似度,通過余弦相似度來做度量:

當δmn=1 時,代表語義相同;當τ ≤δmn<1,代表語義相似;當δmn<τ,代表語義不相似。其中τ ∈(-1,1),表示閾值。為了不失一般性,固定τ=0。
訓練階段,首先從訓練集中通過類似于triplet loss的在線負樣本抽取方法,抽取三元組(yi,yj,yk),分別對應于三種語義關系,之后分三部分定義損失函數。第一部分損失函數針對相同語義和不相似語義,期望的情況是嵌入視覺特征空間的語義向量f(yr;θf),和相同語義的視覺特征xi應該有較高的語義相似度,而和不相似語義的xk應該有較低的語義相似度。故第一部分的損失函數定義為:

第二部分損失函數針對相似語義,相似語義的兩個向量的語義相似度需要控制在一個范圍,這個范圍便是:

這樣既可以保證相似語義的嵌入特征距離盡可能近,又不會影響相同語義的度量。基于此,第二部分損失函數定義為:

第三部分的損失函數來自于解碼器的重構損失,用于解決映射域偏移問題,定義如下:

結合三部分的損失函數,最終的損失函數定義如下,其中B 代表batch-size:

當模型訓練好之后,進入測試階段,給定未見類的測試集樣本xμ,通過如下表達式進行類別推斷:

本文綜述了自編碼器應用于零樣本學習的三種比較有代表性的方法。三者的共同點在于:均使用解碼器應對映射域偏移問題,使用編碼器實現特征嵌入,達到知識遷移的目的。不同點在于:SAE 是一個最基礎的線性模型,可以直接求閉式解,算法復雜度低使之能夠應用于大規模零樣本識別問題;零樣本變分自編碼器是一個基于隨機性建模的深度生成模型,通過概率性質來應對類內方差問題;而語義關系保留自編碼器模型旨在同時解決樞紐點消除、語義空間結構保留這兩大問題。從以上內容可以看出,基于自編碼器的零樣本學習方法受到了廣泛的關注,相關研究呈現的實驗效果也充分證明了其有效性與進一步的研究價值。