Разное

Машинное обучение алгоритмы: Гид: алгоритмы машинного обучения и их типы

Содержание

Гид: алгоритмы машинного обучения и их типы

Обучение с учителем

При обучении с учителем машина обучается на примерах. Оператор обеспечивает алгоритм машинного обучения набором известных данных, который содержит необходимые входные и выходные значения. Алгоритм должен установить, как получаются по данным входам данные выходы. Сам оператор знает решение поставленной задачи; алгоритм выявляет закономерности в данных, учится на основе наблюдений и делает прогнозы. Эти прогнозы затем корректируются оператором. Процесс продолжается до тех пор, пока алгоритм не достигнет высокого уровня точности/производительности.

К категории обучения с учителем относятся классификация, регрессия и прогнозирование.

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

Обучение с частичным привлечением учителя

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

Обучение без учителя

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

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

Методы обучения без учителя включают в себя:

  1. Кластеризация: Кластеризация предполагает группирование наборов похожих данных (на основе определенных критериев). Это полезно для сегментации данных на несколько групп и проведении анализа на основе каждого набора данных по отдельности для поиска закономерностей.
  2. Понижение размерности: Понижение размерности уменьшает количество используемых переменных и отделяет точную искомую информацию.

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

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

Обзор самых популярных алгоритмов машинного обучения

Существует такое понятие, как «No Free Lunch» теорема. Её суть заключается в том, что нет такого алгоритма, который был бы лучшим выбором для каждой задачи, что в особенности касается обучения с учителем.

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

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

Алгоритмы машинного обучения можно описать как обучение целевой функции f, которая наилучшим образом соотносит входные переменные X и выходную переменную Y: Y = f(X).

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

Наиболее распространённой задачей в машинном обучении является предсказание значений Y для новых значений X. Это называется прогностическим моделированием, и наша цель — сделать как можно более точное предсказание.

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

1.  Линейная регрессия

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

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

Линейную регрессию можно представить в виде уравнения, которое описывает прямую, наиболее точно показывающую взаимосвязь между входными переменными X и выходными переменными Y. Для составления этого уравнения нужно найти определённые коэффициенты B для входных переменных.

Например: Y = B0 + B1 * X

Зная X, мы должны найти Y, и цель линейной регрессии заключается в поиске значений коэффициентов B0 и B1.

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

Линейная регрессия существует уже более 200 лет, и за это время её успели тщательно изучить. Так что вот пара практических правил: уберите похожие (коррелирующие) переменные и избавьтесь от шума в данных, если это возможно. Линейная регрессия — быстрый и простой алгоритм, который хорошо подходит в качестве первого алгоритма для изучения.

2 .  Логистическая регрессия

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

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

Логистическая функция выглядит как большая буква S и преобразовывает любое значение в число в пределах от 0 до 1. Это весьма полезно, так как мы можем применить правило к выходу логистической функции для привязки к 0 и 1 (например, если результат функции меньше 0.5, то на выходе получаем 1) и предсказания класса.

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

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

3. Линейный дискриминантный анализ (LDA)

Логистическая регрессия используется, когда нужно отнести образец к одному из двух классов. Если классов больше, чем два, то лучше использовать алгоритм LDA (Linear discriminant analysis).

Представление LDA довольно простое. Оно состоит из статистических свойств данных, рассчитанных для каждого класса. Для каждой входной переменной это включает:

  • Среднее значение для каждого класса;
  • Дисперсию, рассчитанную по всем классам.

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

4.  Деревья принятия решений

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

Листовые узлы — это выходная переменная, которая используется для предсказания. Предсказания производятся путём прохода по дереву к листовому узлу и вывода значения класса на этом узле.

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

5 . Наивный Байесовский классификатор

Наивный Байес — простой, но удивительно эффективный алгоритм.

Модель состоит из двух типов вероятностей, которые рассчитываются с помощью тренировочных данных:

  1. Вероятность каждого класса.
  2. Условная вероятность для каждого класса при каждом значении x.

После расчёта вероятностной модели её можно использовать для предсказания с новыми данными при помощи теоремы Байеса. Если у вас вещественные данные, то, предполагая нормальное распределение, рассчитать эти вероятности не составляет особой сложности.

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

6.  K-ближайших соседей (KNN)

К-ближайших соседей — очень простой и очень эффективный алгоритм. Модель KNN (K-nearest neighbors) представлена всем набором тренировочных данных. Довольно просто, не так ли?

Предсказание для новой точки делается путём поиска K ближайших соседей в наборе данных и суммирования выходной переменной для этих K экземпляров.

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

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

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

7 .  Сети векторного квантования (LVQ)

Недостаток KNN заключается в том, что нужно хранить весь тренировочный набор данных. Если KNN хорошо себя показал, то есть смысл попробовать алгоритм LVQ (Learning vector quantization), который лишён этого недостатка.

LVQ представляет собой набор кодовых векторов. Они выбираются в начале случайным образом и в течение определённого количества итераций адаптируются так, чтобы наилучшим образом обобщить весь набор данных. После обучения эти вектора могут использоваться для предсказания так же, как это делается в KNN. Алгоритм ищет ближайшего соседа (наиболее подходящий кодовый вектор) путём вычисления расстояния между каждым кодовым вектором и новым экземпляром данных. Затем для наиболее подходящего вектора в качестве предсказания возвращается класс (или число в случае регрессии). Лучшего результата можно достичь, если все данные будут находиться в одном диапазоне, например от 0 до 1.

8. Метод опорных векторов (SVM)

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

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

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

Метод опорных векторов, наверное, один из самых эффективных классических классификаторов, на который определённо стоит обратить внимание.

9 .  Бэггинг и случайный лес

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

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

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

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

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

10 .  Бустинг и AdaBoost

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

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

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

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

Пара слов напоследок

Когда новички видят всё разнообразие алгоритмов, они задаются стандартным вопросом: «А какой следует использовать мне?» Ответ на этот вопрос зависит от множества факторов:

  • Размер, качество и характер данных;
  • Доступное вычислительное время;
  • Срочность задачи;
  • Что вы хотите делать с данными.

Даже опытный data scientist не скажет, какой алгоритм будет работать лучше, прежде чем попробует несколько вариантов. Существует множество других алгоритмов машинного обучения, но приведённые выше — наиболее популярные. Если вы только знакомитесь с машинным обучением, то они будут хорошей отправной точкой.

Перевод статьи «A Tour of The Top 10 Algorithms for Machine Learning Newbies»

Must-have алгоритмы машинного обучения / Хабр

Хабр, привет.

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

Метод главных компонент (PCA)/SVD

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

SVD — это способ вычисления упорядоченных компонентов.

Полезные ссылки:

Вводный гайд:

Метод наименьших квадратов

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

Используйте этот алгоритм, чтобы соответствовать простым кривым/регрессии.

Полезные ссылки:

Вводный гайд:

Ограниченная линейная регрессия

Метод наименьших квадратов может смутить выбросами, ложными полями и т. д. Нужны ограничения, чтобы уменьшить дисперсию линии, которую мы помещаем в набор данных. Правильное решение состоит в том, чтобы соответствовать модели линейной регрессии, которая гарантирует, что веса не будут вести себя “плохо”. Модели могут иметь норму L1 (LASSO) или L2 (Ridge Regression) или обе (elastic regression).

Используйте этот алгоритм для соответствия линиям регрессии с ограничениями, избегая переопределения.

