Разработка решений на базе машинного обучения

Современные методы машинного обучения (machine learning - ML) создают новые возможности для автоматизации бизнеса, позволяют решать задачи, которые раньше могли быть выполнены только человеком. Само название «машинное обучение» возникло из-за того, что, прежде чем искусственный интеллект сможет выполнять задачи, ему нужно на большом количестве примеров входных данных показать правильные ответы и поправить неверные решения. Это очень похоже на обучение человека иностранному языку: учитель произносит новые слова, ученик повторяет за учителем, а тот говорит, что нужно поправить в произношении. Шаг за шагом, ученик узнает новые слова и вскоре уже без учителя может их правильно применять. Разработка решений на машинного обучения – это практически бесконечное поле возможностей, мы обязательно еще не раз вернемся к примерам его практического использования в других статьях, но в начале несколько слов о типах задач, решаемых с помощью ML.

Задачи, которые решает машинное обучение

Классификация данных
Посмотрите внимательно на свой бизнес: если вы видите, что кто-то из ваших сотрудников занят ручной сортировкой документов или изделий, это прекрасная возможность для ML-автоматизации. Современный уровень алгоритмов позволяет выполнить задачи классификации быстрее и надежнее, чем это делает человек. К примеру, программы распознавания лиц могут узнать одного человека из миллиона за доли секунды.
Кластеризация данных
Кластеризация – это распределение всего объема данных по схожим группам. При обработке изображений кластеризация позволяет выделить контуры или объекты сложной формы и текстуры, а поисковые системы на основе алгоритмов кластеризации формируют наиболее релевантные выдачи информации.
Выявление аномалий
Задача поиска редких аномальных событий схожа с задачей кластеризации, но ее задача выделить среди множества однотипных событий случаи, которые не попадают ни в один из кластеров. Алгоритмы выявления аномалий полезны в задачах компьютерной безопасности, заранее предупреждая о возможных атаках на информационную систему.
Снижение размерности
Методы понижения размерности также связаны с методами кластеризации, они нашли свое применения в кодировании информации. Алгоритмы снижения размерности позволяют оставить в потоке данных только информационно значимые признаки, значительно сокращая объем для передачи или ресурсы для обработки. В 2018 году ученые применили ML для кодирования видео, сократив размер записей на 20%.
Предсказание событий (регрессия)
Прогноз погоды, валютных ставок или биржевых курсов уже много лет готовится с помощью методов машинного обучения. Математические модели все более усложняются. Об экономическом эффекте косвенно можно судить по тому, что в рейтинге суперкомпьютеров России два вычислительных кластера из 1-й десятки принадлежат банкам: Кристафари Сбербанка на 1-м месте, а Тинькоф-банк на 9-м.

Машинное обучение: разработка на заказ

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

1
Описание требуемого конечного результата
2
Сбор данных
3
Разметка всех данных – указание правильного результата для входных данных
4
Разделение базы на обучающую и тестовую
5
Обучение моделей
6
Тестирование моделей
7
Оптимизация моделей по производительности

Поскольку длительность и сложность разработки систем машинного обучения, в зависимости от требований, могут отличаться на несколько порядков, первым шагом мы всегда фиксируем тот желаемый результат, который заказчик хочет получить. Начинается это с формулировок обычным человеческим языком, к примеру, «нужно отличить все зрелые помидоры в теплице по изображению веб-камеры», а дальше мы стараемся формализовать требования: «при освещенности от 0 до 1000 люкс требуется с достоверностью 99% фиксировать все полностью видимые сферические объекты размером от 10 до 100 мм в диаметре, в которых площадь зеленых участков менее 5% от общей видимой площади». Такое формальное описание позволяет совершенно по-другому взглянуть на исходную задачу, и вместо бесконечно сложной и неточной работы по распознаванию помидоров с веб-камеры под потолком теплицы можно прийти к более продуктивным технологическим решением в виде робота сборщика с камерами 3D-зрения.
Закончив с формулировкой задачи и грубо определившись со способом решения (а также убедившись, что задача решаема в рамках разумных сроков и бюджетов), мы приступаем к следующему шагу: сбору данных. В примере про распознавание зрелых томатов, это будут фотографии помидоров разной степени зрелости, сделанные с разных ракурсов и в разных условиях освещенности. Таких фотографий может потребоваться от нескольких сотен до нескольких десятков тысяч, в зависимости от деталей задачи.
Далее, наступает самый ответственный этап – разметка данных. Специалисты заказчика или наши сотрудники, обучившиеся методологии у клиента, глядя на фотографии овощей, отмечают зрелые и незрелые помидоры. От точности их работы на этом шаге зависит насколько часто будет ошибаться автоматический алгоритм.
Размеченные данные делятся на несколько групп: обучающая группа передается инженерам машинного обучения, а тестовые данные остаются у клиента. Это страхует заказчика от самой распространенной ошибки машинного обучения – так называемого переобучения: искусственный интеллект может научиться с высочайшей точностью решать задачу на обучающем множестве, но на незнакомых данных оказаться абсолютно беспомощным.
Сам процесс обучения – это предмет многостраничных научных статей и целого направления в науке, поэтому, опустив подробности, стоит лишь отметить, что ML-инженеры подбирают методы обучения от простого к сложному, контролируя качество моделей с помощью нескольких выбранных метрик. Чтобы максимально сократить затраты на ML-разработку, мы всегда сначала ищем ранее созданные ML-решения, которые можно адаптировать без полного цикла обучения.
Как уже говорилось выше, обученные модели обязательно тестируются на данных, которые не участвовали в процессе обучения. Этот этап может выполняться в автоматическом режиме, практически ежедневно показывая заказчику прогресс в разработке.
Поскольку методы машинного обучения очень требовательны к аппаратным ресурсам, на финальном этапе часто требуется оптимизация готового решения по потреблению памяти или процессора. Иногда достаточно пожертвовать долями процента точности алгоритмов, чтобы ускорить ML-решение в десятки раз.
Если, читая эту статью, у вас возникла идея по автоматизации своего бизнеса, позвоните или напишите нам, и мы с удовольствием поделимся своим опытом применения машинного обучения, предложим наиболее простой и эффективный способ решения вашей задачи.