Интервью с Андреем Макаренко, старшим научным сотрудником лаборатории 38

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

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

– Расскажите подробнее о машинном обучении.

В общем-то, машинное обучение (Machine Learning) является поддисциплиной математической статистики. Эту подобласть принято разделять на два больших направления. Первое – это дедуктивное обучение, перенос знаний экспертов в формальные базы знаний. Второе направление – индуктивное обучение, или же обучение по прецедентам, занимается выявлением скрытых закономерностей в наборах эмпирических данных. Причем первое направление обычно относят к направлению экспертных систем, а под собственно машинным обучением подразумевают, как правило, второе направление. Но оба класса входят в набор методов искусственного интеллекта. В настоящий момент машинное обучение, именно в смысле обучения машин по прецедентам, характеризуется устоявшимся набором методов и своей ключевой терминологией. Помимо математической статистики оно включает в себя теорию вероятностей, численные методы оптимизации, дискретный анализ и логику, дифференциальную геометрию и топологию, теорию графов. Т. е., на профессиональном уровне машинное обучение представляет собой синтетическую область и имеет достаточно крутую кривую освоения. Хотя развитие современных компьютерных средств и снижает порог первоначального вхождения, но, тем не менее, существенное продвижение вперед требует хорошего владения теоретической базой.

– Но как проще понять, что такое машинное обучение для людей, не владеющих специальными знаниями?

Ну, снаружи все просто. Представьте, что мы имеем большой (или небольшой, тут как повезет с задачей) объем исходных данных. Этот набор данных загружается – в зависимости от сложности задачи – в ноутбук, сервер, или суперкомпьютер, машина обучается, и на выходе мы имеем модель. Возможности модели зависят от поставленной задачи.

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

Это могут быть задачи предсказания. Например, прогнозы на финансовых рынках, прогнозы погоды и т.п. Кстати, да – прогнозы погоды сейчас тоже пытаются строить методами машинного обучения. Для многих это выглядит просто повальной модой на Machine Learning, ибо по классике прогнозы погоды делаются на основе сложных метеорологических моделей – систем дифуравнений в частных производных, учитывающих пространственно-временную динамику атмосферы, температурных полей, полей давлений, влажности и иных величин. Но применять в этой области машинное обучение тоже вполне возможно. Точнее его разновидность – глубокое обучение, которое способно по накопленным данным измерений (а их к настоящему времени накопилось очень много) фактически «вывести» систему дифференциальных уравнений из данных, с учётом специфических нестационарных, нелинейных добавок, которые могут либо ускользать от внимания исследователей, либо убираться ими намеренно, при линеаризации, как, по их мнению, малозначимые. Второе направление – это сбалансированное сведение результатов различных «классических» моделей в единый прогноз, с построением оценки уверенности.

– Вы еще упомянули нелинейную динамику.

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

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

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

– В самом начале Вы еще говорили о кибернетике.

Почему мы в данной связи говорим о кибернетике? Ну, не только по причине того, что мы находимся в стенах ИПУ РАН, но также и потому, что в принципе управление – это некая основная «концепция», которая есть в мире. Она присутствует и на атомном уровне, и в космологических масштабах. Да, можно спорить, в каком виде, в какой форме, посредством чего и как осуществляется управление, тем не менее, управление есть всегда и во всем. Даже в простейших физических системах имеется управление. Не зря сейчас активно развивается такое направление, как киберфизические системы.

– Какая из математических дисциплин является центральной для Вас?

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

– А какие у Вас последние разработки?

Из относительно последних. В рамках работы в ИПУ РАН у нас был опыт исследования социальных сетей  (я в них участвовал в 2011-2013 годах). Занимались мы ими активно, с разной степенью успешности, применяли методы той же самой матстатистики, машинного обучения, нелинейной динамики.