Полезная ссылка:

Вводные гайды:

Метод k-средних

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

Полезная ссылка:

Вводные гайды:

Логистическая регрессия

Логистическая регрессия ограничена линейной регрессией с нелинейностью (в основном используется сигмоидальная функция или tanh) после применения весов, следовательно, ограничение выходов приближено к + / — классам (что равно 1 и 0 в случае сигмоида). Функции кросс-энтропийной потери оптимизированы с использованием метода градиентного спуска.

Примечание для начинающих: логистическая регрессия используется для классификации, а не регрессии. В целом, она схожа с однослойной нейронной сетью. Обучается с использованием методов оптимизации, таких как градиентный спуск или L-BFGS. NLP-разработчики часто используют её, называя “классификацией методом максимальной энтропии”.

Используйте LR для обучения простых, но очень “крепких” классификаторов.

Полезная ссылка:

Вводный гайд:

SVM (Метод опорных векторов)

SVM – линейная модель, такая как линейная/логистическая регрессия. Разница в том, что она имеет margin-based функцию потерь. Вы можете оптимизировать функцию потерь, используя методы оптимизации, например, L-BFGS или SGD.

Одна уникальная вещь, которую могут выполнять SVM – это изучение классификаторов классов.

SVM может использоваться для обучения классификаторов (даже регрессоров).

Полезная ссылка:

Вводные гайды:

Нейронные сети прямого распространения

В основном, это многоуровневые классификаторы логистической регрессии. Многие слои весов разделены нелинейностями (sigmoid, tanh, relu + softmax и cool new selu). Также они называются многослойными перцептронами. FFNN могут быть использованы для классификации и “обучения без учителя” в качестве автоэнкодеров.

FFNN можно использовать для обучения классификатора или извлечения функций в качестве автоэнкодеров.

Полезные ссылки:

Вводные гайды:

Свёрточные нейронные сети

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

Полезные ссылки:

Вводные гайды:

Рекуррентные нейронные сети (RNNs)

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

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

Полезные ссылки:

Вводные гайды:

Условные случайные поля (CRFs)

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

Используйте CRF для связки последовательностей (в тексте, изображении, временном ряду, ДНК и т. д.).

Полезная ссылка:

Вводные гайды:

Деревья принятия решений и случайные леса

Один из самых распространённых алгоритмов машинного обучения. Используется в статистике и анализе данных для прогнозных моделей. Структура представляет собой “листья” и “ветки”. На “ветках” дерева решения записаны атрибуты, от которых зависит целевая функция, в “листьях” записаны значения целевой функции, а в остальных узлах – атрибуты, по которым различаются случаи.

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

Полезные ссылки:

Вводные гайды:
Больше информации о машинном обучении и Data Science вы узнаете подписавшись на мой аккаунт на Хабре и Telegram-канал Нейрон. Не пропускайте будущих статей.

Всем знаний!

Алгоритмы машинного обучения | Microsoft Azure

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

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

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

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

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

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

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

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

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

Алгоритмы машинного обучения простым языком.

Часть 1 | by not eisenheim | NOP::Nuances of Programming

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

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

  • Градиентный спуск и линия наилучшего соответствия.
  • Линейная регрессия (включая регуляризацию).
  • Логистическая регрессия.

Прежде всего, давайте разберёмся, в чём разница между алгоритмом и моделью. Хорошее объяснение есть на Quora:

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

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

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

И вот объяснения:

Суть градиентного спуска в том, что он позволяет нам найти самое точное предсказание на основе данных.

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

Наш выдуманный набор роста и веса (по-странному геометричный)

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

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

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

Линия наилучшего соответствия показана красным

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

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

Визуализация градиентного спуска (при помощи Matplotlib)

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

Всё просто: линейная регрессия — это то, как мы анализируем силу зависимости между одной переменной (“результирующая переменная”) и одной или несколькими другими переменными (“независимыми переменными”).

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

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

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

Ещё одна важная деталь: результирующая переменная или то, что меняется с изменением наших других переменных, непрерывна. Что это значит?

Скажем, мы хотим измерить зависимость количества осадков от высоты над уровнем моря в штате Нью-Йорк. Тогда наша результирующая переменная — дождливость, независимая переменная — высота над уровнем моря. Если будем использовать линейную регрессию, то результирующую переменную нужно сформулировать как, например, “сколько дюймов осадков выпадает за определённое количество времени”, а не “дождливо/не дождливо”. Наша результирующая переменная должна быть непрерывной — значит она может быть любым числом (даже дробным).

Самое классное в линейной регрессии — это то, что она может предсказывать, используя линию наилучшего соответствия! Если мы запустим линейную регрессию на нашей задаче, мы можем найти эту линию, как и в градиентном спуске. Затем мы можем применять обученную модель для того, чтобы узнать количество осадков на определённой высоте.

ТОП-10 алгоритмов машинного обучения, которые нужно знать

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

Линейная регрессия

Линейная регрессия (Linear regression) – один из самых фундаментальных алгоритмов, используемых для моделирования отношений между зависимой переменной и несколькими независимыми переменными. Целью обучения является поиск линии наилучшего соответствия.

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

Линейная регрессия (красная линия – линия наилучшего соответствия)

О линейной регрессии можно узнать тут.

Логистическая регрессия

Логистическая регрессия (Logistic regression) похожа на линейную регрессию, но используется для моделирования вероятности дискретного числа результатов, обычно двух. Несмотря на то что в название алгоритма входи слово «регрессия», он используется для задачи классификации.

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

Метод k-ближайших соседей

Метод k-ближайших соседей (k-nearest neighbors) — это очень простой алгоритм машинного обучения. Все начинается с данных, которые уже классифицированы (т.е. красные и синие точки данных). Затем при добавлении новых точек, алгоритм классифицируете её, просматривая k ближайших классифицированных точек. Какой класс наберёт больше всего голосов определяет, как будет классифицироваться новая точка.

Метод k-ближайших соседей

Например, рассмотрим рисунок выше. Если мы определим k = 1, мы увидим, что первая ближайшая точка к серому образцу – это красный квадрат. Следовательно, точка будет классифицирована как красная. Хотя такой же результат будет и при k = 2.

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

Наивный байесовский классификатор

Наивный байесовский классификатор (Naive Bayes classifier) может вводить в ступор, поскольку он требует предварительных математических знаний в области условной вероятности и теоремы Байеса, но это очень простой алгоритм.

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

Таблица с категориальными данными

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

Сгруппированные данные

В математических терминах это записывается как вероятность того, что человек шёл играть в гольф при каких-то условиях, и обозначается как P(yes|<условие>). Это нотация называется условной вероятностью. В алгоритме всего лишь нужно посчитать всевозможные условные вероятности.

Допустим, что имеются следующие характеристики:

  • Outlook: sunny
  • Temperature: mild
  • Humidity: normal
  • Windy: false

Нужно вычислить вероятность того, что вы человек пойдёт играть в гольф при этих погодных условиях, то есть рассчитать P(yes|X), а затем вероятность того, что человек не пойдёт играть P(no|X). Из таблицы выше мы знаем, что

   

   

   

   

   

Теперь мы можем просто посчитать условную вероятность

   

   

   

Аналогично рассчитывается вероятность того, что человек не пойдёт (т.е. вместо yes будет no):

   

Поскольку

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

Метод опорных векторов

