Наука о данных в реальном мире

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

Получите новые знания в области науки о данных

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

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

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

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

  1. Регрессия
  2. Классификация
  3. Кластеризация
  4. Уменьшение размерности
  5. Методы ансамбля
  6. Нейронные сети и глубокое обучение
  7. Передача обучения
  8. Обучение с подкреплением
  9. Обработка естественного языка
  10. Вложения слов

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

Регресс

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

Самый простой метод - это линейная регрессия, при которой мы используем математическое уравнение линии (y = m * x + b) для моделирования набора данных. Мы обучаем модель линейной регрессии с множеством пар данных (x, y), вычисляя положение и наклон линии, которые минимизируют общее расстояние между всеми точками данных и линией. Другими словами, мы вычисляем наклон (m) и точку пересечения по оси Y (b) для линии, которая наилучшим образом аппроксимирует наблюдения в данных.

Давайте рассмотрим более конкретный пример линейной регрессии. Однажды я использовал линейную регрессию для прогнозирования энергопотребления (в кВтч) определенных зданий, собрав воедино возраст здания, количество этажей, квадратных футов и количество подключенного настенного оборудования. Поскольку было несколько входных данных (возраст, квадратные футы и т. Д.), Я использовал многомерную линейную регрессию. Принцип был тот же, что и у простой однозначной линейной регрессии, но в этом случае созданная мной «линия» возникла в многомерном пространстве на основе количества переменных.

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

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

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

Классификация

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

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

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

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

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

Кластеризация

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

Самый популярный метод кластеризации - это K-Means, где «K» представляет количество кластеров, которые пользователь выбирает для создания. (Обратите внимание, что существуют различные методы выбора значения K, например, метод локтя.)

Примерно, что K-Means делает с точками данных:

  1. Случайным образом выбирает K центров в данных.
  2. Назначает каждую точку данных ближайшему из случайно созданных центров.
  3. Повторно вычисляет центр каждого кластера.
  4. Если центры не меняются (или меняются очень мало), процесс завершен. В противном случае мы возвращаемся к шагу 2. (Чтобы не попасть в бесконечный цикл, если центры продолжат изменяться, заранее установите максимальное количество итераций.)

На следующем графике К-средние применяются к набору данных о зданиях. Каждый столбец на графике показывает эффективность каждого здания. Четыре измерения относятся к кондиционированию воздуха, подключенному к электросети оборудованию (микроволновые печи, холодильники и т. Д.), Бытовому газу и отопительному газу. Мы выбрали K = 2 для кластеризации, что позволяет легко интерпретировать один из кластеров как группу эффективных зданий, а другой кластер как группу неэффективных зданий. Слева вы видите расположение зданий, а справа вы видите два из четырех измерений, которые мы использовали в качестве входных: подключенное оборудование и отопительный газ.

Изучая кластеризацию, вы столкнетесь с очень полезными алгоритмами, такими как пространственная кластеризация приложений с шумом на основе плотности (DBSCAN), кластеризация со средним сдвигом, агломеративная иерархическая кластеризация, кластеризация ожидания – максимизации с использованием моделей гауссовой смеси и другие.

Уменьшение размерности

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

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

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

На следующем графике показан анализ базы данных рукописных цифр MNIST. MNIST содержит тысячи изображений цифр от 0 до 9, которые исследователи используют для тестирования своих алгоритмов кластеризации и классификации. Каждая строка набора данных представляет собой векторизованную версию исходного изображения (размер 28 x 28 = 784) и метку для каждого изображения (ноль, один, два, три,…, девять). Обратите внимание, что поэтому мы уменьшаем размерность с 784 (пикселей) до 2 (размеры в нашей визуализации). Двухмерное проецирование позволяет нам визуализировать исходный набор данных большой размерности.

Ансамблевые методы

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

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

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

Подавляющее большинство победителей соревнований Kaggle используют те или иные ансамблевые приемы. Самыми популярными ансамблевыми алгоритмами являются Random Forest, XGBoost и LightGBM.

Нейронные сети и глубокое обучение

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

Фактически, структура нейронных сетей достаточно гибкая, чтобы построить нашу хорошо известную линейную и логистическую регрессию. Термин «глубокое обучение» происходит от нейронной сети со многими скрытыми слоями (см. Следующий рисунок) и включает в себя широкий спектр архитектур.

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

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

