Машинное обучение в повседневной жизни: типы ML и способы их применения

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

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

Машинное обучение vs традиционное программирование

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

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

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

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

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

Подход традиционного программирования

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

Как инженер создает решение с помощью традиционного программирования

Для предсказания курса валют алгоритм может использовать множество входных параметров:

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

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

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

Подход машинного обучения

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

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

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

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

Как дата-инженер разрабатывает решение при помощи машинного обучения

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

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

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

Традиционно машинное обучение разделяют на обучение с учителем (supervised), обучение без учителя (unsupervised) и обучение с подкреплением (reinforcement learning). Давайте посмотрим, как они работают и в каких случаях применяются.

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

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

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

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

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

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

Классификационные задачи в машинном обучении с учителем

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

Использование модели классификатора для определения объекта

Вот еще несколько примеров:

  • Какой цветок изображен на картинке?
  • Это положительный или отрицательный отзыв?
  • Есть ли на фото знаменитость?
  • Является ли данный email спамом или нет?

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

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

В этом эпизоде «Кремниевой долины» проблема показана как нельзя лучше.

Задачи регрессионного анализа в обучении с учителем

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

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

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

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

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

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

Машинное обучение без учителя

Машинное обучение без учителя пытается найти ответы в немаркированных данных (unlabeled data). Другими словами, мы предоставляем некоторые данные, но не задаем правильные ответы. Поэтому этот тип называется «без учителя» — алгоритм должен самостоятельно выяснить что-либо, без предварительного обучения.

Работа алгоритма обучения без учителя

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

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

  • ассоциативные;
  • кластеризация;
  • снижение размерности.

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

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

Принцип работы алгоритма:

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

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

Кластеризация

Алгоритмы кластеризации позволяют группировать данные в кластеры. Один из самых популярных алгоритмов в данной категории — это метод k-средних (K-Means). На схеме показано, каким образом он работает:

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

У кластеризации много областей применения:

  • группировка схожих статей в Google News;
  • сегментирование рынка для таргетирования различных групп покупателей;
  • объединение домов в районы;
  • анализ социальных графов для определения групп друзей (в соцсетях);
  • кластеризация фильмов по набору свойств.

Снижение размерности: PCA

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

С этой задачей справляется метод главных компонент (Principal Component Analysis, или PCA). Основная его идея такова:

В нашем примере PCA находит способ трансформировать двумерное представление данных в одномерное. Так, вместо двух входных параметров x и y, он создает новый параметр k, который и является проекцией из 2d в 1d.

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

На практике при тысячах входных параметров PCA может сократить их количество в 5-10 раз.

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

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

Популярность обучения с подкреплением стала расти после известного матча по игре го между системой искусственного интеллекта AlphaGo, разработанной британской компанией Google DeepMind, и азиатским чемпионом Ли Седолем. Система AlphaGo была создана с использованием алгоритмов RL. Даже первая версия искусственного интеллекта представляла серьезный вызов любому человеку. Следующая версия — AlphaZero — дошла до уровня сложности, недостижимого для людей. Отличительная черта AlphaZero в том, что она научилась играть сама с собой, а не использовать человеческие партии для обучения.

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

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

Заключение

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

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

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

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

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

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

Похожие статьи:
В результате утечки информации у американского оператора Verizon стали известны некоторые подробности о смартфоне Motorola DROID Turbo 2, анонс...
Привет! Я работаю в DataArt уже восемь лет. За это время прошел путь от Senior .NET-разработчика до главы одесского офиса компании. Мой...
В выпуске: SwiftUI, Combine, Catalyst, Sign in with Apple, темная тема. Что было WWDC 2019Если вы по какой-то причине пропустили WWDC, то стоит начать...
Компания Archos в преддверии выставки CES 2016, которая пройдет в Лас-Вегасе, представила новые серии смартфонов Power и Cobalt. Модели...
[Материал опубликован в рамках конкурса статей на DOU] В этой статье я рассмотрю выбор организации рабочего графика для...
Яндекс.Метрика