Недавно известный американский бизнесмен и инженер Винод Хосласказал, что до 80% работ в ИТ можно заменить автоматизацией. Стоит ли нам прислушаться к такому прогнозу и, если стоит, то почему?

Робот

Не так давно звезда первой величины в мире технологий искусственного интеллекта Эндрю Ын (Andrew Ng) — сообщил, что покидает Baidu, (известный как «китайский Google»),  где он занимался исследованиями. Ын известен и созданием группы Google Brain внутри гиганта, а также тем, что он запустил Сoursera - сервис массовых онлайн-курсов, где его собственный курс по машинному обучению оказался одним из наиболее популярных  за всю историю платформы.  В своём объявлении об уходе Ын сказал, что потенциал искусственного интеллекта невероятно огромный и не ограничивается технологическими компаниями. Как считает Ын, искусственный интеллект - это новое электричество, которое сможет изменить все отрасли и освободить человечество от повторяющейся ментальной деятельности, приведя классический пример с управлением автомобилем.
В последнее время все больше можно услышать разговоров про то, что роботы заменят представителей разных профессий.  На недавней встрече World Government Summit в Дубае Илон Маск предсказал, что в течение двадцати лет 15% сегодняшних сотрудников окажутся без работы. Среди них будут юристы, продавцы, работники колл-центров, водители и многие другие.  Очень редко в этом списке профессий, где человека заменят машины, можно встретить представителей ИТ-профессий. В нем никогда практически не упоминаются те, кто, собственно говоря, отвечает за данный процесс всеобщей автоматизации, —datascientist’ы, специалисты искусственному интеллекту и по машинному обучению,программисты. Они являются, скорее, элитой технологического мира. Но все же есть все основания полагать, что некоторых из перечисленных специалистов на самом деле «роботы» заменят одними из первых.  И вот почему.

График
Искусственный интеллект и в частности машинное обучение (по сути, способ решения задач, когда вместо написания программы для решения этой задачи программистом, специальная компьютерная программа, которую часто называют моделью, «выучивает» требуемое поведение на основе многих предъявляемых ей данных с образцами верных и неверных решений) переживают в последние годы очень сильный рост (если не сказать «хайп»). Многие компании у себя создают отделы с datascientist’ами и работают над внедрением в свой бизнес искусственного интеллекта.

Спрос на подобных специалистов очень высокий и плохо удовлетворённый. «За последний год,  топовые эксперты в сфере deeplearning (один из методов машинного обучения, глубокое обучение) обходились во столько же, сколько и наиболее высокооплачиваемые защитники NFL. «На талантливых специалистов расходы очень значимые», —в 2014 году сказал Питер Ли (PeterLee), глава MicrosoftResearch. И с тоговремени ситуация становится всё более острой. По оценке в 2015 году MIT Sloan Management Review, 40% компаний сталкиваются с проблемой нахождения и удержания талантов в области datascience. По подсчетам компании CrowdFlower,  83% опрошенных в 2016 году datascientist’ов полагают, что на настоящий момент существует нехватка таких специалистов. Эндрю Ын в недавней колонке о возможностях искусственного интеллекта назвал два ограниченных ресурса для развития таких технологий — таланты и данные. «Возникло так много возможностей, но есть очень мало людей, которые способны их использовать», — сказал Ын. В России существуют те же проблемы: компании сражаются  за специалистов, стараясь привлечь их разнообразными способами — завлекая при помощи красивых офисов или опционов, друг у друга переманивая, организуя конкурсы, хакатоны и разные тематические мероприятия. Возникает много учебных программ, всё больше молодых специалистов  переквалифицируются  и переходят в область технологий искусственного интеллекта, а организации отправляют на обучение своих сотрудников.

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

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

К примеру, существует совершенно типовая задача определения оттока клиентов, которая для различных бизнесов (или отдельных подразделений) принимает разные формы — выявить профиль клиента, который уйдёт и больше не будет пользоваться услугами компании; определить сотрудника, который в ближайшее время уволится из компании; определить ученика, который не дослушает до конца онлайн-курс и т.д. Цель: провести  «скоринг», отранжировав всех кандидатов по убыванию вероятности того или иного события, и потом принять «превентивные меры» — к примеру, предложить лучшие условия.Специалист для решения данной задачи занимается сбором данных по имеющимся студентам/клиентам/сотрудникам, анализирует их характеристики и параметры поведения (что покупали, как обращались в техподдержку и так далее). Потом эти данные преобразуются в вид, который пригоден для модели машинного обучения (к примеру, категориальные переменные типа уровня образования, пола, языка нужно закодировать в численной форме; в других переменных может быть нужно заполнить отсутствующие значения; ещё где-то на основе имеющихся данных можно посчитать какие-то другие возможно полезные для модели характеристики, предположим, объём сделок за квартал, и т.д.). Затем специалист выбирает модель из заранее известных классов (к примеру, логистическую регрессию, SVM, деревья решений и т.д.) и также для этой модели задаёт значения гиперпараметров. Проводит обучение модели (запускает специальный программный код для этого), оценивает качество модели на проверочных данных (которые во время обучения модель не видела) и определяет, получилась ли модель необходимого качества или процесс требуется повторить, поменяв параметры модели, добавив данных или выбрав другой класс моделей.

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

Средства для автоматизации очистки и конвертации данных развиваются уже не первый год, на рынке есть различные решения класса ETL (Extract-Transform-Load), которые умеют брать данные из одного источника, трансформировать их указанным образом, и загружать в другой источник. Этот процесс позволяет, например, собрать данные из нескольких различных баз данных воедино, а потом, в агрегированном виде,  дать специалисту по анализу данных. Фактически сегодня многие специалисты создают собственные процедуры для обработки данных под свои нужды. Это происходит чаще всего не потому что  эти процедуры  сложны, а потому что пока нет удобного средства для решения таких задач. Но это вопрос времени. Думаю, в скором времени появятся специализированные сервисы для  обработки данных —  эта область по-прежнему проблемная, а сами специалисты по анализу данных с радостью бы избавились от этой работы.

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

Принцип работы подобных решений таков: сервисы пробуют различные значения гиперпараметров модели и самостоятельно выясняют, какие варианты стоит попробовать в первую очередь, в каких диапазонах вероятнее всего найти наиболее подходящие значения, в каких диапазонах параметров можно ожидать ощутимого уменьшения неопределённости. Так, разработка FB Learner Flow  от Facebook автоматизирует проведение множества экспериментов, необходимых при создании моделей и при выборе лучших значений гиперпараметров. Она позволяет запускать параллельно обучение множества моделей с разными параметрами, хранить все результаты и удобно работать с ними.

Отдельное интересное направление исследований в области ИИ — это Learningto Learn, поиск способов  научить машины учиться самостоятельно. Уже есть примеры, когда компьютеры становятся в создании моделей даже лучше экспертов по машинному обучению. Например, в одной из свежих публикаций сотрудников GoogleBrain (одного из основных, наряду с Google Deep Mind, отделений гиганта, активно занимающихся искусственным интеллектом и в отличие от последнего, сконцентрированного на чуть более коротких горизонтах задач) компьютер с нуля придумал структуру нейросети для распознавания изображений, которая по точности сравнима с лучшими архитектурами, созданными человеком.Этот же алгоритм придумал свою реализацию рекуррентной нейросети для работы с текстом, которая по качеству превзошла другие лучшие на тот момент решения.
И это только начало.