В области науки о данных и машинного обучения есть известный девиз:
«Мусор на входе, мусор на выходе»
Это означает, что независимо от того, насколько сложен и сложен ваш современный алгоритм, если данные, которые вы используете для обучения, зашумлены, неинформативны и выбраны без каких-либо критериев, результат будет плохим.
Действительно, хорошо известно, что в реальной жизни, когда вы решаете проблему науки о данных, на первых этапах требуется, чтобы вы собирали данные, очищали их и даже иногда помечали. Это сложная проблема, которая часто требует от вас больше времени, чем собственно обучение и оценка модели.
Однако существует вероятность того, что сама модель поможет вам при создании обучающего набора, и в этой статье мы увидим, как это сделать. В частности, вы найдете введение в Активное обучение и Выборка неопределенности.
Активное обучение
Активное обучение - это особая ниша машинного обучения, в которой учащийся сам запрашивает так называемый 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.