Метод опорных векторов (Support Vector Machine) применяется во многих задачах, и с математической точки зрения может быть сложным, но довольно интуитивно понятным на концептуальном уровне.

Метод опорных векторов

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

Деревья решений

Деревья решений (Decision trees) – это непараметрический контролируемый метод обучения, используется для задачи классификации и регрессии. Цель состоит в том, чтобы создать модель, которая предсказывает значение целевой переменной, изучая простые правила принятия решений, выведенные из характеристик данных. Дерево можно рассматривать как кусочно-постоянное приближение. Концептуально деревья решений очень понятный алгоритм, что достаточно одной схемы, чтобы понять его принцип работы.

Деревья решений

Случайный лес

Случайные леса (Random Forest) – это метод ансамблевого обучения, основанный на деревьях решений. Случайные леса включают создание нескольких деревьев решений с использованием самонастраиваемых наборов исходных данных и случайного выбора подмножества переменных на каждом шаге дерева решений. Затем модель собирает пакет прогнозов каждого дерева решений. Модель считает количество прогнозов «за» и «против» и выносит решение, исходя из большинства голосов.

Случайный лес

AdaBoost

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

  1. В AdaBoost используются деревья с одной вершиной и двумя узлами.
  2. Не все создаваемые деревья имеют право голоса для окончательном прогноза. Те, которые часто ошибались, будут меньше влиять на окончательное решение.
  3. Порядок расположения деревьев важен. Прогнозы дерева направлены на уменьшение ошибок, сделанных предыдущими.
Gradient Boost и XGBoost

Ещё один ансамблевый алгоритм Gradient Boost (градиентый бустинг) похож на AdaBoost, но у него есть несколько ключевых отличий:

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

Алгоритм Gradient Boost начинается с построения одного дерева, а последующие деревья нацелены на уменьшение остатков.

XGBoost – один из самых популярных и широко используемых алгоритмов, который основан на градиентном бустинге. К характеристикам XGBoost относятся:

  • Newton Boosting обеспечивает путь к глобальному минимуму быстрее, чем градиентный спуск
  • Дополнительный параметр рандомизации – уменьшает корреляцию между деревьями, в конечном итоге улучшая предсказательную силу

Вы можете ознакомиться с алгоритмом на странице с документацией библиотеки XGBoost (Python API также доступен), где также объясняется и Gradient Boost

LightGBM

Помимо XGBoost, есть ещё один ансамблевый алгоритм LightGBM. Что отличает LightGBM, так это то, что он использует метод, называемый односторонней выборкой на основе градиента (Gradient-based One-Side Sampling), чтобы отфильтровать данные и найти точку разделения между данными. Этим он отличается от XGBoost, который использует предварительно отсортированные и основанные на гистограммах алгоритмы для поиска лучшего разделения.

 

Еще больше подробностей о вышеприведённых алгоритмах машинного обучения, а также их применение для разных практических задач Data Science, включая задачи регрессии, классификации и кластеризации, вы узнаете на нашем специализированном курсе «PYML: Введение в машинное обучение на Python» в лицензированном учебном центре обучения и повышения квалификации Data Scientist’ов и IT-специалистов в Москве.

Источники

  1. https://xgboost.readthedocs.io/en/latest/python/index.html

Выбор алгоритма машинного обучения — Azure Machine Learning



  • Чтение занимает 6 мин

В этой статье

Распространенный вопрос: «какой алгоритм машинного обучения следует использовать?». Выбранный алгоритм зависит главным образом от двух различных аспектов сценария обработки и анализа данных:

  • Что вы хотите сделать с данными? В частности, каков бизнес-вопрос, который вы хотите ответить, обучение из прошлых данных?

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

Бизнес-сценарии и лист Машинное обучение Algorithm Памятка по

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

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

Вместе с рекомендациями на листе Машинное обучение Azure Algorithm Памятка по следует учитывать другие требования при выборе алгоритма машинного обучения для решения. Ниже приведены дополнительные факторы, которые следует учитывать, такие как точность, время обучения, линейность, количество параметров и число функций.

Сравнение алгоритмов машинного обучения

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

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

Требования к сценарию обработки и анализа данных

Зная, что вы хотите сделать с данными, необходимо определить дополнительные требования для решения.

Сделайте выбор и, возможно, компромиссы для следующих требований:

  • Точность
  • Время обучения
  • Линейность
  • Количество параметров
  • Количество функций

Точность

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

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

Существует три способа использования модуля «анализ модели»:

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

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

Время обучения

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

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

В Машинное обучение Designer создание и использование модели машинного обучения обычно выполняется в три этапа:

  1. Настройте модель, выбрав определенный тип алгоритма, а затем определив его параметры или параметры.

  2. Предоставьте набор данных с меткой и совместимый с алгоритмом. Подключите данные и модель к модулю обучение модели.

  3. После завершения обучения используйте обученную модель с одним из модулей оценки для создания прогнозов по новым данным.

Линейность

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

Линейность используется во многих алгоритмах машинного обучения. В Машинное обучение Azure Designer они включают:

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

*Нелинейная граница класса _: _Relying в алгоритме линейной классификации приведет к низкой точности. *

*Данные с нелинейной тенденцией _: _Using метод линейной регрессии создавал бы гораздо большие ошибки, чем необходимо. *

Количество параметров

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

Кроме того, в конструкторе Машинное обучение доступен Модуль Настройка модели . Цель этого модуля — определить оптимальные параметры для модели машинного обучения. Модуль создает и тестирует несколько моделей, используя различные сочетания параметров. Он сравнивает метрики по всем моделям, чтобы получить сочетания параметров.

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

Количество функций

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

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

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

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

Дальнейшие действия

Знакомство с алгоритмами машинного обучения

Последнее обновление 14 августа 2020 г.

В этом посте мы рассмотрим самых популярных алгоритмов машинного обучения .

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

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

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

  • Первый — это группировка алгоритмов по их стилю обучения .
  • Второй — это группировка алгоритмов по их сходству по форме или функциям (например, группировка похожих животных вместе).

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

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

Начните свой проект с моей новой книги «Основные алгоритмы машинного обучения», включающей пошаговых руководств и файлы Excel Spreadsheet для всех примеров.

Приступим.

Классный образец ансамбля из наиболее подходящих линий. Слабые элементы выделены серым цветом, комбинированное предсказание — красным.
Участок из Википедии, под лицензией общественного достояния.

Алгоритмы, сгруппированные по стилям обучения

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

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

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

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

Давайте рассмотрим три разных стиля обучения в алгоритмах машинного обучения:

1. Обучение с учителем

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

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

Примеры проблем: классификация и регрессия.

Примеры алгоритмов включают: логистическую регрессию и нейронную сеть обратного распространения.

2. Обучение без учителя

Входные данные не помечены и не имеют известного результата.

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

Примеры задач: кластеризация, уменьшение размерности и изучение правил ассоциации.

Примеры алгоритмов включают: алгоритм априори и K-средние.

3. Полу-контролируемое обучение

Входные данные представляют собой примеры помеченных и немаркированных примеров.

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

Примеры проблем: классификация и регрессия.

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

Обзор алгоритмов машинного обучения

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

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

Алгоритмы, сгруппированные по сходству

Алгоритмы часто группируются по сходству с точки зрения их функции (как они работают). Например, древовидные методы и методы, основанные на нейронных сетях.

