網(wǎng)上有一些關(guān)于零樣本學(xué)習(xí)的討論,但都有其局限性,不全面或者太學(xué)術(shù),我學(xué)習(xí)之后,對其進行加工,加上我自己的的理解,然后對后來想要了解零樣本學(xué)習(xí)的同學(xué),可能會有幫助,至少能節(jié)省點時間。相比于網(wǎng)上的各種五花八門的介紹,我爭取做到更全面,更通俗。
為什么我開始研究零樣本學(xué)習(xí)?是個巧合。之前我沒聽說過,上個學(xué)期,在一次組會上,聽一個師姐做匯報,講她關(guān)于小樣本學(xué)習(xí)的研究。聽了介紹,我瞬間被吸引,很感興趣,但平時忙于上課,也一直沒去深入了解,(懶)。直到前幾天,在某文章里看到零樣本學(xué)習(xí),這次我有時間了!于是,就深入了解了下(看了幾篇文獻hhhh)。本人水平有限,難免疏漏,還請讀者多多指正。
01
為什么要搞零樣本學(xué)習(xí)?(why)
(1)深度學(xué)習(xí)(deep learning)已經(jīng)在各個領(lǐng)域取得了廣泛的應(yīng)用,例如在圖像分類問題下,其準(zhǔn)確率目前可以達到不錯的成績。然而,deep learning是一種data hungry的技術(shù),高的準(zhǔn)確率建立在預(yù)先給模型“喂了”大量的數(shù)據(jù),即,需要大量的標(biāo)注樣本才能發(fā)揮作用,大多數(shù)方法是通過有標(biāo)簽的訓(xùn)練集進行學(xué)習(xí),側(cè)重于對已經(jīng)在訓(xùn)練中出現(xiàn)過標(biāo)簽類別的樣本進行分類。然而在現(xiàn)實場景中,許多任務(wù)需要對模型之前從未見過的實例類別進行分類,這樣就使得原有訓(xùn)練方法不再適用。因為,現(xiàn)實世界中,有很多問題是沒有這么多的標(biāo)注數(shù)據(jù)的,或者獲取標(biāo)注數(shù)據(jù)的成本非常大。所以,我們思考,當(dāng)標(biāo)注數(shù)據(jù)量比較少時、甚至樣本為零時,還能不能繼續(xù)?我們將這樣的方法稱為小樣本學(xué)習(xí)Few-Shot Learning,相應(yīng)的,如果只有一個標(biāo)注樣本,稱One-Shot Learning,如果不對該類進行樣本標(biāo)注學(xué)習(xí),就是零樣本學(xué)習(xí)Zero-Shot Learning.(2)人類學(xué)習(xí)的過程包含了大量零樣本學(xué)習(xí)的思路,也就是說一個小孩子從來沒見過一些類別的東西,在家長和老師的描述之后,他也能在一堆圖片里找出那件東西。
在2016 年中國計算機大會上,譚鐵牛院士指出,生物啟發(fā)的模式識別是一個非常值得關(guān)注的研究方向,“比如人識別一個動物(并不需要看到過該動物),只需要一句話的描述就能識別出來該動物”,比如被廣泛引用的人類識別斑馬的例子:假設(shè)一個人從來沒有見過斑馬這種動物,即斑馬對這個人來說是未見類別,但他知道斑馬是一種身上有著像熊貓一樣的黑白顏色的、像老虎一樣的條紋的、外形像馬的動物,即熊貓、老虎、馬是已見類別。那么當(dāng)他第一次看到斑馬的時候, 可以通過先驗知識和已見類,識別出這是斑馬。人類通過語義知識作為輔助信息,識別了未見類,零樣本學(xué)習(xí)也正是基于這樣的思想、基于人類學(xué)習(xí)過程,進行算法的研究。
02
什么是零樣本學(xué)習(xí)?(what)
零樣本學(xué)習(xí)zero-shot learning,是最具挑戰(zhàn)的機器識別方法之一。
定義:(數(shù)學(xué)描述在此略過)2019年冀中等人在綜述文章中將零樣本分類的定義分為廣義和狹義兩種:
零樣本分類的技術(shù)目前正處于高速發(fā)展時期, 所涉及的具體應(yīng)用已經(jīng)從最初的圖像分類任務(wù)擴展到了其他計算機視覺任務(wù)乃至自然語言處理等多個相關(guān)領(lǐng)域。 對此, 本文將其稱為廣義零樣本分類。 相應(yīng)地, 我們將針對圖像分類任務(wù)的零樣本分類任務(wù)稱為狹義零樣本分類。
在冀中和 WEI WANG的文章中,零樣本學(xué)習(xí)均被視為遷移學(xué)習(xí)的一個特例。零樣本學(xué)習(xí)中,源特征空間是訓(xùn)練樣本的特征空間和目標(biāo)特征空間是測試樣本的特征空間,這兩者是相同的。但是源標(biāo)注空間和目標(biāo)標(biāo)注空間分別是可見類別和未見類別,兩者是不同的。因此零樣本學(xué)習(xí)屬于異質(zhì)遷移學(xué)習(xí)(heterogeneous transfer learning)。一個最通俗的例子就是在本文第1部分里提得到的斑馬的例子。
零樣本學(xué)習(xí)的實現(xiàn)與另外兩個研究領(lǐng)域密不可分,其一是表征學(xué)習(xí)(representation learning),其二是度量學(xué)習(xí)(metric learning)。表征學(xué)習(xí)是指通過對數(shù)據(jù)進行變換從而提取數(shù)據(jù)中的有效信息的一種學(xué)習(xí)方式,涉及到人工智能相關(guān)的諸多領(lǐng)域,如信號處理、目標(biāo)識別、自然語言處理,以及遷移學(xué)習(xí)等。度量學(xué)習(xí)通常建立在表征學(xué)習(xí)的基礎(chǔ)之上,其本質(zhì)是根據(jù)不同的任務(wù),根據(jù)特定空間中的數(shù)據(jù),自主學(xué)習(xí)出針對某個特定任務(wù)的距離度量函數(shù),目前已被廣泛應(yīng)用于諸多計算機視覺相關(guān)的任務(wù), 如人臉識別、圖像檢索、目標(biāo)跟蹤、多模態(tài)匹配等。對于零樣本學(xué)習(xí),在獲取到合適的數(shù)據(jù)表征空間之后,則需要對跨模態(tài)樣本間的距離度量進行學(xué)習(xí),目的是保證嵌入到語義空間后樣本間的語義相似度關(guān)系得以保持。綜上所述,零樣本學(xué)習(xí)可以看作是在進行表征學(xué)習(xí)和度量學(xué)習(xí)的基礎(chǔ)上,通過借助輔助信息(屬性或文本) 實現(xiàn)跨模態(tài)知識的遷移,從而完成可見類信息到未見類信息推斷的遷移學(xué)習(xí)過程。
03
之前的學(xué)者們都是怎么做的?(how)
Zero-Shot Learning 這一問題和概念的提出,源于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í)開宗明義的文章,所以先介紹這兩篇。Lampert在論文中所提到的Between-Class Attribute Transfer,通常我們做有監(jiān)督學(xué)習(xí)的思路,是實現(xiàn)數(shù)據(jù)的特征空間到數(shù)據(jù)標(biāo)簽之間的映射,而這里,我們利用數(shù)據(jù)特征預(yù)測的卻是樣本的某一屬性。類間屬性遷移應(yīng)用到上文提到的斑馬案例,見下圖:
Between-Class Attribute Transfer的核心思想在于:
雖然物體的類別不同,但是物體間存在相同的屬性,提煉出每一類別對應(yīng)的屬性并利用若干個學(xué)習(xí)器學(xué)習(xí)。在測試時對測試數(shù)據(jù)的屬性預(yù)測,再將預(yù)測出的屬性組合,對應(yīng)到類別,實現(xiàn)對測試數(shù)據(jù)的類別預(yù)測。Lampert在該論文中給出了兩種屬性預(yù)測的結(jié)構(gòu):DAP和IAP。
直接屬性預(yù)測 Direct attribute prediction (DAP)
這一方法先將數(shù)據(jù)從特征空間映射到中間層的屬性向量層,屬性向量層的標(biāo)簽是通過收集來的每一類特征的總結(jié),比如是否有尾巴,有幾只腳等等,通過利用數(shù)據(jù)預(yù)測屬性,再通過屬性映射到標(biāo)簽來實現(xiàn)對于未知類別的預(yù)測,這一方法也是接受和應(yīng)用最為廣泛的一種。
間接屬性預(yù)測 Indirect attribute prediction (IAP)
這一方法使用了兩層標(biāo)簽,屬性層作為中間層,在實際中使用較少,這里不多做介紹
Hinton等在2009年的Zero-shot learning with semantic output codes這篇論文里,提到的語意輸出編碼方式,思想其實與DAP的思路類似,也是在之前的特征空間與標(biāo)簽之間增加了一層,這里增加的一層不再是數(shù)據(jù)本身的屬性,而是標(biāo)簽本身的編碼,說簡單點就是NLP里面的詞向量(word2vec),通過將標(biāo)簽進行詞向量的編碼,利用模型基于數(shù)據(jù)矩陣對編碼進行預(yù)測,得到結(jié)果之后,通過衡量輸出與各個類別詞向量之間距離,判別樣本的類別。
簡單說就是,該論文里使用詞向量來實現(xiàn)零樣本學(xué)習(xí)。如果我們將原先的表示類別的詞(馬、熊貓、老虎等)編碼為詞向量,那么我們就可以用距離來衡量一個未知的詞向量的歸屬。
語義輸出編碼的核心思想在于:
將訓(xùn)練標(biāo)簽編碼為詞向量,基于訓(xùn)練數(shù)據(jù)和詞向量訓(xùn)練學(xué)習(xí)器。測試時輸入測試數(shù)據(jù),輸出為預(yù)測的詞向量,計算預(yù)測結(jié)果與未知類別詞向量的距離,數(shù)據(jù)距離最近的類別。(所以未知類別的詞向量在此是已知的)由以上兩個模型,我們可以總結(jié)出一個零樣本學(xué)習(xí)的簡單模式:
上圖中,images space和label space分別為初始的圖像空間和標(biāo)簽空間,在零樣本學(xué)習(xí)中,一般會通過一些方法將圖片映射到特征空間中,這個空間稱為feature embedding ;同樣的標(biāo)簽也會被映射到一個label embedding 當(dāng)中,學(xué)習(xí)feature embedding 和label embedding 中的線性或非線性關(guān)系用于測試時的預(yù)測轉(zhuǎn)化取代之前的直接由images space 到 label space的學(xué)習(xí)。
冀中等在文獻[4]中,將零樣本學(xué)習(xí)的發(fā)展分為兩個階段,上文我們介紹的屬于第一階段,即提出階段,這個階段主流的研究思路是,利用“淺層視覺特征+ 屬性+ 傳統(tǒng)機器學(xué)習(xí)方法” 的分析模式;第2 階段的時間大致為2013-2019 年, 稱為發(fā)展階段,這個階段的主流研究思路是利用“深度視覺特征+ 屬性/詞向量+ 傳統(tǒng)機器學(xué)習(xí)方法” 的分析模式。在這一階段,受益于深度學(xué)習(xí)技術(shù)的發(fā)展,特別是CNN模型、Word2Vec的提出,零樣本學(xué)習(xí)得到了較快的發(fā)展。
篇幅有限,在這里就先介紹Lampert和Hinton的一些思想和做法,這是比較基礎(chǔ)的也是一般的方法。其他最新的方法,有空再寫一篇新的吧,不然這篇內(nèi)容寫太多了。詳見參考文獻[5]。
介紹一下數(shù)據(jù)集:
在零樣本學(xué)習(xí)中, 最為常用的數(shù)據(jù)集是Animals with Attributes (AwA) 數(shù)據(jù)集,此外,在零樣本學(xué)習(xí)中廣泛應(yīng)用的屬性數(shù)據(jù)集還有三個: Caltech-UCSD-Birds200-2111(CUB)、Attribute Pascal and Yahoo (aPY) 數(shù)據(jù)集 以及SUN attribute 數(shù)據(jù)集。這些數(shù)據(jù)集很容易下載到。
04
一些主要的挑戰(zhàn)?(challenge)從入門到放棄?哈哈哈哈,是的,有一些很難解決的問題在這里。
雖然如前文所說,零樣本學(xué)習(xí)仍處于快速發(fā)展的階段,但零樣本學(xué)習(xí)由于其自身方法中存在的問題,這些問題使得零樣本學(xué)習(xí)的研究遇到很大的障礙。這三個障礙分別是廣義(泛化)零樣本學(xué)習(xí)(Generalized zero-shot learning)、樞紐化問題(Hubness)、映射域偏移問題(The projection domain shift problem)。下面簡單介紹一下這幾個問題:
(1) 廣義零樣本學(xué)習(xí)
在實際的應(yīng)用中, 目前的零樣本學(xué)習(xí)與現(xiàn)實應(yīng)用的學(xué)習(xí)環(huán)境,出現(xiàn)了一定程度的矛盾, 這是因為,在零樣本學(xué)習(xí)的假設(shè)在測試階段,只有未見類樣例出現(xiàn)。這在實際應(yīng)用中這種假設(shè)是不現(xiàn)實的,往往已見類的樣例是現(xiàn)實世界中最為常見的樣例,而且,如果在訓(xùn)練階段已見類樣本容易得到、未見類樣本難以獲取, 那么在測試階段就也不應(yīng)只有未見類樣例出現(xiàn)。所以, 為了讓零樣本學(xué)習(xí)真實的反應(yīng)實際應(yīng)用中的樣例識別場景, 零樣本學(xué)習(xí)模型應(yīng)對包括未見類和已見類的所有輸入樣例進行識別,即大量的已見類樣例中夾雜著少量的未見類樣例,輸入樣例的可能類標(biāo)簽大概率屬于已見類, 但也有可能屬于未見類。如果在測試階段,模型可以準(zhǔn)確識別已見類樣例,且可以識別從未見過的未見類樣例,那么就認為該模型實現(xiàn)了廣義零樣本學(xué)習(xí) 。
由于模型在訓(xùn)練時,只使用了已見類樣本進行訓(xùn)練, 且已見類的先驗知識也更加豐富,這就導(dǎo)致已見類模型占主導(dǎo)地位。所以在測試時,模型會更加傾向于對未見類樣例標(biāo)注為已見類的標(biāo)簽,進而導(dǎo)致識別的準(zhǔn)確率和傳統(tǒng)零樣本學(xué)習(xí)相比大幅度下跌。
(2)樞紐化問題
樞紐化問題(Hubness) ,并不是ZSL所特有的問題,凡是利用特征子空間的學(xué)習(xí)模型,在實驗中都發(fā)現(xiàn)了這個現(xiàn)象。由于目前零樣本學(xué)習(xí)中,最為流行的方法就是將輸入樣例嵌入到特征子空間中,這就導(dǎo)致了ZSL中的Hubness尤為突出。樞紐化問題是指,將原始空間(如圖像特征空間或類標(biāo)簽空間)中的某個元素映射到特征子空間中,得到原始空間中某個元素的在特征子空間中的新表示,這時如果使用K 近鄰,可能會有某些原始空間中的無關(guān)元素映射到多個測試樣本特征空間中表示最近的幾個近鄰中,而這些無關(guān)向量,就稱為樞紐(hub)。
(3) 映射域偏移問題
產(chǎn)生映射域偏移問題的根源在于映射模型較差的泛化能力:模型使用了訓(xùn)練類樣本學(xué)習(xí)由樣例特征空間到類標(biāo)簽語義空間的映射,由于沒有測試類的未見類樣例可以用于訓(xùn)練,因此,在映射測試類的輸入樣例的時候,就會產(chǎn)生一定的偏差。
05
未來可能會怎么樣?(future)
(1) 如果可以使用更好的算法,利用網(wǎng)絡(luò)上現(xiàn)有的文本內(nèi)容(例如各個類標(biāo)簽的維基百科),因為網(wǎng)絡(luò)中的文本內(nèi)容都是唾手可得的,可以大大減少零樣本學(xué)習(xí)的工作成本,使得零樣本學(xué)習(xí)推廣到更多方面。
(2) 圖像特征映射函數(shù)以及語義向量映射函數(shù)是零樣本學(xué)習(xí)的核心,可以考慮將語義向量映射至圖像特征空間中,或是同時引入這兩種映射,可能會得到更好的實驗結(jié)果。
(3) 和單樣本、小樣本學(xué)習(xí)結(jié)合,構(gòu)建較為統(tǒng)一的模型。
(4) 開集識別和ZSL結(jié)合的GZLS。
(5) 有研究將零樣本學(xué)習(xí)和強化學(xué)習(xí)結(jié)合,也就是將ZSL的目標(biāo)設(shè)計進強化學(xué)習(xí)的模型中去,使得agent能夠執(zhí)行在訓(xùn)練階段未曾傳授給它的知識。
(6) 更加廣泛的應(yīng)用。除了常見的圖像分類和視頻事件檢測,還可以將零樣本學(xué)習(xí)應(yīng)用到圖像標(biāo)注、多媒體跨模態(tài)檢索、視頻摘要、情感識別、行人再識別、自動問答、目標(biāo)檢測等不同領(lǐng)域。
06
有沒有代碼可以跑一下?(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
編輯:黃飛
評論
查看更多