1行定義
Zero-shotとは、解きたいクラスやタスクの例を1つも見せずに、事前に学習した知識と、クラス名や指示などの説明だけを手がかりに推論させる方式のことです。
くわしく
Zero-shot(ゼロショット)は、解きたいタスクやクラスについて、学習例を1つも与えずにモデルに解かせることです。「ショット」は与える例の数を表します。例を1つだけ与えるのがOne-shot、少数与えるのがFew-shotです。
背景:すべてのクラスの例は集められない
教師あり学習では、クラスごとに大量のラベル付きデータが必要です。しかし、あらゆる物や概念のデータを集めることはできません。そこで、見たことのないクラスを、別の形の知識を手がかりに識別しようとするのがZero-shot学習です。
初期の研究では、「縞模様がある」「4本足」などの属性を手がかりにしました。見たことのある動物の画像で属性の判定を学んでおけば、属性の組み合わせで説明された未知の動物も識別できます。
基盤モデルによるZero-shot
基盤モデルの登場で、Zero-shotは身近な使い方になりました。
- CLIP:画像と文章を同じベクトル空間で比べられるように学習しています。「〇〇の写真」という文をクラスの数だけ用意し、画像と最も近い文を選べば、追加学習なしで分類できます。論文では、ImageNetの学習データを1枚も使わずに、ImageNetで学習したResNet-50と同等の精度を示しました。
- 大規模言語モデル:「次の文を要約してください」のように、指示だけを与えてタスクを解かせます。GPT-3の論文は、例を示さない設定をZero-shot、少数の例をプロンプトに含める設定をFew-shotと呼んで比べました。
どちらの場合も、モデルの重みは更新しません。
注意点
Zero-shotの性能は、事前学習で関連する知識をどれだけ得ているかに左右されます。専門性の高い領域などでは、精度が下がることがあります。その場合は、数例を示すFew-shotや、ファインチューニングを検討します。
覚え方
「例はゼロ、説明だけを頼りに解く」と覚えます。
G検定での出題
出題のされ方
例を1つも与えない点でのOne-shot・Few-shotとの違い、CLIPがクラス名の文との類似度で画像を分類する仕組み、大規模言語モデルに指示だけでタスクを解かせる使い方が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Zero-shotこのページの用語 | 解きたいクラスやタスクの例を1つも見せずに、事前に学習した知識と、クラス名や指示などの説明だけを手がかりに推論させる方式 |
| Few-shot学習 | 新しいクラスやタスクについて、数個程度の少ない例だけを手がかりに、識別や推論ができるようにする方式 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Zero-shotでは、解きたいタスクの入力と正解の例を1つだけ示してから、モデルに推論させる。
答えを見る
答え × 誤り
例を1つだけ示すのはOne-shotです。Zero-shotでは例を1つも示さず、タスクの説明やクラス名だけを与えます。
-
大規模言語モデルに「次の文を英語に翻訳してください」という指示だけを与え、翻訳の例を示さずに訳させる使い方は、Zero-shotにあたる。
答えを見る
答え ◯ 正しい
GPT-3の論文でも、タスクの説明だけを与えて例を示さない設定をZero-shotと呼んでいます。モデルの重みは更新しません。
-
属性を使うZero-shot学習では、「縞模様がある」「4本足」のような属性を介して、学習時に画像を見ていないクラスを識別する。
答えを見る
答え ◯ 正しい
見たことのある動物の画像で属性の判定を学び、未知のクラスは属性の組み合わせで記述します。初期の代表的な方法です。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目32 マルチモーダル)
- Christoph H. Lampert, Hannes Nickisch, Stefan Harmeling, Learning to detect unseen object classes by between-class attribute transfer, CVPR 2009, 951–958
- Alec Radford et al., Learning Transferable Visual Models From Natural Language Supervision (2021)
- Tom B. Brown et al., Language Models are Few-Shot Learners (2020)