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

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

  1. Что такое машинное обучение
  2. Шаги в машинном обучении
  3. Генеративные и декларативные алгоритмы
  4. Типы машинного обучения

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

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

Несмотря на то, что такие концепции, как машинное обучение, искусственные нейронные сети, искусственный интеллект и т. Д., Всплывают на поверхность в недавнем прошлом, история этих концепций восходит к началу 20 века. Даже этот термин «машинное обучение» впервые ввел Артур Сэмюэл в 1959 году. Это подмножество искусственного интеллекта.

Как можно понять из этого термина, мы заставляем машину учиться делать определенные вещи; это может быть идентификация объектов, ответы на вопросы, определение темы данного контента и т. д. и т. д. Для обучения машины мы используем математические концепции, алгоритмы и статистические модели. Кажется слишком простым для определения? ;) Позвольте мне сказать немного технических терминов:

«Считается, что компьютерная программа учится на опыте E в отношении некоторого класса задач T и показателя эффективности P, если ее производительность при выполнении задач в T, измеряемый P, улучшается с опытом E.

- Том М. Митчелл »

Приведу небольшой пример. Считайте себя опытным продавцом дома. По своему опыту вы знаете по внешнему виду дома, сколько он будет стоить. Это потому, что, исходя из своего опыта, вы мысленно анализируете «особенности» дома, такие как площадь, количество этажей, легкий доступ к важнейшим коммуникациям и т. Д. Теперь вы собираюсь нанять свежего и молодого сотрудника, у которого нет опыта для проведения этих оценок. Он ведь не сможет этого сделать, не так ли? Итак, теперь вы думаете о том, чтобы составить программу, чтобы помочь этому молодому юноше оценить стоимость домов. Что вы делаете, так это берете все прошлые данные о ваших продажах с ценами и характеристиками каждого дома и вводите их в определенный алгоритм. Бинго! Это начинает давать вам ценность дома.

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

Шаги в машинном обучении

1. Постановка цели

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

2. Сбор данных

Для задач машинного обучения нам понадобится нечто особенное, называемое «Набор данных». Это набор старой и уже доступной информации (например, сведения о прошлых продажах в приведенном выше сценарии), которую мы можем использовать для ознакомления с машиной. Обычно в наборах данных у нас есть два основных компонента; «Функции» и «Ярлыки». Характеристики - это характеристики, которые должна учитывать модель, чтобы получить ожидаемый результат «Ярлыки». Таким образом, вы можете просто думать о функциях как о входных данных для модели. С другой стороны, «Ярлыки» говорят нам, каков ожидаемый прогноз от модели. Если метка, предсказанная моделью, совпадает с меткой в ​​наборе данных, предсказание верное. Например, в приведенном выше сценарии стоимость дома - это «Метка» в наборе данных.

3. Очистка данных

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

4. Выберите алгоритм.

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

  • Генеративные алгоритмы

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

Пример: нейронные сети.

  • Дискриминационные алгоритмы

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

Пример: машина опорных векторов (SVM)

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

5. Обучение - Оценка - Цикл настройки

После выбора алгоритма и его разработки вы получаете модель для вашего варианта использования. Наш следующий шаг - обучить его. Для этого мы используем наш очищенный набор данных. После обучения нам нужно оценить модель. Для этого также нам понадобится набор данных. Но если мы снова воспользуемся тем же набором данных, он даст оценку 99% точности из-за «Переполнения» (Переполнение подгонки происходит, когда модель запоминает точно такие же значения из до). Таким образом, лучшая практика в машинном обучении - разделить набор данных на 3 набора; Обучающий набор, оценочный набор, тестовый набор. Затем вы можете обучить модель с помощью обучающего набора и оценить ее с помощью оценочного набора. Затем вы можете вычислить «Потери» (простыми словами, отклонение прогнозируемых выходных данных от фактических). Если потери высоки, повторно настройте параметры модели (настройте ) и тренируйтесь снова. Продолжайте этот цикл до тех пор, пока показатель успешности модели не достигнет приемлемого уровня.

6. Тест

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

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

Типы машинного обучения

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

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

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

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

Алгоритмы, используемые в контролируемом обучении:

  • Линейная регрессия
  • Логистическая регрессия
  • Машина опорных векторов (SVM)
  • K-ближайший сосед (KNN)
  • Деревья решений
  • Наивный байесовский

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

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

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

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

  • Кластеризация
  • Обнаружение аномалий
  • Нейронные сети
  • Алгоритм максимизации ожиданий (EM)
  • Анализ основных компонентов (PCA)
  • Независимый анализ компонентов

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

Самый популярный и популярный тип машинного обучения в настоящее время. Он привлек огромное внимание, когда в мае 2017 года искусственный интеллект Googles DeepMind победил чемпиона мира по игре Go (знаменитая настольная игра) Ке Цзе. Это механизм, очень имитирующий поведение человека. Он выполняет определенные действия, за которые получает обратную связь, и с помощью этой обратной связи исправляет себя. Так что следующее действие, которое он выполняет, лучше предыдущего.

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

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

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