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

Что такое МЛ?

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

И всеобъемлющее определение

Говорят, что компьютерная программа учится на опыте E в отношении некоторой задачи T и некоторого показателя производительности P, если ее производительность на T, измеряемая P, улучшается с опытом E.
— Том Митчелл, 1997 г.

на время игнорируйте Deep Learning, это будет обсуждаться позже

Я дам подробное объяснение, чтобы его было легко понять.

Спам-фильтры электронной почты являются примером программы машинного обучения, где программа принимает или принимает решение помечать новые электронные письма как спам или ветчину. За кулисами фильтры обучаются на огромном количестве спама и нежелательных писем. Итак, примеры, которые можно дать машинным программам для обучения на них, называются обучающим экземпляром (или образцом). Вэтом сценарии задача T состоит в том, чтобы пометить спам или взломать поступающие электронные письма. Опыт или обучение E основаны на обучающих данных, а показатель эффективности P необходимо определить; как правильное предсказание программ, а именно точность программ. Такая задача называется задачей классификации.

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

Возможно, вам интересно, почему мы используем машинное обучение, а не традиционное программирование😁!

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

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

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

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

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

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

Независимо от того, обучаются ли они постепенно на лету (онлайн или пакетно)

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

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

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

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

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

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

  • K-ближайшие соседи
  • Линейная регрессия
  • Логистическая регрессия
  • Машины опорных векторов (SVM)
  • Дерево решений и случайные леса
  • Нейронные сети (Все нейронные сети не контролируются, например, автоэнкодер и т. д..)

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

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

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

Наиболее важные алгоритмы обучения без учителя.

  • К-означает
  • ДБСКАН
  • Иерархический кластерный анализ (HCA)
  • SVM одного класса
  • Изоляция Лес
  • Анализ главных компонентов (PCA)
  • Ядро PCA
  • Априори
  • Эклат

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

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

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

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

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

Примером обучения с подкреплением является программа DeepMind, AlphaGo и т. д.

4. Пакетное или онлайн-обучение

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

Пакетное или автономное обучение

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

Онлайн-обучение

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

Приложения машинного обучения

Некоторые приложения ML

  • Распознавание изображений
  • Прогнозирование спроса
  • Прогноз цен на акции
  • Аудион/Распознавание речи
  • Рекомендательные системы
  • Обнаружение аномалий
  • Сегментация клиентов
  • Прогноз трафика
  • Беспилотные автомобили
  • Виртуальный личный помощник
  • Медицинский диагноз
  • Автоматический языковой перевод

Классификация и регрессия

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

Регрессия — это задача, в которой система прогнозирует непрерывные значения, такие как 10,1, 10, 1,22 и т. д. value.
«Я реализую их оба»

Предпосылки для машинного обучения

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

  1. Математика определяет базовые понятия алгоритмов и решает, какой алгоритм является лучшим.
  2. Статистика для анализа данных.
  3. Линейная алгебра, чтобы понять теорию алгоритмов.
  4. Исчисление помогает оптимизировать алгоритмы.

Не волнуйся!! вам не нужно осваивать их, только их основы могут вам помочь.