網(wǎng)上有一些關(guān)于零樣本學(xué)習(xí)的討論,但都有其局限性,不全面或者太學(xué)術(shù),我學(xué)習(xí)之后,對(duì)其進(jìn)行加工,加上我自己的的理解,然后對(duì)后來(lái)想要了解零樣本學(xué)習(xí)的同學(xué),可能會(huì)有幫助,至少能節(jié)省點(diǎn)時(shí)間。相比于網(wǎng)上的各種五花八門(mén)的介紹,我爭(zhēng)取做到更全面,更通俗。
為什么我開(kāi)始研究零樣本學(xué)習(xí)?是個(gè)巧合。之前我沒(méi)聽(tīng)說(shuō)過(guò),上個(gè)學(xué)期,在一次組會(huì)上,聽(tīng)一個(gè)師姐做匯報(bào),講她關(guān)于小樣本學(xué)習(xí)的研究。聽(tīng)了介紹,我瞬間被吸引,很感興趣,但平時(shí)忙于上課,也一直沒(méi)去深入了解,(懶)。直到前幾天,在某文章里看到零樣本學(xué)習(xí),這次我有時(shí)間了!于是,就深入了解了下(看了幾篇文獻(xiàn)hhhh)。本人水平有限,難免疏漏,還請(qǐng)讀者多多指正。
01
為什么要搞零樣本學(xué)習(xí)?(why)
(1)深度學(xué)習(xí)(deep learning)已經(jīng)在各個(gè)領(lǐng)域取得了廣泛的應(yīng)用,例如在圖像分類(lèi)問(wèn)題下,其準(zhǔn)確率目前可以達(dá)到不錯(cuò)的成績(jī)。然而,deep learning是一種data hungry的技術(shù),高的準(zhǔn)確率建立在預(yù)先給模型“喂了”大量的數(shù)據(jù),即,需要大量的標(biāo)注樣本才能發(fā)揮作用,大多數(shù)方法是通過(guò)有標(biāo)簽的訓(xùn)練集進(jìn)行學(xué)習(xí),側(cè)重于對(duì)已經(jīng)在訓(xùn)練中出現(xiàn)過(guò)標(biāo)簽類(lèi)別的樣本進(jìn)行分類(lèi)。然而在現(xiàn)實(shí)場(chǎng)景中,許多任務(wù)需要對(duì)模型之前從未見(jiàn)過(guò)的實(shí)例類(lèi)別進(jìn)行分類(lèi),這樣就使得原有訓(xùn)練方法不再適用。因?yàn)椋F(xiàn)實(shí)世界中,有很多問(wèn)題是沒(méi)有這么多的標(biāo)注數(shù)據(jù)的,或者獲取標(biāo)注數(shù)據(jù)的成本非常大。所以,我們思考,當(dāng)標(biāo)注數(shù)據(jù)量比較少時(shí)、甚至樣本為零時(shí),還能不能繼續(xù)?我們將這樣的方法稱(chēng)為小樣本學(xué)習(xí)Few-Shot Learning,相應(yīng)的,如果只有一個(gè)標(biāo)注樣本,稱(chēng)One-Shot Learning,如果不對(duì)該類(lèi)進(jìn)行樣本標(biāo)注學(xué)習(xí),就是零樣本學(xué)習(xí)Zero-Shot Learning.(2)人類(lèi)學(xué)習(xí)的過(guò)程包含了大量零樣本學(xué)習(xí)的思路,也就是說(shuō)一個(gè)小孩子從來(lái)沒(méi)見(jiàn)過(guò)一些類(lèi)別的東西,在家長(zhǎng)和老師的描述之后,他也能在一堆圖片里找出那件東西。
在2016 年中國(guó)計(jì)算機(jī)大會(huì)上,譚鐵牛院士指出,生物啟發(fā)的模式識(shí)別是一個(gè)非常值得關(guān)注的研究方向,“比如人識(shí)別一個(gè)動(dòng)物(并不需要看到過(guò)該動(dòng)物),只需要一句話(huà)的描述就能識(shí)別出來(lái)該動(dòng)物”,比如被廣泛引用的人類(lèi)識(shí)別斑馬的例子:假設(shè)一個(gè)人從來(lái)沒(méi)有見(jiàn)過(guò)斑馬這種動(dòng)物,即斑馬對(duì)這個(gè)人來(lái)說(shuō)是未見(jiàn)類(lèi)別,但他知道斑馬是一種身上有著像熊貓一樣的黑白顏色的、像老虎一樣的條紋的、外形像馬的動(dòng)物,即熊貓、老虎、馬是已見(jiàn)類(lèi)別。那么當(dāng)他第一次看到斑馬的時(shí)候, 可以通過(guò)先驗(yàn)知識(shí)和已見(jiàn)類(lèi),識(shí)別出這是斑馬。人類(lèi)通過(guò)語(yǔ)義知識(shí)作為輔助信息,識(shí)別了未見(jiàn)類(lèi),零樣本學(xué)習(xí)也正是基于這樣的思想、基于人類(lèi)學(xué)習(xí)過(guò)程,進(jìn)行算法的研究。
02
什么是零樣本學(xué)習(xí)?(what)
零樣本學(xué)習(xí)zero-shot learning,是最具挑戰(zhàn)的機(jī)器識(shí)別方法之一。
定義:(數(shù)學(xué)描述在此略過(guò))2019年冀中等人在綜述文章中將零樣本分類(lèi)的定義分為廣義和狹義兩種:
零樣本分類(lèi)的技術(shù)目前正處于高速發(fā)展時(shí)期, 所涉及的具體應(yīng)用已經(jīng)從最初的圖像分類(lèi)任務(wù)擴(kuò)展到了其他計(jì)算機(jī)視覺(jué)任務(wù)乃至自然語(yǔ)言處理等多個(gè)相關(guān)領(lǐng)域。 對(duì)此, 本文將其稱(chēng)為廣義零樣本分類(lèi)。 相應(yīng)地, 我們將針對(duì)圖像分類(lèi)任務(wù)的零樣本分類(lèi)任務(wù)稱(chēng)為狹義零樣本分類(lèi)。
在冀中和 WEI WANG的文章中,零樣本學(xué)習(xí)均被視為遷移學(xué)習(xí)的一個(gè)特例。零樣本學(xué)習(xí)中,源特征空間是訓(xùn)練樣本的特征空間和目標(biāo)特征空間是測(cè)試樣本的特征空間,這兩者是相同的。但是源標(biāo)注空間和目標(biāo)標(biāo)注空間分別是可見(jiàn)類(lèi)別和未見(jiàn)類(lèi)別,兩者是不同的。因此零樣本學(xué)習(xí)屬于異質(zhì)遷移學(xué)習(xí)(heterogeneous transfer learning)。一個(gè)最通俗的例子就是在本文第1部分里提得到的斑馬的例子。
零樣本學(xué)習(xí)的實(shí)現(xiàn)與另外兩個(gè)研究領(lǐng)域密不可分,其一是表征學(xué)習(xí)(representation learning),其二是度量學(xué)習(xí)(metric learning)。表征學(xué)習(xí)是指通過(guò)對(duì)數(shù)據(jù)進(jìn)行變換從而提取數(shù)據(jù)中的有效信息的一種學(xué)習(xí)方式,涉及到人工智能相關(guān)的諸多領(lǐng)域,如信號(hào)處理、目標(biāo)識(shí)別、自然語(yǔ)言處理,以及遷移學(xué)習(xí)等。度量學(xué)習(xí)通常建立在表征學(xué)習(xí)的基礎(chǔ)之上,其本質(zhì)是根據(jù)不同的任務(wù),根據(jù)特定空間中的數(shù)據(jù),自主學(xué)習(xí)出針對(duì)某個(gè)特定任務(wù)的距離度量函數(shù),目前已被廣泛應(yīng)用于諸多計(jì)算機(jī)視覺(jué)相關(guān)的任務(wù), 如人臉識(shí)別、圖像檢索、目標(biāo)跟蹤、多模態(tài)匹配等。對(duì)于零樣本學(xué)習(xí),在獲取到合適的數(shù)據(jù)表征空間之后,則需要對(duì)跨模態(tài)樣本間的距離度量進(jìn)行學(xué)習(xí),目的是保證嵌入到語(yǔ)義空間后樣本間的語(yǔ)義相似度關(guān)系得以保持。綜上所述,零樣本學(xué)習(xí)可以看作是在進(jìn)行表征學(xué)習(xí)和度量學(xué)習(xí)的基礎(chǔ)上,通過(guò)借助輔助信息(屬性或文本) 實(shí)現(xiàn)跨模態(tài)知識(shí)的遷移,從而完成可見(jiàn)類(lèi)信息到未見(jiàn)類(lèi)信息推斷的遷移學(xué)習(xí)過(guò)程。
03
之前的學(xué)者們都是怎么做的?(how)
Zero-Shot Learning 這一問(wèn)題和概念的提出,源于2009年Lampert在CVPR上發(fā)表的Learning to Detect Unseen Object Class by Between-Class Attribute Transfer這一篇文章。同樣是這一年,Hinton等在NIPS也上發(fā)表了一篇Zero Shot Learning with Semantic Output Codes的文章。這算得上零樣本學(xué)習(xí)開(kāi)宗明義的文章,所以先介紹這兩篇。Lampert在論文中所提到的Between-Class Attribute Transfer,通常我們做有監(jiān)督學(xué)習(xí)的思路,是實(shí)現(xiàn)數(shù)據(jù)的特征空間到數(shù)據(jù)標(biāo)簽之間的映射,而這里,我們利用數(shù)據(jù)特征預(yù)測(cè)的卻是樣本的某一屬性。類(lèi)間屬性遷移應(yīng)用到上文提到的斑馬案例,見(jiàn)下圖:
Between-Class Attribute Transfer的核心思想在于:
雖然物體的類(lèi)別不同,但是物體間存在相同的屬性,提煉出每一類(lèi)別對(duì)應(yīng)的屬性并利用若干個(gè)學(xué)習(xí)器學(xué)習(xí)。在測(cè)試時(shí)對(duì)測(cè)試數(shù)據(jù)的屬性預(yù)測(cè),再將預(yù)測(cè)出的屬性組合,對(duì)應(yīng)到類(lèi)別,實(shí)現(xiàn)對(duì)測(cè)試數(shù)據(jù)的類(lèi)別預(yù)測(cè)。Lampert在該論文中給出了兩種屬性預(yù)測(cè)的結(jié)構(gòu):DAP和IAP。
直接屬性預(yù)測(cè) Direct attribute prediction (DAP)
這一方法先將數(shù)據(jù)從特征空間映射到中間層的屬性向量層,屬性向量層的標(biāo)簽是通過(guò)收集來(lái)的每一類(lèi)特征的總結(jié),比如是否有尾巴,有幾只腳等等,通過(guò)利用數(shù)據(jù)預(yù)測(cè)屬性,再通過(guò)屬性映射到標(biāo)簽來(lái)實(shí)現(xiàn)對(duì)于未知類(lèi)別的預(yù)測(cè),這一方法也是接受和應(yīng)用最為廣泛的一種。
間接屬性預(yù)測(cè) Indirect attribute prediction (IAP)
這一方法使用了兩層標(biāo)簽,屬性層作為中間層,在實(shí)際中使用較少,這里不多做介紹
Hinton等在2009年的Zero-shot learning with semantic output codes這篇論文里,提到的語(yǔ)意輸出編碼方式,思想其實(shí)與DAP的思路類(lèi)似,也是在之前的特征空間與標(biāo)簽之間增加了一層,這里增加的一層不再是數(shù)據(jù)本身的屬性,而是標(biāo)簽本身的編碼,說(shuō)簡(jiǎn)單點(diǎn)就是NLP里面的詞向量(word2vec),通過(guò)將標(biāo)簽進(jìn)行詞向量的編碼,利用模型基于數(shù)據(jù)矩陣對(duì)編碼進(jìn)行預(yù)測(cè),得到結(jié)果之后,通過(guò)衡量輸出與各個(gè)類(lèi)別詞向量之間距離,判別樣本的類(lèi)別。
簡(jiǎn)單說(shuō)就是,該論文里使用詞向量來(lái)實(shí)現(xiàn)零樣本學(xué)習(xí)。如果我們將原先的表示類(lèi)別的詞(馬、熊貓、老虎等)編碼為詞向量,那么我們就可以用距離來(lái)衡量一個(gè)未知的詞向量的歸屬。
語(yǔ)義輸出編碼的核心思想在于:
將訓(xùn)練標(biāo)簽編碼為詞向量,基于訓(xùn)練數(shù)據(jù)和詞向量訓(xùn)練學(xué)習(xí)器。測(cè)試時(shí)輸入測(cè)試數(shù)據(jù),輸出為預(yù)測(cè)的詞向量,計(jì)算預(yù)測(cè)結(jié)果與未知類(lèi)別詞向量的距離,數(shù)據(jù)距離最近的類(lèi)別。(所以未知類(lèi)別的詞向量在此是已知的)由以上兩個(gè)模型,我們可以總結(jié)出一個(gè)零樣本學(xué)習(xí)的簡(jiǎn)單模式:
上圖中,images space和label space分別為初始的圖像空間和標(biāo)簽空間,在零樣本學(xué)習(xí)中,一般會(huì)通過(guò)一些方法將圖片映射到特征空間中,這個(gè)空間稱(chēng)為feature embedding ;同樣的標(biāo)簽也會(huì)被映射到一個(gè)label embedding 當(dāng)中,學(xué)習(xí)feature embedding 和label embedding 中的線(xiàn)性或非線(xiàn)性關(guān)系用于測(cè)試時(shí)的預(yù)測(cè)轉(zhuǎn)化取代之前的直接由images space 到 label space的學(xué)習(xí)。
冀中等在文獻(xiàn)[4]中,將零樣本學(xué)習(xí)的發(fā)展分為兩個(gè)階段,上文我們介紹的屬于第一階段,即提出階段,這個(gè)階段主流的研究思路是,利用“淺層視覺(jué)特征+ 屬性+ 傳統(tǒng)機(jī)器學(xué)習(xí)方法” 的分析模式;第2 階段的時(shí)間大致為2013-2019 年, 稱(chēng)為發(fā)展階段,這個(gè)階段的主流研究思路是利用“深度視覺(jué)特征+ 屬性/詞向量+ 傳統(tǒng)機(jī)器學(xué)習(xí)方法” 的分析模式。在這一階段,受益于深度學(xué)習(xí)技術(shù)的發(fā)展,特別是CNN模型、Word2Vec的提出,零樣本學(xué)習(xí)得到了較快的發(fā)展。
篇幅有限,在這里就先介紹Lampert和Hinton的一些思想和做法,這是比較基礎(chǔ)的也是一般的方法。其他最新的方法,有空再寫(xiě)一篇新的吧,不然這篇內(nèi)容寫(xiě)太多了。詳見(jiàn)參考文獻(xiàn)[5]。
介紹一下數(shù)據(jù)集:
在零樣本學(xué)習(xí)中, 最為常用的數(shù)據(jù)集是Animals with Attributes (AwA) 數(shù)據(jù)集,此外,在零樣本學(xué)習(xí)中廣泛應(yīng)用的屬性數(shù)據(jù)集還有三個(gè): Caltech-UCSD-Birds200-2111(CUB)、Attribute Pascal and Yahoo (aPY) 數(shù)據(jù)集 以及SUN attribute 數(shù)據(jù)集。這些數(shù)據(jù)集很容易下載到。
04
一些主要的挑戰(zhàn)?(challenge)從入門(mén)到放棄?哈哈哈哈,是的,有一些很難解決的問(wèn)題在這里。
雖然如前文所說(shuō),零樣本學(xué)習(xí)仍處于快速發(fā)展的階段,但零樣本學(xué)習(xí)由于其自身方法中存在的問(wèn)題,這些問(wèn)題使得零樣本學(xué)習(xí)的研究遇到很大的障礙。這三個(gè)障礙分別是廣義(泛化)零樣本學(xué)習(xí)(Generalized zero-shot learning)、樞紐化問(wèn)題(Hubness)、映射域偏移問(wèn)題(The projection domain shift problem)。下面簡(jiǎn)單介紹一下這幾個(gè)問(wèn)題:
(1) 廣義零樣本學(xué)習(xí)
在實(shí)際的應(yīng)用中, 目前的零樣本學(xué)習(xí)與現(xiàn)實(shí)應(yīng)用的學(xué)習(xí)環(huán)境,出現(xiàn)了一定程度的矛盾, 這是因?yàn)?,在零樣本學(xué)習(xí)的假設(shè)在測(cè)試階段,只有未見(jiàn)類(lèi)樣例出現(xiàn)。這在實(shí)際應(yīng)用中這種假設(shè)是不現(xiàn)實(shí)的,往往已見(jiàn)類(lèi)的樣例是現(xiàn)實(shí)世界中最為常見(jiàn)的樣例,而且,如果在訓(xùn)練階段已見(jiàn)類(lèi)樣本容易得到、未見(jiàn)類(lèi)樣本難以獲取, 那么在測(cè)試階段就也不應(yīng)只有未見(jiàn)類(lèi)樣例出現(xiàn)。所以, 為了讓零樣本學(xué)習(xí)真實(shí)的反應(yīng)實(shí)際應(yīng)用中的樣例識(shí)別場(chǎng)景, 零樣本學(xué)習(xí)模型應(yīng)對(duì)包括未見(jiàn)類(lèi)和已見(jiàn)類(lèi)的所有輸入樣例進(jìn)行識(shí)別,即大量的已見(jiàn)類(lèi)樣例中夾雜著少量的未見(jiàn)類(lèi)樣例,輸入樣例的可能類(lèi)標(biāo)簽大概率屬于已見(jiàn)類(lèi), 但也有可能屬于未見(jiàn)類(lèi)。如果在測(cè)試階段,模型可以準(zhǔn)確識(shí)別已見(jiàn)類(lèi)樣例,且可以識(shí)別從未見(jiàn)過(guò)的未見(jiàn)類(lèi)樣例,那么就認(rèn)為該模型實(shí)現(xiàn)了廣義零樣本學(xué)習(xí) 。
由于模型在訓(xùn)練時(shí),只使用了已見(jiàn)類(lèi)樣本進(jìn)行訓(xùn)練, 且已見(jiàn)類(lèi)的先驗(yàn)知識(shí)也更加豐富,這就導(dǎo)致已見(jiàn)類(lèi)模型占主導(dǎo)地位。所以在測(cè)試時(shí),模型會(huì)更加傾向于對(duì)未見(jiàn)類(lèi)樣例標(biāo)注為已見(jiàn)類(lèi)的標(biāo)簽,進(jìn)而導(dǎo)致識(shí)別的準(zhǔn)確率和傳統(tǒng)零樣本學(xué)習(xí)相比大幅度下跌。
(2)樞紐化問(wèn)題
樞紐化問(wèn)題(Hubness) ,并不是ZSL所特有的問(wèn)題,凡是利用特征子空間的學(xué)習(xí)模型,在實(shí)驗(yàn)中都發(fā)現(xiàn)了這個(gè)現(xiàn)象。由于目前零樣本學(xué)習(xí)中,最為流行的方法就是將輸入樣例嵌入到特征子空間中,這就導(dǎo)致了ZSL中的Hubness尤為突出。樞紐化問(wèn)題是指,將原始空間(如圖像特征空間或類(lèi)標(biāo)簽空間)中的某個(gè)元素映射到特征子空間中,得到原始空間中某個(gè)元素的在特征子空間中的新表示,這時(shí)如果使用K 近鄰,可能會(huì)有某些原始空間中的無(wú)關(guān)元素映射到多個(gè)測(cè)試樣本特征空間中表示最近的幾個(gè)近鄰中,而這些無(wú)關(guān)向量,就稱(chēng)為樞紐(hub)。
(3) 映射域偏移問(wèn)題
產(chǎn)生映射域偏移問(wèn)題的根源在于映射模型較差的泛化能力:模型使用了訓(xùn)練類(lèi)樣本學(xué)習(xí)由樣例特征空間到類(lèi)標(biāo)簽語(yǔ)義空間的映射,由于沒(méi)有測(cè)試類(lèi)的未見(jiàn)類(lèi)樣例可以用于訓(xùn)練,因此,在映射測(cè)試類(lèi)的輸入樣例的時(shí)候,就會(huì)產(chǎn)生一定的偏差。
05
未來(lái)可能會(huì)怎么樣?(future)
(1) 如果可以使用更好的算法,利用網(wǎng)絡(luò)上現(xiàn)有的文本內(nèi)容(例如各個(gè)類(lèi)標(biāo)簽的維基百科),因?yàn)榫W(wǎng)絡(luò)中的文本內(nèi)容都是唾手可得的,可以大大減少零樣本學(xué)習(xí)的工作成本,使得零樣本學(xué)習(xí)推廣到更多方面。
(2) 圖像特征映射函數(shù)以及語(yǔ)義向量映射函數(shù)是零樣本學(xué)習(xí)的核心,可以考慮將語(yǔ)義向量映射至圖像特征空間中,或是同時(shí)引入這兩種映射,可能會(huì)得到更好的實(shí)驗(yàn)結(jié)果。
(3) 和單樣本、小樣本學(xué)習(xí)結(jié)合,構(gòu)建較為統(tǒng)一的模型。
(4) 開(kāi)集識(shí)別和ZSL結(jié)合的GZLS。
(5) 有研究將零樣本學(xué)習(xí)和強(qiáng)化學(xué)習(xí)結(jié)合,也就是將ZSL的目標(biāo)設(shè)計(jì)進(jìn)強(qiáng)化學(xué)習(xí)的模型中去,使得agent能夠執(zhí)行在訓(xùn)練階段未曾傳授給它的知識(shí)。
(6) 更加廣泛的應(yīng)用。除了常見(jiàn)的圖像分類(lèi)和視頻事件檢測(cè),還可以將零樣本學(xué)習(xí)應(yīng)用到圖像標(biāo)注、多媒體跨模態(tài)檢索、視頻摘要、情感識(shí)別、行人再識(shí)別、自動(dòng)問(wèn)答、目標(biāo)檢測(cè)等不同領(lǐng)域。
06
有沒(méi)有代碼可以跑一下?(code)6.1 CVPR2019
l CADA-VAE: Edgar Sch?nfeld, Sayna Ebrahimi, Samarth Sinha, Trevor Darrell, Zeynep Akata. “Generalized Zero- and Few-Shot Learning via Aligned Variational Autoencoders.” CVPR (2019)。 [pdf] [code]
l GDAN: He Huang, Changhu Wang, Philip S. Yu, Chang-Dong Wang. “Generative Dual Adversarial Network for Generalized Zero-shot Learning.” CVPR (2019)。 [pdf] [code]
l DeML: Binghui Chen, Weihong Deng. “Hybrid-Attention based Decoupled Metric Learning for Zero-Shot Image Retrieval.” CVPR (2019)。 [pdf] [code]
l LisGAN: Jingjing Li, Mengmeng Jin, Ke Lu, Zhengming Ding, Lei Zhu, Zi Huang. “Leveraging the Invariant Side of Generative Zero-Shot Learning.” CVPR (2019)。 [pdf] [code]
l DGP: Michael Kampffmeyer, Yinbo Chen, Xiaodan Liang, Hao Wang, Yujia Zhang, Eric P. Xing. “Rethinking Knowledge Graph Propagation for Zero-Shot Learning.” CVPR (2019)。 [pdf] [code]
l Tristan Hascoet, Yasuo Ariki, Tetsuya Takiguchi. “On Zero-Shot Learning of generic objects.” CVPR (2019)。 [pdf] [code]
l AREN: Guo-Sen Xie, Li Liu, Xiaobo Jin, Fan Zhu, Zheng Zhang, Jie Qin, Yazhou Yao, Ling Shao. “Attentive Region Embedding Network for Zero-shot Learning.” CVPR (2019)。 [pdf] [code]
6.2 NeurIPS 2019
l Zero-shot Knowledge Transfer via Adversarial Belief Matching.[code]: https://github.com/polo5/ZeroShotKnowledgeTransfer
l Transductive Zero-Shot Learning with Visual Structure Constraint.[code]: https://github.com/raywzy/VSC
6.3 CVPR 2020
l Instance Credibility Inference for Few-Shot Learning
論文地址:https://arxiv.org/abs/2003.11853
代碼:https://github.com/Yikai-Wang/ICI-FSL
編輯:黃飛
評(píng)論
查看更多