...

среда, 12 апреля 2017 г.

«Да ты же просто робот, имитация. Разве может робот написать симфонию?» — интервью с Дмитрием Сошниковым из Microsoft

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

— Дмитрий, расскажите, пожалуйста, пару слов о себе и своей работе.

Дмитрий Сошников: Как евангелист Microsoft я занимаюсь популяризаций и внедрением самых современных технологий компании, сейчас это в первую очередь технологии, связанные с искусственным интеллектом. Это включает в себя выступления на конференциях, работу со студентами и преподавателями, стартапами, иногда участие в хакфестах и программирование прототипов систем совместно с разработчиками разных компаний. Также я занимаюсь популяризацией функционального программирования и языка F#, преподаю в МФТИ, НИУ ВШЭ и МАИ, разрабатываю онлайн-курсы для MVA и Coursera.

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

Нейросети — мода или инструмент?


— Что именно в последнее время подтолкнуло активное развитие технологии нейросетей?

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

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

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

— Тема искусственного интеллекта очень популярна сегодня. Насколько эта популярность заслужена? Технология действительно настолько впечатляет или же велик вклад моды? И не идет ли эта «мода» во вред развитию?

Дмитрий Сошников: В области ИИ действительно есть большие успехи, о которых много пишут, поэтому словосочетание «искусственный интеллект» на слуху. Благодаря этому появляются новые разработчики — кто-то идет и изучает новую для себя область, т.е. становится больше людей, которые в этой области разбираются. С другой стороны, люди внимательнее ищут те задачи, где можно применить технологии искусственного интеллекта. С такой точки зрения все это в принципе хорошо, ведь у нас появляется шанс автоматизировать какие-то области, которые раньше мы автоматизировать не могли.

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

— Свойственны ли участникам рынка завышенные ожидания? Есть ли предсказания, которые, на ваш взгляд, в ближайшее время точно не сбудутся?

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

— А что касается ожиданий в терминах финансовых вложений, а не воплощения сценариев научной фантастики?

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

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

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

— Есть ли факторы, которые, на ваш взгляд, тормозят развитие отрасли?

Дмитрий Сошников: Честно говоря, каких-то явных факторов я не вижу. Мне кажется, сейчас это самая быстроразивающаяся область.
Тем не менее, хочу отметить, что искусственный интеллект — это область, которая все-таки требует некоторой квалификации. Работать в этом направлении чуть сложнее, чем просто научиться программировать. Человек, окончив школу и не получая высшего образования, наверное, может начать успешно работать на поприще стандартной разработки. С искусственным интеллектом планка входа выше, хотя она постепенно снижается, в том числе, стараниями участников этой отрасли. В частности, одна из вещей, над которыми работает Microsoft, — это так называемая демократизация искусственного интеллекта. Под этим понимается превращение технологии в доступную для как можно более широкого слоя потребителей.

На практике не только Microsoft, но и многие другие компании работают в этом направлении, предоставляя, например, инструментарий для решения интеллектуальных, когнитивных задач в виде готовых сервисов. Например, сервисы определения пола, возраста и настроения человека по фотографии, их можно просто вызвать и получить результат. Это же касается машинного перевода и т.д. В рамках доклада на DotNext 2017 мы будем об этом говорить: как можно, вообще не разбираясь, как именно это устроено, просто пользоваться результатами.

А .NET может?


— Давайте поговорим о месте платформы .NET в сегменте искусственного интеллекта. Насколько она вообще подходит для решения подобных задач? Есть ли особенности, которые помогают или, наоборот, мешают работе с нейронными сетями?

Дмитрий Сошников: Методы ИИ могут быть реализованы на любых технологиях. Тем не менее, вокруг однотипных задач существуют некие сложившиеся экосистемы. Например, среди специалистов по обработке данных очень популярны языки Python и R и сопутствующие им библиотеки. Т.е. здесь уже очень много наработок сообщества. С точки зрения этих наработок, конечно, .NET немного отстает, равно как и другие подобные платформы. Тем не менее, на .NET уже есть определенный набор инструментов, о которых я как раз буду рассказывать в рамках своего доклада.

