MAML
Model-Agnostic Meta-Learning
メタ学習
ew-shot Learning : 少ない画像データで学習する【後編】
サポートデータ
複数のクラスから構成されたデータセット
S = { x , y },  x: 画像データ、y:ラベル
画像データ が K 枚ある場合、K-shot learningとよぶ
N 種類の分類タスクがある場合、K-shot N-way learning とよぶ
クエリデータ
タスクの入力データ、ネコの分類タスクを実行するにはネコの画像をクエリデータとして与える。
タスク
分類タスク
$ T_i = { S_i, Q_i}
Ti : 分類タスク
Si : サポートデータ
Qi : クエリデータ
まず、それぞれの分類タスクの学習を行います。
例えば、「猫」の分類タスク T1 を学習します。
ここでは、T1 の中にあるサポートデータ S1 を教師データとして使って、損失関数を算出し、モデルパラメータを更新します。
損失関数 L1 は「猫」の分類タスクのデータセットから「出力」と「正解データ」の誤差を示します。
誤差が大きい場合、最適値はまだ遠くにあることを意味する。
誤差が小さくなっていくと、モデルパラメータ θ の最適値がだんだん近づいていることを意味する。
これを繰り返すことで、損失関数 L1 を最小化し、最適なモデルパラメータ θ を最適値として見つけることができる。
最適なモデルパラメータ θ があると「猫」や「犬」などの特徴を表現することができるようになり、分類の精度が上がります。ここは一般の深層学習と同じです。
ところが、一般の深層学習では、多量なデータがないと、モデルパラメータが「猫」や「犬」の特徴を正確に表現することができない。
しかし、MAMLでは、1枚〜20枚のデータを使うだけで、高い精度で分類することができます。
下記の図は論文[1]から引用されたものです。赤色のマークは θ の最適値を示しています。
https://gyazo.com/7fd985a631a67c7d49dbcf98e1838f07
その後、クエリデータを使って学習を行う。
上記で計算したモデルパラメータ θ を初期値として設定します。
例えば、「猫」の分類タスクを実行するとき、モデルパラメータ θ が更新され、「猫」の分類タスクに適応したモデルパラメータ θ1′ になります。
更新されたモデルパラメータ θ1′ に対して、損失関数 L1 を計算する。
複数の分類タスクがある場合、複数の損失関数 L1 , L2,… の和を小さくなるように最適な θ の値を探索する。
最適な θ は次のタスクに初期値として使うことになります。これにより、モデルパラメータ θ は複数のタスクにまたがって更新します。
下記の図を見てみましょう。
3つの分類タスクがある場合、それぞれの損失関数は L1、 L2、 L3 が計算され、モデルパラメータはそれぞれ θ1′ 、 θ2′ 、 θ3′ で最適値として設定されます。
損失関数の和を最小化になるように θ を修正することで、次の分類タスクの学習がだんだん早くなります。
この学習の目標として、新しいタスクが実行するときでも、早く損失関数が最小化できるようなモデルパラメータ θ を見つけることです。