Если говорить совсем о последних работах, в том числе и тех, которые мы ведем сейчас, это проекты, связанные с таким подвидом Machine Learning, как глубокое обучение, или диплернинг (Deep Learning). Это подраздел машинного обучения, который строит модели явлений и процессов, и такие модели являются глубокими. Что это означает? Это означает, что такие модели оперируют иерархией признаков. Если посмотреть на какое-то изображение, то зрительная система человека вначале оценивает уровень яркости контрастности, выявляются градиенты яркости. Затем на их основе формируется система прямых линий. Из системы пересекающихся прямых линий выделяются углы. Далее это все складывается в контуры, контуры складываются в некие структуры, из неких структур складываются некие образы, образы складываются в сцену, все это привязывается к контексту. Так возникает иерархия признаков. Если на нулевом уровне это просто яркостные пятна, то потом это признаки, которые выявляют линии под разными наклонами, потом углы, потом контуры, и так мы доходим до мета-признаков конечного объекта, является ли этот объект цветком, столом, человеческим лицом либо чем-то еще. Диплернинг оперирует именно подобной парадигмой, но, конечно, не только в области обработки изображений.

– Расскажите, пожалуйста, подробнее про глубокое обучение.

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

Мейнстрим в диплернинге сейчас таков, что в качестве основного инструмента, с помощью которого строятся эти модели, выступают нейронные сети. Хотя, на самом-то деле, строго говоря, нейронными сетями все не ограничивается. Ведутся работы по Deep Random Forest, Deep Bayesian Network и иным парадигмам. Тем не менее, центральное направление – это именно нейросети. Начинали с 5-6 слоев (LeNet, автор Yann LeCun, начало 90-х), сейчас дошли до 1000 слоев (Deep Residual Networks).

Стоит заметить, что по нейронным сетям у многих даже сейчас сохраняется скепсис, это последствия двух сильных нейросетевых зим, последняя, кстати, закончилась не так давно, где-то в 2012 году. Но по многим направлениям этот скепсис уже явно неоправдан. В этом контексте вполне типовой является следующая ситуация: например Григорий Бакунов («Яндекс») еще в конце 2013 году на лекции Стивена Вольфрама в Digital October спорил со мной, говоря, что нет ни одной области, где применение нейросетей уместно и выигрывает перед классическими алгоритмами машинного обучения (типа Random Forest, SVM). Теперь же в своих интервью он активно отстаивает иную позицию. Так вот, прорывные направления: распознавание изображений и видео, распознавание слитной речи – это те области, где нейросети уже превзошли уровень человека. Компьютерная лингвистика – с марта 2017 года, онлайн переводчик от Google для пары русский-английский уже использует глубокие нейросети: кто давно не оценивал качество его работы, могут сильно удивиться прогрессу. Опять же, резонансный выигрыш AlрhaGo. Активно подбираются к играм с неполной информацией. В общем, продолжать можно долго.

В чем причина прорывов и успехов в глубоком обучении? Их, на самом деле, несколько.

Во-первых, доступных данных для обучения сетей стало много, очень много. А объем данных и их вариативность в обучающей выборке – это критичный фактор. Минимально необходимый объем зависит от задачи, но обычно счет идет от сотни тысяч (нескольких миллионов) образцов и может доходить до нескольких десятков миллионов. Соответственно, в 1980-90-х собрать такой объем данных было практически нереально, либо весьма дорого. А сейчас те же самые социальные сети порождают колоссальные наборы данных. Люди выкладывают фотографии, затем их таргетируют, размечают, добавьте сюда еще переписку на стене. Например, прогресс сетей в автоматическом определение возраста, эмоций напрямую завязан на это. В общем, данные – это «топливо» для машинного обучения.

