Zero-Shot Learning論文閱讀筆記(第一週)

前言:

近期因加入學校教研室,教授安排的研究方向是Domain adaptation 或Zero-Shot Learning ,我選擇的是後者,在此之前雖然我對ZSL有初步的瞭解,但是僅限於此。今後我將每週更新5-10篇ZSL方向的相關博客或者論文的學習筆記,在此分享出來望共同探討學習,如有理解上的偏差或錯誤懇請各位大佬及時指出,謝謝!

第一篇:零次學習(Zero-Shot Learning)入門:

原文鏈接

https://zhuanlan.zhihu.com/p/34656727?spm=5176.9876270.0.0.399ce44aXsg7cN

ZSL的概念、解釋

  • 解釋:
    Zsl希望我們的模型對其從沒有見過的類別進行分類,讓機器聚類推理能力。其中零次(Zero_shot)是指對於要分類的類別對象,一次也不學習。
  • 形象解釋:
    假設小暗(純粹因爲不想用小明)和爸爸,到了動物園,看到了馬,然後爸爸告訴他,這就是馬;之後,又看到了老虎,告訴他:“看,這種身上有條紋的動物就是老虎。”;最後,又帶他去看了熊貓,對他說:“你看這熊貓是黑白色的。”然後,爸爸給小暗安排了一個任務,讓他在動物園裏找一種他從沒見過的動物,叫斑馬,並告訴了小暗有關於斑馬的信息:“斑馬有着馬的輪廓,身上有像老虎一樣的條紋,而且它像熊貓一樣是黑白色的。”最後,小暗根據爸爸的提示,在動物園裏找到了斑馬。

  • 實現思路:(轉化爲一般的圖片分類問題,且只考慮圖片分類問題)
    訓練集數據X_tr 及其標籤 Y_tr ,包含了模型需要學習的類別(馬、老虎和熊貓),這裏和傳統的監督學習中的定義一致;
    測試集數據 X_te及其標籤 Y_te ,包含了模型需要辨識的類別(斑馬),這裏和傳統的監督學習中也定義一致;
    訓練集類別的描述 A_tr,以及測試集類別的描述 A_te ;我們將每一個類別 y_i∈ Y ,都表示成一個語義向量 a_i∈ A 的形式,而這個語義向量的每一個維度都表示一種高級的屬性,比如“黑白色”、“有尾巴”、“有羽毛”等等,當這個類別包含這種屬性時,那在其維度上被設置爲非零值。對於一個數據集來說,語義向量的維度是固定的,它包含了能夠較充分描述數據集中類別的屬性。
    在ZSL中,我們希望利用X_tr和Y_tr來訓練模型,而模型能具有識別X_te的能力,因此模型需要知道所有類別的描述A_tr和A_te

  • Questions:
    類別的描述A到底是怎麼獲取的:
    人工專家定義護着海量的附加數據集自動學習

  • ZSL definition:
    利用訓練集數據訓練模型,使得模型能夠對測試集的對象進行分類,但是訓練集和測試集類別之間沒有交集;期間需要藉助類別的描述,來建立訓練集和測試集之間的聯繫,從而使模型有效。
    https://blog.csdn.net/tianguiyuyu/article/details/81948700

ZSL需要解決的問題

獲取合適的類別描述A
目前主要是自然語言處理(NLP)方法,難度大,進展慢
建立一個合適的分類模型
方法多,比較容易出成果

常用數據集

  1. Animal with Attributes(AwA)官網:Animals with Attributes
    提出ZSL定義的作者,給出的數據集,都是動物的圖片,包括50個類別的圖片,其中40個類別作爲訓練集,10個類別作爲測試集,每個類別的語義爲85維,總共有30475張圖片。但是目前由於版權問題,已經無法獲取這個數據集的圖片了,作者便提出了AwA2,與前者類似,總共37322張圖片。
  2. Caltech-UCSD-Birds-200-2011(CUB)官網:Caltech-UCSD Birds-200-2011
    全部都是鳥類的圖片,總共200類,150類爲訓練集,50類爲測試集,類別的語義爲312維,有11788張圖片。
  3. Sun database(SUN)官網:SUN Database
    總共有717個類別,每個類別20張圖片,類別語義爲102維。傳統的分法是訓練集707類,測試集10類。
  4. Attribute Pascal and Yahoo dataset(aPY)官網:Describing Objects by their Attributes
    共有32個類,其中20個類作爲訓練集,12個類作爲測試集,類別語義爲64維,共有15339張圖片。
  5. ILSVRC2012/ILSVRC2010(ImNet-2)
    利用ImageNet做成的數據集,由ILSVRC2012的1000個類作爲訓練集,ILSVRC2010的360個類作爲測試集,有254000張圖片。它由 4.6M 的Wikipedia數據集訓練而得到,共1000維。
    Zero-Shot Learing問題數據集分享(GoogleNet 提取)

基礎算法介紹

  1. 建立特徵空間和語義空間的映射:因爲ZSL面臨的是一個語義分類的問題,即對於測試集樣本X_te分類y_i∈Y,又因爲語義描述A和類別Y一一對應,所以只需要關心測試樣本X_te的特徵空間和語義空間的映射。
  2. 可以歸納爲一個分類問題,最常用的方法是嶺迴歸(均方誤差加範數約束)
    min⁡‖X_tr W-A_tr ‖^2+ηΩ(W)
    Ω爲2範數約束。
  3. 嶺迴歸有效的基礎:訓練集類別語義A_tr與測試集類別語義A_te之間存在密切聯繫。
  4. 如何建立更好的模型:需要了解ZSL中存在着哪些和傳統分類的差異。

ZSL中存在的問題以及解決方法

  1. 領域漂移問題(domain shift problem)
  • 問題:同一類別語義中具體實體的差別可能很大。樣本的特徵維度比語義維度大很多,所以在映射的過程中會丟失信息。
  • 解決方法:將映射到語義空間中的樣本,再重建回去。以讓學習到的映射能保留更多的信息。將目標函數改寫
    min⁡‖X_tr-W^T A_tr ‖^2+λ‖WX_tr-A_tr ‖^2
  1. 樞紐點問題(Hubness problem)
  • 問題:在高維空間中,某些點會成爲大多數點的最鄰近點。
  • 解決方法:建立語義空間到特徵空間的映射:
    min⁡‖X_tr-A_tr W‖^2+ηΩ(W)
    還可以:使用生成模型,比如子編碼器,生成測試集的樣本,不存在K-NN的操作,所以不存在hubness problem。
  1. 語義間隔(semantic gap)
  • 問題:樣本的特徵通常是視覺特徵,而語義表示的卻是非視覺的,這容易導致樣本在特徵空間所構成的流型與語義空間中流型不一致——直接學習兩者之間的映射變得困難。
  • 解決方法:將類別的語義表示調整到樣本的流型上,即用類別語義表示類別語義即可。

有關ZSL的一些其他的概念

  1. 直推式學習(Transductive setting)
    在訓練模型的時候,我們或許已有測試集的數據,只是沒有拿到測試集的樣本標籤。因此可以通過遷移學習的方法,利用測試集數據的到一些測試類別的先驗知識。

  2. 泛化的ZSL(generalized ZSL)
    在現實的問題中,拿到的樣本也可能屬於訓練類別,因此在測試是,同時加入訓練類別。

第二篇:Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

摘要

研究了測試集和訓練集不相交時的對象分類問題。

在此文章發表之前,沒有對於毫無關聯的訓練集和測試集進行抽樣檢測的工作,也即是隻能對訓練集所包含的樣本進行分類。作者希望能提出一種不需要任何目標數據類別信息的對象分類方法(無直接訓練集)。

提出高維特徵的概念,這裏的高維特徵包括但不限於形狀、顏色、地理位置,而且是可以事先學習的。(they can be pre-learned, e.g. from image datasets unrelated to the cur- rent task. )然後,可以根據它們的屬性表示(高維語義)檢測新類,而不需要新的學習。

實驗表明,利用屬性層確實可以構建一個不需要目標類訓練圖像的學習對象檢測系統。

該工作在一定程度上實現了遷移學習。

算法簡介

  • 假設:
    (x1,l1),...(xn,ln)(x_1,l_1),...(x_n,l_n)爲訓練樣本xx和相對於的類別標籤ll的成對數據,一共有nn對,屬於kk個類別,用Y={y1,y2,...,yk}Y=\{y_1,y_2,...,y_k\}表示。
  • 目標:
    學習一個分類器f:XZf:X\to Z,其中Z={z1,...,zL}Z=\{z_1,...,z_L\}給測試分爲LL類,其中YY是訓練集中包含的類別,ZZ是測試集中包含的類別,兩者沒有交集。
    換言之,我們需要建立YYZZ之間的關係。
  • 流程:
  1. 因爲在訓練時沒有關於Z的信息,所以文章建立一個人工定義的屬性層AA,該屬性層要較好的表現訓練樣本的類別信息且應該是高維的。比如“有斑紋”,“有尾巴”等。
    該屬性層的作用:將基於圖片的低維特徵的分類器轉化爲高維語義特徵。使得訓練出來的分類器分類能力更廣,有突破類別邊界的能力。
  2. 如何進行遷移學習,構造屬性層呢?文章提出了DAP和IAP兩種模型。

