優拓 Paper Note ep.17: Few-Shot Learning (Part II)

Chu Po-Hsien
YOCTOL.AI
Published in
4 min readDec 29, 2017

註:以下的圖皆截自 《Optimization as a Model for Few-Shot Learning

上回我們提到用 Siamese Kernel SVM 來做分類,是對每次的 Few-Shot Task 獨立的。假如我們現在鬆綁這個限制,使得不同的 Few-Shot Task 可以互相幫助?

Adam, Adagrad 等方法對於大量資料的 SGD 有不錯的效果,但沒有實驗證明他們在小量資料也會有同樣的效果。雖然有標記的資料不多,但讓過去類似的 Few Shot Task 來讓模型學習「如何做 Few-Shot Learning」,也許會有不錯的效果。而這樣「Learning how to Learn」便是另一個很夯的領域:Meta Learning 的核心。

這篇 ICLR 2017 的論文利用了 Meta Learning ,讓一個 Meta-Learner 學習如何指導模型對 Few-Shot Task 做 Gradient Update。

他們發現一般 SGD 的參數更新和 LSTM 的狀態更新 hen 像:

SGD 參數更新

LSTM 狀態更新

在 LSTM 的狀態更新裡,前一個狀態和狀態的改變,兩者之間的比例是可以調控的。模型的參數更新也可以利用這個方法來做:

這個的直覺在於,模型是否要梯度還是原本的值,應該要考慮當下觀察到的 Loss、Gradient 的大小等等的值。假如 Loss 小但 Gradient 大,那也許 Learning Rate 可以小一點;Loss 大但 Gradient 小,Learning Rate 就可以大一點。

根據這個概念,對 Meta Learner 來講,一筆 Data 就是一個 Few Shot Task 的一輪更新,這一輪更新要做幾次參數更新,就是 Meta Learner 的 Forward Step 數量:

而訓練 Meta Learner 的 Pseudo Code 就寫成:

優拓資訊 (Yoctol Info Inc.)

At YOCTOL, We AI Your Business by Bot.

優拓為新銳 AI 團隊,利用自行研發的機器人框架、自然語意理解、網路爬蟲、推薦引擎,為企業提供全方位的商務機器人解決方案,不僅可以即時回應顧客的客服需求,也能主動推播個人化商品推薦,提昇企業經營效能。

若您有相關業務需求或是任何建議、疑問,都歡迎寄信至 service@yoctol.com,我們將盡速與您聯繫,期待您的來信!

--

--

Chu Po-Hsien
YOCTOL.AI

Data Team Lead @Yoctol 專注於機器學習的應用以及產品設計,偶爾幫忙開發開源機器學習套件。