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









