Contrastive Learning
機械学習における対照学習 (contrastive learning) を探索します。自己教師ありデータを使用して、Ultralytics YOLO26やコンピュータビジョン向けに堅牢なAI機能を構築する方法を学びましょう。
対照学習(コントラスティブラーニング)は、類似したサンプルと類似していないサンプルを比較することでモデルにデータを理解させる機械学習のパラダイムです。手動でラベル付けされたデータセットに大きく依存する従来の教師あり学習とは異なり、対照学習は自己教師あり学習の文脈で使用されることがよくあります。その核心的な考え方はシンプルかつ強力です。モデルは、関連するアイテム(ポジティブペア)の表現をベクトル空間内で近づけ、関連のないアイテム(ネガティブペア)を遠ざけるように学習します。このプロセスにより、アルゴリズムは膨大な量のラベルなしデータから堅牢で汎用性の高い特徴を構築できるようになり、これは人工知能 (AI)システムをスケールさせる上で非常に重要です。
Link to this section対照学習のメカニズム#
対照学習の中心にあるのは、比較によって学習するという概念です。特定の画像が「猫」であると記憶するのではなく、モデルは猫の異なる2枚の写真の方が、どちらか一方と犬の写真との間よりも互いに似ていることを学習します。これは通常、データ拡張を通じて実現されます。一般的に「アンカー」と呼ばれる入力画像は、クロッピング、反転、カラージッターなどの手法を使用して2つの異なるバージョンに変換されます。これら2つのバージョンがポジティブペアを形成します。その後、モデルはバッチ内の他のランダムな画像(ネガティブサンプル)との距離を最大化しつつ、埋め込み間の距離を最小化するようにトレーニングされます。
このアプローチは、ニューラルネットワークが低レベルの画素詳細ではなく、高レベルのセマンティックな特徴に集中するのを助けます。例えば、車が赤か青か、あるいは左を向いているか右を向いているかに関わらず、「車」という根底にある概念は変わりません。こうした表面的な変化を無視することで、モデルは視覚的世界に対するより深い理解を形成し、それが物体検出や分類といった後続タスクに大きく貢献します。
Link to this section実社会での応用#
対照学習は、特にラベル付きデータが不足している、あるいは取得コストが高い状況において、多くの最先端AIアプリケーションの基盤となっています。
-
ゼロショット画像分類: CLIP (Contrastive Language-Image Pre-training)のようなモデルは、対照学習を利用して画像とテキストを共有特徴空間内で整合させます。数百万件の画像とテキストのペアでトレーニングを行うことで、モデルは視覚的な概念と自然言語による記述を関連付けることを学習します。これにより、ゼロショット学習が可能になり、モデルはトレーニング中に一度も見たことのないカテゴリの画像であっても、テキストプロンプトと照合するだけで分類できるようになります。
-
医療画像診断のための堅牢な事前学習: ヘルスケア分野において、専門家がラベル付けした医療用スキャンの取得は高コストで時間がかかります。研究者は対照学習を使用して、ラベルなしのX線やMRIスキャンの大規模データベースでモデルを事前学習させます。この教師なし事前学習により、強力なバックボーンが作成され、少数のラベル付きサンプルを用いて微調整(ファインチューニング)を行うことで、肺炎や腫瘍などの疾患を高精度で検出できるようになります。この手法は転移学習を活用し、ヘルスケアにおけるAIの診断ツールを向上させます。
Link to this section関連概念の区別#
機械学習 (ML)の領域における対照学習の独自の役割を理解するためには、他の類似手法との違いを知ることが役立ちます。
- オートエンコーダーとの比較: どちらも教師なし手法ですが、オートエンコーダーは入力データを画素単位で再構築し、ボトルネック層に圧縮することを目指します。対照学習は、画像を再作成するのではなく、異なる概念を分離する識別的な表現を学習することに重点を置いています。
- GANとの比較: GANは、偽データを生成するジェネレーターと、それを検出しようとするディスクリミネーターを含みます。対照学習はデータ生成ではなく表現学習に焦点を当てているため、検索、取得、分類などのタスクに適しています。
- トリプレットロスとの比較: 従来のトリプレットロスは、アンカー、ポジティブ、ネガティブの各サンプルを明示的に必要とします。現代の対照的な手法(SimCLRやMoCoなど)は、InfoNCEのような特定の損失関数を使用して、バッチ内でアンカーと多数のネガティブサンプルを同時に比較することで、これを一般化しています。
Link to this section埋め込みに関する実践的な例#
対照モデルをゼロからトレーニングするには多大なリソースが必要ですが、事前学習済みモデルを利用すれば簡単に特徴を抽出できます。以下の例では、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がデプロイおよび監視のための効率的な環境を提供します。






