Zero-Shot Learning
学習データなしで物体を検出・分類するゼロショット学習(ZSL)を探求します。Ultralytics YOLO-Worldがどのようにリアルタイムのオープンボキャブラリー検出を実現するかを学びましょう。
ゼロショットラーニング(ZSL)は、人工知能モデルがトレーニング段階で一度も遭遇したことのないオブジェクトを認識、分類、検出できるようにする機械 learning(ML)パラダイムです。従来の教師あり学習では、モデルは特定するすべてのカテゴリに対して数千のラベル付きの例を必要とします。ZSLは、補助情報(通常はテキスト記述、セマンティック属性、または埋め込み(embeddings))を活用して、既知のクラスと未知のクラスの間のギャップを埋めることで、この厳密な依存関係を排除します。この機能により、人工知能(AI)システムは大幅に柔軟で拡張性が高くなり、あらゆる可能なオブジェクトの網羅的なデータを収集することが実用的ではない動的な環境に対応できるようになります。
ゼロショット学習の仕組み#
ZSLの中核となるメカニズムは、共有されたセマンティック空間を使用して、馴染みのある概念から馴染みのない概念へ知識を転移することです。黒と白の縞模様のピクセルパターンを暗記することだけで「シマウマ」を認識することを学ぶのではなく、モデルは自然言語処理(NLP)から得られた視覚的特徴とセマンティック属性(例:「馬のような形状」、「縞模様」、「4本の足」)の関係を学習します。
このプロセスは、画像とテキストの表現を整合させるマルチモーダルモデルに依存することがよくあります。たとえば、OpenAIのCLIPのような基礎研究は、モデルが自然言語の指導から視覚的概念をどのように学習できるかを示しています。ZSLモデルが未知のオブジェクトに遭遇すると、視覚的特徴を抽出し、それをセマンティックベクトルの辞書と比較します。視覚的特徴が新しいクラスのセマンティック記述と一致する場合、モデルはそれを正しく分類でき、効果的に「ゼロショット」予測を実行します。このアプローチは、膨大なタスクに汎化する現代の基盤モデルの基本となります。
実社会での応用#
ゼロショット学習は、システムが初期トレーニングデータを超えて一般化できるようにすることで、さまざまな業界でイノベーションを推進しています。
-
オープンボキャブラリ物体検出: YOLO-Worldのような最新のアーキテクチャは、ZSLを利用してユーザー定義のテキストプロンプトに基づいてオブジェクトを検出します。これにより、広大なビデオアーカイブ内の特定のアイテムを検索するなど、事前に固定されたクラスのリストを定義することが不可能なシナリオでの物体検出が可能になります。Google Researchの研究者は、これらのオープンボキャブラリ機能の限界を押し広げ続けています。
-
医療診断: 医療におけるAIにおいて、稀少疾患のラベル付きデータを取得することは、多くの場合困難で費用がかかります。PubMedなどのデータベースにある医学文献から、一般的な状態や稀少な症状の説明に基づいてZSLモデルをトレーニングすることで、ポジティブケースの膨大なデータセットを必要とせずに、システムが医療画像内の潜在的な稀少な異常にフラグを立てることが可能になります。
-
野生生物保全: 農業と生態系における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は、視覚的な例ではなく完全にセマンティックな推論に依存するため、一般的にさらに困難であると考えられています。
- ワンショット学習: モデルが正確に1つのラベル付きの例から学習するFSLのサブセットです。ZSLは、新しいカテゴリの画像が1枚もない状態でも動作するため、根本的に異なります。
- 転移学習: この広範な用語は、あるタスクから別のタスクへ知識を転移することを指します。ZSLは、新しいデータに対する従来のファインチューニングを必要とせずに、セマンティック属性を使用して未知のクラスに知識を転移する転移学習の特定のタイプです。
課題と将来の展望#
ZSLは大きな可能性を秘めていますが、トレーニング中に学習した意味属性が未知のクラスの視覚的外観と完全には一致しない「ドメインシフト問題」などの課題に直面しています。さらに、ZSLモデルは、未知のクラスと比較して既知のクラスの予測精度が著しく高くなるというバイアスに悩まされる可能性があります。
スタンフォード大学AI研究所やIEEEコンピュータ協会などの組織からの研究は、これらの制限に対処し続けています。コンピュータビジョンツールがより堅牢になるにつれて、ZSLは標準的な機能になり、膨大なデータラベリング作業への依存を減らすことが期待されています。高度なモデルをデプロイする前に効率的にデータセットを管理したいチームのために、Ultralytics Platformはアノテーションとデータセット管理のための包括的なツールを提供しています。






