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










