В области науки о данных и машинного обучения есть известный девиз:

«Мусор на входе, мусор на выходе»

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

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

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

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

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

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

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

Теперь вопрос: как выбрать точки?

Выборка неопределенности

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

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

Чаще всего используется энтропия, которая рассчитывается как:

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

В качестве примера давайте предположим простую двоичную задачу с классами A и B, решаемую обучающимся по логистической регрессии, где выходные данные вектора имеют вид [p (A), p (B) ], где p (x) - вероятность, присвоенная классу x.

Если модель на 100% уверена в своем прогнозе, на выходе будет либо [1.0, 0.0], либо [0.0, 1.0], что дает энтропию 0.

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

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

В этом случае я сделал следующее:

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

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

Вы видите это? Наиболее энтропийные выборки наиболее близки к границе решения! Действительно, чем ближе точки к региону, где разделены два класса, тем более красными они становятся. Теперь чрезвычайно интуитивно понятно, почему энтропия является мерой неопределенности: когда точки близки к границе принятия решения, учащийся не уверен, какой класс назначить.

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

Пример использования

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

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

Выводы

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

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

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

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

Этот блог публикуется ассоциацией специалистов по данным PoliMi. Мы - сообщество студентов Миланского политехнического университета, которое организует мероприятия и пишет ресурсы по темам Data Science и Machine Learning.

Если у вас есть предложения или вы хотите с нами связаться, вы можете написать нам на нашей странице в Facebook.