學習範式

元學習(meta-learning)

/ MET-uh-LER-ning /

一位做過幾百道菜的老練廚師,瞥一眼一道全新的菜,就能即興做得很像樣,因為他學會的是「烹飪是怎麼回事」,而不只是某一張食譜。元學習——「學會學習」——就想把這種本事給機器:系統不去精通某一項任務,而是橫跨許多任務來訓練,好讓自己擅長在資料極少的情況下迅速上手新任務。

它的架子搭在普通訓練之上一層。你餵給系統的不是一份資料集,而是一整族小任務。在「內層」,它練習去解每一個小任務;在「外層」,它調整自身,好讓這種練習下一次變得更快、更省力。一種著名的做法,是學出一組模型參數的起點,這個起點恰好處在最易於適應的位置——在任何新任務上走幾步訓練,它就已經像模像樣了。元學習的產物並不是某一件活兒的成品模型;而是一個「擅長把新活兒做好」的模型。

這正是少樣本學習背後的主引擎——系統得從一小把例子裡學會一個新類別。坦白說說它的邊界:元學習只能遷移到那些與訓練任務相似的新任務上——碰到一類真正陌生的問題,那點起跑優勢就蕩然無存。它還很難訓(嵌套的內外循環既不穩定又吃算力);而且對許多實際問題來說,乾脆拿一個大的預訓練模型來微調,往往同樣管用,還省心得多。

在成千上萬個小任務上訓練一個系統,每個任務都是「從每種各五張照片裡學會區分兩個新動物物種」。經過這番練習,系統學會了「如何適應」。如今給它看五張貘的照片和五張㺢㹢狓的照片——都是它訓練時從沒見過的動物——它幾乎立刻就能正確地把兩者分開。

它的產物不是某一個訓好的模型,而是「快速適應」的能力。

元學習只在與訓練任務相像的任務上換來起跑優勢;一個真正新奇的問題會把它打回原點。「學會學習」並不是一台無所不能的萬能學習機。

又稱
learning to learn元学习元學習learning-to-learn