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

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

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

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

Что мне нужно сделать, чтобы заниматься машинным обучением?

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

Когда у вас есть эти данные, вам нужно будет разделить их на два набора данных:

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

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

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

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

  • Рекомендации продуктов на сайте электронной коммерции (Amazon, eBay, …).
  • Рекомендации для сайта поисковой системы (поиск Google, Facebook, …).
  • Netflix также использует его, чтобы рекомендовать фильмы и сериалы в зависимости от того, что вам действительно нравится.
  • Youtube, чтобы ставить субтитры под видео, …

Как я могу научить машины учиться?

Существуют разные способы обучения машин, вот четыре самых популярных способа:

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

Смещение и дисперсия

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм K-ближайшего соседа (K-NN)

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

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

Это означает, что ближайший сосед (ближайшая порода) будет нашим предсказанием.

Кластеризация K-средних

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

K-means — это неконтролируемый алгоритм.

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

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

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

Например, вы можете использовать K-means, чтобы узнать, кто ваши постоянные клиенты.

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

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

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

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

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

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

Наивный Байес предсказывает каждый предиктор (например, вес, рост, волосы), а затем умножает каждый предиктор на весовой множитель (чтобы придать им большее или меньшее значение).

В таком случае у нас есть:

  • Прогноз лабрадора = 3*0,2+2,2*0,2+2*0,3 = 1,64
  • Золотистый ретривер = 3*0,25+2,2*0,2+2*0,4 = 1,99
  • Бульдог = 3*0,55+2,2*0,6+2*0,3 = 3,57

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

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

Что такое недообучение и переоснащение моделей?

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

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

Какие проблемы возникают в машинном обучении?

Когда вы занимаетесь машинным обучением, вам необходимо учитывать следующие моменты:

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