Департамент анализа данных и машинного обучения

«Современная видеокарта может заменить десяток компьютеров»

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

- Как менялся подход к анализу больших данных с течением времени?

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

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

- Значит ли это, что анализ больших данных по карману только очень крупным корпорациям?

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

Еще одна интересная тенденция – это рост популярности видеокарт как источников вычислительной мощности. Хотя видеокарты специфичны и не все задачи на них можно ускорить, в некоторых случаях их использование уместно. Например, использование видеокарт особенно актуально для построения искусственных нейронных сетей. Этот вид машинного обучения весьма требователен к ресурсам и, к счастью, очень хорошо ускоряется с помощью видеокарт. При решении задач на нейронных сетях современная видеокарта зачастую может заменить небольшой вычислительный кластер из десятка мощных компьютеров. И это еще один способ сэкономить при обработке данных. Мы давно это поняли и при построении нейросетевых моделей давно используем этот инструмент. Учитывая успехи нейросетевых моделей и большой рост их популярности в бизнес-приложениях, это решение может сэкономить немало средств не только нашему университету, но и бизнесу.

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

- Может ли машина анализировать лучше, чем человек, если ее обучил человек? Не будет ли она повторять человеческие ошибки?

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

Хороший пример - это история про AlfaZero. Это программа, которую разработал Google с использованием нейросетей. Она научилась играть в китайскую игру Го с нуля всего за сутки. Она не использовала готовых баз партий, ей были заданы только правила игры. По сути при обучении этой машины она играла в Го сама с собой и училась на собственных ошибках. Разыгрывая миллионы таких партий, нейронная сеть алгоритма тренировалась и решала задачу все лучше и лучше. Уникальность этого примера в том, что при обучении человеческое знание практически не использовалось. Таким образом, компьютер может работать лучше человека, если у него есть объективный отклик.

- Какое направление в машинном обучении сейчас привлекает наибольшее внимание ученых?

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

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

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