Zero-Shot Learning
ゼロショット学習(ZSL)によって、トレーニングデータなしで物体を検出・分類する方法をご紹介します。Ultralytics YOLO-Worldを使用して、リアルタイムのオープンボキャブラリー検出を実現する方法を学びましょう。
ゼロショット学習(ZSL)は、人工知能モデルがトレーニング段階で一度も遭遇していないオブジェクトを認識、分類、または検出できるようにする機械学習のパラダイムです。従来の教師あり学習では、モデルが識別する必要のある特定のカテゴリごとに、数千件のラベル付きサンプルが必要です。ZSLは、通常はテキストによる説明、意味属性、または埋め込みである補助情報を活用して、既知クラスと未知クラスの間の隔たりを埋めることで、この厳格な依存関係を解消します。この機能により、人工知能(AI)システムは大幅に柔軟かつスケーラブルになり、あらゆる可能性のあるオブジェクトについて網羅的なデータを収集することが現実的でない動的な環境にも対応できるようになります。
ゼロショット学習の仕組み#
ZSLの中核となる仕組みは、共有された意味空間を使用して、既知の概念から未知の概念へ知識を転移することです。モデルは、黒と白の縞模様のピクセルパターンを記憶するだけで「シマウマ」を認識することを学習するのではなく、自然言語処理(NLP)から導出された視覚的特徴と意味属性(例:「馬に似た形状」「縞模様」「4本の脚」)の関係を学習します。
このプロセスでは、画像とテキストの表現を整合させるマルチモーダルモデルがよく使用されます。たとえば、OpenAIのCLIPのような基礎研究は、モデルが自然言語による教師信号から視覚的概念を学習できることを示しています。ZSLモデルが未知のオブジェクトに遭遇すると、視覚的特徴を抽出し、意味ベクトルの辞書と比較します。視覚的特徴が新しいクラスの意味記述と一致すれば、モデルはそれを正しく分類でき、実質的に「ゼロショット」予測を実行します。このアプローチは、広範なタスク間で汎化する最新の基盤モデルの基盤となっています。
実世界での利用例#
ゼロショット学習は、システムが初期トレーニングデータを超えて汎化できるようにすることで、さまざまな業界のイノベーションを推進しています。
-
オープンボキャブラリー物体検出: YOLO-Worldのような最新のアーキテクチャは、ユーザーが定義したテキストプロンプトに基づいてオブジェクトを検出するためにZSLを活用します。これにより、事前に固定クラスリストを定義することが不可能な状況でも物体検出が可能になります。たとえば、膨大なビデオアーカイブから特定のアイテムを検索する場合などです。Google Researchの研究者たちは、こうしたオープンボキャブラリー機能の限界を引き続き押し広げています。
-
医療診断: ヘルスケアにおけるAIでは、希少疾患のラベル付きデータを取得することが難しく、コストもかかる場合があります。ZSLモデルは、一般的な疾患と、PubMedのようなデータベースにある医学文献から得られた希少な症状の説明を使用してトレーニングできます。これにより、大量の陽性例データセットを必要とせずに、医用画像内の希少な異常の可能性をシステムが検出できるようになります。
-
野生生物保全: 農業におけるAIや生態学では、撮影されることが少ない絶滅危惧種を識別することが重要です。ZSLを使用すると、保全活動家はEncyclopedia of Lifeのような生物学的データベースで定義された属性ベースの説明を用いて、これらの動物を検出できます。
Ultralyticsによるゼロショット検出#
Ultralytics YOLO-Worldモデルは、ゼロショット学習の実用例です。モデルを再トレーニングすることなく、実行時にユーザーがカスタムクラスを動的に定義できます。これは、堅牢な検出バックボーンと自然言語を理解するテキストエンコーダーを接続することで実現されています。
次のPythonの例では、ultralyticsパッケージを使用して、標準的なトレーニングセットに明示的には含まれていなかったオブジェクトをYOLO-Worldで検出する方法を示します。
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model capable of Zero-Shot Learning
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes via text prompts (e.g., specific accessories)
# The model adjusts to detect these new classes without retraining
model.set_classes(["blue backpack", "red apple", "sunglasses"])
# Run inference on an image to detect the new zero-shot classes
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()関連概念との違い#
ZSLを十分に理解するには、コンピュータービジョン(CV)で使用される類似の学習戦略と区別することが役立ちます。
- 少数ショット学習(FSL): ZSLでは対象クラスの例を一切必要としないのに対し、FSLでは非常に小規模なサポートセット(通常は1~5例)をモデルに提供して適応させます。ZSLは視覚的な例ではなく意味推論に全面的に依存するため、一般により困難だと考えられています。
- ワンショット学習: FSLの一種であり、モデルが正確に1つのラベル付き例から学習します。ZSLは、新しいカテゴリの画像が1枚もない状態で動作するため、根本的に異なります。
- 転移学習: この広義の用語は、あるタスクから別のタスクへ知識を転移することを指します。ZSLは転移学習の一種であり、意味属性を使用して未知クラスへ知識を転移するため、新しいデータに対する従来のファインチューニングを必要としません。
課題と今後の展望#
ZSLには大きな可能性がある一方で、トレーニング中に学習した意味属性が未知クラスの視覚的外観に完全には対応しないドメインシフト問題などの課題があります。さらに、ZSLモデルはバイアスの影響を受けることがあり、未知クラスと比較して既知クラスの予測精度が大幅に高くなる場合があります。
Stanford University's AI LabやIEEE Computer Societyなどの組織による研究は、こうした制限への対処を続けています。コンピュータービジョンツールがさらに堅牢になるにつれて、ZSLは標準機能となり、大規模なデータラベリング作業への依存が軽減されることが期待されます。高度なモデルをデプロイする前にデータセットを効率的に管理したいチーム向けに、Ultralytics Platformはアノテーションとデータセット管理のための包括的なツールを提供します。