Второе – «двигатель», то есть аппаратные вычислительные средства. В какой-то момент стало понятно, что для обучения глубоких нейросетей лучше применять графические ускорители, «навороченные» видеокарты. И компания NVIDIA, распознав этот тренд, быстро сориентировалась. Те сети, которые раньше учились на суперкомпьютере неделю, или на одном ПК (на CPU) – несколько месяцев, сейчас на одном сервере (но на GPU среднего ценового класса) учатся всего несколько суток. Например, одна GPU Titan Pascal (2016 г.) потребляет около 200 ватт электроэнергии, стоит порядка 1 500$ US и может быть установлена в обычный ПК – это эффективный эквивалент по производительности топового суперкомпьютера начала 2000-х, который потреблял несколько десятков мегаватт, стоил несколько десятков миллионов долларов, и занимал площадь футбольного поля.

Итак, есть топливо, есть двигатель. Но под капотом спрятаны еще несколько моментов: научились правильно инициализировать сеть, правильно обучать, решили проблему исчезающего градиента. И дело пошло.

Но есть еще один момент. О нем, как правило, забывают. Обычно исследователи закрывают исходный код, не говоря уже о проприетарных программных продуктах корпораций. С Deep Learning поначалу было то же самое. Чтобы повторить новую «фишку» из свежей статьи, приходилось начинать с самого начала, писать и отлаживать код, продираясь сквозь недоговоренности и пропущенные ключевые моменты. И подобная ситуация сохранялась примерно до 2010 года, потому что каждая лаборатория, R&D центр, писали свой программный код под свою модель, они его нигде не публиковали, никому не отдавали. Соответственно, если ты хотел войти в эту область с нуля, или же, работая в ней, попробовать что-то то новое, ты должен был написать собственный код для всех этих нейронных сетей, архитектур. На отладку кода уходило много времени, было немало сложностей, в том числе и денежных затрат. Мы сами прошли через это. А потом по программным средствам все пошло нестандартно. Ситуация резко изменилась. Появились открытые фреймворки, библиотеки, поддерживающиеся в актуальном состоянии, причем не только силами отдельных энтузиастов, но и крупных корпораций, таких как Google, Microsoft. Стало хорошим тоном к научным статьям прикладывать код, реализованный в этих библиотеках. И это дало колоссальный синергетический эффект. Порог входа в область упал практически до нуля. Появилась масса обучающих постов в блогах, типа: «как за 30 минут и 30 строк кода собрать и обучить классификатор». И вот ты пришел с нуля, а уже через день-два можешь обучить нейросеть отличать фотографии, где есть кошки, и где нет кошек. И это породило бум.

Кроме бума пришел еще и хайп, «что машины все захватят и всех поработят», и пришли реальные проблемы в виде массы «специалистов», которые кроме постов в стиле «30 минут и 30 строк» по теме более ничего не изучали. Более того, в это дело пришел бизнес, инвесторы, которые начали надувать финансовый пузырь.

– А что-нибудь из прикладных проектов в Deep Learning у Вас есть?

Да, такие проекты есть. Один из них выполняется в интересах АО «ТрансНефть», это защита магистральных нефтепроводов. Есть такие приборы, оптические рефлектометры, работающие в когерентном режиме по принципу обратного релеевского рассеяния: лазер излучает короткий импульс в оптическое волокно, импульс двигается по волокну, рассеивается на дефектах в волокне и возвращается обратно, где улавливается чувствительным фотоприемником, оцифровывается в АЦП и в виде уже цифрового сигнала подается на обработку. Оптический кабель укладывается рядом с магистральным трубопроводом.

А теперь самое главное. Во-первых, процесс рассеивания весьма чувствителен к механическим возмущениям оптоволокна: рефлектометр улавливает смещения оптического кабеля в среде буквально от 70 нм. Во-вторых, датчик полностью пассивен, и способен перекрывать дистанции до 100 км с точностью локализации механических возмущений в 5 м. И вот теперь, если в каком-то месте в охранной зоне трубопровода формируется воздействие на среду заложения кабеля (хождение человека, проезд автомашины, работа землеройной техники, утечка содержимого из трубопровода и т.д.), то прибор формирует извещение о локализации, классе и достоверности события.