Я думаю, что это наиболее удобный способ группировки алгоритмов, и мы будем использовать его здесь.

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

Мы могли бы справиться с этими случаями, дважды перечислив алгоритмы или выбрав группу, которая субъективно соответствует « лучших ».Мне нравится этот последний подход — не дублировать алгоритмы для простоты.

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

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

Если вам известен алгоритм или группа алгоритмов, которых нет в списке, оставьте это в комментариях и поделитесь с нами. Давайте нырнем.

Алгоритмы регрессии

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

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

Наиболее популярные алгоритмы регрессии:

  • Регрессия методом наименьших квадратов (OLSR)
  • Линейная регрессия
  • Логистическая регрессия
  • Пошаговая регрессия
  • Сплайны с многомерной адаптивной регрессией (MARS)
  • Сглаживание локально оцененной диаграммы рассеяния (LOESS)

Алгоритмы на основе экземпляров

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

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

Самыми популярными алгоритмами на основе экземпляров являются:

  • k-Ближайший сосед (kNN)
  • Обучающее векторное квантование (LVQ)
  • Самоорганизующаяся карта (SOM)
  • Локально-взвешенное обучение (LWL)
  • Машины опорных векторов (SVM)

Алгоритмы регуляризации

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

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

Наиболее популярные алгоритмы регуляризации:

  • Регрессия хребта
  • Оператор наименьшей абсолютной усадки и выбора (LASSO)
  • Эластичная сетка
  • Регрессия наименьшего угла (LARS)

Алгоритмы дерева решений

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

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

Самыми популярными алгоритмами дерева решений являются:

  • Дерево классификации и регрессии (CART)
  • Итерационный дихотомайзер 3 (ID3)
  • C4.5 и C5.0 (разные версии мощного подхода)
  • Автоматическое обнаружение взаимодействия с хи-квадрат (CHAID)
  • Решающий пень
  • M5
  • Деревья условных решений

Байесовские алгоритмы

Байесовские методы — это методы, которые явно применяют теорему Байеса к таким проблемам, как классификация и регрессия.

Наиболее популярные байесовские алгоритмы:

  • Наивный байесовский
  • Гауссовский Наивный Байес
  • Полиномиальный наивный байесовский
  • Средние оценки с одной зависимостью (AODE)
  • Байесовская сеть убеждений (BBN)
  • Байесовская сеть (BN)

Алгоритмы кластеризации

Кластеризация, как и регрессия, описывает класс проблемы и класс методов.

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

Наиболее популярные алгоритмы кластеризации:

  • к-средние
  • k-медианы
  • Максимизация ожиданий (EM)
  • Иерархическая кластеризация

Алгоритмы обучения правил ассоциации

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

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

Самыми популярными алгоритмами обучения ассоциативным правилам являются:

  • Априорный алгоритм
  • Алгоритм Eclat

Алгоритмы искусственной нейронной сети

Искусственные нейронные сети — это модели, основанные на структуре и / или функциях биологических нейронных сетей.

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

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

Наиболее популярные алгоритмы искусственной нейронной сети:

  • Персептрон
  • Многослойные персептроны (MLP)
  • Обратное распространение
  • Стохастический градиентный спуск
  • Сеть Хопфилда
  • Сеть радиальных базисных функций (RBFN)

Алгоритмы глубокого обучения

Методы глубокого обучения

— это современное обновление искусственных нейронных сетей, в которых используются обильные дешевые вычисления.

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

Наиболее популярные алгоритмы глубокого обучения:

  • Сверточная нейронная сеть (CNN)
  • Рекуррентные нейронные сети (RNN)
  • Сети с долгосрочной краткосрочной памятью (LSTM)
  • Составные автокодеры
  • Станок Глубокого Больцмана (DBM)
  • Сети глубокого убеждения (DBN)

Алгоритмы уменьшения размерности

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

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

  • Анализ главных компонентов (PCA)
  • Регрессия главных компонентов (PCR)
  • Регрессия методом частичных наименьших квадратов (PLSR)
  • Отображение Саммона
  • Многомерное масштабирование (MDS)
  • Преследование проекции
  • Линейный дискриминантный анализ (LDA)
  • Дискриминантный анализ смеси (MDA)
  • Квадратичный дискриминантный анализ (QDA)
  • Гибкий дискриминантный анализ (FDA)

Ансамблевые алгоритмы

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

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

  • Повышение
  • Начальное агрегирование (упаковка)
  • AdaBoost
  • Средневзвешенное значение (смешивание)
  • Стековое обобщение (стек)
  • Машины для повышения градиента (GBM)
  • Деревья регрессии с градиентным усилением (GBRT)
  • Случайный лес

Другие алгоритмы машинного обучения

Многие алгоритмы не рассматривались.

Я не рассматривал алгоритмы из специализированных задач в процессе машинного обучения, например:

  • Алгоритмы выбора признаков
  • Оценка точности алгоритма
  • Показатели эффективности
  • Алгоритмы оптимизации

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

  • Вычислительный интеллект (эволюционные алгоритмы и т. Д.)
  • Компьютерное зрение (CV)
  • Обработка естественного языка (NLP)
  • Рекомендательные системы
  • Обучение с подкреплением
  • Графические модели
  • И многое другое…

Они могут появиться в будущих публикациях.

Дополнительная литература по алгоритмам машинного обучения

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

Я собрал несколько ресурсов, чтобы вы могли продолжить чтение по алгоритмам. Если у вас есть конкретный вопрос, оставьте, пожалуйста, комментарий.

Другие списки алгоритмов машинного обучения

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

Как изучать алгоритмы машинного обучения

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

Как запускать алгоритмы машинного обучения

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

Заключительное слово

Надеюсь, эта экскурсия была для вас полезной.

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

Обновление : Продолжайте обсуждение на HackerNews и Reddit.

Узнайте, как работают алгоритмы машинного обучения!

Узнайте, как работают алгоритмы за считанные минуты

… с простой арифметикой и простыми примерами

Узнайте, как это сделать в моей новой электронной книге:
Мастер алгоритмов машинного обучения

Он охватывает объяснений и примеров из 10 лучших алгоритмов , например:
Linear Regression , k-Nearest Neighbours , Support Vector Machines и многое другое…

Наконец, отдерните занавес на

Алгоритмы машинного обучения

Пропустить академики. Только результаты.

Посмотрите, что внутри

Как изучить алгоритм машинного обучения

Последнее обновление 15 августа 2020 г.

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

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

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

Начните свой проект с моей новой книги «Основные алгоритмы машинного обучения», включающей пошаговых руководств и файлы Excel Spreadsheet для всех примеров.

Приступим.

Описание алгоритма нарушено

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

Реализовать алгоритм машинного обучения
Фото: Nic’s events, некоторые права защищены

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

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

Получите БЕСПЛАТНУЮ интеллектуальную карту алгоритмов

Пример удобной интеллект-карты алгоритмов машинного обучения.

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

Скачайте, распечатайте и пользуйтесь.

Скачать бесплатно

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

Собери вместе

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

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

Обычно существуют прототипные реализации метода, выпущенные с первичными источниками, и чтение этого кода (обычно C, FORTRAN, R или Matlab) может быть очень полезным для понимания деталей, необходимых для воспроизведения алгоритма.

Описание алгоритмов

