Active Learning
Активное обучение позволяет модели выбирать, какие неразмеченные примеры люди будут размечать следующими, чтобы достичь целевой точности с меньшим числом разметок. Стратегии выбора примеров и код.
Активное обучение — это подход к машинному обучению, при котором модель выбирает, какие неразмеченные примеры человеку следует разметить следующими. Вместо разметки случайной выборки данных команда обучает модель на небольшом размеченном наборе, использует её для оценки большого набора неразмеченных примеров, отправляет наиболее информативные из них разметчикам, дообучает модель на расширенном наборе и повторяет процесс. Человека, который предоставляет метки, называют оракулом. Цель — достичь заданной точности, используя как можно меньше меток. Это особенно важно, когда для разметки нужны эксперты, например рентгенологи, анализирующие снимки, или когда весь набор слишком велик для полной разметки, например видео, которое ежедневно записывает парк автономных автомобилей.
Как работает цикл активного обучения#
В проектах компьютерного зрения обычно используют активное обучение на основе пула, когда заданная коллекция неразмеченных изображений ожидает оценки. Каждый цикл состоит из четырёх шагов:
- Обучение: Обучи модель, например модель детекции объектов, на собранных к этому моменту размеченных примерах.
- Оценка: Запусти модель на неразмеченном пуле и присвой каждому примеру оценку информативности.
- Запрос: Отправь разметчикам пакет примеров с наивысшими оценками для разметки данных.
- Обновление: Добавь новые метки в обучающие данные и переобучи модель.
Цикл завершается, когда заканчивается бюджет на разметку или перестаёт улучшаться точность на фиксированном валидационном наборе. Сравнение результатов каждого цикла с моделью, обученной на таком же количестве случайно выбранных меток, показывает, помогает ли отбор.
Стратегии выбора примеров#
Стратегия выбора определяет, какие примеры считать информативными:
- Выбор по неопределённости: Выбирает примеры, в которых модель наименее уверена. Неопределённость измеряют по минимальной уверенности в классе с наивысшей оценкой, минимальному отрыву между двумя классами с наивысшими оценками или максимальной энтропии предсказанного распределения классов.
- Выбор по комитету: Обучает несколько моделей и выбирает примеры, по которым их мнения расходятся сильнее всего. Монте-Карло dropout позволяет недорого получить комитет из одной сети.
- Выбор разнообразных примеров: Выбирает примеры, охватывающие пространство эмбеддингов, чтобы пакет не заполняли почти одинаковые изображения, например соседние кадры видео. Подход core-set формализует выбор пакета таким образом; его авторы установили, что многие эвристики на основе неопределённости неэффективны для CNN при выборе пакета.
- Гибридные стратегии: Сочетают оба сигнала. BADGE выбирает примеры, которые одновременно неопределённы и разнообразны в пространстве градиентных эмбеддингов, без весов, настроенных вручную.
Детекторы создают много рамок на изображение, поэтому оценки рамок нужно объединить в одну оценку на изображение, например усреднив уверенность всех детекций. Скрипт ниже ранжирует небольшой пул по средней уверенности детекций с помощью предварительно обученной модели YOLO26 и первым запрашивает изображение с наименьшей уверенностью:
from ultralytics import YOLO
# Model trained on the current labeled set
model = YOLO("yolo26n.pt")
# Unlabeled pool, usually thousands of images
pool = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
results = model(pool, conf=0.1)
# Least-confidence sampling: score each image by its mean detection confidence
scores = {}
for image, result in zip(pool, results):
if len(result.boxes):
scores[image] = result.boxes.conf.mean().item()
# Query the lowest-scoring images first, within a labeling budget of one image
query = sorted(scores, key=scores.get)[:1]
print(f"Label next: {query}")Низкий порог conf=0.1 позволяет учитывать слабые детекции при расчёте оценки, поскольку именно в этих рамках модель не уверена. Редактор разметки платформы Ultralytics завершает цикл: режим Smart загружает твои собственные дообученные модели YOLO, поэтому каждая переобученная модель предварительно размечает следующую выбранную партию примеров, которую затем исправляют разметчики.
Практические подводные камни#
- Холодный старт: оценки неопределённости модели, обученной на нескольких десятках примеров, ненадёжны, поэтому первые итерации часто используют случайный отбор или отбор по разнообразию. Модели «зрение — язык» также могут предварительно разметить первую порцию данных только по названиям классов, а таблица лидеров VLM сравнивает, насколько точно они размечают реальные наборы данных для детекции.
- Избыточные пакеты: Независимый выбор k изображений с наибольшей неопределённостью обычно приводит к появлению групп почти одинаковых изображений. Эту проблему решают стратегии на основе разнообразия и гибридные стратегии.
- Смещение выборки: Размеченный набор отклоняется от реального распределения данных, поскольку в нём слишком много сложных примеров. Поэтому валидационные и тестовые наборы случайно выбирают из всего пула, чтобы оценки оставались несмещёнными.
- Выбросы: Повреждённые, размытые изображения или изображения не из целевого домена выглядят неопределёнными для любой модели и могут впустую расходовать бюджет на разметку, если их не отфильтровать.
Активное обучение и смежные понятия#
- Полуобучение: Этот подход тоже использует неразмеченные данные, но модель присваивает псевдометки собственным уверенным предсказаниям, а не просит человека проверить неуверенные. Эти два подхода часто сочетают.
- Обучение по учебному плану: Упорядочивает уже размеченные примеры от простых к сложным во время обучения. Активное обучение определяет, какие примеры вообще будут размечены.
- Отбор сложных негативных примеров: Выбирает размеченные негативные примеры, на которых модель ошибается чаще всего, и чаще использует их при обучении. Этот подход работает с существующими метками и не добавляет новых.
- Маховик данных: Производственный цикл, в котором работающие модели выявляют новые данные, улучшающие следующую модель. Активное обучение часто служит одним из этапов отбора в таком цикле.










