Active Learning: обучение с умом при дефиците данных
Что такое активное обучение, как работают стратегии выборки и зачем это нужно ML-практику — разбираем подробно с примерами.
Когда данных мало, а задача реальная
Представьте: вы строите модель для диагностики редкого заболевания по медицинским снимкам. Размеченных примеров — сотня. Нанять радиолога для разметки тысяч изображений стоит как небольшой стартап. Что делать?
Именно здесь на сцену выходит активное обучение (Active Learning) — подход, который переворачивает традиционную логику ML: вместо того чтобы обучать модель на всём доступном массиве, мы учим её задавать правильные вопросы.
Активное обучение — это часть большой темы «что делать при ограниченном количестве размеченных данных». Суть в том, что человеческая разметка присутствует, но ограничена бюджетом, и поэтому нужно быть очень умными при выборе того, что именно размечать.
Что такое активное обучение и почему «активное»
Активное обучение — это метод эффективного использования ресурсов разметки. Он повышает эффективность обучения, выбирая наиболее ценные образцы из неразмеченной базы для аннотирования пользователем (запрос/query).
Обычное (пассивное) обучение берёт данные случайно. Активное — стратегически. Модель сама указывает: «Вот эти 100 примеров дадут мне максимум знаний — разметьте именно их».
Разметка данных — крайне трудоёмкий процесс, занимающий около 80% времени, отведённого на ML-проект. Активное обучение призвано радикально снизить эту цифру.
Базовый цикл активного обучения
graph TD
A[Небольшой размеченный пул] --> B[Обучение модели]
B --> C[Оценка всего неразмеченного пула]
C --> D{Acquisition Function}
D --> E[Выбор наиболее ценных примеров]
E --> F[Отправка эксперту на разметку]
F --> A
E --> G{Бюджет исчерпан?}
G -- Нет --> A
G -- Да --> H[Финальная модель]
Активное обучение повторяет цикл запроса, аннотирования и обучения в рамках бюджета аннотирования или целевой точности. Запрос — это выбор образцов. Выстраивая обучающие данные из высококачественных образцов в каждом цикле, активное обучение быстро достигает целевой точности, снижая стоимость аннотирования.
Три главных сценария выборки (Query Strategies)
Сердце активного обучения — функция приобретения (Acquisition Function). Именно она решает, какие примеры запросить у эксперта. Рассмотрим три основных семейства стратегий.
1. Uncertainty Sampling — выбираем то, в чём модель сомневается
Uncertainty Sampling — вероятно, простейшая и наиболее распространённая стратегия запроса. Она предпочитает наиболее неопределённые экземпляры, оцениваемые по выходам модели.
Есть три классических варианта:
Для вероятностных моделей существуют три типичные стратегии неопределённости: энтропийная (entropy-based), наименьшей уверенности (least-confidence) и выборка по марже (margin-sampling).
import numpy as np
def uncertainty_sampling(probs):
"""
probs: массив вероятностей классов для каждого примера, shape (N, C)
Возвращает индексы образцов, отсортированных по убыванию энтропии.
"""
# Энтропийная стратегия: H = -sum(p * log(p))
entropy = -np.sum(probs * np.log(probs + 1e-10), axis=1)
return np.argsort(entropy)[::-1] # наибольшая энтропия = наибольшая неопределённость
# Пример: 5 примеров, 3 класса
probs = np.array([
[0.9, 0.05, 0.05], # уверенная предсказание
[0.34, 0.33, 0.33], # максимальная неопределённость
[0.6, 0.3, 0.1],
[0.45, 0.45, 0.1],
[0.99, 0.005, 0.005]
])
print(uncertainty_sampling(probs)) # [1, 3, 2, 0, 4]
2. Diversity Sampling — выбираем разнообразное
Одной неопределённости недостаточно: можно выбрать 100 очень похожих, но неопределённых примеров и почти ничего не узнать о других областях данных. Diversity Sampling решает эту проблему.
Core-set approach: выбираем точки так, чтобы покрыть пространство признаков максимально равномерно — строим «ядро» (core-set) набора данных.
Core-set хорошо работает для задач классификации изображений при небольшом числе классов. Когда число классов становится большим или размерность данных возрастает («проклятие размерности»), метод становится менее эффективным.
3. Expected Model Change — выбираем то, что максимально изменит модель
Ещё одна стратегия — выбирать примеры, добавление которых максимально изменит параметры модели. Сюда относится метод BADGE.
BADGE (Batch Active learning by Diverse Gradient Embeddings) отслеживает одновременно неопределённость модели и разнообразие данных в пространстве градиентов.
Неопределённость: алеаторная против эпистемической
При работе с uncertainty sampling важно понимать природу неопределённости, с которой имеет дело модель.
Неопределённость модели делится на два типа. Алеаторная неопределённость вносится шумом в данных (например, данные датчиков, шум в процессе измерений) и может зависеть или не зависеть от входных данных. Она считается нередуцируемой, поскольку отсутствует информация об истинном значении. Эпистемическая неопределённость относится к неопределённости параметров самой модели — то есть мы не знаем, насколько хорошо модель объясняет данные. Этот тип теоретически устраним при наличии большего количества данных.
Гибридные стратегии и SVP: практика побеждает теорию
Многие из описанных методов не являются взаимоисключающими. Гибридная стратегия выборки учитывает разные атрибуты точек данных, объединяя различные предпочтения выборки в одну.
Одна из элегантных практических оптимизаций — SVP (Selection via Proxy).
Поскольку core-set selection вычислительно дорог, Coleman et al. (2020) экспериментировали со слабой моделью (например, меньшей архитектурой, не полностью обученной) в качестве прокси и обнаружили, что эмпирически использование слабой модели-прокси может значительно сократить каждый цикл выбора данных без ощутимой потери в финальной ошибке. Метод называется SVP.
Сравнение основных стратегий
| Стратегия | Принцип | Плюсы | Минусы |
|---|---|---|---|
| Uncertainty Sampling | Выбор наиболее «сомнительных» примеров | Прост в реализации, быстр | Игнорирует разнообразие, может выбирать похожие примеры |
| Diversity Sampling (Core-set) | Покрытие пространства признаков | Хорошее представление распределения | Дорого вычислительно, хуже при высокой размерности |
| BADGE | Неопределённость + разнообразие в пространстве градиентов | Учитывает оба фактора | Сложнее в реализации |
| SVP | Прокси-модель для ускорения выборки | Быстро, практично | Качество зависит от прокси |
| Random Sampling | Случайная выборка | Быстрее всего | Наименее эффективен информационно |
Результаты и практическая применимость
Как хорошо работает активное обучение на практике?
Uncertainty, margin и entropy sampling способны достичь более 99% производительности при использовании подмножества из 10 000 точек менее чем за 25% времени, необходимого для обучения на полном датасете. Это означает, что при снижении точности менее чем на 1% время обучения сокращается на 75%.
«Бросать больше данных на проблему — не всегда лучший ответ» — Mind Foundry Research
Однако у активного обучения есть и свои пределы. Недавние исследования дают трезвую оценку:
Активное обучение является наименее эффективным методом решения проблемы нехватки данных, генерируя прирост лишь 1–4% по сравнению со случайной выборкой, тогда как методы аугментации данных (DA) и полуобучения (SSL) в сочетании могут дать до 60% прироста. Однако когда AL комбинируется с сильными методами DA и SSL, он по-прежнему способен обеспечить дополнительное улучшение. Таким образом, AL лучше рассматривать не как метод борьбы с нехваткой меток, а как финальный кирпичик для выжимания последних процентов качества после применения DA и SSL.
Три сценария применения Active Learning
Активное обучение успешно применяется во многих областях, включая сегментацию изображений, разметку последовательностей, классификацию медицинских изображений, кибербезопасность и производство.
Вот когда Active Learning даёт наибольший эффект:
- Медицина и биология — разметка требует экспертизы редких специалистов; каждый запрос к эксперту стоит дорого.
- NLP с узкой предметной областью — юридические документы, технические тексты, где нет готовых датасетов.
- Компьютерное зрение в промышленности — детекция дефектов, где аномалии редки и разметка медленная.
Подводные камни: когда Active Learning вредит
Несмотря на большой потенциал активного обучения, оно несёт и значительные риски. При неправильном применении оно может привести к неоптимальному выбору образцов и, в худшем случае, сделать всю задачу машинного обучения неудачной.
Важная проблема — смещение выборки (sampling bias):
Активное обучение оптимизирует разметку данных под конкретную модель, но с трудом справляется с выборкой данных, эффективных для обучения других моделей. Эта проблема тесно связана со смещением выборки, которое возникает из-за зависимости существующих методов AL от модели.
Другая сложность — выбор правильной стратегии:
Выбор оптимальной стратегии запроса чувствителен к качеству эмбеддингов. Хотя вычислительно дешёвый Margin sampling может показывать пики производительности на конкретных датасетах, стратегии вроде BADGE демонстрируют большую робастность. При этом их эффективность часто улучшается в паре с высококачественными эмбеддингами.
Заключение: активное обучение как философия работы с данными
Активное обучение — это не просто алгоритм. Это способ мышления: каждая разметка должна нести максимум информации. В мире, где время экспертов ограничено, а качественные аннотации дороги, этот принцип становится критически важным.
Ключевые выводы:
- Активное обучение решает задачу выявления наиболее информативных образцов для разметки с целью снижения затрат на аннотирование для задач обучения с учителем.
- Три основных семейства стратегий: Uncertainty, Diversity и Expected Model Change — каждое со своими сценариями применения.
- Uncertainty sampling остаётся конкурентоспособным и предпочтительным выбором для практиков.
- AL лучше всего работает как дополнение к Data Augmentation и Semi-Supervised Learning, а не замена им.
- Эффективность активного обучения сильно зависит от качества эмбеддингов и целевой задачи — необходима контекстно-специфическая оценка.
Если ваша задача требует дорогой экспертной разметки — активное обучение не опция, а необходимость. Начните с простой энтропийной стратегии, добавьте diversity-компонент, и вы удивитесь, насколько меньше данных вам на самом деле нужно.