Алгоритм — это остров исследований, и на самом деле может быть сложно дать каноническое определение. Например, это версия, описанная в первоисточнике, или это версия, которая включает все исправления и улучшения, которые являются «передовой практикой».

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

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

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

Рецепты алгоритмов

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

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

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

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

Разработка шаблона описания алгоритма

Шаблон описания алгоритма предоставляет структурированный способ изучения алгоритма машинного обучения.

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

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

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

После того, как вы определились с некоторыми вопросами, превратите их в заголовки разделов.

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

Начни с малого и наращивай

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

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

Вы очень быстро получите описание алгоритма на одной-двух страницах.

Я использую

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

  • Реализация алгоритмов машинного обучения с использованием описательного шаблона.
  • Применение алгоритма машинного обучения с использованием шаблона прикладной направленности.
  • Создание каталога алгоритмов для использования и ссылки с использованием шаблона общего назначения.

В этом последнем случае я превратил свой каталог в книгу из 45 алгоритмов, вдохновленных природой, которую я опубликовал в начале 2011 года. Книга называется «Умные алгоритмы: рецепты программирования, вдохновленные природой».

Сводка

В этом посте вы узнали об использовании шаблона описания алгоритма в качестве стратегии обучения алгоритму машинного обучения.

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

Вы узнали, что шаблон — это эффективный и структурированный способ решения огромной проблемы.

Узнайте, как работают алгоритмы машинного обучения!

Узнайте, как работают алгоритмы за считанные минуты

… с простой арифметикой и простыми примерами

Узнайте, как это сделать в моей новой электронной книге:
Мастер алгоритмов машинного обучения

Он охватывает объяснений и примеров из 10 лучших алгоритмов , например:
Linear Regression , k-Nearest Neighbours , Support Vector Machines и многое другое…

Наконец, отдерните занавес на

Алгоритмы машинного обучения

Пропустить академики. Только результаты.

Посмотрите, что внутри

Как реализовать алгоритм машинного обучения

Последнее обновление: 12 августа 2019 г.

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

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

Начните свой проект с моей новой книги «Основные алгоритмы машинного обучения», включающей пошаговых руководств и файлы Excel Spreadsheet для всех примеров.

Приступим.

Фото Моры МакДоннелл, некоторые права защищены.

Преимущества реализации алгоритмов машинного обучения

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

Понимание алгоритма

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

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

Получите БЕСПЛАТНУЮ интеллектуальную карту алгоритмов

Пример удобной интеллект-карты алгоритмов машинного обучения.

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

Скачайте, распечатайте и пользуйтесь.

Скачать бесплатно

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

Практические навыки

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

Перечислены три примера навыков, которые вы можете развить, включая:

  • Мастерство : Реализация алгоритма — это первый шаг к овладению алгоритмом.Вы вынуждены глубоко понимать алгоритм, когда реализуете его. Вы также создаете свою собственную лабораторию, которая поможет вам усвоить вычисления, которые она выполняет с течением времени, например, путем отладки и добавления мер для оценки выполняемого процесса.
  • Производственные системы : Пользовательские реализации алгоритмов обычно требуются для производственных систем из-за изменений, которые необходимо внести в алгоритм по соображениям эффективности и действенности.Более качественные, быстрые и менее ресурсоемкие результаты в конечном итоге могут привести к снижению затрат и увеличению доходов бизнеса, а ручная реализация алгоритмов поможет вам развить навыки для предоставления этих решений.
  • Обзор литературы : При реализации алгоритма вы проводите исследование. Вы вынуждены найти и прочитать несколько канонических и формальных описаний алгоритма. Вы также, вероятно, найдете и проанализируете код других реализаций алгоритма, чтобы подтвердить свое понимание.Вы проводите целенаправленное исследование и учитесь читать и применять на практике исследовательские публикации.

Процесс

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

Реализовать алгоритм машинного обучения
Фото: Nic’s events, некоторые права защищены

Вы можете использовать процесс, описанный ниже.

  1. Выберите язык программирования : выберите язык программирования, который вы хотите использовать для реализации. Это решение может повлиять на API и стандартные библиотеки, которые вы можете использовать в своей реализации.
  2. Выберите алгоритм : выберите алгоритм, который вы хотите реализовать с нуля. Будьте как можно более конкретными. Это означает не только класс и тип алгоритма, но и выбор конкретного описания или реализации, которые вы хотите реализовать.
  3. Выберите проблему: Выберите каноническую проблему или набор задач, которые вы можете использовать для тестирования и проверки вашей реализации алгоритма. Алгоритмы машинного обучения не существуют изолированно.
  4. Алгоритм исследования : Найдите статьи, книги, веб-сайты, библиотеки и любые другие описания алгоритма, которые вы можете прочитать и изучить. Хотя в идеале вы хотите иметь одно ключевое описание алгоритма, с которым вы будете работать, вам нужно будет иметь несколько точек зрения на алгоритм.Это полезно, потому что несколько точек зрения помогут вам быстрее усвоить описание алгоритма и преодолеть препятствия из-за любых двусмысленностей или предположений, сделанных в описании (всегда есть двусмысленность в описаниях алгоритмов).
  5. Модульный тест : напишите модульные тесты для каждой функции, даже подумайте о разработке через тестирование с самого начала проекта, чтобы вы были вынуждены понимать цель и ожидания каждой единицы кода, прежде чем реализовывать их.

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

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

Расширения

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

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

Ограничения

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

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

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

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

Примеры проектов

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

  • Обычная линейная регрессия методом наименьших квадратов : используйте двухмерные наборы данных и модель x из y. Распечатайте ошибку для каждой итерации алгоритма. Рассмотрите возможность построения линии наилучшего соответствия и прогнозов для каждой итерации алгоритма, чтобы увидеть, как обновления влияют на модель.
  • k-Nearest Neighbor : рассмотрите возможность использования двухмерных наборов данных с двумя классами, даже теми, которые вы создаете с миллиметровой бумагой, чтобы вы могли построить их. После того, как вы сможете построить график и делать прогнозы, вы можете построить отношения, созданные для каждого прогнозного решения, которое принимает модель.
  • Perceptron : считается простейшей моделью искусственной нейронной сети и очень похожей на регрессионную модель. Вы можете отслеживать и составлять график производительности модели по мере того, как она изучает набор данных.

Резюме

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

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

Узнайте, как работают алгоритмы машинного обучения!

Узнайте, как работают алгоритмы за считанные минуты

…с простой арифметикой и простыми примерами

Узнайте, как это сделать в моей новой электронной книге:
Мастер алгоритмов машинного обучения

Он охватывает объяснений и примеров из 10 лучших алгоритмов , например:
Линейная регрессия , k-Nearest Neighbours , Машины опорных векторов и многое другое …

Наконец, отдерните занавес на

Алгоритмы машинного обучения

Пропустить академики.Только результаты.

Посмотрите, что внутри

рецептов алгоритмов машинного обучения в scikit-learn

Последнее обновление 21 августа 2019 г.

Вы должны запачкать руки.

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

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

Начните свой проект с моей новой книги «Мастерство машинного обучения с Python», включая пошаговых руководств и файлов исходного кода Python для всех примеров.

Приступим.

Рецепты Scikit-Learn

Вам не нужно знать и использовать все алгоритмы в scikit-learn, по крайней мере, на начальном этапе выберите один или два (или несколько) и практикуйтесь только с ними.

