Few-shot / One-shot Learning
解説:人間のように「少し」で学ぶ
従来のディープラーニングは、犬を認識させるために何千枚もの犬の画像(大量のデータ)が必要でした。
しかし、人間は初めて見る動物でも、「これがキリンだよ」とたった1枚(One-shot)や数枚(Few-shot)の写真を見せられただけで、次から「あ、キリンだ」と認識できます。
このように、「極めて少ないサンプル数」から学習し、未知のデータを識別できるようにする技術を、ショット(提示されるデータの数)に応じて以下のように呼びます。
データの数による分類
- Zero-shot(ゼロショット):
例題を1つも見せない状態で推論させる。
(例:「この画像を分類して」といきなり渡す) - One-shot(ワンショット):
正解の例題を1つだけ見せてから推論させる。
(例:「これが犬の画像だよ。じゃあこれは?」) - Few-shot(フューショット):
正解の例題を2〜10個程度(少量)見せてから推論させる。
(例:「これが犬、これが猫、これが鳥だよ。じゃあこれは?」)
2つの文脈での使われ方
この用語は、大きく分けて2つのシチュエーションで使われます。
- 画像認識などのモデル学習(Meta-Learning):
「未知のクラスを識別する能力」自体を鍛える学習方法。モデル更新を伴う場合もあれば、距離学習(Metric Learning)を使う場合もあります。 - LLM(ChatGPT等)のプロンプトエンジニアリング:
AIに指示を出す際、プロンプト(命令文)の中に「入力と出力の例」をいくつか含めるテクニックのこと。「文脈内学習(In-context Learning)」とも呼ばれます。
G検定対策
重要キーワード:N-way K-shot
Few-shot学習のタスク設定を表す決まり文句です。
| 用語 | 意味 |
|---|---|
| N-way | 分類する「クラス(種類)の数」。 (5-wayなら、犬・猫・鳥・魚・馬の5種類) |
| K-shot | 各クラスごとに提示される「正解データの数」。 (1-shotなら各1枚ずつ、5-shotなら各5枚ずつ) |
| サポートセット (Support Set) |
学習(参考)のために見せる「例題データ」のこと。 |
| クエリセット (Query Set) |
実際に分類させたい「テストデータ」のこと。 |
出題ポイント
- メタ学習(Meta-Learning):「学習の仕方を学習する(Learning to Learn)」枠組みとして出題されることが多い。
- 人間のような学習:「大量のデータを必要とする」というディープラーニングの課題を克服するアプローチである。
- シャムネットワーク(Siamese Network):2つの画像の「似ている度合い(距離)」を測ることで、未知の画像がどのクラスに近いかを判定する手法。One-shot学習でよく使われる。
ひっかけ対策
- × One-shot学習は、一度学習したら二度と忘れない学習のことである
(解説)「1枚のデータで学習できる」という意味であり、記憶の定着率の話ではありません。 - × Zero-shot学習は、何も学習していないAIを使うことである
(解説)「そのタスク専用のデータ」は見ていませんが、事前の「汎用的な学習(事前学習)」は済ませている状態です。知識ゼロではありません。
