Few-Shot/One-Shot Learning


Few-Shot/One-Shot Learning指的是小樣本學習,目的是克服機器學習中訓練模型需要海量數據的問題,期望通過少量數據即可獲得足夠的知識。

Matching Networks for One Shot Learning

論文將普通神經網絡學習慢的問題歸結為模型是由參數組成的,模型通過樣本的訓練轉化為參數上的改進是一個特別“昂貴”的過程,因此需要大量樣本。作者由此提到不涉及參數的模型(non-parametric model),例如kNN等模型(這里我將這兩個的區別理解為 是否需要多次迭代優化參數)。最后,他們使用的是帶參數的網絡和不帶參數的結合,目的是快速從樣本中獲取知識。論文中面向的問題是n-way k-shot 這樣一種任務,support set中k個example一共有n個lebel,全都是訓練時候未見過的。(這里我將support set理解為:初次用比較多的數據訓練之后得到一個模型,之后再提供很少的數據,讓已有的模型快速學習。論文的實驗中support set中的label都是訓練時候沒見過的)。

模型組成

模型是一個set-to-set的框架,或者說是一個end-to-end的方式。預測的公式為

\(\hat{y} = \sum_{i=0}^K{a(\hat{x},x_i)y_i}\)

輸出的 \(\hat{y}\) 表示的是測試數據屬於每種label的概率,$y_i$是一個獨熱向量。 a是一個矩陣,代表的是 \(\hat{x}\) 和支撐集中每個 \(x_i\) 的相似程度。論文中使用的計算相似度的方式是 softmax over the cosine distance

\(a(\hat{x},x_i) = e^{c(f(\hat{x},g(x_i)))} / \sum_{j=1}^k{e^{(c(f(\hat{x}),g(x_i)))}}\)

上面的f和g函數稱為embedding function,目的是將數據轉化為向量,相當於一個信息提取的過程。但是作者考慮到這種方式(f和g關注的只是一條數據)並沒有綜合考慮整個支持集的信息,但是分類時候利用的是整個支持集的信息。認為每個$x_i$單獨地被f和g進行嵌入存在短視的缺點。因此,提出Full Context Embeddings,嵌入函數變為$f(\hat,S)$,\(g(x_i,S)\),使用的是LSTM,將支持集看作序列在整個支持集的上下文環境下對$x_i$和$\hat$進行編碼。


水平有限,更深層次的內容現在還並不能從論文中得出,推薦兩篇論文筆記: 中文博客 英文博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM