Автоматическое машинное обучение: когда data scientist’ы будут не нужны

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Уже третий год мы проводим форум по искусственному интеллекту RAIF (Russian Artificial Intelligence Forum), на котором спикеры из мира бизнеса и науки рассказывают о своей работе. Самыми интересными докладами мы решили поделиться. В этом посте Андрей Фильченков, руководитель лаборатории машинного обучения ИТМО, рассказывает всю правду об AutoML.
В рамках прошедшего в Сколково форума RAIF 2019, организованного «Инфосистемы Джет», я выступил с докладом, в котором рассказал об AutoML и перспективах его использования. Поскольку я ученый, мне не так уж часто приходится выступать на подобных мероприятиях: обычно я участвую в научных конференциях.

Одной из основных областей, которой мы занимаемся, является AutoML. Кроме того, я являюсь техническим директором двух небольших стартапов. Один из них – Statanly technologies – создает сервисы AutoML и занимается анализом данных. Фактически я являюсь тем человеком, который придумывает алгоритмы, внедряет их и пользуется ими. Наверное, я единственный человек, который может рассказать про AutoML со всех трех возможных позиций.

Что же такое AutoML?

В последний год это направление вызывает большой интерес, и сейчас по фокусу внимания его можно сравнить с популярным в свое время глубоким обучением. Появление автоматического машинного обучения на самом деле можно датировать 1976 годом. Существовало небольшое комьюнити по ML, и в 2017 году оно стало набирать популярность, уже через год выйдя за пределы собственно машинного обучения. Теперь о нем говорят в бизнесе, в промышленности и в разных других областях. Правда, в России, к сожалению, не все люди даже из сообщества ML представляют себе, что такое автоматическое машинное обучение. Почему же так получилось? 

Ответ прост – спрос на data scientist-ов растет значительно быстрее, чем они успевают выпускаться из ВУЗов и заканчивать курсы. При этом большую часть времени (до 80%) они тратят на то, чтобы выбрать модель, настроить ее и подождать, пока все обсчитается. Все потому, что не существует идеального алгоритма – к сожалению, любой из них обладает ограниченной областью применения, и специалистам по анализу данных приходится для каждой конкретной задачи подбирать тот алгоритм, который будет оптимален, а потом еще и настраивать его. Тут уже многое зависит от квалификации аналитика: чем больше он знает в предметной области и разбирается в алгоритмах, тем более оптимальное решение может подобрать за определенное время. Здесь-то и помогает AutoML. Собственно, AutoML позволяет автоматизировать и ускорить подбор решений и задач машинного обучения.

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

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

Второй сценарий – более сложный. Например, изображения, последовательности и те области, где сейчас глубокое обучение является стандартом – здесь задача становится чуть интереснее, поскольку можно придумывать новые архитектуры: их не так-то просто перебрать. Так, «Поиск нейронных архитектур», занимается тем, что подбирает оптимальную сеть и настраивает гипер-параметры, которые позволяют решать ту или иную задачу. При этом AutoML не учитывает семантику данных. Есть и методы, которые позволяют «вынимать» описания данных и использовать их для прогноза, но это лишь способствует повышению универсальной применимости AutoML. Совершенно неважно, откуда пришли данные: газовик ли вы, продавец мороженого или кто-то еще – методы универсальны. При этом AutoML позволяет с одной стороны строить наиболее эффективные решения, подбирая сложные и не самые очевидные даже для специалиста по анализу данных конструкции, с другой – быстрее искать и оптимизировать такие решения. И еще одна неочевидная вещь – AutoML дает возможность ускорить написание кода. Вот, например:

Справа код написан на Keras для распознавания MNIST, а слева код для Auto-Keras в библиотеке автоматизации, написанной под Keras. Разница видна, время на написании при этом сэкономлено.

Обилие существующих решений (2019 г.)

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

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

Светлые прогнозы

Само сообщество крайне высоко оценивает перспективы AutoML. Например, Джефф Дин (Jeff Dean) – ученый в области искусственного интеллекта и старший научный сотрудник Google – еще в марте 2018 года заявил, что существующую экспертизу в машинном обучении можно заменить, увеличив в сто раз вычислительные мощности (практически все, что делают data scientist-ы, можно будет автоматизировать). Чуть более сдержанный, но все еще пугающий прогноз от Gartner гласит, что к 2020 году 40% data scientist-ов можно будет заменить AutoML. 

Немножко дегтя

Так выглядит стандартная методология CRISP DM:

Это расширенный вариант, с мониторингом, но тем не менее. Сегодня решение задач по анализу данных не сводится только к построению моделей. У нас есть большое число задач, которые нужно решать, и нужно решать именно людьми.  На текущий момент в большинстве случаев AutoML стоит лишь на 2,5 столпах: выбор модели, ее настройка и иногда, когда получается, выбор синтез-признаков и просто данных. 

Вне возможностей AutoML

К сожалению, за бортом остается довольно большое число операций, которые AutoML не делает и в разумной перспективе делать не сможет. Естественно, это подразумевает преобразование задач из реального мира в мир анализа данных: «Как спроецировать вашу проблему, чтобы ее можно было решать средствами анализа данных?». Это всевозможные отслеживания модели, оценка качества, поиск разных неприятных моментов – все для того, чтобы решение не оказалось, например, слишком нетолерантным к кому-либо, ведь подобное уже бывало. Естественно, никакой AutoML не сможет поддерживать решения и общаться с заказчиками. Плюс об интерпретируемости на текущий момент времени речи не идет.

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

Чем мы занимаемся?

Вот как выглядит идеальная схема (такой, какой она видится мне):

Есть лаборатория машинного обучения, которая разрабатывает алгоритмы, плюс есть Statanly Technologies – продуктовая команда, которая на основе наших алгоритмов реализует сервисы по AutoML. Они работают на компании, у которых есть большой отдел Data Science. Эти же продукты используются командой аналитиков данных в самом Statanly Technologies и решают конкретно задачи компаний, которые пока свой отдел анализа данных не расширили или даже не создали. Выглядит модель здорово, но реальность, конечно, чуть прозаичнее.

Начинали мы в 2017 году примерно с того, что никакого анализа данных здесь не было: 

Мы хотели выпускать продукт, которым бы пользовались аналитики данных,  но в 2017 году, к сожалению, не смогли найти контакта с инвесторами – они не понимали, что такое AutoML, зачем он нужен и кто им будет пользоваться.  На текущий момент мы ничего не продаем, как компания, которая разрабатывает AutoML-решения, мы лишь облегчаем себе жизнь, как команда, которая занимается анализом данных:
Немного о том, как мы это делаем. Естественно, мы настраиваем гипер-параметры (никакого grid-search), но кроме их настройки мы практически всегда пытаемся построить какие-то базовые решения на основе AutoML, и иногда помогаем себе в шагах по предобработке данных. У меня есть несколько вдохновляющих и разнообразных примеров – фактически все, что мы с AutoML делали, от простого к сложному. 
Простой пример – это задача в «Газпромнефти»: есть скважина, нужно предсказать потенциальное время отказа. В нашем распоряжении классические табличные данные и признаки. В итоге мы построили прогнозную модель при помощи AutoML, при этом ни один аналитик не то, что не пострадал, но даже и не участвовал в процессе. Фактически это оказалось лучшим решением:

Вторая история: Sinara Technologies. Здесь задача была чуть сложнее, потому что фактически там было ровно две колонки: время/параметр + как он изменялся. Нужно было предсказать отказ двигателя. Здесь мы использовали AutoML, чтобы немножко помочь себе с обработкой данных – построили baseline, который потом сами же и превзошли:
  Третий пример: задача, которая к AutoML на первый взгляд не имеет отношения. Есть сайт телеканала ТВЦ – база статей, в которых нужно осуществлять поиск, причем поиск семантически богатый. Мы бы хотели находить не только точные выражения слов, но и подходящие по смыслу. Плюс большой перечень разных требований, которые тоже нужно учесть.  Как мы подошли к решению этого вопроса? 

Решили проиндексировать все документы на основе гибких кластеров похожих слов, потому что так индексация удобнее. Более того, в базе более 100 тысяч документов, и если этого не сделать, то поиск будет бесконечно долгим. Далее мы построили векторное представление (надеюсь, все про него слышали) и кластеризацию над векторными представлениями, чтобы позволить себе индексировать. 
Вторая проблема: как нам кластеризовать данные? Мы применили AutoML, чтобы выбрать меры оценки качества кластеризации, а также подобрать алгоритмы и гипер-параметры для кластеризации:

При этом чаще всего мы AutoML не применяем. Вот два очень показательных примера. Во втором нашем стартапе «Cпецвидеоаналитика» продукт – это система распознавания признаков автомобилей для обеспечения их централизованного доступа на закрытую территорию. Здесь основная проблема – в малом числе данных. В этом случае довольно сложно настраивать параметры моделей. А еще мы сильно ограничены, потому что часто AutoML применяют бездумно и пытаются настраивать модели на тех же данных, на которых тестируют. Так делать нельзя: по классике машинного обучения нужно выделять валидационное множество: чем больше поиск, тем больше машин должно быть. Так вот, когда у нас мало данных, мы больше переживаем, чтобы эти данные найти и разметить, чем по поводу того, чтобы строить более сложную модель.
Еще один пример – наша совместная разработка с Huawei. Мы делали для них проект по распознаванию текста на изображениях. Здесь вроде бы можно применять AutoML, поскольку в наличии аж три метрики, которые можно оптимизировать: качество распознавания, время распознавания и параметр модели (поскольку все это предполагалось к внедрению в мобильные устройства).  Но сейчас ни у кого нет достаточной экспертизы, чтобы оптимально реализовать все три аспекта.

В итоге не хватило вычислительных мощностей: мы были ограничены по времени и не располагали достаточным количеством серверов. Если бы мы запустили это у себя (а должны были в ВШИ), мы бы просто ничего не успели. Поскольку для обработки необходимо пять часов, здесь обошлось лишь нашими компетенциями.

Заключение

В целом, AutoML – это очень полезная вещь, но довольно узкая в применении. Естественно, он не сможет вам придумывать решения по ТЗ. На текущий момент AutoML полезен исключительно аналитикам данных. Может быть, когда-нибудь он их и заменит, но совершенно явно не в ближайшие пять лет.

Автор: Андрей Фильченков, руководитель лаборатории машинного обучения ИТМО


Источник: habr.com

Комментарии: