一度も「その問題用の勉強」をしていないのに、初見のタスクを解いてしまう——Zero-shot(ゼロショット学習)は、CLIPをはじめとする基盤モデルの登場で現実になった能力です。G検定ではFew-shot・One-shotとの区別、そしてCLIPによるゼロショット画像分類の仕組みが問われます。

📖 ひと言でいうと

Zero-shot(ゼロショット学習)とは、モデルが特定のタスクに関する訓練データを持たない場合でも、既存の知識を活用して新しいタスクを遂行する能力のことです。「shot」は例示(お手本)の数を意味し、Zero-shotは例示ゼロ、つまり追加の訓練も例示も一切なしでタスクをこなすことを指します。

例えるなら、シマウマを一度も見たことがない人が「馬のような体で白黒の縞模様の動物」という説明だけを頼りに、動物園で初めて見たシマウマを言い当てるようなものです。厳密には、モデルは説明を「理解」しているのではなく、学習で得た広範な知識(たとえば画像とテキストの関連性)を新しい対象との類似度計算に転用しています。

🖼 1枚でわかるZero-shot

Zero-shot — 訓練データなしで新タスクを解く
  • 定義 — タスク固有の訓練データなしで、既存知識により新タスクを遂行
  • 代表例 — CLIPによるゼロショット画像分類
  • 仕組み — 画像とテキストを共通のベクトル空間にマッピングし類似度で判定
  • 前提 — 約4億組の画像・テキストペアのような大規模事前学習
  • 関連語 — One-shot(例示1つ)・Few-shot(例示少数)と例示の数で区別
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

ゼロショット学習とは、モデルが特定のタスクに関する訓練データを持たない場合でも、既存の知識を活用して新しいタスクを遂行する能力を指す。例えば、CLIP(Contrastive Language-Image Pre-training)というモデルは、画像とテキストのペアを大量に学習することで、未見の画像に対しても適切なテキストラベルを生成することが可能である。このようなモデルは、画像とテキストの両方をエンコードし、それぞれの特徴を共通のベクトル空間にマッピングする。これにより、画像とテキストの類似度を計算し、新しいタスクに対しても柔軟に対応できる。例えば、CLIPは、インターネット上から収集した約4億組の画像とテキストのペアを用いて学習され、多様な下流タスクに対してゼロショットで高い性能を示している。

要点は2つです。第一に、Zero-shotは「タスク固有の訓練データなしで新タスクを解く能力」という一般概念であること。第二に、その代表例がCLIPであり、画像とテキストを共通のベクトル空間にマッピングして類似度を計算する仕組みがゼロショットを可能にしていることです。

🔍 しっかり理解する

なぜ「訓練していないタスク」が解けるのか

ゼロショットは魔法ではなく、「広く浅く積んだ知識の転用」です。CLIPのようなモデルは、特定のタスクを教わる代わりに、約4億組という膨大な画像・テキストペアから「どんな画像とどんな言葉が結びつくか」という汎用的な対応関係を学びます。新しいタスクが来たとき、その対応関係を類似度計算に流用すれば、タスク専用の訓練をしなくても答えが出せる——これがゼロショットの正体です。つまり、ゼロショットの裏には必ず大規模な事前学習があります。

CLIPのゼロショット画像分類の流れ

G検定のテキストでは、基盤モデルの学習と利用のプロセスとしてこの流れが説明されています。

対照事前学習
大量の画像・テキストペアから特徴を抽出
分類器の用意
「(対象)の写真」というラベルテキストをエンコード
Zero-shot予測
新画像の特徴と各ラベルの類似度を比較
カテゴリ決定
最も類似度が高いラベルを予測結果に

たとえば「飛行機」「車」「犬」「鳥」を分類したいなら、「飛行機の写真」「車の写真」…というテキストをテキストエンコーダで処理してカテゴリごとのベクトルを用意します。新しい画像が来たら画像エンコーダで特徴を抽出し、用意したベクトルとの類似度が最も高いカテゴリを選ぶだけです。分類対象のカテゴリを「テキストを書き換えるだけ」で自由に変えられる——ここが、固定クラスで訓練する従来の画像分類との決定的な違いです。