В этом посте вы увидите 5 рецептов контролируемых алгоритмов классификации, применяемых к небольшим стандартным наборам данных, которые предоставляются с библиотекой scikit-learn.

Рецепты принципиальные. Каждый пример:

  • Автономный : Каждый пример кода представляет собой автономный, полный и исполняемый рецепт.
  • Just Code : основное внимание в каждом рецепте уделяется коду с минимальным изложением теории машинного обучения.
  • Простой : Рецепты представляют собой общий вариант использования, который, вероятно, именно то, что вы хотите сделать.
  • Согласованный : Все примеры кода представлены последовательно и следуют одному и тому же шаблону кода и соглашениям о стилях.

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

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

Логистическая регрессия

Логистическая регрессия подбирает логистическую модель к данным и делает прогнозы о вероятности события (от 0 до 1).

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

# Логистическая регрессия
из наборов данных импорта sklearn
из показателей импорта sklearn
из sklearn.linear_model import LogisticRegression
# загружаем наборы данных радужной оболочки глаза
набор данных = наборы данных.load_iris ()
# подобрать модель логистической регрессии к данным
model = LogisticRegression ()
модель.подходят (dataset.data, dataset.target)
печать (модель)
# делать предсказания
ожидаемый = dataset.target
предсказанный = model.predict (dataset.data)
# резюмируем соответствие модели
print (metrics.classification_report (ожидаемый, прогнозируемый))
print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

# Логистическая регрессия

из наборов данных импорта sklearn

из метрик импорта sklearn

из sklearn.linear_model import LogisticRegression

# загрузить наборы данных iris

dataset = datasets.load_iris ()

# подобрать модель логистической регрессии к данным

model = LogisticRegression ()

model.fit (dataset.dtarget, dataset. )

print (модель)

# сделать прогнозы

expected = dataset.target

predicted = model.predict (dataset.data)

# подытожить соответствие модели

print (metrics.classification_report (ожидаемый, предсказано))

печать (метрики.confusion_matrix (ожидаемый, прогнозируемый))

Для получения дополнительной информации см. Справочник по API для логистической регрессии для получения подробной информации о настройке параметров алгоритма. Также см. Раздел «Логистическая регрессия» в руководстве пользователя.

Наивный Байес

Наивный Байес использует теорему Байеса для моделирования условной связи каждого атрибута с переменной класса.

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

# Гауссовский наивный байесовский
из наборов данных импорта sklearn
из показателей импорта sklearn
из склеарна.naive_bayes импортировать GaussianNB
# загружаем наборы данных радужной оболочки глаза
набор данных = наборы данных.load_iris ()
# подобрать наивную байесовскую модель к данным
model = GaussianNB ()
model.fit (dataset.data, dataset.target)
печать (модель)
# делать предсказания
ожидаемый = dataset.target
предсказанный = model.predict (dataset.data)
# резюмируем соответствие модели
print (metrics.classification_report (ожидаемый, прогнозируемый))
print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

# Gaussian Naive Bayes

из наборов данных импорта sklearn

из показателей импорта sklearn

из sklearn.naive_bayes import GaussianNB

# загрузка наборов данных iris

dataset = datasets.load_iris ()

# подгонка модели Наивного Байеса к данным

model = GaussianNB ()

model.fit (dataset.dtarget, dataset. )

print (модель)

# сделать прогнозы

expected = dataset.target

predicted = model.predict (dataset.data)

# подытожить соответствие модели

print (metrics.classification_report (ожидаемый, предсказано))

печать (метрики.confusion_matrix (ожидаемый, прогнозируемый))

Дополнительные сведения см. В справочнике API для наивного байесовского алгоритма Гаусса для получения подробной информации о настройке параметров алгоритма. Также см. Раздел «Наивный байесовский метод» в руководстве пользователя.

k-Ближайший сосед

Метод k-Nearest Neighbor (kNN) делает прогнозы, обнаруживая аналогичные случаи для данного экземпляра данных (используя функцию подобия) и возвращая среднее или большинство наиболее похожих экземпляров данных.Алгоритм kNN можно использовать для классификации или регрессии.

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

# k-Ближайший сосед
из наборов данных импорта sklearn
из показателей импорта sklearn
from sklearn.neighbors import KNeighborsClassifier
# загрузить ирисовые наборы данных
набор данных = наборы данных.load_iris ()
# подбираем модель k-ближайшего соседа к данным
model = KNeighborsClassifier ()
model.fit (набор данных.данные, dataset.target)
печать (модель)
# делать предсказания
ожидаемый = dataset.target
предсказанный = model.predict (dataset.data)
# резюмируем соответствие модели
print (metrics.classification_report (ожидаемый, прогнозируемый))
print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

# k-Nearest Neighbor

из наборов данных импорта sklearn

из метрик импорта sklearn

из sklearn.соседи импортировать KNeighborsClassifier

# загрузить iris наборы данных

dataset = datasets.load_iris ()

# подобрать модель k-ближайшего соседа к данным

model = KNeighborsClassifier ()

model.fit (dataset.data, dataset.data, dataset.data .target)

print (model)

# сделать прогнозы

expected = dataset.target

predicted = model.predict (dataset.data)

# подытожить соответствие модели

print (metrics.classification_report ( ожидаемый, прогнозируемый))

печать (метрики.confusion_matrix (ожидаемый, прогнозируемый))

Для получения дополнительной информации см. Справочник по API для k-Nearest Neighbor для получения подробной информации о настройке параметров алгоритма. Также см. Раздел k-ближайшего соседа в руководстве пользователя.

Деревья классификации и регрессии

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

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

# Классификатор дерева решений
из наборов данных импорта sklearn
из показателей импорта sklearn
из sklearn.tree импортировать DecisionTreeClassifier
# загружаем наборы данных радужной оболочки глаза
набор данных = наборы данных.load_iris ()
# подгоняем модель CART к данным
model = DecisionTreeClassifier ()
model.fit (dataset.data, dataset.target)
печать (модель)
# делать предсказания
ожидаемый = набор данных.цель
предсказанный = model.predict (dataset.data)
# резюмируем соответствие модели
print (metrics.classification_report (ожидаемый, прогнозируемый))
print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

# DecisionTreeClassifier

# DecisionTreeClassifier

# загрузить наборы данных радужной оболочки

dataset = datasets.load_iris ()

# подобрать модель CART к данным

model = DecisionTreeClassifier ()

model.fit (dataset.data, dataset.target)

print (model)

# сделать прогнозы

ожидаемый = набор данных .target

predicted = model.predict (dataset.data)

# суммирует соответствие модели

print (metrics.classification_report (ожидаемый, прогнозируемый))

print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

Для получения дополнительной информации см. Справочник по API для CART для получения подробной информации о настройке параметров алгоритма.Также см. Раздел «Дерево решений» в руководстве пользователя.

Машины опорных векторов

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

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

# Машина опорных векторов
из наборов данных импорта sklearn
из показателей импорта sklearn
из sklearn.svm импортировать SVC
# загружаем наборы данных радужной оболочки глаза
набор данных = наборы данных.load_iris ()
# подбираем модель SVM к данным
модель = SVC ()
model.fit (dataset.data, dataset.target)
печать (модель)
# делать предсказания
ожидаемый = dataset.target
предсказанный = model.predict (dataset.data)
# резюмируем соответствие модели
print (metrics.classification_report (ожидаемый, прогнозируемый))
печать (метрики.confusion_matrix (ожидаемый, прогнозируемый))

