10 методов машинного обучения, которые должен знать каждый ученый
Дата публикации May 1, 2019
Машинное обучение является горячей темой в научных исследованиях и промышленности, и все время разрабатываются новые методологии. Скорость и сложность этой области затрудняют освоение новых технологий даже для экспертов — и, возможно, для подавляющего новичка.
Чтобы демистифицировать машинное обучение и предложить путь обучения для тех, кто не знаком с основными понятиями, давайте рассмотрим десять различных методов, включая простые описания, визуализации и примеры для каждого.
Алгоритм машинного обучения, также называемый моделью, представляет собой математическое выражение, представляющее данные в контексте проблемы, часто бизнес-проблемы. Цель состоит в том, чтобы перейти от данных к пониманию. Например, если онлайновый ритейлер хочет предвидеть продажи в следующем квартале, он может использовать алгоритм машинного обучения, который прогнозирует эти продажи на основе прошлых продаж и других соответствующих данных. Аналогичным образом, производитель ветряных мельниц может визуально контролировать важное оборудование и передавать видеоданные с помощью алгоритмов, обученных распознавать опасные трещины.
Десять описанных методов предлагают обзор — и основу, на которой вы можете основывать свои знания и навыки в области машинного обучения:
- регрессия
- классификация
- Кластеризация
- Уменьшение размерности
- Методы ансамбля
- Нейронные сети и глубокое обучение
- Передача обучения
- Усиление обучения
- Обработка естественного языка
- Вложения слов
И последнее, прежде чем мы начнем. Давайте различать две основные категории машинного обучения: контролируемое и неконтролируемое. Мы применяемконтролируемыйМетоды ML, когда у нас есть часть данных, которые мы хотим предсказать или объяснить. Мы делаем это, используя предыдущие данные входов и выходов, чтобы предсказать выход, основанный на новом входе. Например, вы можете использовать контролируемые методы ML, чтобы помочь сервисному бизнесу, который хочет предсказать количество новых пользователей, которые подпишутся на сервис в следующем месяце. В отличие отбесконтрольныйML рассматривает способы связывания и группировки точек данных без использования целевой переменной для прогнозирования. Другими словами, он оценивает данные с точки зрения черт и использует черты, чтобы сформировать группы предметов, которые похожи друг на друга. Например, вы можете использовать неконтролируемые методы обучения, чтобы помочь розничному продавцу, который хочет сегментировать продукты с аналогичными характеристиками, без необходимости заранее указывать, какие характеристики использовать.
регрессия
Методы регрессии попадают в категорию контролируемых ML. Они помогают предсказать или объяснить конкретное числовое значение на основе набора предыдущих данных, например, прогнозирования цены объекта на основе предыдущих данных о ценах для аналогичных объектов.
Самый простой метод — это линейная регрессия, где мы используем математическое уравнение линии (у = м * х + б) для моделирования набора данных. Мы обучаем модель линейной регрессии со многими парами данных(х, у)вычисляя положение и наклон линии, которая минимизирует общее расстояние между всеми точками данных и линией. Другими словами, мы рассчитываем наклон (м) и Y-перехват (б) для линии, которая наилучшим образом аппроксимирует наблюдения в данных.
Давайте рассмотрим более конкретный пример линейной регрессии. Однажды я использовал линейную регрессию, чтобы предсказать потребление энергии (в кВтч) определенных зданий, собрав вместе возраст здания, количество этажей, квадратных футов и количество подключенного настенного оборудования. Поскольку входных данных было более одного (возраст, квадратные футы и т. Д.), Я использовал многопараметрическую линейную регрессию. Принцип был таким же, как простая линейная регрессия один-к-одному, но в этом случае созданная мной «линия» происходила в многомерном пространстве на основе количества переменных.
График ниже показывает, насколько хорошо модель линейной регрессии соответствует фактическому энергопотреблению здания. Теперь представьте, что у вас есть доступ к характеристикам здания (возраст, квадратные футы и т. Д.), Но вы не знаете энергопотребление. В этом случае мы можем использовать подогнанную линию, чтобы приблизить потребление энергии конкретного здания.
Обратите внимание, что вы также можете использовать линейную регрессию для оценки веса каждого фактора, который вносит вклад в окончательный прогноз потребляемой энергии. Например, получив формулу, вы можете определить, является ли возраст, размер или рост наиболее важными.
Методы регрессии охватывают диапазон от простого (например, линейная регрессия) до сложного (например, регуляризованная линейная регрессия, полиномиальная регрессия, деревья решений и случайные лесные регрессии, нейронные сети и др.). Но не зацикливайтесь: начните с изучения простой линейной регрессии, овладейте техниками и двигайтесь дальше
классификация
Другой класс контролируемых ML — методы классификации, которые предсказывают или объясняют значение класса Например, они могут помочь предсказать, будет ли покупатель онлайн покупать продукт. Выход может быть да или нет: покупатель или не покупатель. Но методы классификации не ограничиваются двумя классами. Например, метод классификации может помочь оценить, содержит ли данное изображение автомобиль или грузовик. В этом случае на выходе будут 3 различных значения: 1) изображение содержит автомобиль, 2) изображение содержит грузовик или 3) изображение не содержит ни автомобиля, ни грузовика.
Самым простым алгоритмом классификации является логистическая регрессия, что делает его похожим на метод регрессии, но это не так. Логистическая регрессия оценивает вероятность возникновения события на основе одного или нескольких входных данных.
Например, логистическая регрессия может принять в качестве входных данных два балла по экзамену для студента, чтобы оценить вероятность того, что студент будет принят в определенный колледж. Поскольку оценка является вероятностью, выходным значением является число от 0 до 1, где 1 представляет полную достоверность. Для студента, если предполагаемая вероятность больше 0,5, то мы прогнозируем, что он или она будут приняты. Если предполагаемая вероятность составляет менее 0,5, мы прогнозируем, что ему или ей будет отказано.
В приведенной ниже таблице показаны оценки предыдущих студентов, а также были ли они приняты. Логистическая регрессия позволяет нам провести линию, которая представляет границу решения.
Поскольку логистическая регрессия является самой простой классификационной моделью, это хорошее место для начала классификации. По мере продвижения вы можете погрузиться в нелинейные классификаторы, такие как деревья решений, случайные леса, машины опорных векторов и нейронные сети.
Кластеризация
Используя методы кластеризации, мы попадаем в категорию неконтролируемых ML, потому что их цель — группировать или кластеризовать наблюдения, которые имеют сходные характеристики. Методы кластеризации не используют выходные данные для обучения, но вместо этого позволяют алгоритму определять выходные данные. В методах кластеризации мы можем использовать только визуализации для проверки качества решения.
Наиболее популярным методом кластеризации является K-Means, где «K» представляет количество кластеров, которые пользователь выбирает для создания. (Обратите внимание, что существуют различные методы для выбора значения K, например метод локтя.)
Грубо говоря, что K-Means делает с точками данных:
- Случайно выбирает K центров в данных.
- Назначает каждую точку данных ближайшему из случайно созданных центров.
- Пересчитывает центр каждого кластера.
- Если центры не меняются (или меняются очень мало), процесс заканчивается. В противном случае мы вернемся к шагу 2. (Чтобы предотвратить попадание в бесконечный цикл, если центры продолжают изменяться, заранее установите максимальное количество итераций.)
Следующий график применяет K-средства к набору данных зданий. Каждый столбец на графике показывает эффективность для каждого здания. Четыре измерения относятся к кондиционированию воздуха, подключенному оборудованию (микроволновые печи, холодильники и т. Д.), Бытовому газу и отопительному газу. Мы выбрали 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,
Нейронные сети и глубокое обучение
В отличие от линейных и логистических регрессий, которые считаются линейными моделями, цель нейронных сетей состоит в том, чтобы фиксировать нелинейные структуры в данных путем добавления слоев параметров в модель. На изображении ниже простая нейронная сеть имеет три входа, один скрытый слой с пятью параметрами и выходной слой.
На самом деле, структура нейронных сетей достаточно гибкая, чтобы построить нашу хорошо известную линейную и логистическую регрессию. Термин «глубокое обучение» происходит от нейронной сети со многими скрытыми слоями (см. Следующий рисунок) и включает в себя широкий спектр архитектур.
Особенно трудно идти в ногу с достижениями в области глубокого обучения, отчасти потому, что исследовательские и отраслевые сообщества удвоили свои усилия по глубокому обучению, порождая совершенно новые методологии каждый день.
Для достижения наилучшей производительности методы глубокого обучения требуют большого количества данных и большой вычислительной мощности, поскольку метод самонастраивается по многим параметрам в рамках огромных архитектур. Быстро становится понятно, почему специалистам по глубокому обучению нужны очень мощные компьютеры с графическими процессорами (GPU).
В частности, методы глубокого обучения были чрезвычайно успешными в области зрения (классификация изображений), текста, аудио и видео. Наиболее распространенными программными пакетами для глубокого обучения являютсяTensorflowа такжеPyTorch,
Передача обучения
Давайте представим, что вы ученый, работающий в сфере розничной торговли. Вы потратили месяцы на подготовку высококачественной модели, чтобы классифицировать изображения как футболки, футболки и поло. Ваша новая задача — создать аналогичную модель для классификации изображений платьев как джинсовых, грузовых, повседневных и классических брюк. Можете ли вы передать знания, встроенные в первую модель, и применить их ко второй модели? Да, вы можете, используя Transfer Learning.
Трансферное обучение относится к повторному использованию части ранее обученной нейронной сети и адаптации ее к новой, но схожей задаче. В частности, после того, как вы обучите нейронную сеть, используя данные для задачи, вы можете перенести часть обученных слоев и объединить их с несколькими новыми слоями, которые вы можете обучить, используя данные новой задачи. Добавив несколько слоев, новая нейронная сеть может быстро освоиться и адаптироваться к новой задаче.
Основным преимуществом трансферного обучения является то, что вам нужно меньше данных для обучения нейронной сети, что особенно важно, потому что обучение для алгоритмов глубокого обучения стоит дорого с точки зрения времени и денег (вычислительных ресурсов) — и, конечно, часто очень трудно найти достаточно помеченных данных для обучения.
Давайте вернемся к нашему примеру и предположим, что для модели рубашки вы используете нейронную сеть с 20 скрытыми слоями. Проведя несколько экспериментов, вы понимаете, что можете перенести 18 слоев модели рубашки и объединить их с одним новым слоем параметров, чтобы тренироваться на изображениях брюк. Таким образом, модель брюк будет иметь 19 скрытых слоев. Входные и выходные данные двух задач различны, но многократно используемые слои могут суммировать информацию, относящуюся к обоим, например к аспектам ткани.
Трансферное обучение становится все более и более популярным, и в настоящее время существует множество надежных предварительно обученных моделей, доступных для общих задач глубокого обучения, таких как классификация изображений и текста.
Усиление обучения
Представьте себе мышь в лабиринте, пытающуюся найти спрятанные кусочки сыра. Чем больше раз мы выставляем мышь в лабиринт, тем лучше она находит сыр. Сначала мышь может двигаться случайно, но через некоторое время опыт мыши помогает ей понять, какие действия приближают ее к сыру.
Процесс для мыши отражает то, что мы делаем с Reinforcement Learning (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) — это не метод машинного обучения как таковой, а широко используемый метод подготовки текста для машинного обучения. Подумайте о тоннах текстовых документов в различных форматах (слова, онлайн-блоги, . ). Большинство из этих текстовых документов будут полны опечаток, пропущенных символов и других слов, которые необходимо отфильтровать. На данный момент самым популярным пакетом для обработки текста являетсяNLTK(Natural Language ToolKit), созданный исследователями из Стэнфорда.
Самый простой способ отобразить текст в числовое представление — это вычислить частоту каждого слова в каждом текстовом документе. Подумайте о матрице целых чисел, где каждая строка представляет текстовый документ, а каждый столбец представляет слово. Это матричное представление частот слов обычно называют термином Matrix Frequency Matrix (TFM). Оттуда мы можем создать другое популярное матричное представление текстового документа, разделив каждую запись в матрице на вес того, насколько важно каждое слово во всем корпусе документов. Мы называем этот метод Term Frequency Inverse Document Frequency (TFIDF), и он обычно работает лучше для задач машинного обучения
Вложения слов
TFM и TFIDF представляют собой числовые представления текстовых документов, которые рассматривают только частоту и взвешенные частоты для представления текстовых документов. Напротив, встраивание слов может захватывать контекст слова в документе. Со словом context вложения могут количественно определять сходство между словами, что, в свою очередь, позволяет нам делать арифметику со словами.
Word2Vec — это метод, основанный на нейронных сетях, который отображает слова в корпусе в числовой вектор. Затем мы можем использовать эти векторы для поиска синонимов, выполнения арифметических операций со словами или для представления текстовых документов (взяв среднее значение всех векторов слов в документе). Например, давайте предположим, что мы используем достаточно большой корпус текстовых документов для оценки вложений слов. Давайте также предположим, что словакороль,Королева,мужчинаа такжеженщинаявляются частью корпуса. Скажем таквектор ( «слово»)числовой вектор, который представляет слово‘слово’, Чтобы оценитьвектор ( «женщина»)Мы можем выполнить арифметическую операцию с векторами:
Представления слов позволяют находить сходства между словами, вычисляя косинусное сходство между векторным представлением двух слов. Косинусное сходство измеряет угол между двумя векторами.
Мы вычисляем вложения слов, используя методы машинного обучения, но это часто является предварительным шагом для применения алгоритма машинного обучения сверху. Например, предположим, у нас есть доступ к твитам нескольких тысяч пользователей Twitter. Также предположим, что мы знаем, кто из этих пользователей Twitter купил дом. Чтобы предсказать вероятность покупки дома новым пользователем Twitter, мы можем объединить Word2Vec с логистической регрессией.
Вы можете обучать встраиванию слов самостоятельно или получить предварительно обученный (переносное обучение) набор векторов слов. Чтобы скачать предварительно обученные векторы слов на 157 различных языках, взгляните наFastText,
Резюме
Я попытался охватить десять самых важных методов машинного обучения: от самых основных до передовых. Хорошее изучение этих методов и полное понимание основ каждого из них может послужить хорошей отправной точкой для дальнейшего изучения более совершенных алгоритмов и методов.
Конечно, остается много очень важной информации, в том числе такие, как показатели качества, перекрестная проверка, дисбаланс классов в методах классификации и чрезмерная подгонка модели, и это лишь некоторые из них. Следите за обновлениями.
Все визуализации этого блога были сделаны с использованиемWatson Studio Desktop,
Особая благодарностьСтив Мурза его отличные отзывы на этот пост.
Источник