Contrastive Learning
Познакомься с контрастивным обучением в машинном обучении. Узнай, как оно использует самоконтролируемые данные для создания устойчивых признаков ИИ в Ultralytics YOLO26 и компьютерном зрении.
Контрастивное обучение — это парадигма машинного обучения, которая учит модели понимать данные, сравнивая похожие и непохожие образцы. В отличие от традиционного обучения с учителем, которое в значительной степени опирается на вручную размеченные наборы данных, контрастивное обучение часто используется в контексте обучения без учителя. Основная идея проста, но эффективна: модель учится сближать представления связанных объектов (положительных пар) в векторном пространстве и одновременно отдалять друг от друга представления несвязанных объектов (отрицательных пар). Благодаря этому алгоритмы могут создавать устойчивые и хорошо обобщаемые признаки на основе огромных объемов неразмеченных данных, что крайне важно для масштабирования систем искусственного интеллекта (AI).
Механизм контрастивного обучения#
В основе контрастивного обучения лежит идея обучения путем сравнения. Вместо того чтобы запоминать, что конкретное изображение — это «кошка», модель учится тому, что две разные фотографии кошки больше похожи друг на друга, чем любая из них на фотографию собаки. Обычно это достигается с помощью аугментации данных. Входное изображение, которое часто называют «якорем», преобразуется в две разные версии с помощью таких методов, как кадрирование, отражение или изменение цветовых оттенков. Эти две версии образуют положительную пару. Затем модель обучают минимизировать расстояние между их эмбеддингами и одновременно максимизировать расстояние до других случайных изображений (отрицательных образцов) в батче.
Этот подход помогает нейронной сети сосредоточиться на высокоуровневых семантических признаках, а не на низкоуровневых деталях пикселей. Например, независимо от того, красная машина или синяя, смотрит она влево или вправо, основная концепция «машины» остается неизменной. Игнорируя эти поверхностные вариации, модель формирует более глубокое понимание визуального мира, что значительно повышает эффективность последующих задач, таких как детекция объектов и классификация.
Практические применения#
Контрастивное обучение стало основой многих передовых приложений AI, особенно в тех случаях, когда размеченные данные трудно или дорого получать.
-
Классификация изображений в режиме zero-shot: Модели, такие как CLIP (контрастивное предварительное обучение изображений и текста), используют контрастивное обучение для выравнивания изображений и текста в общем пространстве признаков. Обучаясь на миллионах пар «изображение — текст», модель учится связывать визуальные концепции с описаниями на естественном языке. Это позволяет выполнять обучение без примеров, при котором модель может классифицировать изображения по категориям, которых она никогда не видела во время обучения, просто сопоставляя изображение с текстовым запросом.
-
Надежное предварительное обучение для медицинской визуализации: В здравоохранении получение медицинских снимков с экспертной разметкой требует больших затрат и времени. Исследователи используют контрастивное обучение для предварительного обучения моделей на крупных базах данных неразмеченных рентгеновских или MRI-снимков. Такое предварительное обучение без учителя создает мощную базовую сеть, которую можно дообучить на небольшом количестве размеченных примеров для высокоточного выявления таких заболеваний, как пневмония или опухоли. Этот метод использует перенос обучения для совершенствования диагностических инструментов в сфере AI в здравоохранении.
Различие между связанными понятиями#
Чтобы понять уникальную роль контрастивного обучения в сфере машинного обучения (ML), полезно отличать его от схожих методов.
- В сравнении с автоэнкодерами: Хотя оба метода относятся к методам обучения без учителя, автоэнкодеры стремятся восстанавливать входные данные пиксель за пикселем, сжимая их до слоя узкого места. Контрастивное обучение, напротив, не пытается воссоздать изображение, а сосредоточено исключительно на изучении дискриминативных представлений, разделяющих разные концепции.
- В сравнении с генеративными состязательными сетями (GANs): GANs используют генератор, создающий искусственные данные, и дискриминатор, пытающийся их обнаружить. Контрастивное обучение сосредоточено на обучении представлений, а не на генерации данных, поэтому оно лучше подходит для таких задач, как поиск, извлечение и классификация.
- В сравнении с триплетной функцией потерь: Традиционная триплетная функция потерь явно требует якорного, положительного и отрицательного образцов. Современные контрастивные методы, такие как SimCLR или MoCo, обобщают этот подход, одновременно сравнивая якорь с множеством отрицательных образцов внутри батча, часто используя специальную функцию потерь, например 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 предоставляет оптимизированную среду для развертывания и мониторинга.