# Support Vector Machine

из наборов данных импорта sklearn

из метрик импорта sklearn

из sklearn.svm import SVC

# загрузить наборы данных радужной оболочки

dataset = datasets.load_iris ()

# данные

model = SVC ()

model.fit (dataset.data, dataset.target)

print (model)

# make прогнозы

expected = dataset.target

predicted = model.predict (dataset.data)

# суммирует соответствие модели

print (metrics.classification_report (ожидаемый, прогнозируемый))

print (metrics.confusion_matrix (ожидаемый, прогнозируемый))

Подробнее о настройке параметров алгоритма см. В справке по API для SVM. Также см. Раздел SVM в руководстве пользователя.

Сводка

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

Каждый пример — это менее 20 строк, которые вы можете скопировать, вставить и начать использовать scikit-learn прямо сейчас. Прекратите читать и начните практиковаться. Выберите один рецепт и запустите его, затем начните играть с параметрами и посмотрите, как это повлияет на результаты.

Откройте для себя быстрое машинное обучение на Python!

Создавайте собственные модели за считанные минуты

… всего несколько строк кода scikit-learn

Узнайте, как это сделать, в моей новой электронной книге:
Мастерство машинного обучения с Python

Охватывает самоучителей и сквозных проектов , например:
Загрузка данных , визуализация , моделирование , настройка и многое другое…

Наконец-то привнесла машинное обучение в

Ваши собственные проекты

Пропустить академики. Только результаты.

Посмотрите, что внутри

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

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

Итак, если вы хотите узнать больше о машинном обучении, с чего начать? Для меня первое знакомство — это занятия по искусственному интеллекту, когда я учился за границей в Копенгагене. Мой лектор является штатным профессором прикладной математики и компьютерной науки в Техническом университете Дании, в котором его области исследований являются логическими и искусственными, с упором в основном на использование логики для моделирования планирования, рассуждений и решения проблем, подобных человеку.Класс представлял собой сочетание обсуждения теории / основных концепций и практического решения проблем. Учебник, который мы использовали, является одним из классических произведений искусственного интеллекта: «Искусственный интеллект — современный подход » Питера Норвига, в котором мы рассмотрели основные темы, включая интеллектуальные агенты, решение проблем с помощью поиска, состязательный поиск, теорию вероятностей, многоагентные системы и т. Д. социальный ИИ, философия / этика / будущее ИИ. В конце урока в команде из 3 человек мы реализовали простые поисковые агенты, решающие транспортные задачи в виртуальной среде как проект программирования.

Я получил огромное количество знаний благодаря этому классу и решил продолжить изучение этой специализированной темы. За последние несколько недель я провел несколько технических бесед в Сан-Франциско по глубокому обучению, нейронным сетям, архитектуре данных, а также провел конференцию по машинному обучению со многими известными профессионалами в этой области. Самое главное, я записался на онлайн-курс Udacity Intro to Machine Learning в начале июня и только что закончил его несколько дней назад.В этом посте я хочу поделиться некоторыми из наиболее распространенных алгоритмов машинного обучения, которые я узнал из курса.

Алгоритмы машинного обучения

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

Обучение с учителем

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

Дерево принятия решений

С точки зрения бизнес-решений, дерево решений — это минимальное количество вопросов типа «да / нет», которые нужно задать для оценки вероятности принятия правильного решения в большинстве случаев. Как метод, он позволяет подойти к проблеме структурированно и систематически, чтобы прийти к логическому выводу.

2. Наивная байесовская классификация : Наивные байесовские классификаторы — это семейство простых вероятностных классификаторов, основанных на применении теоремы Байеса с сильными (наивными) предположениями о независимости между признаками.Показанное изображение представляет собой уравнение: где P (A | B) — апостериорная вероятность, P (B | A) — правдоподобие, P (A) — априорная вероятность класса, а P (B) — априорная вероятность предсказателя.

Наивная байесовская классификация

Вот некоторые из реальных примеров:

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

3. Регрессия методом наименьших квадратов : Если вы знакомы со статистикой, вы, вероятно, слышали о линейной регрессии раньше. Метод наименьших квадратов — это метод линейной регрессии. Вы можете думать о линейной регрессии как о задаче построения прямой линии через набор точек. Для этого существует несколько возможных стратегий, и стратегия «обычных наименьших квадратов» выглядит следующим образом: вы можете нарисовать линию, а затем для каждой точки данных измерить расстояние по вертикали между точкой и линией и сложить их. ; подобранная линия будет той, где эта сумма расстояний будет как можно меньше.

Регрессия методом наименьших квадратов

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

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

Логистическая регрессия

В целом, регрессии можно использовать в реальных приложениях, таких как:

  • Кредитный скоринг
  • Измерение успешности маркетинговых кампаний
  • Прогнозирование доходов от определенного продукта
  • Будет ли в определенный день землетрясение?

5. Машины опорных векторов : SVM — алгоритм двоичной классификации. Учитывая набор точек 2 типов в N-мерном месте, SVM генерирует (N — 1) -мерную гиперплоскость, чтобы разделить эти точки на 2 группы.Скажем, у вас есть несколько точек двух типов, которые линейно разделимы. SVM найдет прямую линию, которая разделяет эти точки на 2 типа и расположена как можно дальше от всех этих точек.

Машина опорных векторов

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

Изучение ограничений квантового машинного обучения

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

Зарегистрируйтесь для бесплатного практического семинара : oneAPI AI Analytics Toolkit

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

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

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

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

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

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

Аппаратные ограничения

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

Программные ограничения

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

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


Присоединяйтесь к нашей группе Telegram. Станьте частью интересного онлайн-сообщества. Присоединиться здесь.


Подпишитесь на нашу рассылку новостей

Получайте последние обновления и актуальные предложения, поделившись своей электронной почтой.

Минал Шарма

Я студентка факультета журналистики, люблю играть в баскетбол и писать о финансах и технологиях.Я верю в силу слов.

Машинное обучение, объяснение | MIT Sloan

открытые ссылки для общего доступа
закрыть ссылки для обмена

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

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

«Всего за последние пять или 10 лет машинное обучение стало критически важным способом, возможно, самым важным способом, которым выполняется большая часть ИИ», — сказал профессор Слоуна Массачусетского технологического института Томас У. Мэлоун, директор-основатель Центра коллективных исследований Массачусетского технологического института Интеллект. «Вот почему некоторые люди используют термины ИИ и машинное обучение почти как синонимы… большинство современных достижений в области ИИ связано с машинным обучением.”

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

От производства до розничной торговли, от банковского дела до пекарен — даже унаследованные компании используют машинное обучение, чтобы открывать новые возможности или повышать эффективность. «Машинное обучение меняет или изменит каждую отрасль, и лидеры должны понимать основные принципы, потенциал и ограничения», — сказал профессор информатики Массачусетского технологического института Александр Мадри, директор Центра развертываемого машинного обучения Массачусетского технологического института.

Хотя не всем нужно знать технические детали, они должны понимать, что делает технология, а что она может и чего не может, добавила Мэдри. «Я не думаю, что кто-то может позволить себе не знать о том, что происходит».

