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

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

Введение в машинное обучение

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

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

Как оно работает? Давайте рассмотрим анализ бизнес-данных.

Машинное обучение — это тип ИИ, который позволяет предприятиям разбираться в огромных объемах данных и извлекать из них полезную информацию. Например, возьмем Twitter. По данным Internet Live Stats, пользователи Twitter отправляют около 500 миллионов твитов каждый день, что составляет примерно 200 миллиардов твитов в год. С таким количеством твитов невозможно человеческими силами проанализировать, категоризировать, отсортировать, изучить и предсказать что-либо.

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

Жизненный цикл ML:

  • Понимание. Почему вы обращаетесь к ML и что вы хотите сделать или узнать.
  • Сбор и очистка данных. У вас должен быть необходимый объем данных, и они должны быть в достаточной степени чистыми, чтобы предоставить вам необходимую аналитическую информацию.
  • Выбор компонентов. Заключается в отборе данных, которые будут использованы для построения модели машинного обучения. В зависимости от типа используемого алгоритма доступны разные методы, помогающие выбрать компоненты. Предположим, что вы собираетесь использовать алгоритм дерева решений. В этом случае аналитик данных или инструмент моделирования могут применить «оценку интересности», скажем, столбцы в базе данных, чтобы определить, следует ли использовать эти данные для построения вашей модели.
  • Выбор модели. Выбор файла (модели), который был обучен обрабатывать данные и искать в них определенные вещи. Модели дается алгоритм, с которым она будет работать. Тестовые данные объединят модель и алгоритм и сделают выводы.
  • Обучение и настройка. Выводы, сделанные для вас моделью, содержат ответы на ваши вопросы.
  • Оценка модели и алгоритма, чтобы определить, готова ли модель к использованию, или для достижения ваших целей вам нужно вернуться на пару шагов назад и уточнить модель, компоненты, алгоритм или данные.
  • Внедрение обученной модели в производство.
  • Изучение результатов данной модели в производстве.

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

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

Сферы применения машинного обучения

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

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

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

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

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

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

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

Интеллектуальный анализ данных

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

Возьмем, к примеру, компанию, выпускающую банковские карты. Если у вас есть банковская карта, вероятно, ваш банк когда-либо уведомлял вас о подозрительной активности на вашей карте. Как банк так быстро обнаруживает такую активность, почти мгновенно отправляя уведомление? Это непрерывный интеллектуальный анализ данных обеспечивает защиту от мошенничества. По состоянию на начало 2020 года только в США выпущено более 1,1 триллиона карт. Количество транзакций с этих карт предоставляет различные данные для интеллектуального анализа, поиска паттернов и обучения выявлению подозрительных транзакций в будущем.

Глубокое обучение

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

Нейронная сеть имеет от 3 до 5 слоев: входной слой, от одного до трех скрытых слоев и выходной слой. Скрытые слои друг за другом принимают решения, позволяющие приблизиться к выходному слою, т.е. сделать вывод. Какой цвет волос? Какой цвет глаз? Есть ли шрам? Когда количество слоев увеличивается до сотен, это называется глубоким обучением.

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

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

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

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

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

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

Машинное обучение с учителем

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

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

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

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

Методы машинного обучения

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

Регрессия

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

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

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

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

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

Google использует кластеризацию для обобщения, сжатия данных и сохранения конфиденциальности в таких продуктах, как видео YouTube, приложения для воспроизведения и музыкальные треки.

Обнаружение аномалий

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

Анализ рыночной корзины

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

Два профессора Массачусетского технологического института использовали этот подход, чтобы обнаружить «предвестников провала». Оказывается, некоторым клиентам нравятся товары, которые становятся непопулярными / оказываются провалом производителей. Если вы можете обнаружить таких клиентов, вы можете определить, продолжать ли продавать продукт и какой вид маркетинга применить для увеличения продаж от нужных клиентов.

Данные временных рядов

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

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

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

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

Рассмотрим несколько наиболее распространенных алгоритмов. Сегодня наиболее широко используются следующие 5 алгоритмов.

  • Алгоритмы линейной регрессии устанавливают взаимосвязь путем подбора для графика независимых и зависимых переменных и построения прямой линии для среднего значения или тренда. Словарь Merriam-Webster определяет регрессию как функцию, которая дает среднее значение случайной переменной при условии, что одна или несколько независимых переменных имеют заданные значения. Это определение также применимо к логистической регрессии.
Алгоритм машинного обучения
  • Логистическая регрессия также подставляет переменные на график, как и линейная регрессия, но график не является прямой линией. Логистическая регрессионная модель строится на использовании сигмоиды.
Логистическая регрессия
  • Дерево решений — очень часто используемый алгоритм в машинном обучении с учителем. Он используется для классификации данных по категориальным и непрерывным переменным.
Схема дерева решений
  • Метод опорных векторов рисует гиперплоскость на основе двух ближайших точек данных. Это разделяет данные за счет маргинализации классов. Метод классифицирует данные на основе N-мерного пространства. N представляет количество различных функций, которые у вас есть.
Схема гиперплоскости
  • Наивный байесовский алгоритм вычисляет вероятность определенного исхода. Он очень эффективен и превосходит более сложные модели классификации. Модель наивного байесовского классификатора понимает, что любая данная характеристика не связана с наличием других конкретных характеристик.
Наивный байесовский алгоритм

Модели машинного обучения

После объединения типа машинного обучения (с учителем, без учителя и т.д.), методов и алгоритмов результатом является обученный файл. Теперь этому файлу могут быть предоставлены новые данные, и он сможет определять паттерны и делать прогнозы или принимать решения для компании, менеджера или клиента.

Лучшие языки для машинного обучения

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

Вот топ-10 согласно опросу GitHub 2019 года.

  • Python
  • C++
  • JavaScript
  • Java
  • C#
  • Julia
  • Shell
  • R
  • TypeScript
  • Scala — язык, который используется для взаимодействия с большими данными


Машинное обучение на Python

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

Python — это интерпретируемый объектно-ориентированный язык с открытым исходным кодом, названный в честь комик-труппы Монти Пайтон. Поскольку язык интерпретируется, он преобразуется в байт-код перед выполнением на виртуальной машине Python.

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

  • Большой набор мощных пакетов, доступных для использования уже сейчас. Есть специальные пакеты для ML, такие как numpy, scipy и panda.
  • Легкое и быстрое создание прототипа.
  • Есть множество инструментов для совместной работы.
  • По мере того, как специалист по данным переходит от извлечения данных к моделированию и обновлению своего решения ML, Python может по-прежнему использоваться. Специалисту по данным не нужно менять язык во время прохождения жизненного цикла.

Ресурсы