一聽就明白的零樣本學(xué)習(xí) Zero-Shot Learning

而實(shí)際情況并不是所有的類別都有大量標(biāo)注好的實(shí)例數(shù)據(jù)可供使用,因此,這些模型并不一定實(shí)用。另外,實(shí)際上并不能在所有類別的圖像上進(jìn)行訓(xùn)練,因此我們希望模型能夠識(shí)別出在訓(xùn)練階段未曾見過(guò)的類別的實(shí)例圖像,這就是本文主角 - 零樣本學(xué)習(xí)大顯伸手的地方。
1零樣本學(xué)習(xí)的提出
零樣本學(xué)習(xí) Zero-Shot Learning,簡(jiǎn)稱 ZSL,是由 Lampert 等人在 2009 年提出的。他們提供了一個(gè) Animals with Attributes 數(shù)據(jù)集以及經(jīng)典的基于屬性的學(xué)習(xí)算法,開啟了這一機(jī)器學(xué)習(xí)新方法。從原理上來(lái)說(shuō),ZSL 就是讓計(jì)算機(jī)模擬人類的推理方式,來(lái)識(shí)別從未見過(guò)的新事物。之所以獨(dú)立出來(lái),是因?yàn)樗鉀Q問(wèn)題的思路不同于傳統(tǒng)的機(jī)器學(xué)習(xí)方法。
2ZSL 的通俗理解
首先,我們舉個(gè)栗子來(lái)看看零樣本學(xué)習(xí)到底是處理什么問(wèn)題的。
我們用小明找斑馬的經(jīng)典例子。某個(gè)周末,爸爸帶小明到動(dòng)物園玩,看到了馬,爸爸告訴他,這是馬。之后,又看到了老虎,告訴他: 看,這種身上有條紋的家伙就是老虎。最后,又帶他去看了熊貓,對(duì)他說(shuō): 你看這熊貓是黑白色的。然后,爸爸給小明安排了一個(gè)任務(wù),讓他在動(dòng)物園里找一種叫斑馬的動(dòng)物。由于小明沒有見過(guò)斑馬,于是爸爸給他講了一下斑馬的大概情況: 斑馬形狀像馬,身上有像老虎一樣的條紋,而且它像熊貓一樣是黑白色的。結(jié)果,根據(jù)爸爸的描述,小明在動(dòng)物園里輕松地找到了斑馬。

這個(gè)例子說(shuō)明,雖然你沒見過(guò)斑馬,但如果你清楚關(guān)于它的描述,那么很可能在你第一次看到斑馬的照片時(shí)就能認(rèn)出它。
以上是白話,下面我們改用行話來(lái)講一下這個(gè)例子。
首先,我們可以將其視為一個(gè)類似于自然語(yǔ)言處理的任務(wù),它使用詞嵌入(將詞匯表中的詞或短語(yǔ)映射到實(shí)數(shù)向量,要求具有相似含義的詞將具有相似的詞嵌入)。那么對(duì)于上面的例子,零樣本學(xué)習(xí)是下面這樣來(lái)處理的,
訓(xùn)練數(shù)據(jù)中并沒有斑馬的圖像,但是有帶條紋的動(dòng)物(如老虎),有跟馬長(zhǎng)得相似的一類動(dòng)物(如馬、驢、小馬等),還有黑白色的動(dòng)物(如熊貓、企鵝等)的各種圖像。可以提取這些圖像的特征(條紋、形狀似馬、黑/白色)并生成詞嵌入,組成字典。
然后,我們描述斑馬的外觀,并使用前面訓(xùn)練集里提出的特征來(lái)將斑馬的外觀轉(zhuǎn)化成相應(yīng)的詞嵌入。
最后,當(dāng)你給模型輸入一張斑馬的圖像,它會(huì)先提取圖像的特征,轉(zhuǎn)化成詞嵌入,然后與字典中最接近的詞嵌入進(jìn)行比較,得出那圖像可能是只斑馬。

這個(gè)例子體現(xiàn)了人類的推理過(guò)程,即利用已有知識(shí)(馬、老虎、熊貓和斑馬的描述),在腦海中推理出新對(duì)象的具體形態(tài),從而能對(duì)新對(duì)象進(jìn)行識(shí)別。ZSL 就是希望能夠模仿人類的這個(gè)推理過(guò)程,使得計(jì)算機(jī)具有識(shí)別新事物的能力。
概括一下,就是利用類別的高維語(yǔ)義特征代替樣本的低維特征,使得訓(xùn)練出來(lái)的模型具有遷移性。這里斑馬的高維語(yǔ)義就是馬的外形、老虎的斑紋、熊貓的顏色,盡管缺乏更多細(xì)節(jié),但這些高維語(yǔ)義已經(jīng)足夠刻畫斑馬,從而讓計(jì)算機(jī)成功識(shí)別出來(lái)未見過(guò)的斑馬實(shí)例。
◇ 與傳統(tǒng)機(jī)器學(xué)習(xí)方法的區(qū)別
在傳統(tǒng)的圖像識(shí)別算法中,要想讓計(jì)算機(jī)認(rèn)出斑馬,往往需要給計(jì)算機(jī)投喂足夠量的斑馬圖像才有做到。而且,訓(xùn)練出來(lái)的分類器,往往無(wú)法識(shí)別它沒有見過(guò)的其他類別的圖像。
但是 ZSL 卻可以在沒有提供新事物數(shù)據(jù)的情況下,只憑特征描述就能識(shí)別出新事物。是不是覺得 ZSL 比以往的機(jī)器學(xué)習(xí)方法更加智慧呢?
3ZSL 的問(wèn)題設(shè)置
下面我們用機(jī)器學(xué)習(xí)的語(yǔ)言來(lái)組織一下 ZSL 的問(wèn)題設(shè)置。針對(duì)一般的圖片分類問(wèn)題,零樣本學(xué)習(xí)涉及的數(shù)據(jù)主要包括,
訓(xùn)練集數(shù)據(jù)
及其標(biāo)簽 ,包含了模型需要學(xué)習(xí)的類別(馬、老虎和熊貓等),這里和傳統(tǒng)的監(jiān)督學(xué)習(xí)中的定義一致; 測(cè)試集數(shù)據(jù)
及其標(biāo)簽 ,包含了模型需要辨識(shí)的類別(斑馬),這里和傳統(tǒng)的監(jiān)督學(xué)習(xí)中的定義也一致; 訓(xùn)練集類別的描述
,以及測(cè)試集類別的描述 ;我們將每一個(gè)類別 ,都表示成一個(gè)語(yǔ)義向量 的形式,而這個(gè)語(yǔ)義向量的每一個(gè)維度都表示一種高級(jí)的屬性,比如 黑白色、有尾巴、有羽毛等等,當(dāng)這個(gè)類別包含這種屬性時(shí),那在其維度上被設(shè)置為非零值。對(duì)于一個(gè)數(shù)據(jù)集來(lái)說(shuō),語(yǔ)義向量的維度是固定的,它包含了能夠較充分描述數(shù)據(jù)集中類別的屬性。
在 ZSL 中,我們希望利用

為了更加直觀一點(diǎn),對(duì)數(shù)據(jù)集配上一個(gè)圖,右圖中的 See Gull 這一類的數(shù)據(jù)不在訓(xùn)練集里。

對(duì)于對(duì)象分類問(wèn)題,我們可以這樣理解,需要建立圖像特征空間和語(yǔ)義空間兩者之間的聯(lián)系。特征空間與語(yǔ)義空間之間的聯(lián)系怎么建立有不同的方法,請(qǐng)參見下圖大致了解一下。

4基礎(chǔ)算法介紹
對(duì)問(wèn)題已經(jīng)有概念了,那怎么解決呢?我們來(lái)看一個(gè)最簡(jiǎn)單的解決方案。
首先,這里要處理的是一個(gè)圖像分類問(wèn)題,即對(duì)測(cè)試集的樣本
對(duì)于分類,我們能想到的最簡(jiǎn)單的形式就是嶺回歸(Ridge Regression),具體形式為,
其中,
這樣一個(gè)嶺回歸之所以有效,是因?yàn)橛?xùn)練集類別語(yǔ)義
5ZSL 方法分類
一、根據(jù)模型訓(xùn)練時(shí)對(duì)數(shù)據(jù)的可用性,零樣本學(xué)習(xí)可以分為兩類。
Inductive Zero-Shot
在該設(shè)置中,我們可以訪問(wèn)已知類別中的標(biāo)注圖像數(shù)據(jù)。除此之外,還可以訪問(wèn)已知類和未知類的語(yǔ)義描述,即訓(xùn)練過(guò)程中的集合

Transductive Zero-Shot
直推式學(xué)習(xí)其實(shí)是指在訓(xùn)練模型的時(shí)候,除了所有類別的語(yǔ)義描述

二、根據(jù)測(cè)試或推論時(shí)數(shù)據(jù)的可用性,零樣本學(xué)習(xí)也可以分為兩類。
常規(guī)零樣本學(xué)習(xí)
在常規(guī)的零樣本學(xué)習(xí)中,在測(cè)試時(shí)要識(shí)別的圖像僅限于未知類別,即測(cè)試類別。但這類方法并不實(shí)用,因?yàn)閷?shí)際中很難保證測(cè)試時(shí)數(shù)據(jù)僅僅來(lái)自未知的類別。
廣義零樣本學(xué)習(xí)
在廣義零樣本學(xué)習(xí)中,測(cè)試時(shí)的圖像可以屬于已知或未知類別。與常規(guī)設(shè)置相比,該設(shè)置實(shí)際上更加實(shí)用,但卻更具挑戰(zhàn)性。原因就是該模型僅在已知類圖像上訓(xùn)練,因此可想而知其預(yù)測(cè)會(huì)偏向于已知類。這會(huì)導(dǎo)致許多未知類的圖像在測(cè)試時(shí)被錯(cuò)誤地分類為已知類,從而大大降低了模型的性能。
本文主要介紹零樣本學(xué)習(xí)要處理的問(wèn)題以及大概的解決思路,讓大家對(duì)它有個(gè)初步的概念,至于零樣本學(xué)習(xí)的應(yīng)用以及問(wèn)題與挑戰(zhàn)等將在后期再展開。
?參考資料?
Zero-Shot Learning: https://en.wikipedia.org/wiki/Zero-shot_learning
[2]Zero-Shot Learning via CCDGM: http://people.duke.edu/~ww107/material/ZSL.pdf
[3]零次學(xué)習(xí) Zero-Shot Learning 入門: https://zhuanlan.zhihu.com/p/34656727?utm_source=wechat_session&utm_medium=social&utm_oi=695187683760148480&from=singlemessage&s_r=0
[4]Zero-Shot Learning 如何打破零起點(diǎn)的封印: https://www.tmtpost.com/3665596.html
[5]Zero-shot Learning : An Introduction: https://www.learnopencv.com/zero-shot-learning-an-introduction/
