Настоящая вещь о машинном обучении

Ладно, не все так красиво, у машинного обучения есть свои пределы. Тем не менее, мы не можем построить интеллектуальные машины, подобные Data из Star Trek или Hal 9000 из 2001 a Space Odyssey . Однако у нас есть множество примеров реальных приложений, в которых машинное обучение прекрасно работает. Ниже приведены некоторые из наиболее распространенных категорий практических приложений для машинного обучения:

Обработка изображений

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

  • Добавление тегов к изображениям, как в Facebook, когда алгоритм автоматически определяет, что на фотографии появляется ваше лицо или лица ваших друзей. Обычно алгоритм машинного обучения учится на фотографиях, которые вы помечаете вручную.
  • Оптическое распознавание символов (OCR), когда алгоритмы учатся преобразовывать рукопись или отсканированный текстовый документ в цифровую версию. Алгоритм должен научиться преобразовывать изображение написанного символа в соответствующую цифровую букву.
  • Беспилотные автомобили: часть механизмов, позволяющих машинам двигаться самостоятельно, использует обработку изображений. Алгоритм машинного обучения узнает, где край дороги, есть ли знак остановки или приближается машина, просматривая каждый кадр, сделанный видеокамерой.

Текстовый анализ

Анализ текста - это процессы, при которых мы извлекаем или классифицируем информацию из текста, например твиты, электронные письма, чаты, документы и т. Д. Вот некоторые популярные примеры:

  • Фильтрация спама, одно из самых известных и часто используемых приложений для классификации текста (присваивает тексту категорию). Спам-фильтры учатся классифицировать электронное письмо как спам или ветчину в зависимости от содержания и темы.
  • Анализ настроений - еще одно приложение классификации текста, в котором алгоритм должен научиться классифицировать мнение как положительное, нейтральное или отрицательное в зависимости от настроения, выраженного автором.
  • Извлечение информации из текста: научитесь извлекать определенную часть информации или данных, например, извлекая адреса, сущности, ключевые слова и т. д.

Сбор данных

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

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

Видеоигры и робототехника

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

Хорошо, я понял ценность машинного обучения, но как оно работает?

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

Из этой книги мне нравится следующее формальное определение машинного обучения:

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

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

Рассмотрим это еще на нескольких примерах:

  • Пример 1. Система, предоставляющая изображение, должна сообщать, появляется ли на нем лицо Барака Обамы (обобщение аналогично автоматической пометке Facebook).
  • Пример 2: система, дающая твит, сообщает, с положительным или отрицательным настроением он говорит.
  • Пример 3. Система, которая учитывает профиль какого-либо человека, присваивает оценку, отражающую вероятность того, что это лицо выплатит кредитную ссуду.

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

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

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

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

Каждый обучающий пример обычно представлен как фиксированный набор атрибутов или функций. Характеристики - это способ охарактеризовать каждый экземпляр. Например, в примере 1 изображение может характеризоваться уровнем серого каждого из его пикселей. В примере 2 твит может быть охарактеризован словами, которые появляются в твите. В примере 3 кредитная история может быть представлена ​​возрастом человека, заработной платой, профессией и т. Д.

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

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

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

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

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

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

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

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

Классификация

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

Регресс

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

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

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

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

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

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

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

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

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

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

удалился с monkeylearn.org