直接屬性預測DAP:

在樣本和訓練類標之間加入一個屬性表示層AA,利用監督學習的方式,通過訓練集YY對應的屬性向量進行訓練可以學到從樣本xx到生成AA的屬性參數β\beta。在測試階段,可以得到測試樣本對應的屬性向量AA,對比測試集ZZ類別的屬性向量,即可得到對於不可見數據的預測類別,從而實現遷移學習。
在這裏插入圖片描述

對於DAP模型,可以用概率圖模型的知識進行建模。首先,每一個訓練類別y都可以表示爲長度爲m的屬性向量ay=(a1,…,am),且該屬性向量爲二值屬性。

之後,可以通過監督學習,得到image-attribute層的概率表示,p(a|x),它是樣本x對於所有am的後驗概率的乘積。在測試時,每一個類別z可以用一個屬性向量az表示。利用貝葉斯公式即可得到概率公式p(zx)p(z|x)

p(zx)=a{0,1}Mp(za)p(ax)=p(z)p(az)m=1Mp(amzx)p ( z | x ) = \sum _ { a \in \{ 0,1 \} ^ { M } } p ( z | a ) p ( a | x ) = \frac { p ( z ) } { p ( a ^ { z } ) } \prod _ { m = 1 } ^ { M } p ( a _ { m } ^ { z } | x )
由於類別Z是未知的,所以可以假設它的先驗概率相同,即每個p(z)的值是相同的,因此可以去除掉公式中的p(z)。對於先驗概率p(a),可以使用訓練時學習到的屬性層值得平均值表示,作者稱在實驗中,該值固定爲0.5時,可以得到comparable result.最終由X->Z的推測,可以使用MAP prediction:
f(x)=argmaxl=1,,Lm=1Mp(amzlx)p(amzl)f ( x ) = \underset { l = 1 , \ldots , L } { \operatorname { argmax } } \prod _ { m = 1 } ^ { M } \frac { p ( a _ { m } ^ { z _ { l } } | x ) } { p ( a _ { m } ^ { z _ { l } } ) }

也就是說,DAP可以理解爲一個三層模型:第一層是原始輸入層,例如一張電子圖片(可以用像素的方式進行描述);第二層是p維特徵空間,每一維代表一個特徵(例如是否有尾巴、是否有毛等等);第三層是輸出層,輸出模型對輸出樣本的類別判斷。在第一層和第二層中間,訓練p個分類器,用於對一張圖片判斷是否符合p維特徵空間各個維度所對應的特徵;在第二層和第三層間,有一個語料知識庫,用於保存p維特徵空間和輸出y的對應關係,這個語料知識庫是事先人爲設定的。

DAP的缺點:

  • 算法引入了中間層,核心在於儘可能得判定好每幅圖像所對應的特徵,而不是直接去預測出類別;因此DAP模型在判定屬性時可能會做得很好,但是在預測類別時卻不一定;
  • 無法利用新的樣本逐步改善分類器的功能;
  • 無法利用額外的屬性信息(如Wordnet等)

間接屬性預測 IAP:

在訓練階段,和傳統的監督訓練一樣,只是在其標籤YY上,學習一層屬性表示層AA,在測試階段,利用標籤層YY和屬性層AA就可以推出測試數據的類別ZZ.
在這裏插入圖片描述

實驗結果

DAP的準確率達到40.5%,IAP的準確率爲27.8%。下圖爲每個不同屬性的預測準確率。
在這裏插入圖片描述 Quality of individual attribute predictors (trained on train classes, tested on test classes), as measured by by area under ROC curve (AUC). Attributes with zero entries have constant values for all test classes of the split chosen, so their AUC is undefined.

引用

Lampert C H , Nickisch H , Harmeling S . Learning to detect unseen object classes by between-class attribute transfer[C]// 2009 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009.

第三篇:An embarrassingly simple approach to zero-shot learning

摘要

