Active Learning
Узнай, как активное обучение (Active Learning) оптимизирует тренировку ИИ. Научись использовать Ultralytics YOLO26 для поиска информативных данных, сокращения расходов на разметку и повышения точности.
Active Learning — это стратегический подход в machine learning (ML), при котором алгоритм проактивно выбирает самые информативные точки данных для разметки вместо пассивного принятия предварительно размеченного датасета. В традиционном supervised learning моделям часто требуются огромные объемы аннотированных данных, создание которых может быть дорогим и трудоемким. Активное обучение оптимизирует этот процесс, определяя «неуверенные» или «сложные» примеры — те, которые находятся возле границы принятия решений или там, где у модели не хватает уверенности, — и запрашивая разметку этих конкретных экземпляров у людей-аннотаторов. Этот итеративный цикл позволяет моделям достигать высокой accuracy со значительно меньшим количеством размеченных выборок, что делает его крайне эффективным для проектов с ограниченным бюджетом или дефицитом времени.
Как работает цикл активного обучения#
Ядром активного обучения является цикл обратной связи, часто называемый human-in-the-loop. Вместо того чтобы обучаться один раз на статичном датасете, модель развивается через циклы запросов и обновлений.
-
Инициализация: Процесс начинается с небольшого набора размеченных training data, используемых для обучения исходной модели, такой как Ultralytics YOLO26.
-
Выбор запроса: Модель оценивает большой пул неразмеченных данных. Используя стратегию запроса — чаще всего выборку по неопределенности — она отбирает изображения или тексты, в которых ее предсказания наименее уверены.
-
Аннотирование: Эти приоритетные выборки отправляются эксперту-человеку, часто называемому «оракулом» в active learning literature, для data labeling.
-
Дообучение: Новые размеченные данные добавляются в обучающую выборку, и модель дообучается. Эта обновленная модель затем лучше подготовлена к выбору следующей порции неоднозначных образцов.
Реальные приложения#
Активное обучение незаменимо в отраслях, где данных много, но разметка требует специализированных знаний или высокой стоимости.
- Medical Image Analysis: В таких областях, как радиология, для разметки требуются сертифицированные специалисты, чье время чрезвычайно ценно. Вместо того чтобы просить врача аннотировать тысячи однозначных снимков, система активного обучения может отфильтровать неоднозначные случаи — например, опухоли на ранних стадиях или редкие аномалии, — позволяя эксперту сосредоточиться только на тех изображениях, которые действительно улучшают диагностические возможности модели.
- Autonomous Vehicles: Беспилотные автомобили генерируют петабайты видеоданных. Размечать каждый кадр невозможно. Активное обучение помогает инженерам выявлять edge cases, такие как пешеходы в костюмах или поездка в условиях сильного снегопада, которые стандартные модели object detection могут пропустить. Расставляя приоритеты для этих редких сценариев, компании повышают безопасность, не тратя ресурсы на однотипные кадры с шоссе.
Пример на Python: Фильтрация неопределенных предсказаний#
Следующий пример демонстрирует простую логику «сэмплирования по неопределенности» с использованием Ultralytics YOLO26. Мы загружаем модель, запускаем инференс на изображениях и помечаем для ручной проверки те из них, где оценка confidence ниже определенного порогового значения.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# List of unlabeled image paths
unlabeled_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference
results = model(unlabeled_images)
# Identify samples with low confidence for active learning
uncertain_threshold = 0.6
for result in results:
# Check if any detection confidence is below the threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.min() < uncertain_threshold:
print(f"Active Learning Query: {result.path} needs human labeling.")Разграничение похожих концепций#
Важно отличать активное обучение от схожих парадигм обучения:
- Semi-Supervised Learning: Хотя оба метода используют неразмеченные данные, полуконтролируемое обучение автоматически назначает pseudo-labels данным на основе предсказаний модели с высокой уверенностью. В отличие от него, активное обучение явно запрашивает участие человека для предсказаний с низкой уверенностью.
- Transfer Learning: Этот подход предполагает взятие предварительно обученной модели (например, обученной на ImageNet) и ее адаптацию под новую задачу. Активное обучение фокусируется на том, какие данные размечать, тогда как трансфертное обучение сосредоточено на переиспользовании извлеченных признаков.
- Reinforcement Learning: Здесь агент обучается путем взаимодействия со средой и получения наград. Активное обучение отличается тем, что оно ищет статические метки ground truth у оракула, а не оптимизирует последовательность действий ради получения награды.
Интеграция с MLOps#
Эффективное внедрение активного обучения требует надежного пайплайна Machine Learning Operations (MLOps). Тебе нужна инфраструктура для управления версиями данных, запуска задач переобучения и предоставления интерфейса аннотирования людям. Инструменты, интегрированные в Ultralytics ecosystem, позволяют пользователям бесшовно переходить между инференсом, кураторством данных и обучением. Например, использование custom training scripts позволяет разработчикам быстро включать новые батчи данных активного обучения в свои модели YOLO.
Для дальнейшего изучения стратегий сэмплирования исследователи часто обращаются к исчерпывающим обзорам в active learning literature. Кроме того, понимание model evaluation metrics имеет решающее значение для проверки того, действительно ли цикл активного обучения повышает производительность.






