mate learning = learn to learn
如下圖所示,mate learning就是 輸入訓練資料到 F,輸出的是一個可以用來識別圖像的 f*。
F(training data) = f (一個神經網絡)
而與其他的機器學習模型不同的是,機器學習是訓練出來一個模型F,用F來去識別圖像。
f(圖片 貓)= “cat”
如下圖所示,machine learning 的過程是這樣的,紅色標注的部分都是人為設定的,對於不同的初始化 theta 就會獲得不同是訓練模型。
思考,如何讓初始化參數自己學習出來,而不需要人為的設定?
如何評價F 的好壞,每次從訓練集中選取一部分數據用做訓練 並對學習出來的f1 做測試 測試結果為l1 這為一個task,然后有很多這樣的task
把所有的li 求和 就是對 F 的評價結果,L(F) = Σ(l) 結果小就表示F 效果好,反之。
下圖是 對訓練數據的划分方式,整體的數據集叫做training set 而每一個task中的數據集叫做 support set 和query set
損失函數
實現mate learning 的兩種方法
MAML 過程
maml 如何求出Φ使用梯度下降;對比預訓練和maml之間的區別 可以看出maml是 對每一個task中訓練好的模型中的θ求和(綠色符合) 然后求求出F 模型的Φ(藍色)
而pre_training 是 當前模型的在當前test集合上的Φ 求得。
舉例說明這兩者的區別,我們不在意Φ在task上是否表現的很好,我們在意的是Φ是否可以訓練出好的θ,如下圖所示。
而對於pre-training ,Φ可能在l2上表現的很好,但是放到l1上,它有可能陷入局部最優。
所以總結是:
maml ——> Φ 是看訓練后可能達到最好的潛力
pre_train ——> Φ 關注它在當前模型上表現最好
maml 在訓練的時候只需要update一次
pre-train 和 maml 比較
數學推導公式
可視化對比兩者
pre-train maml reptile 三者比較
maml 的問題
一開始依然需要初始化 初始化 參數的參數
完!