В частности, методы глубокого обучения оказались чрезвычайно успешными в области зрения (классификации изображений), текста, аудио и видео. Наиболее распространенными программными пакетами для глубокого обучения являются Tensorflow и PyTorch.

Трансферное обучение

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

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

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

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

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

Обучение с подкреплением

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

Процесс для мыши отражает то, что мы делаем с обучением с подкреплением (RL) для обучения системы или игры. Вообще говоря, RL - это метод машинного обучения, который помогает агенту учиться на собственном опыте. Регистрируя действия и используя метод проб и ошибок в заданной среде, RL может максимизировать совокупное вознаграждение. В нашем примере мышь - это агент, а лабиринт - это среда. Набор возможных действий для мыши: движение вперед, назад, влево или вправо. Награда - сыр.

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

Подобно тому, как Deep Blue от IBM победил лучшего игрока в шахматы в 1997 году, AlphaGo, алгоритм на основе RL, победил лучшего игрока в го в 2016 году. Нынешними пионерами RL являются команды DeepMind в Великобритании. Подробнее об AlphaGo и DeepMind здесь.

В апреле 2019 года команда OpenAI Five была первым ИИ, победившим команду чемпионов мира по киберспорту Dota 2, очень сложной видеоигре, которую команда OpenAI Five выбрала из-за отсутствия алгоритмов RL, которые могли бы победить в ней. время. Та же команда искусственного интеллекта, которая победила человеческую команду чемпионов Dota 2, также разработала роботизированную руку, которая может переориентировать блок. Подробнее о команде OpenAI Five читайте здесь.

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

Обработка естественного языка

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

Обработка естественного языка (NLP) - это не метод машинного обучения как таковой, а, скорее, широко используемый метод подготовки текста для машинного обучения. Подумайте о множестве текстовых документов в различных форматах (Word, онлайн-блоги и т. Д.). Большая часть этих текстовых документов будет полна опечаток, пропущенных символов и других слов, которые необходимо отфильтровать. На данный момент наиболее популярным пакетом для обработки текста является NLTK (Natural Language ToolKit), созданный исследователями из Стэнфорда.

Самый простой способ отобразить текст в числовое представление - это вычислить частоту каждого слова в каждом текстовом документе. Представьте матрицу целых чисел, где каждая строка представляет текстовый документ, а каждый столбец представляет слово. Это матричное представление частот слов обычно называется матрицей частотных терминов (TFM). Отсюда мы можем создать еще одно популярное матричное представление текстового документа, разделив каждую запись в матрице на вес, определяющий важность каждого слова во всем корпусе документов. Мы называем этот метод периодической обратной связью с частотой документа (TFIDF), и он обычно лучше подходит для задач машинного обучения.

Вложения слов

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

Word2Vec - это метод, основанный на нейронных сетях, который сопоставляет слова в корпусе с числовым вектором. Затем мы можем использовать эти векторы для поиска синонимов, выполнения арифметических операций со словами или для представления текстовых документов (взяв среднее значение всех векторов слов в документе). Например, предположим, что мы используем достаточно большой корпус текстовых документов для оценки вложений слов. Предположим также, что слова король, королева, мужчина и женщина являются частью корпуса. Предположим, что vector (‘word’) - это числовой вектор, представляющий слово ‘word’. Чтобы оценить вектор («женщина»), мы можем выполнить арифметическую операцию с векторами:

вектор («король») + вектор («женщина») - вектор («мужчина») ~ вектор («королева»)

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

Мы вычисляем вложения слов с помощью методов машинного обучения, но часто это предварительный шаг к применению алгоритма машинного обучения. Например, предположим, что у нас есть доступ к твитам нескольких тысяч пользователей Twitter. Также предположим, что мы знаем, кто из этих пользователей Twitter купил дом. Чтобы предсказать вероятность того, что новый пользователь Twitter купит дом, мы можем объединить Word2Vec с логистической регрессией.

Вы можете обучить встраивание слов самостоятельно или получить предварительно обученный (трансферное обучение) набор векторов слов. Чтобы загрузить предварительно обученные векторы слов на 157 различных языках, загляните в FastText.

Резюме

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

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

Все визуализации этого блога были выполнены с помощью Watson Studio Desktop.

Особая благодарность Стиву Муру за отличный отзыв об этой публикации.

Twitter: @castanan
LinkedIn: @ jorgecasta