文章描述了一種關於ZSL的新方法,且只需要一行代碼就可以實現,但是它能夠在標準數據集上勝過當時最先進的方法。
該方法基於一個更通用的框架,該框架將特徵(features)屬性(attributes)和類(classes)之間的關係建模爲一個具有兩個線性層的網絡,其中頂層的權重不是通過學習得到的,而是由環境給出的。通過將這些方法轉換爲域適應(domain adaptation)方法,文章進一步提供了這類方法的泛化誤差的學習邊界。

算法的背景

  1. 基礎框架:
    語義屬性(高維屬性):對應多個共享對象,實現抽象概括。這些屬性在多個類之間共享,可以被機器檢測到,也可以被人類理解。
  2. 挑戰:如何創造以一個組合屬性或者高維概念signature,來對每一個類打標籤。
  3. Zero-shot Learning 兩階段本質:訓練和推理
    • 訓練:對屬性訓練,獲取屬性的相關知識。
    • 推理:將這些知識用於在一組以前未見過的類中對實例進行分類
      文章指出了目前情況下推理過程中存在的弊端:許多方法盲目地假設所有屬性都傳遞相同數量的信息,並且能夠以相同的精度進行預測,因此,它們在推理規則中被平均地使用。然而,這些假設在現實世界中很少成立。
  4. 文章所作出的改進點:提出了一個能夠集成這兩個階段的框架,克服了像前面描述的那樣需要做出不切實際的假設。引入的這個框架是基於將特徵、屬性和類之間的關係建模的兩層線性模型。第一層包含描述特徵和屬性之間關係的權重,並在訓練階段學習。第二層對屬性和類之間的關係建模,並使用類的指定屬性簽名進行固定。由於可見類和不可見類是不同的,所以第二層是可互換的。
  5. 文章算法的優點:
    1. 模型的性能與現有技術相當,甚至更好。
    2. 模型在訓練和推理階段都是有效的。
    3. 非常容易實現:一行代碼用於學習,另一行代碼用於訓練。

算法流程

文章使用簽名舉證SS和訓練實例的學習矩陣VV,從特徵空間映射到屬性空間。在推理階段,文章使用矩陣VV,加上不可見類SS'的label,得到了最終的線性模型WW'。算法框架概要如下圖所示:
在這裏插入圖片描述

詳細流程暫略

數據集

包括動物、場景、對象等等…
在這裏插入圖片描述

實驗結果

在這裏插入圖片描述
[1]:Akata,Z.,Perronnin,F.,Harchaoui,Z.,Schmid,C.:Label-embeddingforattribute-basedclas- sification. In: Conference on Computer Vision and Pattern Recognition (CVPR) (2013)
在這裏插入圖片描述

引用

Romera-Paredes B , Torr P H S . An embarrassingly simple approach to zero-shot learning[C]// Proceedings of the 32nd international conference on Machine learning (ICML '15). JMLR.org, 2015.

第四篇:Transductive Multi-View Zero-Shot Learning

摘要

文章指出ZSL的現狀與不足之處:大多數現有的ZSL都是通過在帶註釋的訓練集和不帶註釋的不同類的目標數據集之間共享的中間層語義表示來實現轉移學習。從底層特徵空間到語義表示空間的映射是從輔助數據集學習而來的,在進行應用時沒有對目標數據集進行自適應。

文章具體闡述了傳統方法的兩個限制,並給出了相應的解決方法:

