Вы знаете, что меня пугает? Чтобы придумать ярлыки, нужно просмотреть массу данных.

Маркировка данных - дело сложное, дорогое, а иногда и совершенно непозволительное. Маркировка данных может убить ваш проект машинного обучения еще до его запуска.

Давайте начнем с гипотетической проблемы: мы хотим создать модель, способную визуально проверять фотографии печатных плат и классифицировать их на основе их конкретной конфигурации.

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

Большое препятствие

Насколько сложно было бы использовать глубокое обучение для создания классификатора, который должным образом классифицирует изображение печатной платы?

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

И вот в чем проблема.

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

Мы знаем, как решить проблему, но нам нужны обучающие данные. И собрать это воедино - нетривиальная задача.

К сожалению, это обычная ситуация.

Всегда есть способ

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

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

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

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

Вы видите, к чему я клоню?

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

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

Активное изучение

Этот подход называется Активное обучение - метод машинного обучения с полу-контролируемым обучением. Вот отрывок из Википедии:

Активное обучение - это особый случай машинного обучения, в котором алгоритм обучения может интерактивно запрашивать пользователя (или какой-либо другой источник информации), чтобы пометить новые точки данных желаемыми выходными данными.

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

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

Загляните в него и держите под рукой. Это окажется гораздо более полезным, чем вы можете себе представить.

Введение в активное обучение »изначально было размещено в выпуске № 9 на underfitted.io .