Знакомство с машинным обучением путем сравнения обучения с учителем и обучения без учителя. Интерактивные версии графиков в этом посте доступны в Версии статьи The Data Analysis Bureau, пока эта функция снова не станет доступна на Medium.

Что такое машинное обучение?

Несколько способов увидеть машинное обучение

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

А пока забудем об этом. Не то чтобы это было неточно, но я бы скорее сказал, что введение машинного обучения и особенно различий между обучением с учителем и обучением без учителя следует проводить в отношении данных. Данные в машинном обучении — это все. Без него вы не сможете заставить свою систему чему-либо научиться. Что еще более важно, каждая проблема должна определяться данными: особенности ваших данных приведут вас к вопросам, которые вы попытаетесь решить с помощью машинного обучения.

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

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

Понимание машинного обучения с дистрибутивами

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

Как вы уже видите, распределение этих данных не случайно. В ней есть какая-то внутренняя специфика, какие-то черты кажутся более-менее коррелированными, но и возникают какие-то группы. Что ж, вы, естественно, определили, что такое машинное обучение: основной принцип машинного обучения – создание системы, которая понимает особенности распределения данных. Но что конкретно означает «понимание»? Ну, на практике у вас есть доступ только к ограниченной части дистрибутива. Например, вы могли собрать набор данных об автомобилях и их характеристиках. Однако вполне вероятно, что у вас не будет записи для каждого автомобиля на планете, в основном потому, что их слишком много, а также потому, что в каждый момент времени строятся новые автомобили. В этом контексте понимание данных означает способность изучать внутренние характеристики распределения данных на основе той части, к которой у нас есть доступ.

Цели каждой задачи машинного обучения

К какой цели? То, что должна понимать ваша система машинного обучения, полностью зависит от доступных вам данных и целей, которых вы планируете достичь с помощью этих данных. Например, предположим, что вы продавец и хотите зарабатывать больше денег. В зависимости от данных, которые у вас есть в вашем распоряжении, вы, возможно, захотите лучше спланировать свои продажи каждой категории товаров, потому что это позволит вам точно знать, когда делать заказы поставщикам и, следовательно, почти не заканчиваться на складе. Из имеющихся у вас данных вы можете вывести эти характеристики, а затем обобщить на невидимые (в данном случае будущие) данные. Аспект обобщения — это ключевой элемент всех систем машинного обучения: мы учимся на уже имеющихся данных и обобщаем в производстве новые поступающие данные.

Контролируемое обучение против неконтролируемого обучения

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

Контролируемое обучение

В контролируемом обучении конкретная интересующая функция откладывается в сторону, и цель состоит в том, чтобы понять, как другие функции влияют на эту цель. Например, в приведенном выше распределении цель может состоять в том, чтобы предсказать функцию 3 на основе других функций. С какой целью? Ну, в новых поступающих данных у вас может не быть доступа к этой конкретной функции, но вам может быть необходимо ее знать. В примере с розничной торговлей вы можете захотеть спрогнозировать продажи через месяц, основываясь на сегодняшних модных тенденциях. Математическая проблема, стоящая за этим, состоит в том, чтобы построить систему, которая изучает сопоставление feature_3 = f(feature_1, feature_2), которое мы также можем визуализировать в 2D, имея раскрашенные значения Feature 3:

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

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

Неконтролируемое обучение

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

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

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

Что вы должны сохранить?

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

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

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