Введение
Машинное обучение (Machine Learning или ML) — своего рода наука о том, как научить компьютер (в общем понимании) самостоятельному принятию решений без опоры на человека. Алгоритмы ИИ внедряются повсеместно, и на переднем плане в этом вопросе стоит IT-индустрия. Именно поэтому в статье мы сделаем акцент на ней.
Сегодня обученные ИИ-модели без участия человека решают, кому выдать кредит и какую персонализированную рекламу показывать пользователям в интернете. С течением времени их роль в жизни людей будет только увеличиваться. О том, что представляет из себя машинное обучение, какие методы обучения ИИ применяются в наши дни, и для чего это в принципе нужно – в нашем материале.
Сегодня тематика ИИ неразрывно связана с ускорителями Nvidia Tesla. Сервера на базе этих GPU обеспечивают постоянный рост рынка AI.
Что такое машинное обучение
Машинное обучение (англ. Machine Learning, ML) — это сфера искусственного интеллекта, в рамках которой вычислительные машины приобретают навык распознавать и интерпретировать информацию, полученную на входе, а также принимать решения или заниматься прогнозированием исходов, опираясь на полученные из среды данные, причем без прямого вмешательства человека.
Процедура создания и использования ИИ в рамках разных сценариев сводится к трем основополагающим операциям:
- Обучение. Аккумулирование данных и создание правил, позволяющих трансформировать их в ценную информацию. Правила называются алгоритмами и предоставляют устройствам пошаговые руководства по решению задач.
- Построение рассуждений. Искусственный интеллект самостоятельно концентрируется на выборе верного алгоритма, стремясь достигнуть поставленной человеком цели.
- Самокоррекция. ИИ выполняет постоянную и тонкую настройку правил, обеспечивая максимальную точность результатов.
Главная идея данной области ИИ – позволить компьютеру (машине) самостоятельно улучшать свои действия без явного кодирования всех шагов, как это происходит в случае с классической разработкой алгоритмов.
Схематичное изображение составляющих машинного обучения
Типы машинного обучения ML
Для обучения модели используются данные, загружаемые в инфраструктуру в «чистом» виде, после чего преобразовываются в решение. Сперва данные собираются, затем исследуются и структурируются, после чего следует предварительный анализ. Только после этого в формате программного кода данные отправляются в модель.
Есть 5 способов преобразования данных, которые подбираются исходя из того, с какими входными параметрами предстоит работать и на какой результат нужно выйти:
- с учителем;
- без учителя;
- с частичным участием учителя;
- с подкреплением;
- глубинное обучение.
Сами модели тоже бывают разными. Они имеют три группы, в отличии от своего назначения. Регрессионные предсказывают числовые характеристики объектов, классификационные — их категории, а смешанные — и то, и другое.
Эксперты выбирают типы моделей по показаниям. С привязкой к конкретному спектру задач. Подобная гибкость и сделала ML одной из самых перспективных областей знаний, ведь применять алгоритмы можно буквально повсеместно. Далее мы рассмотрим каждый из пяти способов построения моделей машинного обучения.
Обучение с учителем (supervised learning)
Данный метод оперирует исключительно размеченными данными. Специалист, который занимается обучением модели, указывает алгоритму на заведомо корректные ответы. Впоследствии «компьютер» стремится искать решения, соответствующие заранее заданным параметрам.
Пример: представим, что нам нужна программа, готовая извлекать данные со сканов и изображений. ML-инженер загружает входную и выходную информацию. Картинки с рукописными буквами и сами буквы соответственно.
ИИ-модель тренируется находить закономерности между рукописными и цифровыми символами. Спустя условно 10 000 попыток она умеет их отличать друг от друга.
В числе основных характеристик обучения ML-моделей с учителем:
- входные данные — параметры, содержащие истинные признаки различных объектов;
- выходные данные — перечень меток, соответствующих внедренным ранее размеченным параметрам;
- выявление закономерностей и получение предсказательной способности для новых входных данных.
У такого подхода есть целая серия минусов. Во-первых, ML-инженеру нужны большие объемы размеченных параметров. За их сбор и систематизацию отвечает дата-сайентист. Во-вторых, методика может работать далеко не со всеми типами данных. Для более сложных или заведомо неопределенных она не применяется.
Обучение без учителя (unsupervised learning)
Данный подход предлагает выявлять закономерности на базе неразмеченных данных. Представим, что перед компьютером поставили цель, связанную с разбором структуры рукописных букв. У него нет подсказок — ни о категориях, ни о метках в виде алфавитных символов.
Тогда модель начнет использовать заложенные в нее алгоритмы, например, самостоятельно анализируя несколько изображений и выстраивая между ними взаимосвязи. Будет сравнивать их между собой, выискивая те самые закономерности, которые заложены в алгоритм.
Основными характеристиками обучения ML-моделей без учителя становятся:
- входные данные — неразмеченные параметры, включающие в себя только признаки искомых объектов, без меток или выходных значений;
- выявление закономерностей — путем поэтапного сравнения неразмеченных параметров друг с другом, на протяжении тысяч итераций;
- применение результатов — сегментация данных, выявление аномалий или, скажем, обнаружение кластеров информации с аналогичной структурой.
У этой методики тоже есть свои недостатки. Например, в инфраструктуру нейронной сети может закрасться ошибка. Компьютер будет выделять блоки или объединять объекты неправильно, сам того не подозревая. В итоге на выходе будут некорректные результаты, что неприемлемо.
Кроме того, при обучении без учителя ML-инженерам и дата-сайентистам нужны большие объемы данных и приличные сроки. Алгоритмы, не привязанные к меткам, приходят к корректным выводам спустя тысячи и тысячи итераций. Ускорить процесс позволяют большие вычислительные мощности.
Обучение с частичным участием учителя (semi-supervised learning)
Такой подход к обучению объединяет особенности двух предыдущих методов. Она предлагает задействовать неразмеченные потоки информации для искусственного повышения точности модели. К одной части ситуаций (задач) человек выдает решения, а к другой — нет.
Смысл semi-supervised learning заключается в следующем:
- У специалиста есть немного размеченных данных и много — неразмеченных в принципе.
- Эксперт обучает модель сначала на небольшой выбор, применяя только размеченные данные.
- Затем использует эти, уже обученные алгоритмы, для предсказания классов или значений неразмеченных данных.
- Потом снова обучает модель с учителем, а на финише еще раз заставляет компьютер предсказать неразмеченные данные.
Таких итераций может быть много. Они требуют времени и больших вычислительных мощностей, но в меньшем порядке, чем у обучения с учителем и без него. Идеальная структура выходных данных существует только в теоретических выкладках. На практике же точность нужно повышать искусственным образом.
Получается, что для применения метода semi-supervised learning специалисту необходимы две выборки. Малая — с частично размеченными данными и большая — с неразмеченными в принципе. Важно, чтобы обе содержали информацию об одних и тех же классах, иначе смысла от прохождения итераций не будет.
Эксперт дает подсказки компьютеру лишь на старте, чтобы модель заранее настраивалась на более точные предсказания. Подобный подход применяется для работы с данными, идентичными по форме, но разными по содержанию. Скажем, если нужно натренировать модель, которая будет распознавать картинки или аудиозаписи.
Обучение с подкреплением (reinforcement learning)
Методика, позволяющая научить компьютер справляться с так называемыми марковскими процессами принятия решений (markov decision process). Вместо того чтобы спрашивать у модели о классах или значениях, эксперты интересуются паттернами действий для достижения определенных наилучших результатов.
Обучение выполняется по следующему алгоритму:
- Инициализация. Обучаемая модель (в данном случае агент) начинает без знания о среде и политике. Она может случайным образом или с помощью предустановленных стратегий исследовать среду (физический или виртуальный контекст, в котором проходит обучение).
- Выбор действия. Агент наблюдает текущее состояние среды и выбирает действие на основе ряда заранее заданных правил.
- Выполнение действия. Агент выполняет выбранное действие, что изменяет состояние среды.
- Получение награды. Среда возвращает агенту награду (или штраф в случае неблагоприятного результата) за выполненное действие.
- Обновление политики. Агент использует полученную награду и новое состояние, чтобы обновить свой свод правил, улучшая тем самым свои будущие решения.
Эта методика позволяет создавать нейронные сети, работающие по принципам, схожим с паттернами функционирования человеческого мозга. Благодаря подобной особенности, соответствующие модели популярны в целой серии областей, включая IT.
Глубинное обучение (deep learning)
Глубинное обучение — самая сложная и максимально продвинутая область ML. Предлагает тренировать модели с помощью многослойных нейронных сетей, сформированных на базе огромных объемов данных. Искусственный интеллект самостоятельно находит алгоритмы для решения поставленных перед ним задач, учится на собственных ошибках и начинает выдавать более точные результаты.
Многослойная нейронная сеть — это сложная система, включающая в себя несколько структур с общей задачей и огромным потенциалом:
- Входной слой — получает первичный набор данных. Если мы говорим, скажем, о прогнозировании цен на гостиничные номера, это будет связка из названия отеля, категории проживания и даты заезда гостя.
- Скрытые слои — выполняют математические вычисления на основе первичного набора данных. Их несколько неспроста, а из-за необходимости нахождения больших взаимосвязей. В том же самом примере с гостиничными номерами, дата заезда обладает большим «весом», поскольку отели меняют цены в согласии с сезонным спросом.
- Выходной слой — выводит конечные итоги вычислений. В нашем случае — прогнозы по ценам на отельные номера, с учетом конкретных дат и категорий проживания (сьюты, апартаменты, люкс и так далее).
Глубинное обучение называется глубинным, потому что в составе модели — несколько скрытых слоев. Нейросети используют множество структур, добиваясь невероятной точности предсказаний. Кроме того, они самостоятельно подбирают количество слоев под задачу. Чем дальше информация продвигается по условной воронке нейросети, тем более абстрактные подробности выявляют алгоритмы.
Где применяется и для чего используется ML
Машинное обучение широко применяется в производстве, финансах, медицине, розничной торговле, в развлекательной и иных сферах. Пожалуй, наиболее активно применяется в IT-индустрии.
Ниже рассмотрим несколько конкретных примеров использования ML в сфере информационных технологий.
Антиспам-фильтры в почтовых сервисах
Почтовые сервисы, например Gmail или Яндекс.Почта, используют ML для фильтрации спам-сообщений. Алгоритмы анализируют содержание писем, выявляют подозрительные паттерны и классифицируют письма как спам или относят их к другим тематическим категориям.
Работа сервиса Gmail на предмет фильтрации спама
Системы обнаружения и предотвращения вторжений (IDS/IPS)
Обученные ИИ-модели оперативно выявляют случаи подозрительной активности в сетях, связанной с вероятностью кибератаки. Для обучения используются большие объемы предварительно подготовленных сетевых данных, понимание которых помогает искусственному интеллекту распознавать подозрительные паттерны и предупреждать об угрозах.
Оптимизация маршрутизации трафика в сетях
В сетевых технологиях модели, обученные с помощью ML, применяются с целью оптимизации маршрутизации трафика. Алгоритмы анализируют текущую загрузку сети и предсказывают оптимальные пути для передачи данных, чтобы минимизировать задержки и повысить скорость.
Рекомендательные системы
Сервисы по типу Netflix, Amazon и YouTube используют ИИ-модели, обученные на поведенческих данных многомиллионной аудитории с целью подбора индивидуальных рекомендаций. Обученные модели исследуют предпочтения пользователей и историю их взаимодействий с сервисом, и на основе этого предлагают релевантный контент либо товары.
Системы автоматического тестирования ПО
Обученные алгоритмы могут формировать тест-кейсы, предсказывать вероятность обнаружения ошибок и анализировать результаты тестов для улучшения качества разрабатываемого ПО.
Управление ресурсами в облачных сервисах
Облачные платформы, такие как AWS и Microsoft Azure, используют машинное обучение для оптимизации распределения вычислительных ресурсов. Алгоритмы анализируют нагрузку на серверы, предсказывают будущие требования и динамически распределяют ресурсы для обеспечения бесперебойной работы сервисов.
Системы безопасности финансовых сервисов
Платежные системы и банки обучают собственные нейросетевые модели с целью оперативного выявления потенциально мошеннических транзакций. Обученная таким образом машина в реальном времени анализирует данные транзакций, выявляет аномальные паттерны и блокирует подозрительные операции.
Чат-боты и онлайн-помощники
Обученные боты способны понимать и обрабатывать естественный язык, отвечать на вопросы пользователей и выполнять простые задачи, такие как бронирование билетов или помощь в навигации по сайту, тем самым снимая нагрузку с персонала компании.
Разработка игр и обучение игрового ИИ
В индустрии видеоигр машинное обучение используется для создания более умных и адаптивных игровых персонажей. Алгоритмы помогают NPC (non-player characters) обучаться на действиях игрока и подстраивать свое поведение для создания более интересного игрового процесса с вариативным сюжетом.
Распознавание голосовых команд
Виртуальные помощники, например Google Assistant, Siri, Алиса и Alexa, опираются на машинное обучение для распознавания голосовых команд и преобразования человеческой речи в текст. Алгоритмы распознают звуковые сигналы и интерпретируют их для выполнения запросов пользователя.
Конечно, это далеко не все примеры использования машинного обучения в IT-индустрии, а ведь таких сфер, в которых сегодня возможно применение ML, десятки.
Алгоритмы ML
Алгоритм — это базовое математическое понятие, которое сегодня перешло в мир современного программирования. Фактически, оно определяет совокупность последовательных шагов — схему действий, приводящих к желаемому результату.
В ML алгоритмов много, и каждый из них активно используется в разных областях производства, медицины, финансов или, например, классической розничной торговли. Самыми востребованными считаются:
- Линейная регрессия. Изначально применялась в статистических исследованиях для выявления взаимосвязи между разными переменными. Затем перекочевала в сферу ML и стала базовым инструментом прогнозирования.
- Логистическая регрессия. Позволяет получать дискретные значения 0 и 1 — они соответствуют ответам «нет» или «да».
- Метод k-ближайших соседей. Используется для классификации разнообразных объектов на основе их сходств.
- Метод опорных векторов. Эксплуатируется в областях, связанных с аналитикой данных.
- Деревья решений. Инструмент выявления причинно-следственных связей. Так как одна причина может иметь сразу несколько следствий, система напоминает дерево с ветвями.
Алгоритмов намного больше — в списке лишь базовые, и все они связаны с финансами. Почему? Потому что на примере экономики проще всего разобрать прикладную ценность ML.
Изображение линейной регрессии — одного из алгоритмов машинного обучения
Плюсы и минусы ML
Может показаться, что ML — это универсальная технология без минусов и проблем. На практике дела обстоят по-другому. В числе недостатков машинного обучения:
- Высокая стоимость внедрения. Для интеграции систем машинного обучения нужно потратиться как на специализированное оборудование, так и на рекрутинг квалифицированных ML-инженеров и дата-сайентистов.
- Необходимость в огромных объемах данных. Многие организации сегодня переходят на работу с BI-системами для аккумулирования информации, но ее потоков часто оказывается недостаточно.
- Предвзятость данных и алгоритмов. Важно, чтобы используемая для настройки нейросетей информация была репрезентативной и точной. В противном случае о корректных предсказаниях можно забыть.
- Отсутствие прозрачности при принятии решений. Тема искусственного интеллекта на слуху, но разбирается в ней ограниченное количество людей. Поэтому использовать прогнозы, предоставленные ИИ, решаются не все.
- Глобальные опасности. То, о чем говорил Илон Маск — нейронные сети могут лишить огромное количество сотрудников работы или допустить серию критических ошибок (например, в области автопилотирования или медицины).
Впрочем, преимуществ у ML намного больше. Искусственный интеллект повышает эффективность автоматизации в любых сферах. Он улучшает человеческие возможности при принятии важных решений. Алгоритмы способны обрабатывать большие объемы данных, причем намного быстрее и точнее по сравнению с людьми.