Сам прибор создала компания АО «Омега», а мы разрабатывали для него «Мозг» – контур обработки целевой информации, где центральное место занимает первичный классификатор на основе глубокой нейронной сети. Кстати, по теме этой работы мы делали доклад на конференции IEEE MLSP 2016.

– А почему классификатор Вы построили именно на основе глубокой нейронной сети?

Так случайно получилось (это, разумеется, шутка). К этой конструкции мы пришли закономерно, эволюционным путем. Когда наши партнеры пришли к нам с этой задачей, у них уже были достаточно простые эвристические алгоритмы на основе правил и простейших статистик. Но задача построения алгоритмов обнаружения и классификации сигналов для этого класса приборов оказалась сложной, по трем основным причинам: (i) – широкая вариативность сигнальных портретов как полезных событий, так и помех; (ii) – чувствительность датчика к вариации внешних условий (температура, скорость ветра, состояние грунта и т.п.) и внутренние нестабильности прибора, вызванные в первую очередь лазером; (iii) – жесточайшие требования к уровню ложных тревог, и вероятности пропуска цели.

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

Далее мы применили классические методы машинного обучения: SVM, Random Forest, Бустинг, полносвязные нейронные сети, ситуация улучшилась, но показатели качества и устойчивости оставляли желать лучшего. В итоге мы решили попробовать, и предложили заказчику алгоритмы на основе хай-тек решений, которые на тот момент времени (конец 2015 года) были передовыми в задачах распознавания голоса: глубокие сверточные нейросети, с автоматическим синтезом первичных информативных признаков.

И это выстрелило. Ведь фактически прибор построен на распознавании пространственно-временных паттернов событий в инфра- и звуковом диапазоне частот, тоже каких-то сигнально-иерархических структур. Физические принципы схожие, но сложность была следующая. Например, Google может поставить распределенный вычислительный центр, мощный HPC кластер и обрабатывать входящие звонки в режиме консолидированной обработки, а здесь же ситуация такая, что на каждый блок через 30-50 км вычислительный кластер не поставишь. Собирать со всего нефтегазопровода в один дата-центр информацию экономически и технически нецелесообразно: высокие скорости потоков данных, жесткий реалтайм, отсутствие единой точки отказа. Т.е., нужно было сконструировать нейронную сеть, обладающую высокими тактико-техническими характеристиками, но при этом компактную настолько, чтобы она могла запускаться на обычных GPU, среднего ценового класса (типа NVIDIA GeForce 1070). Ну и вторая сложность: пришлось много сил потратить на алгоритмы адаптивной предварительной фильтрации помех и шумов, которые работают по принципу «слепого фильтра».

В итоге относительно результатов, которые докладывались на конференции IEEE MLSP 2016, мы уже предоставили заказчику следующее поколение «Мозга», качественно превосходящее предыдущее, а ведь прошел всего год. Это наглядно демонстрирует скорость и динамику в области Deep Learning: то, что еще год назад было “State of the art”, сегодня пригодно для обучения студентов. Т.е. те результаты для нас и АО «Омега» – уже устарели, а для остальных, как показывает анализ публикаций и вопросов по теме – только служат целевым ориентиром. Конечно, один из главных активов нашего заказчика в этой теме – это обширная библиотека сигналов, объем которой на сегодня уже превысил 90ТБ, и собиралась она в реальных, но контролируемых условиях. Мы, кстати, для обучения и тестирования оперировали данными объемом в 70ТБ. Т.е., под них в рамках проекта создавалась программная инфраструктура для многократной обработки при отработке различных гипотез и идей. Все писалось на С/С++, с применением техник HPC. На настоящий момент заказчик провел серию испытаний и удостоверился в высоких характеристиках получившегося решения и его модернизационном потенциале.

Пожалуй, можно сказать, что мы одни из немногих в России, кто применил в реальном industy проекте хай-тек решения из области диплернинга. При этом мы применили их не просто в проекте развлекательного характера, или в режиме стартапа: попробовали, поиграли и забросили, как только кончились деньги инвесторов. Нет, это была мотивированная задача: охрана магистральных нефте- и газопроводов.

