楊晨曦,左劼,孫頻捷
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.上海政法學(xué)院,上海200000)
2009 年,Lampert C H 等人首次提出零樣本學(xué)習(xí)(Zero-Shot Learning)[1]這一概念。這是一類特殊的機(jī)器學(xué)習(xí)問(wèn)題,它所要解決的問(wèn)題是在測(cè)試階段推斷出訓(xùn)練階段從未出現(xiàn)過(guò)的類別,換句話說(shuō),訓(xùn)練集類別和測(cè)試集類別是相互正交的,分別稱為已見(jiàn)類和未見(jiàn)類。該問(wèn)題如果使用傳統(tǒng)的判別式分類模型會(huì)面臨極其嚴(yán)重的過(guò)擬合,所以通常做法是依靠輔助信息,作為語(yǔ)義向量嵌入中間語(yǔ)義層,通過(guò)學(xué)習(xí)一個(gè)投影函數(shù)來(lái)進(jìn)行視覺(jué)特征空間與語(yǔ)義空間的相互映射,從而實(shí)現(xiàn)知識(shí)遷移(Knowledge Transfer)并達(dá)到跨域泛化的目的。該領(lǐng)域有一個(gè)核心難題,稱為映射域偏移問(wèn)題(Projection Domain Shift)[2]。2017 年,Kodirov E 等人首次提出將自編碼器(AutoEncoder)應(yīng)用到零樣本學(xué)習(xí)問(wèn)題上[3],通過(guò)歸納式學(xué)習(xí)(Inductive Learning)的方式解決映射域偏移問(wèn)題。在此之后,出現(xiàn)了大量基于自編碼器及其變種的零樣本學(xué)習(xí)的研究,其中大部分研究在公開(kāi)數(shù)據(jù)集上都取得了較為優(yōu)秀的效果,進(jìn)一步證明了自編碼器在零樣本學(xué)習(xí)問(wèn)題上的有效性和研究?jī)r(jià)值。
在零樣本學(xué)習(xí)領(lǐng)域,一些研究采用雙線性兼容框架來(lái)建模視覺(jué)特征向量與類別語(yǔ)義向量的關(guān)系。Frome A 等人使用成對(duì)排序公式學(xué)習(xí)雙線性模型的參數(shù)[4];Romera-Paredes B 等人使用將兼容性模型映射到類別空間[5];Xian Y 等人使用能夠產(chǎn)生分段線性決策邊界的多個(gè)雙線性模型[6]。雖然雙線性兼容性模型簡(jiǎn)單優(yōu)雅,但在推理時(shí)語(yǔ)義受限,因此有部分研究嘗試通過(guò)嶺回歸將視覺(jué)特征向量映射到語(yǔ)義空間。Kodirov E 等人在映射特征上使用額外的重建約束來(lái)應(yīng)對(duì)映射域偏移問(wèn)題[7],這也是第一篇將自編碼器應(yīng)用于零樣本學(xué)習(xí)的論文;Zhang L 等人提出了從語(yǔ)義空間到視覺(jué)空間的逆向映射[8],用以解決樞紐點(diǎn)問(wèn)題,但這會(huì)丟失語(yǔ)義結(jié)構(gòu)。另有一些研究嘗試?yán)昧餍螌W(xué)習(xí)來(lái)解決零樣本學(xué)習(xí)問(wèn)題,Xu X 利用矩陣三因式分解來(lái)學(xué)習(xí)投影函數(shù)并能夠保留視覺(jué)空間和語(yǔ)義空間的基本流形結(jié)構(gòu)[9]。
自編碼器[10]這一概念很早之前就被提出,它是神經(jīng)網(wǎng)絡(luò)的一種,能夠讓輸入和輸出近似地保持一致。由兩部分組成:編碼器和解碼器。前者可以表示為函數(shù)h=f(x),后者可以表示為函數(shù)r=g(h),整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)可以表示為r=f(g(h)),并且加上r=x 的約束。在這種編碼器-解碼器的結(jié)構(gòu)以及重構(gòu)約束下,我們可以在提取訓(xùn)練數(shù)據(jù)的顯著性特征的同時(shí),盡可能不丟失原有數(shù)據(jù)的信息。
語(yǔ)義自編碼器(SAE)[3]是第一篇將自編碼器用于零樣本學(xué)習(xí)的論文。該方法引入了一個(gè)線性且對(duì)稱的編碼器-解碼器結(jié)構(gòu),其中編碼器負(fù)責(zé)將視覺(jué)特征向量投影到語(yǔ)義空間中,這和現(xiàn)有的零樣本學(xué)習(xí)模型相類似。和其他模型不同點(diǎn)在于解碼器額外施加了一個(gè)重構(gòu)約束,使得投影后的隱變量能夠通過(guò)解碼器恢復(fù)原有的特征。映射域偏移問(wèn)題能夠一定程度上通過(guò)重構(gòu)約束來(lái)緩解,使得經(jīng)過(guò)已見(jiàn)類訓(xùn)練后的投影函數(shù)能夠更好地在未見(jiàn)類中泛化。
該方法提出了一個(gè)最簡(jiǎn)單的自編碼器結(jié)構(gòu),只包含一個(gè)隱藏層,由編碼器和解碼器共享。給定輸入X ∈?d×N,包含N 個(gè)D 維特征向量。通過(guò)投影矩陣W ∈?k×d,將特征向量投影到k 維的隱變量空間(Latent Space),其中隱變量的向量組表示為S ∈?k×N。之后通過(guò)另一個(gè)投影矩陣W*∈?d×k,將隱變量投影回特征空間,最終輸出X^ ∈?d×N。值得注意的是k<d,即語(yǔ)義空間為低維空間,隱變量表示對(duì)輸入特征表示進(jìn)行了降維。該方法希望X^ 與X 盡可能相似,即重構(gòu)誤差盡可能小。故損失函數(shù)定義為:
傳統(tǒng)的自編碼器是非監(jiān)督學(xué)習(xí),而SAE 是監(jiān)督式學(xué)習(xí)的自編碼器,由SAE 學(xué)習(xí)到的隱變量空間具有明確的語(yǔ)義含義。達(dá)到這一目的的方法是強(qiáng)制隱變量空間與語(yǔ)義空間保持一致,也就是說(shuō)在訓(xùn)練階段隱變量空間成為了可以直接被觀測(cè)到的顯性變量空間。另外,為了能夠應(yīng)用于大規(guī)模數(shù)據(jù),需要進(jìn)一步簡(jiǎn)化模型,故定義W*=WT。由此,加上額外約束的損失函數(shù)定義為:
對(duì)式(2)的損失函數(shù)進(jìn)行最優(yōu)化求解。為了便于求解,首先將WX=S 的硬約束重定義為軟約束,式(2)轉(zhuǎn)化為:
其中前項(xiàng)為解碼器約束,后項(xiàng)為編碼器約束,λ 負(fù)責(zé)控制兩項(xiàng)的重要度。式(3)是一個(gè)標(biāo)準(zhǔn)的二次型凸函數(shù),有著全局最優(yōu)解。對(duì)式(3)求導(dǎo)并令導(dǎo)數(shù)等于零,可以得到:
這是一個(gè)標(biāo)準(zhǔn)的西爾維斯特方程,可以通過(guò)巴特爾斯·斯圖爾特算法直接求出W 的閉式解。利用求解到的投影矩陣,可以通過(guò)兩種方法進(jìn)行求解:
第一種方法是利用編碼器投影矩陣,實(shí)現(xiàn)特征空間到語(yǔ)義空間的投影,通過(guò)對(duì)嵌入語(yǔ)義表示和語(yǔ)義原型進(jìn)行相似度度量,度量距離最近的語(yǔ)義原型對(duì)應(yīng)的類別是我們最終求解的類別。形式化描述如下:
第二種方法是利用解碼器投影矩陣,實(shí)現(xiàn)語(yǔ)義空間到特征空間的投影,語(yǔ)義原型投影到特征空間并和原有特征進(jìn)行相似度度量,度量距離最近的語(yǔ)義原型投影對(duì)應(yīng)的類別是最終求解的類別。形式化描述如下:
傳統(tǒng)的零樣本學(xué)習(xí)方法通常都是將類別在語(yǔ)義空間中表示成一個(gè)點(diǎn),這樣做會(huì)導(dǎo)致模型無(wú)法應(yīng)對(duì)類內(nèi)方差。為了解決這一問(wèn)題,零樣本變分自編碼器模型[11]將可見(jiàn)類和未見(jiàn)類表示成類別特定的隱空間分布,并將隱空間分布作為VAE 的先驗(yàn)概率分布。訓(xùn)練階段,只使用可見(jiàn)類進(jìn)行端到端的訓(xùn)練。測(cè)試階段,將最大化變分下界的隱變量對(duì)應(yīng)的類別作為測(cè)試樣本的類別。
變分自編碼器(VAE)在2013 年,由Kingma D P 等人提出[12],是一個(gè)深度生成模型,能夠通過(guò)隱變量學(xué)習(xí)復(fù)雜的概率密度模型。標(biāo)準(zhǔn)的VAE 模型使用標(biāo)準(zhǔn)正態(tài)分布作為隱向量的先驗(yàn)假設(shè),可以表示為N( 0,I ),而零樣本變分自編碼器模型與標(biāo)準(zhǔn)VAE 不同,它假設(shè)隱向量服從,且:
不引入額外復(fù)雜度的情況下,假設(shè)fμ(·)和fσ(·)為線性函數(shù),即有了隱向量z 的類別特定的先驗(yàn)分布,便可以定義該框架下的變分下界:
其中隱向量先驗(yàn)概率分布參數(shù)ψ,VAE 編碼器參數(shù)θ,VAE 解碼器參數(shù)φ 均是可學(xué)習(xí)參數(shù)。
式(2)鼓勵(lì)編碼器生成的變分概率分布qθ( )z|x 與特定類別的隱向量概率分布pψ( )z|a 盡可能靠近。但由于最終任務(wù)是分類,故在目標(biāo)函數(shù)式(2)的基礎(chǔ)上加上最大邊界損失促使變分概率分布和其他類別的隱向量概率分布相遠(yuǎn)離。加上邊界正則化項(xiàng)之后,得到了最終的損失函數(shù):
訓(xùn)練階段通過(guò)對(duì)損失函數(shù)式(10)做最大化求解。當(dāng)參數(shù)學(xué)習(xí)完畢之后,進(jìn)入測(cè)試階段。給定未見(jiàn)類的一個(gè)測(cè)試集樣本,通過(guò)求解式(11)便能得到樣本的最佳分類:
通常零樣本學(xué)習(xí)有兩種空間投影的方式,第一種是將視覺(jué)特征向量投影到語(yǔ)義空間,第二種是將語(yǔ)義原型向量投影到視覺(jué)特征空間。前者的優(yōu)勢(shì)在于可以完整地保留嵌入特征之間的語(yǔ)義關(guān)系,但存在一個(gè)嚴(yán)重的問(wèn)題,那便是樞紐點(diǎn)問(wèn)題(Hubness Problem),這是高維空間固有的問(wèn)題,表現(xiàn)為在高維空間中,某些點(diǎn)會(huì)成為大多數(shù)點(diǎn)的最近鄰點(diǎn),這會(huì)導(dǎo)致識(shí)別或者分類的精度降低。所以一些研究開(kāi)始嘗試第二種投影方式,也就是將語(yǔ)義向量投影到視覺(jué)特征張成的空間中,目的就是消除樞紐點(diǎn)帶來(lái)的影響。但這種投影方式存在另一個(gè)問(wèn)題,那就是無(wú)法保留語(yǔ)義空間的結(jié)構(gòu),因?yàn)橐曈X(jué)特征空間是在one-hot 類標(biāo)簽監(jiān)督下訓(xùn)練而成,類別之間并不包含任何語(yǔ)義性質(zhì)。
語(yǔ)義關(guān)系保留自編碼器模型[13]的提出,就是為了同時(shí)解決樞紐點(diǎn)消除、語(yǔ)義空間結(jié)構(gòu)保留這兩大問(wèn)題。它的問(wèn)題定義和傳統(tǒng)的零樣本學(xué)習(xí)保持一致,用來(lái)表示訓(xùn)練集樣本,用來(lái)表示對(duì)應(yīng)類別的語(yǔ)義向量,可以是屬性向量,也可以是詞向量,a 代表語(yǔ)義向量的維度。在此基礎(chǔ)上,創(chuàng)新性地定義了語(yǔ)義向量間的關(guān)系,將關(guān)系分為三類:相同、語(yǔ)義相似、語(yǔ)義不相似。通過(guò)δmn=s(ym,yn)表示兩個(gè)語(yǔ)義向量的相似度,通過(guò)余弦相似度來(lái)做度量:
當(dāng)δmn=1 時(shí),代表語(yǔ)義相同;當(dāng)τ ≤δmn<1,代表語(yǔ)義相似;當(dāng)δmn<τ,代表語(yǔ)義不相似。其中τ ∈(-1,1),表示閾值。為了不失一般性,固定τ=0。
訓(xùn)練階段,首先從訓(xùn)練集中通過(guò)類似于triplet loss的在線負(fù)樣本抽取方法,抽取三元組(yi,yj,yk),分別對(duì)應(yīng)于三種語(yǔ)義關(guān)系,之后分三部分定義損失函數(shù)。第一部分損失函數(shù)針對(duì)相同語(yǔ)義和不相似語(yǔ)義,期望的情況是嵌入視覺(jué)特征空間的語(yǔ)義向量f(yr;θf(wàn)),和相同語(yǔ)義的視覺(jué)特征xi應(yīng)該有較高的語(yǔ)義相似度,而和不相似語(yǔ)義的xk應(yīng)該有較低的語(yǔ)義相似度。故第一部分的損失函數(shù)定義為:
第二部分損失函數(shù)針對(duì)相似語(yǔ)義,相似語(yǔ)義的兩個(gè)向量的語(yǔ)義相似度需要控制在一個(gè)范圍,這個(gè)范圍便是:
這樣既可以保證相似語(yǔ)義的嵌入特征距離盡可能近,又不會(huì)影響相同語(yǔ)義的度量。基于此,第二部分損失函數(shù)定義為:
第三部分的損失函數(shù)來(lái)自于解碼器的重構(gòu)損失,用于解決映射域偏移問(wèn)題,定義如下:
結(jié)合三部分的損失函數(shù),最終的損失函數(shù)定義如下,其中B 代表batch-size:
當(dāng)模型訓(xùn)練好之后,進(jìn)入測(cè)試階段,給定未見(jiàn)類的測(cè)試集樣本xμ,通過(guò)如下表達(dá)式進(jìn)行類別推斷:
本文綜述了自編碼器應(yīng)用于零樣本學(xué)習(xí)的三種比較有代表性的方法。三者的共同點(diǎn)在于:均使用解碼器應(yīng)對(duì)映射域偏移問(wèn)題,使用編碼器實(shí)現(xiàn)特征嵌入,達(dá)到知識(shí)遷移的目的。不同點(diǎn)在于:SAE 是一個(gè)最基礎(chǔ)的線性模型,可以直接求閉式解,算法復(fù)雜度低使之能夠應(yīng)用于大規(guī)模零樣本識(shí)別問(wèn)題;零樣本變分自編碼器是一個(gè)基于隨機(jī)性建模的深度生成模型,通過(guò)概率性質(zhì)來(lái)應(yīng)對(duì)類內(nèi)方差問(wèn)題;而語(yǔ)義關(guān)系保留自編碼器模型旨在同時(shí)解決樞紐點(diǎn)消除、語(yǔ)義空間結(jié)構(gòu)保留這兩大問(wèn)題。從以上內(nèi)容可以看出,基于自編碼器的零樣本學(xué)習(xí)方法受到了廣泛的關(guān)注,相關(guān)研究呈現(xiàn)的實(shí)驗(yàn)效果也充分證明了其有效性與進(jìn)一步的研究?jī)r(jià)值。