Вообще платформы сейчас в некотором смысле интегрируются, в том числе, между собой. Тот же самый язык R очень хорошо интегрируется с F#, который является «родным» для платформы .NET. Соответственно, если нам нужно использовать какие-то инструменты машинного обучения, мы можем воспользоваться такой цепочкой, задействуя возможности и библиотеки языка R. Это будет достаточно прозрачно и легко происходить.

В целом, если говорить именно о нейронных сетях, у Microsoft есть инструмент Cognitive Toolkit, который позволяет обучать нейронные сети. И поскольку он изначально создавался в экосистеме Microsoft, он очень хорошо работает с .NET.

— Этот инструмент чем-то выделяется на фоне аналогов от других производителей?

Дмитрий Сошников: По сути Cognitive Toolkit — это Microsoft-овский аналог фреймворков TensorFlow, Caffe и т.д.

Все они в принципе очень похожи идеологически. Но Microsoft Cognitive Toolkit первым начал поддерживать очень распределенную среду обучения, когда можно обучать нейронную сеть не только на каком-то одном графическом процессоре, а на нескольких графических процессорах или даже на нескольких графических станциях. Т.е. можно сделать ферму обучения нейросетей.

Насколько я знаю, Cognitive Toolkit обыгрывает другие фреймворки по скорости обучения. Плюс его очень удобно использовать. Большинство фреймворков так или иначе связаны с языком Python, а Cognitive Toolkit изначально шел немного по другому пути. В нем изначально можно было описать архитектуру нейросети на специальном языке, а после этого обучить ее, не строя никаких моделей в Python. Это было немного проще. Сейчас Cognitive Toolkit поддерживает оба варианта, т.е. является достаточно гибким.

— Наверное, есть моменты, в которых Cognitive Toolkit проигрывает аналогам?

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

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

Мы совместно с МФТИ планируем выпустить онлайн-курс, посвященный как раз задачам, связанным с использованием искусственного интеллекта на практике. И какая-то доля информации по Cognitive Toolkit туда тоже войдет.

Ближайшее будущее


— Можно ли сейчас предсказать, в каком направлении идет развитие сегмента искусственного интеллекта?

Дмитрий Сошников: Наверное, окончательно строить прогнозы еще рано, поскольку в 2011-2012 годах началось исключительно бурное развитие технологий. С тех пор совершенствуются методы распознавания, улучшаются архитектуры нейронных сетей, т.е. растет точность решения задач.

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

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

Как я говорил ранее, с точки зрения разработчика заметна тенденция демократизации искусственного интеллекта и, в том числе, инструментария. Помимо упомянутого мной Microsoft Cognitive Toolkit, есть интересный инструмент Azure Machine Learning, позволяющий без глубокого понимания реализации всех алгоритмов машинного обучения применять их к реальным данным и смотреть, удается ли выделить какие-то закономерности и использовать их дальше в своих продуктах. Этот инструмент тоже развивается достаточно интенсивно — туда вставляются новые методы и алгоритмы.

В целом технологии становятся все более доступными. Сложные вещи упрощаются, чтобы их можно было использовать в как можно более широком наборе проектов.
Еще один момент, о котором хотелось бы упомянуть, — это пока еще первые эксперименты облачного использования более эффективных аппаратных решений, реализующих алгоритмы искусственного интеллекта. Об этом на Dotnext мы говорить не будем, но тема подробно обсуждалась на конференции Microsoft Ignite. В облаке Microsoft планирует предлагать не только классические вычислительные ресурсы, но и программируемые логические интегральные схемы: ПЛИС или FPGА. Если упростить, — это микросхемы, которые можно прошить на выполнение определенных логических операций, и которые будут выполнять эти операции очень быстро. Имея такую схему мы можем вычислять нейронную сеть намного быстрее. В ходе экспериментов процессор «прошили» на перевод с языка на язык, в результате роман «Война и мир» переводится с языка на язык за 2 секунды. Если взять все множество таких процессоров, которые есть у Microsoft в облаке, то Википедию можно перевести с одного языка на другой за время, пока человек моргает глазом.


Больше практической информации о применении нейросетей и технологий искусственного интеллекта в рамках реальных проектов (в том числе, на .NET) Дмитрий даст в своем докладе на DotNext 2017 ("Доступный искусственный интеллект на платформе .NET: от чат-ботов и когнитивных сервисов до глубоких нейросетей").

Комментарии (0)

    Let's block ads! (Why?)

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

    Отправить комментарий