One-shot・Few-shotとの関係──「shot」は例示の数

Zero-shotは、例示の数によるシリーズの一員として覚えると整理しやすくなります。

💡 ポイント
  • Zero-shot: 例示ゼロ。タスクの説明(ラベルテキストなど)だけで遂行
  • One-shot: 例示を1つだけ与えて適応させる
  • Few-shot: 少数(数個程度)の例示を与えて適応させる。視覚言語モデルFlamingoが得意とする設定

いずれも共通するのは「タスク固有の大量データによる再訓練をしない」ことです。大規模事前学習で獲得した汎用知識を、例示0個・1個・数個という最小限の手がかりで新タスクに振り向けます。

💡 具体例で考える

CLIPが学習していないタスクへの適応が象徴的な例です。G検定のテキストでも「CLIPが学習していない新しいタスクに対しても、そのタスクの説明を与えると実行できる。これをZero-shot学習と呼ぶ」と説明されています。たとえば製造ラインの部品画像を「傷あり」「傷なし」に分けたいとき、従来なら傷の画像を集めてラベル付けし専用モデルを訓練する必要がありましたが、CLIPなら「傷のある部品の写真」「きれいな部品の写真」というテキストを用意するだけで、その場で分類器が完成します。

大規模言語モデルのゼロショット利用も身近な例です。ChatGPTのようなモデルに「次の文章を要約して」と頼むと、要約タスク専用の訓練を受けていなくても、事前学習で得た言語知識を使ってこなしてくれます。プロンプトに例示を付けなければZero-shot、例を数個見せればFew-shotのプロンプティングです。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「何も学習していないのに解ける」わけではない: ゼロショットの前提は大規模な事前学習です。「タスク固有の訓練データ」がゼロなのであって、学習そのものがゼロなのではありません。
  • Few-shot/One-shotとの混同: 区別は例示の数だけです。ゼロ=Zero-shot、1つ=One-shot、少数=Few-shot。「少量のデータで再訓練する」ファインチューニングとも異なります。
  • 半教師あり学習との混同: 半教師あり学習は「少量のラベル付き+大量のラベルなしデータで訓練する」学習手法。Zero-shotは「訓練せずに新タスクを解く」能力の話で、問題設定が違います。
  • 転移学習との関係: 事前学習の知識を別タスクに活かす点は転移学習と共通ですが、転移学習・ファインチューニングは通常、移行先タスクのデータで追加訓練を行います。Zero-shotは追加訓練なしという点が異なります。

📝 試験でのポイント

💡 ポイント
  • 「特定のタスクに対して追加の訓練を行わずに、既存の知識を活用して新たなタスクを遂行する能力」という定義文からZero-shotを選ばせる問題が基本形です。
  • CLIPとの結びつきは最頻出。「約4億組の画像・テキストペアで学習」「共通のベクトル空間にマッピングし類似度を計算」という仕組みの記述とセットで問われます。
  • Zero-shot/One-shot/Few-shotを例示の数で区別させる問題、Few-shotの文脈でFlamingoを絡めた問題も想定されます。
  • 「ゼロショット=学習不要のモデル」とする誤答選択肢(事前学習の存在を無視した記述)に注意しましょう。

📚 まとめ

Zero-shot(ゼロショット学習)は、タスク固有の訓練データなしに、既存の知識で新しいタスクを遂行する能力です。代表例のCLIPは、約4億組の画像・テキストペアの対照学習で画像とテキストを共通のベクトル空間にマッピングし、ラベルテキストとの類似度計算だけで未知カテゴリの分類を実現しました。「大規模事前学習が前提」であること、One-shot・Few-shotとは例示の数で区別することを押さえれば、G検定の設問には十分対応できます。