tft每日頭條

 > 生活

 > 樣本和樣本數據的區别

樣本和樣本數據的區别

生活 更新时间:2024-07-22 03:20:07

在本篇文章中,我們将讨論機器學習和深度學習的不同領域中的一個熱門話題:零樣本和少樣本學習(Zero and Few Shot learning),它們在自然語言處理到計算機視覺中都有不同的應用場景。

少樣本學習

在監督分類器中,所有的模型試圖學習的是區分不同的對象的的特征,無論數據是什麼形式存在的,例如圖像、視頻還是文本都是一樣的。而·少樣本學習的思想是通過比較數據來學習區分類,這樣模型使用的數據更少,并且比經典模型表現得更好。在少樣本學習中通常會使用支持集(support set)代替訓練集。

少樣本學習是一種元學習技術。元學習的意思是:學會學習。元學習是元認知的一個分支,研究的是對自身學習和學習過程的方法和認知過程。

支持集

支持集其實與訓練集的數據是一樣的,但由于學習方法不同所以我們稱之為支持集。

K-Way N-Shot支持集:支持集具有K類,每個類都有N樣本。 N-Shot意味着為每個類提供的樣本數。 如果每個另類都有更多樣本,模型可以學習的更好。

樣本和樣本數據的區别(零樣本和少樣本學習)1

在較少的類中,模型可以更輕松地對數據進行分類。總的來說,我們可以說:更少的k和更多的n更好。

為什麼把他成做支持集呢?還記得SVM中的支持向量嗎,就是SVM中區别分類邊界的數據,支持集也是這個意思。

相似性函數

少樣本學習的想法是相似性函數。 這意味着應該計算SIM(X,X’),其中“ SIM”是相似性函數,而X和X’是樣本。 首先要做的是從大型數據集中學習相似性函數。 然後将相似性函數應用于預測。

孿生網絡

孿生網絡使用正面和負樣本進行分類。 以下是正和負樣本的示例:

(Tiger1,Tiger2,1)| (CAR1,CAR2,1)(Tiger1,Car2,0)| (Tiger1,Car1,0)

網絡結構就是這樣:

樣本和樣本數據的區别(零樣本和少樣本學習)2

孿生網絡首先使用數據集中的兩個圖像,然後使用一些層(在這裡的圖像數據示例,使用卷積層),創建輸入的編碼向量。 最後使用差異層和不同的損失函數嘗試學習相似性函數。

輸入該網絡的數據是:

  • XA:錨數據:從數據集随機選擇
  • X :正數據:與錨相同的類
  • X-:負數據:錨不同的類别

F函數(CNN)用于創建編碼向量。 在編碼向量後,我們可以使用:

D = || f(x^ ) - f(x^a)||²d- = || f(x^a)-f(x^ - )||²

有了邊緣alpha和相似性值,我們可以決定樣本的類别。

我們希望d-> =(d ) alpha,否則,損失為(d ) alpha-(d-)。

因此損失函數是:max {(d ) alpha-(d-)}

Few-Shot

少樣本學習的基本思想是給定一個k-way n-shot的支持集,在大規模訓練集上訓練一個暹羅網絡。然後使用查詢的方式來預測樣本的類别。

在訓練少樣本學習之前,首先我們預訓練CNN的特征提取(又稱嵌入),使用标準監督學習或Siamese網絡對CNN進行預訓練。

在微調中,(x_j, y_j)是支持集中有标記的樣本。f(x_j)是經過預訓練的CNN提取的特征向量。P_j = Softmax(W.f(x_j) b)作為預測。這可以通過使用微調來讓W = M,b = 0。,這意味着在支持集中學習W和b:

樣本和樣本數據的區别(零樣本和少樣本學習)3

樣例

樣本和樣本數據的區别(零樣本和少樣本學習)4

考慮 3-way 2-shot的支持集。 在每個圖像上應用神經網絡F以進行特征提取。 由于每個類都有兩個圖像,因此每個類都有兩個特征向量。可以得到這兩個向量的均值。 由于我們有3類别,我們将有3個平均的向量。 現在我們把它們标準化。每個向量是每個類的表示。對于預測,我們輸入一個查詢圖像。得到查詢圖像的特征向量。我們再将其标準化,然後将這個向量與3個均值向量進行比較。

樣本和樣本數據的區别(零樣本和少樣本學習)5

通過比較這樣就得到了我們的預測分類

單樣本學習

