Сократите затраты на аннотацию данных, ограничив ручное вмешательство наиболее информативными образцами.

Я считаю, что качество и количество аннотаций к данным часто являются наиболее определяющими факторами успеха приложения машинного обучения. Однако ручное аннотирование данных может быть очень медленным и дорогостоящим. Вот почему проводится большая исследовательская работа над методами, которые уменьшают потребность в ручных аннотациях, таких как трансферное обучение или неконтролируемое предварительное обучение.

Еще один способ снизить затраты на аннотацию данных - использовать Active Learning. Это набор методов, которые представляют шаги аннотации данных как интерактивный процесс между алгоритмом обучения и пользователем, где именно алгоритм предлагает, какие примеры стоит аннотировать, в то время как пользователь аннотирует эти выбранные образцы.

В этом посте мы попытаемся изучить подходы активного обучения, основанные на неопределенности, применяемые к MIT-BIH Arrhythmia и MNIST Datasets.
Поскольку аннотации могут быть очень дорогими и иногда требуют экспертов в предметной области, мы будем только моделировать процесс взаимодействия с пользователем, начиная с небольшого подмножества помеченного набора данных и затем используя только те метки образцов, которые предложены алгоритмом как ценные.

Описание процесса :

Шаги:

1 - Начните с небольшой партии аннотированных примеров start_size = 512

2 - Поезд классификационной модели по исходной партии.

3 - Для n шагов выполните:
- Выберите следующую партию наиболее многообещающих примеров размера batch_size, используя неопределенность в форме энтропии, где вы бы ранжировали образцы по их энтропии предсказания и только выберите верхний образец batch_size с наивысшей энтропией.
- Обучите модель на всех выбранных на данный момент данных.
- Оцените модель на тестовом наборе.

Эксперименты:

В наборе данных MIT-BIH Arrhythmia, используя полные ~ 3000 помеченных образцов для обучения, мы получаем:
- Стратегия активного обучения: 0,80 балла F1
- Случайная стратегия: 0,74 оценка F1

Чтобы набрать 0,74 балла F1, для стратегии активного обучения нужно всего ~ 2000 помеченных примеров или 2/3 из 3000 полных.

В наборе данных MNIST, используя полные ~ 1400 размеченных выборок для обучения, мы получаем:
- Активная стратегия обучения: 0,98 Оценка F1
- Случайная стратегия: 0,96 оценка F1

Чтобы набрать 0,96 балла F1, для стратегии активного обучения нужно всего ~ 700 помеченных примеров или 1/2 от полных 1400.

Обратите внимание, что производительность, отображаемая на графиках, усредняется по 10 независимым запускам, чтобы уменьшить влияние случайности.

Также обратите внимание, что я попробовал тот же эксперимент с CIFAR10 вместо MNIST, но он не сработал. Я до сих пор не понимаю, почему, но это стоит рассмотреть в будущем ☺.

Вывод :

В этом посте мы применили упрощенную реализацию активного обучения на основе неопределенности. Смоделированные результаты выглядят обнадеживающе, так как доказывают, что активное обучение может помочь уменьшить количество ручных этикеток, необходимых для достижения хорошей производительности теста.

Код для воспроизведения результатов: https://github.com/CVxTz/active_learning