首先,由於具有不相交且可能不相關的類,將輔助數據集(訓練集)學習的映射語義函數在直接應用於目標數據集時會存在偏差。也就是領域漂移(domain shift )問題【注:domain shift 這一概念由該文章首次提出】,並提出了一個新的框架——直推式多視圖嵌入transductive multi-view embedding來解決這個問題。
以AwA數據集爲例,現在嘗試通過訓練“是否有尾巴”這一特徵。斑馬是40個訓練集中的有尾巴的十個類中的一個,圖中藍色爲預測特徵,紅色爲原型特徵。從圖中不難看出,雖然斑馬都是“有尾巴的”,但是他們之間也存在很大的差異,而對於訓練集的豬類來說,雖然豬有尾巴,但是豬的原型與其他成員實例之間有非常大的差距,這就是領域漂移問題,導致了傳統ZSL很難預測成功。而採用本爲給出的直推式多視圖嵌入方法,則可以取得較好的效果。
在這裏插入圖片描述
第二個限制是原型稀疏性(prototype sparsity)問題,即對於每個目標類,在給定語義表示的情況下,通常只有一個原型可用於零樣本學習。針對這一問題,文章提出了一種新的異構多視圖標籤傳播 novel heterogeneous multi-view hypergraph label propagation
方法,用於在換向嵌入空間中進行零樣本學習。它有效地利用了不同語義表示提供的互補信息,以一致的方式利用了多個表示空間的流形結構。
以下圖(b)和(c)爲例,對於傳統ZSL,一個類只有一個標籤,然而同一類中不同個體之間的差異往往是巨大的。這樣做的顯然會導致較大的類內差異和類間相似性。即使單個原型集中在語義表示空間的類實例之間,現有的ZSL分類器仍然難以分配正確的類標籤。也就是說,每個類一個原型不足以表示類內部的可變性或幫助消除類間相重疊特徵所帶來的歧義。
在這裏插入圖片描述
文章通過大量的實驗證明新方法的優越性:
該方法較好的解決了領域漂移的的問題,利用了多種不同語義表徵之間的互補性。在對三個標準圖像和視頻數據集的對比實驗中發現,利用文中提出的方法實驗效果顯著優於現有方法。

算法簡介

暫略

實驗結果

暫略

引用

Fu Y , Hospedales T , Xiang T , et al. Transductive Multi-view Zero-Shot Learning[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(11):1-1.

第五篇:Semantic Autoencoder for Zero-Shot Learning

摘要

文章指出了現有的零樣本學習主要是學習從特徵空間(feature space)到語義層次空間(semantic embedding space)的映射函數,這種映射函數只關心被訓練類的語義表示或分類。當應用於測試數據時,因爲沒有訓練數據,所以ZSL會遇到一個普遍的問題:領域漂移問題(domain shift problem).
文章提出了一種新方法:基於學習的語義自編碼方案Semantic AutoEncoder (SAE)。文章的核心思想是

自編碼器在進行編碼時,像現有的ZSL模型一樣,將視覺特徵向量投射到目標空間中。然而,解碼器施加了一個額外的約束,即程序必須能夠重建原始的視覺特性。
也就是說,
SAE在編碼和和解碼時,使用了原始數據作爲約束,即編碼後的數據能夠儘可能恢復爲原來的數據。
文章提出的編碼器和解碼器時線性同步的,且取得了較好的效果:在6個基準數據集上的大量實驗表明,文章提出的SAE優於現有的ZSL模型,具有較低的計算成本。此外,當SAE應用於監督聚類問題時,它也優於當時最先進的算法。

算法簡介

  1. 下圖是一個最簡單的自編碼器框架,其中XX爲樣本,SS爲自編碼器的隱層,這個隱層即可以表示原樣本的標籤,也有着清晰的語義,X^是隱層還原樣本的表示。
    在這裏插入圖片描述
  2. 語義自編碼器的構成:
    文章所介紹的自編碼器中的隱層只有一層,而且維數要小於訓練樣本的屬性的維數。設輸入層到隱層的映射爲WW,隱層到輸出層的映射爲WW^*,WWWW^*是對稱的,即有W=WTW^*=W^T,由於文章的目標是輸入和輸出儘可能相似,所以有minW,WTXWTWXF2\operatorname { min } _ { W , W ^ { T } } \| X - W ^ { T } W X \| _ { F } ^ { 2 }
    同時,文章希望隱層可以包含語義,也就是說能表示類標籤or樣本屬性。所以加入WX=SWX=S的約束條件,其中SS是事先約定好的語義向量。這也是自編碼器從非監督學習向監督學習的轉變。
    此時目標函數可以表示爲
    minw,wTXWTWXF2 s.t. WX=S\operatorname { min } _ { w , w ^ { T } } \| X - W ^ { T} W X \| _ { F } ^ { 2 } \quad \text { s.t. } \quad W X = S
    在這裏插入圖片描述

具體目標函數最優化求見過程相關的方程函數解析暫略

數據集和實驗結果

本文使用的6個數據集如下所示:
在這裏插入圖片描述
不同算法的實驗結果如下,可見本文給出的效果最好。
在這裏插入圖片描述

引用

原文:https://arxiv.org/pdf/1704.08345.pdf

Kodirov E , Xiang T , Gong S . Semantic Autoencoder for Zero-Shot Learning[J]. 2017.
參考:
https://blog.csdn.net/u011070272/article/details/73498526

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章