one-shot learning是少樣本學習的一種特殊情況,即從一個樣本學習并再次識别物體。

單樣本的一種方法是使用CNN和帶有(n 1)的softmax來檢測模型看到的圖像中是否存在新的圖像。但是當你的訓練數據集中沒有足夠的樣本時,他并不能很好地工作。并且除了新的類别外還必須在SoftMax層中使用(M 1)神經元再次訓練模型。

但是我們可以使用相似函數。

d(img1, img2) =圖像間差異程度,若d(img1, img2) <= r:相同;若d(img1, img2) > r:不同

零樣本學習

首先,讓我們看看為什麼零樣本學習很重要。 我們面對的是數量龐大且不斷增長的類别。很難收集和注釋實例。并且新的類别不斷出現。

零樣本學習是人類可以做到的,但是經典的機器學習不能。例如跨語言字典歸納(每一對語言,每個單詞是一個類别)。

從監督到零樣本的模式識别

我們以前在經典的分類模型中的做法是這樣的:

樣本和樣本數據的區别(零樣本和少樣本學習)6

但當出現新的類别時,該怎麼做呢?關鍵是零樣本學習。零樣本學習的主要思想是将類别嵌入為向量。

樣本和樣本數據的區别(零樣本和少樣本學習)7

特征類别向量映射:v = f(x)

如果出現了新的類别,我們可以得到其新的類别向量嵌入,然後使用最近的鄰居并将這些向量視為标簽。 數據類别向量圖可以推廣到新類别。 相當于我們正在從過去的經驗中進行遷移學習。

零樣本學習是如何工作的?

在回歸/分類方法的訓練步驟中,我們會得到一些已知的類-類别向量v和數據x。而我們想要學習的是數據屬性v=f(x)。例如使用支持向量機(SVM)。

在測試階段,我們想要為新類指定向量v*。然後使用f(x*)來查找新的分類。這種方法簡單且快速,而且還具有類别的可分離性。

在零樣本學習中,使用energy函數來判斷類别是否匹配。設x是數據,v是類别向量。在訓練階段,我們訓練energy函數E(x,v)=x 'Wv(這被稱為返回标量的雙線性嵌入)。

數據和任務匹配(x=v)時E_w(x,v)會變得很大,當數據和任務不匹配時(x!=v),E_w(x,b)很小。訓練的目标是最大化這個函數的邊緣間距。

而在測試階段:

分類新類實例x*,為一些新類指定v*向量計算每個v*的E(x*, v*),找到最大邊際的類别,最大邊際可分離性意味着更高的準确性,但與經典的機器學習模型不同,它是複雜和緩慢的。

從哪裡獲得類别向量呢?

“監督”來源:(1)類屬性的手工标注,(2)分類類層次的矢量編碼

“無監督”來源:現有的非結構化數據(Word2Vec就是一個例子)

零樣本學習的一些問題

1、領域轉移時零樣本學習需要重新訓練/測試

樣本和樣本數據的區别(零樣本和少樣本學習)8

2、多标簽zero-shot

有時我們想要多标簽分類,而不是單标簽分類,這是處理分類向量就會很麻煩,這時可以添加每一個可能的組合向量,例如:樹,樹 山,樹 海灘,…,但是這其實造成了實際分類數量的成倍的增長。

3、深度網絡能夠進行零樣本學習

樣本和樣本數據的區别(零樣本和少樣本學習)9

将許多經典的和最新的遷移學習算法作為特殊情況目前還無法驗證否有好處

目前零樣本學習的進展和應用

1、将其用于音頻識别|無人機視覺類向量=>上下文向量,通過上下文向量對任何新的上下文進行泛化例如在無人機視覺中,協變量上下文向量:距離、俯仰、速度、橫搖、偏航等

2、跨語言詞典歸納:查找不同語言的單詞對應

總結

零樣本和少樣本學習方法減少了對注釋數據的依賴。因此對于新的領域和收集數據的困難的領域他們是很重要的。 少樣本(Few-Shot Learning FSL)是一種機器學習問題(由E, T和P指定),其中E隻包含有限數量的例子,并帶有監督信息。現有的FSL問題主要是監督學習問題。零樣本學習(Zero-shot learning, ZSL)是機器學習中的一個問題解決方案,學習者在測試時從訓練中沒有觀察到的類中觀察樣本,并預測他們所屬的類。

作者:Amirhossein Abaskohi

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved