Contrastive Learning
機械学習におけるコントラスト学習を探ります。自己教師ありデータを使用して、Ultralytics YOLO26とコンピュータービジョン向けの堅牢なAI特徴量を構築する仕組みを学びます。
対照学習は、類似したサンプルと類似していないサンプルを比較することで、モデルにデータを理解させる機械学習のパラダイムです。手動でラベル付けされたデータセットに大きく依存する従来の教師あり学習とは異なり、対照学習は自己教師あり学習のコンテキストでよく使用されます。基本的な考え方はシンプルですが強力です。モデルは、関連するアイテムの表現(正例ペア)をベクトル空間内で互いに近づけ、関連しないアイテム(負例ペア)を互いに遠ざけるように学習します。このプロセスにより、アルゴリズムは大量のラベルなしデータから堅牢で汎化可能な特徴を構築できます。これは、人工知能 (AI)システムをスケールさせるうえで重要です。
対照学習の仕組み#
対照学習の中心にあるのは、比較によって学習するという概念です。モデルは、特定の画像が「猫」であることを記憶するのではなく、猫の2枚の異なる写真が、それぞれ犬の写真よりも互いに類似していることを学習します。これは通常、データ拡張によって実現されます。入力画像は「アンカー」と呼ばれることが多く、クロップ、反転、色のジッタリングなどの手法を使って2つの異なるバージョンに変換されます。この2つのバージョンが正例ペアを形成します。次に、モデルはそれらの埋め込み間の距離を最小化しながら、バッチ内の他のランダムな画像(負例サンプル)までの距離を最大化するように学習します。
このアプローチにより、ニューラルネットワークは低レベルのピクセルの詳細ではなく、高レベルの意味特徴に注目できるようになります。たとえば、車が赤か青か、左向きか右向きかにかかわらず、「車」という基礎となる概念は変わりません。このような表面的な変化を無視することで、モデルは視覚世界をより深く理解できるようになり、物体検出や分類などの下流タスクに大きなメリットをもたらします。
実世界での利用例#
対照学習は、特にラベル付きデータの取得が難しい、または高コストな分野において、多くの最先端AIアプリケーションの基盤となっています。
-
ゼロショット画像分類: CLIP(対照言語画像事前学習)などのモデルは、対照学習を使用して、画像とテキストを共通の特徴空間に配置します。数百万組の画像とテキストのペアで学習することで、モデルは視覚的な概念と自然言語による説明を関連付けることを学習します。これにより、ゼロショット学習が可能になります。モデルは、画像をテキストプロンプトと照合するだけで、学習中に一度も見ていないカテゴリに画像を分類できます。
-
医用画像のための堅牢な事前学習: 医療分野では、専門家がラベル付けした医療スキャンの取得に多大なコストと時間がかかります。研究者は、ラベルのないX線画像やMRIスキャンの大規模なデータベースでモデルを事前学習するために、対照学習を使用します。この教師なし事前学習によって、少数のラベル付きサンプルでファインチューニングできる強力なバックボーンが構築され、肺炎や腫瘍などの疾患を高精度で検出できるようになります。この手法は転移学習を活用して、医療分野のAIにおける診断ツールを改善します。
関連する概念との違い#
コントラスト学習の独自の役割を理解するには、機械学習 (ML)分野における類似技術との違いを明確にすることが役立ちます。
- オートエンコーダーとの比較: どちらも教師なし手法ですが、オートエンコーダーは入力データをピクセル単位で再構成し、ボトルネック層に圧縮することを目的とします。一方、対照学習は画像の再作成を試みるのではなく、異なる概念を分離する識別的な表現の学習だけに焦点を当てます。
- 敵対的生成ネットワーク (GANs)との比較: GANsでは、生成器が偽のデータを作成し、識別器がそれを検出しようとします。対照学習はデータ生成ではなく表現学習に焦点を当てるため、検索、取得、分類などのタスクに適しています。
- トリプレット損失との比較: 従来のトリプレット損失では、アンカー、正例、負例のサンプルが明示的に必要です。SimCLRやMoCoなどの最新の対照学習手法では、バッチ内で1つのアンカーと多数の負例サンプルを同時に比較することで、この考え方を一般化します。多くの場合、InfoNCEなどの特定の損失関数が使用されます。
埋め込みを使った実践例#
対照モデルをゼロから学習するには多くのリソースが必要ですが、事前学習済みモデルを使用して特徴を抽出することは簡単です。次の例では、ultralyticsパッケージを使用してモデルを読み込み、画像の特徴ベクトル(埋め込み)を抽出する方法を示します。この埋め込みは、対照事前学習に類似した手法によって学習された意味内容を表します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image to get the results
# The 'embed' argument can be used in advanced workflows to extract feature layers
results = model("https://ultralytics.com/images/bus.jpg")
# Access the top predicted class probability
# This prediction is based on the learned feature representations
print(f"Top class: {results[0].names[results[0].probs.top1]}")
print(f"Confidence: {results[0].probs.top1conf:.4f}")このように豊かで意味のある特徴を抽出できる能力により、対照学習は現代のコンピュータービジョン (CV)システムの構築に不可欠となっており、効率的な画像検索と高度な分析を可能にしています。これらの先進的なアーキテクチャのメリットを活用するデータセットやカスタムモデルを管理するために、Ultralytics Platformはデプロイとモニタリングのための効率化された環境を提供します。