Это включает понимание социальных, социальных и этических последствий машинного обучения. «Важно вовлечься и начать понимать эти инструменты, а затем подумать о том, как вы собираетесь их правильно использовать. Мы должны использовать эти [инструменты] на благо всех », — сказал д-р.Джоан ЛаРовер, MBA ’16, педиатрический кардиолог интенсивной терапии и соучредитель некоммерческой организации The Virtue Foundation. «ИИ обладает огромным потенциалом делать добро, и мы должны действительно держать это в наших глазах, когда мы думаем об этом. Как мы можем использовать это, чтобы делать добро и делать мир лучше? »

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

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

Цель ИИ — создать компьютерные модели, которые демонстрируют «разумное поведение», как люди, по словам Бориса Каца, главного исследователя и главы группы InfoLab в CSAIL. Это означает, что машины могут распознавать визуальную сцену, понимать текст, написанный на естественном языке, или выполнять действия в физическом мире.

Машинное обучение — один из способов использования ИИ.В 1950-х годах пионер искусственного интеллекта Артур Сэмюэл определил ее как «область обучения, которая дает компьютерам возможность учиться без явного программирования».

Это определение верно, по словам Майки Шульман, лектора Массачусетского технологического института Sloan и главы отдела машинного обучения в Kensho, специализирующейся на искусственном интеллекте для финансов и разведки США. Он сравнил традиционный способ программирования компьютеров, или «программное обеспечение 1.0», с выпечкой, где рецепт требует точного количества ингредиентов и предписывает пекарю перемешивать в течение определенного времени.Традиционное программирование также требует создания подробных инструкций для компьютера.

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

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

Оттуда программисты выбирают модель машинного обучения для использования, предоставляют данные и позволяют компьютерной модели обучаться самостоятельно находить закономерности или делать прогнозы. Со временем человек-программист может также настроить модель, в том числе изменить ее параметры, чтобы добиться более точных результатов. (Веб-сайт ученого-исследователя Джанель Шейн AI Weirdness представляет собой занимательный взгляд на то, как обучаются алгоритмы машинного обучения и как они могут ошибаться — как это произошло, когда алгоритм попытался сгенерировать рецепты и создал шоколадный куриный торт.)

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

Успешные алгоритмы машинного обучения могут делать разные вещи, писал Мэлоун в недавнем исследовательском отчете об ИИ и будущем работы, в соавторстве с профессором Массачусетского технологического института и директором CSAIL Даниэлой Рус и Робертом Лаубахером, заместителем директора Центра коллективных исследований Массачусетского технологического института Интеллект.

«Функция системы машинного обучения может быть описательной , что означает, что система использует данные для объяснения того, что произошло; прогнозирующий , что означает, что система использует данные для прогнозирования того, что произойдет; или предписывающий , что означает, что система будет использовать данные, чтобы делать предложения о том, какие действия следует предпринять », — пишут исследователи.

Машинное обучение делится на три подкатегории:

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

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

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

Источник: Томас Мэлоун | MIT Sloan. См .: https://bit.ly/3gvRho2, рисунок 2.

В обзоре Work of the Future Мэлоун отметил, что машинное обучение лучше всего подходит для ситуаций с большим количеством данных — тысячами или миллионами примеров, такими как записи предыдущих разговоров с клиентами, журналы датчиков с машин или транзакции банкоматов.Например, Google Translate стал возможен, потому что он «обучал» огромное количество информации в Интернете на разных языках.

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

Поиск в Google — это пример того, что могут делать люди, но никогда не в таком масштабе и скорости, с которыми модели Google могут показывать потенциальные ответы каждый раз, когда человек вводит запрос, сказал Мэлоун.«Это не пример того, как компьютеры лишают людей работы. Это пример того, как компьютеры делают вещи, которые были бы экономически невыполнимы, если бы их делали люди ».

Машинное обучение также связано с несколькими другими подполями искусственного интеллекта:

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

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

Нейронные сети

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

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

Глубокое обучение

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

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

«Чем больше у вас слоев, тем больше у вас возможностей для успешного выполнения сложных задач», — сказал Мэлоун.

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

Как предприятия используют машинное обучение

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

67%

Согласно недавнему опросу, 67% компаний используют машинное обучение.

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

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

Компании уже используют машинное обучение несколькими способами, в том числе:

Алгоритмы рекомендаций. Механизмы рекомендаций, стоящие за предложениями Netflix и YouTube, информация о том, какая информация появляется в вашем канале Facebook, и рекомендации по продуктам, основываются на машинном обучении.«[Алгоритмы] пытаются узнать наши предпочтения», — сказал Мэдри. «Они хотят узнать, например, в Twitter, какие твиты мы хотим, чтобы они показывали нам, на Facebook, какую рекламу показывать, какими постами или понравившимся контентом мы можем поделиться с нами».

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

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

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

Беспилотные автомобили. Большая часть технологий, лежащих в основе беспилотных автомобилей, основана на машинном обучении, в частности на глубоком обучении.

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

Прочитать отчет: Искусственный интеллект и будущее работы

Как работает машинное обучение: перспективы и вызовы

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

Объяснение

Одна из областей, вызывающих беспокойство, — это то, что некоторые эксперты называют объяснимостью или способностью четко понимать, что делают модели машинного обучения и как они принимают решения. «Понимание того, почему модель делает то, что она делает, на самом деле очень сложный вопрос, и вы всегда должны задавать себе этот вопрос», — сказал Мэдри. «Вы никогда не должны относиться к этому как к черному ящику, который приходит только как оракул… да, вы должны использовать его, но затем попытайтесь понять, какие практические правила он придумал? А затем подтвердите их.”

Статьи по Теме

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

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

По словам Шульман, важность объяснения того, как работает модель, и ее точности может варьироваться в зависимости от того, как она используется. По его словам, хотя большинство хорошо поставленных проблем можно решить с помощью машинного обучения, сейчас люди должны исходить из того, что модели работают только с точностью около 95% человеческой точности.Для программиста и зрителя может быть нормально, если алгоритм, рекомендующий фильмы, будет точен на 95%, но такого уровня точности будет недостаточно для беспилотного транспортного средства или программы, предназначенной для поиска серьезных недостатков в механизмах.

Смещение и непредвиденные результаты

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

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

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

Использование машинного обучения

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

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

Мадри Александр
Профессор информатики Массачусетского технологического института

То, как работает машинное обучение для Amazon, вероятно, не удастся реализовать в автомобильной компании, сказал Шульман. Хотя Amazon добилась успеха с голосовыми помощниками и динамиками с голосовым управлением, это не означает, что автомобильным компаниям следует уделять приоритетное внимание добавлению динамиков в автомобили.По его словам, более вероятно, что автомобильная компания найдет способ использовать машинное обучение на заводе, что сэкономит или заработает много денег.

«Сфера движется так быстро, и это здорово, но из-за этого руководителям сложно принимать решения по этому поводу и решать, сколько ресурсов в это вложить», — сказал Шульман.

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

По словам ЛаРовера, базовое понимание машинного обучения важно, но поиск правильного использования машинного обучения в конечном итоге зависит от совместной работы людей с разным опытом. «Я не специалист по данным. Я не занимаюсь реальной работой по инженерии данных — сбором, обработкой и спортом, чтобы включить приложения машинного обучения, — но я понимаю это достаточно хорошо, чтобы иметь возможность работать с этими командами, чтобы получить ответы, которые нам нужны, и оказать влияние нам нужно, — сказала она.«Вам действительно нужно работать в команде».

Узнать больше:

Запишитесь на курс «Машинное обучение в бизнесе».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *