📖

ゼロショット学習 とは?

ゼロショット学習を解説:モデルが学習時に見たことのないクラスを認識・処理する方法と、スケーラブルなAIにとって重要な理由。

ゼロショット学習(ZSL)は、モデルが学習中に一度も見たことのないカテゴリやタスクについて正確な予測を行うことを求められる、機械学習のパラダイムです。新しいクラスごとにラベル付き例から学習するのではなく、属性の説明やクラス名、自然言語の指示といった補助情報を利用して、未知のケースに汎化します。このアプローチは、単一のモデルが再学習なしに数千のタスクを処理することを可能にするため、現代の基盤モデルの動作方式において中心的な存在となっています。

ゼロショット学習の仕組み

中心となるアイデアは、学習済みクラスと未学習クラスの両方を表現できる共有セマンティック空間を学ぶことです。学習中、モデルはラベル付き例と記述情報を組み合わせます(たとえば、「シマウマ」とラベル付けされた画像に「白黒の縞模様を持つ馬に似た動物」というテキストを組み合わせます)。そして2つのモダリティを整合させるように学習し、推論時にラベルなしの入力を最も近いテキストまたは属性の説明と照合できるようにします。これには学習時に用いられなかったクラスの説明も含まれます。

CLIP、GPT、Geminiといった大規模言語・視覚言語モデルは、このアイデアをさらに拡張しています。これらは画像とテキスト、あるいは指示と応答のペアからなる広範なコーパスで学習され、推論時には望ましい出力の説明とともにプロンプトが与えられます。簡単な例として、「このレビューを肯定的、否定的、または無関心に分類してください」というプロンプトが与えられた場合、感情データでファインチューニングされたことのないモデルでも有用な回答を生成できます。なぜなら、プロンプトの言語自体が不足しているクラス定義を提供するからです。より正式な取り扱いについては、この設定を定義するのに役立ったPalatucciらによるNeurIPS 2009の原著論文を参照してください。

なぜ重要なのか

ゼロショット学習は、応用AIにおける最もコストのかかるボトルネックのひとつ、すなわちラベル付きデータの問題に対処します。新しいクラス、言語、タスクごとに例を収集・注釈付ける作業は時間がかかり、多くの場合非現実的です。特に、希少種、ニッチな産業上の欠陥、低リソース言語といったロングテール領域では顕著です。他の例から学習した共有構造を活用することで、ゼロショット手法は追加学習なしでもこれらの設定で実用的な性能を提供できます。

また、製品をより柔軟にします。単一の画像分類器は、テキストプロンプトを変更することでランタイム時に新しいカテゴリに誘導でき、単一の翻訳モデルは再学習なしに言語を切り替えられ、単一のアシスタントはオンデマンドで新しいペルソナやフォーマットを採用できます。この汎用性が、CLIPや類似の視覚言語モデルが現代のコンピュータビジョンパイプラインでデフォルトの構成要素となった大きな理由です。

主な種類

  • 従来の属性ベースのZSL:各クラスは手作業で作成された属性ベクトル(例:「翼を持つ」「水中に生息する」)で記述され、モデルは未学習クラスについてこれらの属性を予測するように学習します。
  • 埋め込みベースのZSL:クラスは共有空間(多くの場合、単語ベクトルや言語モデルによる)における埋め込みとして表現され、新しいクラスは予測された入力埋め込みとの類似性によって照合されます。
  • 生成的ZSL:生成モデルが未学習クラスの合成特徴を生成し、事実上ゼロショットを標準的な教師あり問題に変換します。
  • 基盤モデルによるプロンプトベースZSL:タスク仕様は自然言語として提供され、モデルはプロンプトを解釈し、パラメータ更新なしに回答します。

ゼロショット学習は魔法ではありません。豊富なラベル付きデータが存在する場合には依然として完全に教師ありモデルの性能に及びませんし、補助的な説明が曖昧だったり誤解を招いたりする場合には失敗することもあります。それでも、大規模AIシステムにおいては今や当然の期待であり、指示だけから新しいタスクに汎化する能力は、今日の最も能力の高いモデルの特徴となっています。

よくある質問

What is the difference between zero-shot and few-shot learning?
Zero-shot learning makes predictions for unseen classes with no examples at all, relying on descriptions or prompts. Few-shot learning provides a small number of labeled examples — typically one to ten — so the model can adapt its behavior. Few-shot usually outperforms zero-shot on the same task, at the cost of requiring some labeled data.
Is ChatGPT an example of zero-shot learning?
Yes. When a user gives ChatGPT a task it was never explicitly trained on, such as rewriting text in a specific style or classifying an unusual list, the model is performing zero-shot generalization. It interprets the natural-language instruction and produces a response using only the patterns learned during pre-training.
What are the main limitations of zero-shot learning?
Zero-shot models depend heavily on the quality of the auxiliary descriptions or prompts they receive. They also tend to be less accurate than supervised models when plenty of labeled data is available, and they can be biased toward classes they have seen during training — a problem known as the hubness or bias problem. Domain shift between training and deployment settings can further degrade performance.
How is zero-shot learning evaluated?
Models are typically evaluated on a held-out set of classes that never appear in training, measuring metrics like top-1 or top-5 accuracy against the unseen-class labels. Standard benchmarks include UCF101, ImageNet-21K splits, and a range of text classification and question-answering suites used in NLP research.