Active learning для ML — не модное словечко, а прагматичный приём, который помогает сократить затраты на разметку и быстрее получить рабочую модель. В этой статье я расскажу, какие стратегии работают на практике, какие подводные камни встречаются и как внедрять такой цикл в реальном проекте.
Что такое активное обучение и зачем оно нужно
В классическом подходе собирают большую размеченную выборку и затем обучают модель. Это дорого и долго, особенно когда разметка требует экспертов. Активное обучение предлагает выбирать для разметки только те примеры, которые дадут максимум информации модели.
Идея проста: модель указывает, какие примеры её смущают, а человек отвечает на узкие вопросы. В результате можно достичь той же точности, разметив гораздо меньше данных.
Основные стратегии выборки
Стратегии различаются по тому, как оценивать «полезность» примера. Ниже — самые распространённые подходы и когда их лучше применять.
Неопределённость (uncertainty sampling)
Самая простая и часто эффективная стратегия — брать те объекты, в предсказании которых модель наиболее неуверенна. Для классификатора это может быть пример с наименьшей разницей между двумя наиболее вероятными классами.
Подходит, когда модель способна корректно оценить свои вероятности. В противном случае неопределённость может указывать не на полезность, а на плохо калиброванную модель.
Query-by-committee
Здесь используется не одна модель, а «команда» моделей. Выбирают объекты, по которым модели расходятся. Такой подход помогает находить спорные и информационно насыщенные примеры.
Он устойчив к погрешностям одной модели, но требует держать несколько версий, что дороже по ресурсам.
Maximal expected model change и expected error reduction
Эти стратегии оценивают, как сильно изменится модель или её ошибка после разметки конкретного объекта. Они более теоретически обоснованы, но вычислительно затратны.
В практических системах их часто аппроксимируют или используют для небольших финальных циклов, когда важно каждое дополнительное улучшение.
Диверсификация и кластеризация
Когда данные содержат повторяющиеся кластеры, простой выбор по неопределённости может приводить к схожим примерам. Добавляют критерий разнообразия, чтобы охватить разные подмножества данных.
Комбинация неопределённости и разнообразия часто даёт лучший результат, особенно на мультимодальных распределениях признаков.
Как строится цикл активного обучения
Типичный цикл состоит из четырёх шагов: обучение начальной модели, выбор объектов для разметки, получение меток от эксперта, переобучение модели. Повторяют цикл, пока не исчерпан бюджет или не достигнута целевая точность.
Главное — правильно и быстро интегрировать эти шаги в рабочий процесс, чтобы не терять время на накладные операции и переключение контекста для экспертов.
Стартовая выборка
Нужна небольшая, но репрезентативная начальная разметка. Если стартовые данные слишком узкие, модель будет давать бессмысленную неопределённость и выбирать похожие примеры, что замедлит обучение.
Обычно достаточно 50–500 меток в зависимости от задачи и сложности классов.
Батч-режим и последовательный выбор
Выбирать по одному примеру редко удобно: эксперту проще работать с батчами. В батче важно избежать коррелированных примеров и обеспечить разнообразие.
Для этого используют жадные алгоритмы, оптимизацию покрываемости или кластерные подходы внутри выбранного набора кандидатов.
Практические моменты и ошибки
Внедрение активного обучения приносит не только экономию, но и новые сложности. Ниже — распространённые проблемы и способы их смягчить.
Проблемы с калибровкой вероятностей
Если модель плохо калибрована, неопределённость вводит в заблуждение. Стоит применять методы калибровки, например плацебо-скейлинг или изотоническую регрессию, прежде чем полагаться на вероятности.
Калибровка особенно важна при подборе порогов и при комбинировании стратегий.
Шум в разметке и человеческие ошибки
Эксперты тоже ошибаются. Если в батче попадает спорный пример, разметка может быть непоследовательной. Надёжные системы предусматривают валидацию: дублируют часть разметки между разными экспертами и учитывают доверие к меткам.
Для критичных задач стоит вести историю меток и давать специалистам контекст — почему модель запросила именно этот пример.
Смещение выборки (sampling bias)
Активная выборка фокусируется на «трудных» примерах и может упустить остальные области распределения. Это приводит к смещению и ухудшению качества вне запросной области.
Один из подходов — смешивать активную выборку с случайной выборкой в фиксированном соотношении, чтобы сохранить репрезентативность.
Интеграция в ML pipeline
Переход от идеи к системе требует автоматики: интерфейс для аннотаторов, очередь задач, мониторинг моделей и версия данных. Нельзя надеяться на ручную координацию при увеличении масштаба.
Лучше завести простую инфраструктуру вначале и расширять её по мере роста объёма. Лёгкие инструменты дают быстрые итерации, а затем можно оптимизировать узкие места.
Контроль версий и эксперименты
Важно фиксировать, какие данные и какие версии модели использовались в каждом цикле. Без этого трудно оценить эффективность той или иной стратегии выборки.
Логи запросов, меток и метрик ускоряют разбор ошибок и помогают воспроизводить успешные решения.
Метрики и критерии остановки
Оценивать успех активного обучения можно по нескольким метрикам: качество на валидации, кривая Labeled-vs-Accuracy и экономия разметки по сравнению с случайной выборкой. Важно смотреть не только на абсолютную точность, но и на скорость её роста.
Критерий остановки может быть связан с исчерпанием бюджета, достижением желаемой точности или снижением прироста качества в нескольких последовательных итерациях.
Небольшая таблица: сравнение стратегий
| Стратегия | Плюсы | Минусы |
|---|---|---|
| Неопределённость | Простая, часто эффективна | Чувствительна к калибровке, может выбирать похожие примеры |
| Query-by-committee | Устойчивее к ошибкам одной модели | Дороже по вычислениям |
| Expected error reduction | Теоретически оптимальна | Вычислительно затратна |
| Диверсификация | Лучше покрывает распределение | Может пропускать «трудные» крайние случаи |
Чек-лист для запуска пилота
- Собрать небольшую стартовую разметку и оценить базовую модель.
- Выбрать одну стратегию выборки и протестировать её на контрольной валидации.
- Организовать интерфейс для аннотаторов и логи для аудита.
- Регулярно калибровать модель и проверять качество меток.
- Смешивать активную и случайную выборки, чтобы избежать смещения.
Личный опыт из проекта
В одном из моих проектов задача была — классификация клиентских обращений по категориям. Полного корпуса размеченных писем не было, а эксперты были заняты. Мы запустили активное обучение с простым критерием неопределённости и батчем по 100 писем.
За несколько итераций точность выросла быстрее, чем при случайной выборке, и количество разметок сократилось примерно в два раза. Самое важное — мы быстро увидели проблемные классы и могли скорректировать инструкцию для аннотаторов.
Когда активное обучение не поможет
Если данные очень шумные или метки неустойчивы, модель будет запрашивать споры и выигрыша по итогу может не быть. Также при малом объёме фич модельу может не хватать выразительности, и выборка не ускорит прогресс.
В таких ситуациях лучше сначала улучшить фичи или упростить задачу, а активное обучение применять уже на устойчивой основе.
Заключительные мысли для практики
Active learning даёт реальную экономию времени и денег, но требует дисциплины в организации процесса. Инфраструктура, калибровка, контроль качества разметки и смешение стратегий — те элементы, которые определяют успех внедрения.
Начните с простого прототипа, измеряйте, фиксируйте эксперименты и постепенно добавляйте сложные стратегии. Так вы сохраните гибкость и получите практический инструмент, а не очередную теоретическую игрушку.

