BaaL — это библиотека для байесовского активного обучения. Активное обучение Разработкой библиотеки занимались в ElementAI.
Что такое активное обучение
Задачи машинного обучения обычно требуют значительных объемов данных для обучения. Для ряда задач процесс сбора таких данных ресурсоемкий. Даже в случае наличия данных ресурсы тратятся на разметку. Цель активного обучения — сократить количество размеченных данных, которые требуются для обучения модели.
Модель активного обучения отбирает объекты в выборке, которые необходимо разметить, вместо случайной разметки. Процесс устроен так, что отбираются только те объекты в выборке, которые максимально сложно предсказать. Этот подход позволяет сократить ресурсы на разметку без потери в обобщающей способности модели.
Активное обучения для нейросетей
Распространенные методы активного обучения, — гауссовские процессы или ядерные методы, — плохо справляются с многомерными данными. Для таких задач используются методы глубокого обучения. Те объекты в выборке, в которых нейросеть менее всего уверена, отправляются на разметку. Измерение неуверенности модели — это одна из открытых проблем в глубоком обучении. Последние работы предлагают оценивать постериорное распределение модели.
Ниже видно, что модель активного обучения выбирает объекты, для которых сложнее всего определить класс. Разметка таких объектов более эффективна, чем случайная. Исследователи используют MCDropout и BALD архитектуры на CIFAR100 данных. В качестве нейросети используется VGG16. С помощью активного обучения удалось сократить количество требуемых данных для разметки вполовину.
Сравнение результатов активного обучения (слева) и случайной разметки (справа)