小資料系列三- Optimization-based Meta Learning前篇

Shu-Yu Huang
Feb 22, 2022

--

這次我們來講一下使用Optimization based Meta Learning來解決小資料問題的部分。

我們知道Meta Learning是要透過多次任務的學習讓一個meta model學會如何學習。而Optimization based是最能直觀體現這種學習目標的一個門派,它是透過一個meta model來學習參數優化這件事情。

首先,我們在神經網路上若要做分類會使用大量參數來資料做多層特徵擷取,這些參數就決定我們神經網路可以判斷什麼事情、幾種類別、多細膩的分類等等我們問題的標籤。一般網路如Fig. 1所示,其參數脫不開weight與bias這兩項,透過多層參數與層輸入相乘,相加以及做activate function,我們可以透過最後一層輸出分類的預測。

Fig. 1 參數集合

在得到預測後如Fig. 2所示,從最後一層輸出與實際解答透過loss funciton,我們可以得到預測與答案相差的程度loss。我們會想辦法透過優化(Optimize)模型參數將loss縮到最小。

Fig. 2 參數優化

如Fig. 3所示,由我們熟悉的梯度下降方式,我們可以不斷朝梯度反方向更新參數,使得對於一個任務的loss降到最低。

Fig. 3 梯度下降

不過有新任務時,是否能利用既有訓練好的參數呢?例如Fig. 4所示我們舊產品的瑕疵有好幾個類別,不過每個類別都很少,且我們目標有一個新產品,它有一些新的瑕疵種類,我們能不能透過過往資料訓練一個參數,在新任務上使用呢?

Fig. 4 過往任務與新任務

我們如果把每個任務中參數值與相對的loss對照畫出來(如Fig.5 示意圖),常常能看到每個任務差很多的時候,需要的參數其實是不一樣的,所以一但參數共用將不能得到新任務最滿意的結果。

Fig.5 分類Task 1的最佳參數若拿去Task2或Task3,則不能得到最佳的loss

直接使用參數可能不太好,這時最簡單可以使用遷移學習的方式,利用新任務資料再做一下訓練,期望參數值達到新任務的最佳點。不過如Fig.6 所示,新任務的loss分布可能使舊任務無法遷移到新任務最佳點。

Fig.6 舊參數套用到新任務時,可能會無法達到最加點

Optimization based Meta Learning的精神則是假設學習這件事情也是可以再最佳化的。如Fig.7 所示,Optimization based希望在新任務中,要嘛可以做更好的初始化,要嘛是可以提升模型對loss分布"地圖"判斷的能力,不要再死死的照著gradient descent走。例如圖示中目前的位置照gradient desecent走只會到local minimum,要讓參數走到右邊的global minimum是需要訓練的。透過訓練一個meta model,在我們看到目前參數和任務的loss或gradient時我們這個model知道怎麼走才能跳脫gradient descent達到好的global minimum。

Fig. 7 示範Optimization based Meta Learning的meta model作用

如果用人類學習來比喻的話,如Fig. 8所示,Optimization based的做法就像是你已經學過C++跟Java,再學Python就會比直接學python容易點。在學了很多種程式語言後,你不但學會了該種程式語言,還學會了學程式比較快的方式,像是拆解程式框架、要先弄懂變數型別、不同程式有共用的function像是map function、等等各種程式學法的智慧。你的meta model學的就是能快速更新參數(學習)的方法。

Fig.8 人類學程式語言比喻

在實作上,我們會將訓練分成兩層,inner loop跟outer loop。如Fig. 9所示,inner loop是每個任務中一個個的資料輸入模型,透過任務data跟label來訓練每個任務的參數。而outer loop則是一個個的任務,輸入到meta model中,透過每個任務的初始參數與最佳參數解來訓練meta model。最佳參數解在實際上是不可得的,所以會以inner loop最佳化過後的解來取代最佳參數解做為label。

Fig.9 Optimization based meta learning流程

主要的做法分兩個部分,第一是學習好的參數初始值,可以參考MAML[1] 及其延伸paper;第二是訓練一個optmizer (像是Adam、SGD那種東西),可以參考LSTM-optimizer[2]。我們下回會講解一些作法的內容。

[1] Finn, C., Abbeel, P., & Levine, S. (2017, July). Model-agnostic meta-learning for fast adaptation of deep networks. In International conference on machine learning (pp. 1126–1135). PMLR.

[2] Andrychowicz, M., Denil, M., Gomez, S., Hoffman, M. W., Pfau, D., Schaul, T., … & De Freitas, N. (2016). Learning to learn by gradient descent by gradient descent. Advances in neural information processing systems, 29.

--

--

Shu-Yu Huang

AI engineer in Taiwan AI Academy| Former process engineer in TSMC| Former Research Assistance in NYMU| Studying few-shot-learning and GAN