零样本学习的相关概念——综述
零樣本學習的一些相關概念
零樣本學習概念
注1:為了方便,文中已知類別(標簽)都指訓練集中出現的類別,未知類別標簽指測試集中出現的新類別。
注2:特征空間指樣本的原始信息(即x)所在的空間,語義空間類別描述信息所在空間,已知類別和未知類別在語義空間中被聯系起來。(將可見和不可見通過語義空間聯系起來)
文中用到的公式符號含義如下圖所示:
零樣本學習概念
零樣本學習屬于遷移學習,是遷移學習的一個子領域,遷移學習可以分為同質遷移學習和不同質遷移學習,前者兩個域的特征空間和標簽空間都相同,后者特征空間和標簽空間不同,因為零樣本學習的特征空間相同,但是源領域的標簽空間(seen class)已知,目標領域的標簽空間(unseen class)未知,所以零樣本學習屬于不同質的遷移學習,零樣本學習就是:在測試集中,有的類別不在訓練集中,利用訓練集的樣本訓練一個模型, 使之應用到測試集能正確識別那些在訓練集不存在的標簽。
額外信息
因為零樣本學習的特殊性,即測試集中包含訓練集中不存在的類別,所以零樣本學習需要引入一些額外信息,這些額外信息通常是對所有類別(包括已有類別和未知類別)的描述,由于這些描述通常是語義層面的,所以額外信息組成的空間又叫語義空間,而原始樣本組成的空間稱為特征空間。
語義空間:對所有類別(已知類別和未知類別)的描述。
語義空間
根據語義空間如何構建,可以把語義空間分為手工語義空間和學習得到的語義空間,分類如下圖所示:
手工語義空間
手工語義空間即人們手動構造的一些關于類別的額外信息,主要分為屬性空間、詞法空間、文本關鍵詞空間。
屬性空間即找到關于類別的一些屬性,基于這些屬性值構建語義向量。如在動物識別中,動物類別的屬性也可以包括**:毛色、速度、體積等。通過手動構造這些屬性和屬性值**,得到類別的語義向量,其中每一維都是一個屬性值。
詞法空間即語義空間由類別的一些詞法信息構成,這些詞法信息可以來自一些泛化知識庫如WordNet,或者來自一些針對特定問題的詞法分析工具,如依存樹。或者來自一些大型的語料,利用在語料中類別的共現關系,具體構造方法有很多:比如利用類別在WordNet中的父子關系,類別語義向量的每一維代表一個類別,如果是父子關系類別,則相應的位置置1.
文本關鍵詞空間即從類別描述信息中抽取出關鍵詞構成語義空間,可以采用:tf-idf、Bag of words等技術得到。
手工語義空間優點是可解釋好、靈活i性高,缺點是需要手工制造,費時費力,并且由于手工構造的局限性導致語義信息丟失。
構造方法:屬性空間、詞法空間、文本關鍵詞空間等。
學習得到的語義空間
學習得到的語義空間不是手工構造的,而是通過其他機器學習模型訓練得到的,這些語義向量可以是針對其他任務預訓練好的,也可以專門針對那些零樣本學習訓練得到的,語義向量每一維沒有實際的意義,整個語義向量代表了這個類別的信息。
學習得到的語義空間包括標簽向量空間,文本向量空間、圖像表示空間等。
- 標簽向量空間:
通過類似于詞向量的方式得到每個標簽的向量表示,常用的技術有word2vec、glove等。核心思想:具有相似含義的標簽具有相似的語義向量。 - 文本向量空間
類似于標簽向量空間,只不過其對標簽描述信息進行向量化,把標簽的描述信息輸入到預訓練好的模型中,輸出向量即可以表示為這個標簽的語義信息。 - 圖像表示空間
把某種類別對應的圖像作為描述信息,輸入到預訓練模型如GoogleLeNet,得到的輸出向量做這個標簽的語義信息。
學習得到的語義空間就是節省了人力、依賴機器學習模型可以捕捉到更多的語義信息,缺點是語義向量含義是隱式的,不利于分析。
(標簽向量空間、文本向量空間、圖像表示空間)
直推式學習和歸納式學習
直推式學習和歸納學習是機器學習的基本概念,按直推式學習和歸納式學習的程度,零樣本可以分為如下圖所示方式:
在訓練過程中,如果使用了測試集中的樣本,則稱為實例直推式,否則稱為實例歸納式,如果用到了未知類別的描述信息,則稱為類別直推式,否則稱為類別歸納式。所以按上述進行分類,零樣本的學習過程可以分為上圖所示三種:訓練過程中利用的信息越多,可能會過擬合,越少可能欠擬合。甚至導致領域漂移,所謂領域票移指的是源領域和目標領域數據差別太大,比如說:已有類別是家具,未知類別是動物,這種情形下采用傳統的零樣本學習也達不到很好的效果,因為很難根據類別相似來識別新類別。
零樣本學習方法的分類
零樣本學習可以分為兩大類,基于分類器的方法和基于實例的方法,基于分類器的方法主要致力于直接學習到一個用于未知類別的分類模型。是一個改進模型的方法,從模型入手,不改變訓練數據,而基于實例的方法主要致力于未知類別構造樣本,然后利用這些構造樣本去訓練一個分類器,是一個改進數據的方法。從改變訓練數據入手, 讓訓練數據包含那些未知樣本,這樣訓練出的模型就能夠正確分類未知樣本啦。
整個分類如下圖所示:
基于分類器的方法
根據分類器的構造方法,基于分類器的零樣本學習又可分為映射方法,關系方法和組合方法。
首先需要說明的是,基于分類器的方法的主要思想:它是基于**“1對多”的方式來訓練N個分類器**(想想為什么要多個分類器,而不是一個?),N為類別的數量,即它為每個類別單獨訓練一個分類器,每次訓練的時候用屬于當前待識別類別的樣本做為正樣本,其他所有樣本做為負樣本。
因為測試集中的有些類別不在訓練集中,所以直接用訓練集訓練一個分類器,用在測試集上效果會很差。基于分類器方法的主要思想是利用額外知識----類別描述信息(語義空間),具有相似類別描述信息的類別,其分類器也比較相似。比如驢和馬,它們之間的類別描述信息很相似,則用驢構成的訓練集訓練一個二分類模型f來判斷樣本是否屬于驢,則這個二分類模型f利用到馬構加粗樣式成的測試集上效果也不會很差:用1表示屬于(驢)馬,0表示不屬于(驢)馬,則f在驢數據集上訓練時**,分類器輸出越接近1則越有信息認為它是一頭驢**,越接近0則相反;把訓練好的f用到馬數據集上分類馬時,因為馬和驢很相似,所以分類器的輸出和在驢數據集上的輸出相似,于是也大概率能正確分類出馬。但是我們不可能只給訓練集中出現的類別各自訓練一個分類器,因為這樣還是無法分類測試集中的具有新類別的樣本(因為測試集中的新種類可能有多個,你不知道這個測試樣本屬于新種類還是訓練集中的種類,如果是新種類你也不知道是哪個新種類),所以需要對每個類別(包括已知類別和未知類別)都構建一個二分類器,這樣對于每個測試樣本,可以采取**“依次帶入這些分類器取概率最高的類別做為它的類別**”。通過上述分析我們知道,馬和驢的分類器參數應該是相似的,現在的問題是**,模型事先并不知道馬和驢是相似的**,所以也就不知道讓馬和驢的分類器參數相似,所以這時就需要額外信息的加入。通過加入類別描述信息,模型知道了馬和驢相似,于是把馬的分類器參數訓練得和驢相似,也就得到了新類別馬的分類器模型。
有了上面的主要思想,則要做的就是如何把類別的描述信息加入模型,被模型所感知和利用?于是有了以下的各種方法。
映射方法
首先針對訓練集中的每個類別訓練一個二分類器fif_ifi?,得到識別每個類別所需要分類器參數wiw_iwi?.
- 用訓練集中每個類別的描述信息tit_iti?作為輸入,wiw_iwi?作為一個標簽訓練一個模型φ\varphiφ,得到模型中間參數ζ\zetaζ,這個模型φ\varphiφ即為映射函數,其作用是求出每一種類別對應的分類器的參數,求出映射函數φ\varphiφ后,對于每個未知類別,用其描述信息tjt_jtj?作為輸入,輸入到φ\varphiφ,就可以得到相應的類別分類器參數wjw_jwj?, 即得到了新類別的分類器參數,基于的思想正是具有相似描述信息的類別,它們的分類器參數也相似。
在測試階段,對于每個測試樣本,帶入到每個類別的分類器中,取概率最大的類別作為它的類別。
上述方法是一個最基礎的方法,現在研究大多基于以上思想進行了改進,比如上述方法中,類別分類器和映射函數是分開學習的,一個改進的思想是讓分類器和映射函數聯合學習,以便它們之間彼此促進,這種方法損失函數如下所示:
上述方法只使用了訓練樣本和訓練樣本類別的描述信息,而沒有使用測試樣本和測試樣本類別的描述信息,根據前文直推式學習和歸案式學習對零樣本學習分類,訓練過程中也可以使用測試樣本和測試樣本類別的描述信息,這里不再詳細展開。
關系方法
關系方式主要借助于類別之間的關系來構建模型。其核心思想和映射方法一樣,即相似的類別描述信息,其類別分類器也相似。
它的過程如下:
(1)利用訓練集中的樣本和標簽,對訓練集中出現的每個類別訓練一個二分類器。
(2)對于測試集中每個新類別,通過對已有類別二分類器加權平均的方式,得到新類別的分類器。即
其中δ(ciu,cis)\delta(c^u_i,c^s_i)δ(ciu?,cis?)為新類別CiuC^u_iCiu?和訓練集中的類別CisC^s_iCis?之間的相似度,作為類別CisC^s_iCis?的分類器權重,把所有已知類別分類器加權平均,即為未知類別分類器。
類別之間的關系 (相似度)有多種計算方法,比如計算它們描述信息的余弦相似度,或者了利用WordNet中的兩個類別 之間的結構關系,類別分類器的選擇可以與未知類別關系最密切(相似度最高),的**KKK個類別加權平均**。
訓練的時候也可以加入未知類別信息,一些工作已已知類別和未知類別為節點在語義空間中構建一個關系圖,圖的邊權重為類別之間的關系。然后在圖上學習類別的二分類器。
組合方法
有點類似貝葉斯公式,具體細節需要閱讀這方面的論文,在此省略。
基于實例的方法
基于實例的方法從數據入手,為那些訓練集中沒有出現過的類別構造樣本,然后把這些樣本加入訓練集訓練一個分類器或進行聚類(KNN)。根據這些樣本是如何構造的,基于實例的方法可分為擬合方法,借助其他實例方法和合成方法。
擬合方法
擬合方法基本思想是:類別描述信息可以被當做樣本標簽看待(構造新實例),首先,通過擬合函數將樣本xix_ixi?和類別描述信息tjt_jtj?擬合到一個同一空間P:
語義空間作為擬合空間
語義空間作為擬合空間,這種設置下類別描述信息tjt_jtj?不用改變,只通過擬合函數θ\thetaθ將樣本xix_ixi?擬合到語義空間 損失函數為:
樞紐度問題
使用語義空間做擬合空間并且使用回歸函數做擬合函數時,會產生樞紐度問題。在擬合空間P中,一些類別描述信息是很多樣本的最近鄰,而這些樣本實際上類別并不相同,這個描述信息就被稱為"樞紐(hubs)“,這種現象稱為"樞紐度問題(hubness)”。
一些工作為了解決樞紐度問題,采用其他損失函數如rank loss或采用不同的距離度量函數如余弦相似度等。
特征空間作為擬合空間
特征空間作為擬合空間,即通過擬合函數ζ\zetaζ,將類別描述信息tjt_jtj?擬合到特征空間,而樣本特征xix_ixi?不用改變,損失函數為:
損失函數主要思想是和語義空間做擬合空間一樣,這里不再贅述,把特征空間做擬合空間緩解了樞紐度問題。
其他
還有一些其他方法既不使用語義空間做擬合空間,也不使用特征空間做擬合空間,而是使用一些其他的空間甚至多個空間。具體可以參考一些相關論文。
借助其他實例方法
合成方法
合成方法通過一些生成模型來生成未知類別的樣本。未知類別的樣本假設服從某些分布,比如高斯分布或均勻分布,首先求出已知類別的分布參數,然后根據未知類別描述信息和已知類別描述信息的關系求出未知類別的關系分布(比如對于高斯分布,參數是均值和方差)。有了未知類別樣本的分布,就可以根據生成模型生成一些樣本。生成模型比如generative mo-ment matching network (GMMN), denoising autoencoder, adversarial autoencoder, conditional variational autoencoder-based architecture, generative adversarial networks (GAN)等。生成模型的輸入通常是未知類別描述信息和符合某一分布的噪音。
零樣本學習方法比較
學習心得
會自己通過建模來進行零樣本的學習與收入。
未來研究方向
-
一.樣本的一些特性
樣本的一些特性沒有用到。比如圖像物體識別,除了圖像本身**,物體的其他方面的特征也可以用上**;一些多模態的數據;時間序列的特點等。 -
二.訓練數據的選擇
(1)現有的零樣本學習,訓練集和測試集往往是同一種類型,比如都是圖片,或都是文字。實際上訓練集和測試集的數據所對應的類別可以不在同一個語義空間,比如訓練集是物體圖片,測試集是場景圖片。甚至訓練集和測試集的實例都不相同,比如訓練集是音頻,測試集是圖片。有些語義類型的數據很容易得到,而有的不容易得到,所以嘗試一下異構零樣本學習也是很有必要的。(異構零樣本學習)
(2)通過主動學習挑選訓練數據。可以減輕標注壓力 -
三.額外信息的選擇和保持
額外信息不僅僅是在語義空間,也可以使用其他類型的語義信息。比如屬性空間(attribute space),也有研究不適用語義空間,而使用人工構造的類別相似度信息。
加粗樣式得到額外信息后,如何在訓練中保持這些額外信息也很重要,即使這些信息在訓練過程中不丟失,不改變。因為當只學習樣本分類器的時候,額外信息就很容易丟失。有些工作加入了重構模塊,以盡大可能使額外信息在訓練中保持。
- 四.更加實際和更加針對于特定任務的問題設置
(1)在現實生活中,測試集中往往即包括訓練集中出現的類別,也包括未出現的類別,這種問題設置稱為廣義零樣本學習(generalized zero-shot learning)。在這種問題設置下,模型的效果要比零樣本學習差很多,所以有很大改進的地方。
(2)針對不同的任務設置不同的零樣本學習方法。
理論研究
現有方法大多是一些啟發式的,并沒有嚴格的證明。比如(1)如何選擇額外信息(2)哪些來自訓練樣本的信息對測試樣本分類有幫助?(3)如何阻止無關信息遷移和負遷移?
與其他學習方法相結合。
比如zero-shot和few-shot相結合;與機器學習方法相結合,比如零樣本學習可以做為主動學習之前的步驟來加強主動學習的效果等等。
總結
以上是生活随笔為你收集整理的零样本学习的相关概念——综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA 12563 Jin Ge Jin
- 下一篇: delphi下实现ribbon界面的方法