– То есть, не просто для того¸ чтобы «котиков постить»?

Ну да. Правда, я здесь никого не хочу обидеть, ведь есть масса сайтов, порталов, где техника диплернинга применяется для того, чтобы, к примеру, взять и пририсовать человеку усы, сменить прическу, перекрасить гамму фото, ну, т.е., в области развлечений. Наши сотрудники сами во многих таких проектах принимают участие – почему бы и нет? Это дает, во-первых, возможность попрактиковаться в новых прикладных техниках без каких либо запретов на распространение информации и результатов, а во-вторых, попробовать новые теоретические фундаментальные идеи, без опасности сорвать сроки по проекту или не выполнить пункты его ТЗ.

– Есть и другие проекты?

Да, конечно. Есть еще направления исследований, связанные с интеллектуальными, глубоко адаптивными системами активного диалога. Они сейчас становятся все более востребованными на так называемых первых линиях техподдержки. Либо для первичного приема клиентов (в банках, системах страхования, здравоохранения). Одно дело, когда человек приходит на web-сайт и знает, что он хочет. Тогда – заполнение анкеты в линейном режиме, и задача решена. А бывает так, что он в принципе знает, что хочет, но не до конца представляет это. Один из ярких примеров – продажа туров в турагенствах.

Человек может зайти на web-сайт турагенства, четко понимая, куда он хочет поехать, когда он хочет поехать, какой уровень сервиса его интересует, какие у него главные критерии выбора тура. Он заполняет анкету, ставит галочки, нажимает кнопку «подтвердить», и система находит варианты подходящие под формальные требования. Но зачастую человек формулирует свой запрос более абстрактно: «хочу туда, где есть солнце, лучше чтобы с приятным бризом и видом на скалы около моря». И диалоговая система, искусственный интеллект (но я предпочитаю термин «система с глубокой адаптацией»), такая система начинает задавать уточняющие вопросы, исходя из первоначального посыла. Не обязательно голосом, а просто может писать вопросы, например в телеграмм-боте. И постепенно выясняется, что человек имел в виду не «солнце как таковое», а место с «буйной зеленой растительностью, и чтобы было жарко», но конкретное название курорта указать не готов. И система, задавая вопросы, его интервьюирует, но не по жесткому шаблону, а исходя из контекста обсуждения. В процессе диалога он может сказать: хочу в Болгарию или Грецию, а система, помня контекст, что он хотел «чтобы было жарко», и сопоставляя с периодом поездки, находит прогноз по температуре, и сообщает, что в «Болгарии в это время будет холодно». Системы подобного класса не интеллектуальны в широком смысле, они не могут говорить на абсолютно свободные темы, но в рамках заданной тематики диалога – вполне могут. Причем вопросы в них формулируются свободным образом, они не забиты в них жестко. И содержание ответов они анализируют из их свободной формы. Эти системы не обладает сознанием, не обладают рефлексией, хотя некоторая рефлексичность в них все же присутствует.

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

– Какие у Вас планы на будущее?

На самом деле «планов громадье». Одна из первейших и важнейших целей, чисто организационная – это запустить новую лабораторию ИПУ РАН, которую институт создал буквально на днях (в апреле этого года) под решение научных задач, аналогичных вышеизложенным. В самом деле, приятно осознавать, что дирекция института и ученый совет прониклись важностью и актуальностью задач, связанных c машинным обучением, с Deep Learning, c анализом больших объемов слабо структурированных данных, с идентификацией слабонаблюдаемых сетей нелинейных систем со сложной нерегулярной топологией.

Новая лаборатория называется «Лаборатория Вычислительной Кибернетики». Название кому-то может показаться странным, тем не менее, оно очень точно отражает суть научных методов и подходов, о которых я здесь говорил: это взаимная интеграция кибернетики, машинного обучения и нелинейной динамики.

 

Интервью записано И.Г. Татевосян