【ワンショットラーニング】

One-Shotラーニング とは?

最終更新:
💡 新しいクラスを、各1件の見本で見分ける

新しい分類対象について、各クラス1件の例から未判定のデータを分類する学習の設定。事前学習との違いと、Siamese・Prototypical Networksの考え方を解説します。

📌 このページのポイント
One-Shot:新しい各クラスに見本1件事前に別のデータで特徴を学ぶ学習全体のデータが1件ではない新しい見本:架空の3クラスA:1件B:1件C:1件各クラス1件 → 見本は合計3件未判定の画像特徴を比較例:クラスAと判定判定の正しさは、別のデータで評価する
学習した特徴で新しい見本と比べる分類の例です。図の判定は例示で、1件で正しく認識できる保証や重みの更新回数を表すものではありません。
ひよこ ひよこ
One-Shotは、1枚だけでAIを全部作るの?
ペンギン先生 ペンギン先生
それとは違うよ。画像分類なら、新しい各クラスについて見本を1枚ずつ与え、別の画像がどのクラスかを判定する設定だ。事前に別のデータで学んだモデルを使う方法もある。
ひよこ ひよこ
クラスごとに1枚、というのは?
ペンギン先生 ペンギン先生
例えば架空の3種類の記号を見分けるなら、A・B・Cそれぞれ1枚ずつの見本を置く。見本は合計3枚だ。次に来た未判定の記号が、どの種類に当たるかを考える。
ひよこ ひよこ
少ない見本でも、どう比べる?
ペンギン先生 ペンギン先生
別のデータで学んだ特徴を使う方法がある。Siamese Networksの研究では、二つの画像が同じクラスかを学び、新しい見本との比較に利用する。新しいクラスの見本だけが1件でも、その前の学習にはほかのデータを使っているんだ。
ひよこ ひよこ
Prototypical Networksも同じ仕組み?
ペンギン先生 ペンギン先生
特徴を比較する考え方は近いけれど、同じ構造ではないよ。見本を特徴の空間へ写し、クラスごとに平均を代表として使う方法だ。各クラス1件なら、その見本の特徴が代表になる。未判定のデータと代表の距離から分類する。
ひよこ ひよこ
1枚あれば、必ず分かる?
ペンギン先生 ペンギン先生
保証はない。見本が偏っていたり、新しい対象が事前学習の対象と大きく違ったりすると、判断を誤ることがある。見本とは別の評価用データで、条件ごとの性能を確認する必要がある。
ひよこ ひよこ
Few-ShotやZero-Shotとの違いは?
ペンギン先生 ペンギン先生
この画像分類の文脈では、Few-Shotは各クラス少数の見本、One-Shotは特に1件、Zero-Shotは対象クラスの見本なしで扱う設定だ。ただし、見本なしでも属性の説明などを使う場合がある。何を例として数えているかを確認しよう。
もっと詳しく知りたい人へ

One-Shotは、重みを1回だけ更新すること?

その意味ではありません。KochらのSiamese Networksの研究では、別のデータで学んだ特徴を、新しい各クラス1件の見本の分類へ再学習なしで使います。見本の数と、学習中の更新回数を分けます。

論文でよい成績なら、どんな用途でも使える?

そうとは限りません。文字などの研究用データでの評価と、実際の利用条件は区別します。クラスの種類、見本の品質、未知の入力をどう扱うかを含め、用途に合う評価が必要です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「One-Shotラーニング」って出てきたら「新しい分類対象について、各クラス1件の見本を使う学習の設定」と思えばだいたいOK!学習全体が1件のデータで済むという意味ではないよ。
📖 おまけ:英語の意味
「One-Shot Learning」 = 新しい対象の各クラス1件の例を使う学習の設定
💬 ここでは画像の分類を中心に説明します。one-shotは新しい各クラスに与える例が1件という設定を表し、学習全体のデータ数や更新回数とは分けて考えます。

参考資料

← 用語集にもどる