Сергей Шельпук: Data science-сообщество в Украине очень сплоченное

Сегодня DataReview беседует с выпускником программы “Искусственный интеллект” Стэнфордского университета и Лондонской школы экономики, директором направления Data Science в компании V.I.Tech, преподавателем курса Machine Learning в школе Lviv IT School (LITS) Сергеем Шельпуком.

— Сергей, изначально Вы получили юридическое образование. Когда Вы заинтересовались такой областью, как data science? Что стало отправной точкой в Вашей карьере?

— Да, юридическое образование — одно из… Оно было вторым после технического в КПИ. Конкретно data science я заинтересовался летом 2011 года, когда Стэнфорд открыл бесплатный доступ всем желающим к своим первым курсам, в том числе Machine Learning. Это было еще до Coursera и эры MOOC — massive open online classes, которые так популярны сейчас.

Именно потому, что на те первые курсы в Стэнфорде записалось такое огромное количество людей, были созданы два стартапа: Coursera и Udacity, о которых сегодня знает весь мир. Там я познакомился с машинным обучением, как оно есть, как его изучают и применяют на Западе. И покатился…

— А как Вы узнали об этих курсах?

— Кажется, на каком-то новостном сайте.У нас довольно тесная компания технических энтузиастов, которые любят делиться ссылками в Skype. Поэтому не исключено, что мне просто прислали ссылку на них.

— Много людей прошли конкурс?

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

— Как Вы уже сами заметили, одна из ключевых областей Ваших научных интересов — машинное обучение и нейронные сети. Недавно внимание научной общественности было приковано к статье «Интригующие свойства нейронных сетей» под авторством ведущих специалистов Google и Нью-Йоркского университета — речь в ней шла о так называемых «слепых пятнах». Можете объяснить нашим читателям, что это такое и почему данная теория произвела революцию в мире нейронных сетей?

— Собственно, единственный источник, в котором эту теорию назвали революционной — статья на habrahabr.ru. На самом деле, в оригинальной статье не было никакой заявки на революционность. Статья затрагивала две важные особенности нейронных сетей.

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

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

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

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

— Как в таком случае можно говорить, что эти исследования не произвели революцию, ведь они все же поменяли взгляд на некоторые вещи?  

— Смотря как понимать революцию. Статья никоим образом не поменяла то, как мы строили нейронные сети: ни архитектуру, ни методы активации, ни методы обучения. Она просто высветила некоторые особенности нейронной сети, которые до этого были не очевидны. Я бы не сказал, что это открытие было революционным, в частности, потому что оно не повернуло в другую сторону работу с нейронными сетями как таковую.

— Хорошо, давайте перейдем ко второму выводу статьи.

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

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

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

Существуют классификаторы, заточенные как раз под построение оптимальной границы — decision boundary. В частности, это особенность метода опорных векторов — support vector machines. Но все мы знаем, что нейронные сети не строят decision boundary оптимально. И если в случае с крестиками и ноликами мы говорим о двух измерениях, то картинка 100х100 имеет размерность 10 тысяч измерений, и “подкалибровать” так, чтобы она пересекла линию принятия решений, не очень сложно. Здесь акцент делался именно на том, что такой “перенос” точки за decision boundary невозможно отличить визуально.

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

— Вы лично  применили эти выводы на практике?

— Нет, на данном этапе я не занимаюсь работой с изображениями.

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

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

На сегодняшний день GPU может дать вычислительной мощности от 1,5 до 3 терафлопс примерно за 1000 долларов. Это удивительно низкая цена для таких мощностей.

Самый популярный конкурент вычислений на GPU — технология MapReduce (сейчас она заменяется революционным Spark). Особенность MapReduce и Spark vs GPU  в следующем: для MapReduce и Spark мы используем кластер физических машин, серверов, на которых проводятся расчеты. В случае с GPU у нас есть видеокарта, и мы считаем все на одной физической машине.

При работе с распределенными серверами нам нужна инфраструктура, время для того, чтобы перебросить информацию по сети в память этих компьютеров-“воркеров”, плюс, сами по себе они дорогие.

С GPU мы имеем от 1 до 4 карточек на одной машине, по память этих карточек ограничена. Если я не ошибаюсь, одна видеокарточка на сегодняшний день может иметь до 6 гигабайт видеопамяти. То есть мы получаем максимум 24 гигабайта памяти для хранения данных, над которыми хотим проводить вычисления. В случае с MapReduce количество этой памяти и вычислительных ресурсов практически бесконечно.

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

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

— Очень часто data scientists стремятся добиться максимальной точности моделей. Какие критерии качества модели с практической точки зрения лучше применять для оценки эффективности?

— Существует два уровня ответа на этот вопрос — математический или статистический и бизнесовый.

С математической точки зрения, точность — количество правильно предсказанных ответов — не дает нам достаточно информации о том, как работает модель.

Представьте, что вы хотите построить некий алгоритм, который диагностирует рак у пациентов. К примеру, его точность составила 99%. Хорошо это или плохо? Трудно сказать, потому что мы не знаем, какое количество пациентов с раком приходили к нам в целом.

Представим, что всего лишь у 0.5% пациентов на самом деле был рак. В таком случае мы можем заменить наш алгоритм одной строчкой, всегда предсказывающей, что пациент здоров, и у этого алгоритма точность будет составлять 99,5%. Но это вовсе не то, чего мы хотим достичь.

Поэтому для подобных задач используются такие метрики, как precision и recall. Precision показывает, какой процент из предсказанных нами примеров правильные, recall — какой процент из правильных примеров в выборке мы “угадали”. Иными словами, мы можем построить модель, которая будет определять рак с очень высокой точностью — мы говорим пациенту, что он болен, только когда очень уверены в этом. Но в этом случае болезнь не будет диагностирована у какого-то количества больных пациентов просто потому, что бы были недостаточно уверены в диагнозе. Это классификатор с высоким значением precision и низким recall.  Другой пример: мы можем говорить человеку, что он болен, как только у нас появляется минимальное в этом подозрение. В этом случае мы будем уверены, что не пропустили ни одного больного, но многие из здоровых людей получат ложный диагноз. У такого классификатора будет высокий recall и низкий precision, соответственно.

Баланс между этими двумя измерениями точности — та статистическая метрика, которая поможет понять, насколько хорош ваш классификатор для конкретной задачи.

С бизнесовой точки зрения, мы не всегда хотим гнаться за точностью предсказаний. Представьте, что вы строите систему с целью предсказать, что может понравиться вашему клиенту, чтобы порекомендовать эту покупку. У этой модели высокая точность — скажем, 90-95%. Но эффективно ли это для вашего бизнеса? Скажем, вы можете с очень высокой точностью предсказать, что человеку понравится батон, но есть ли смысл рекомендовать батон, если он его и так купит? В этом случае бизнес-эффект наших систем измеряется сугубо бизнес-метриками, например: насколько наша система позволила увеличить продажи.

— Продолжая беседу о бизнесе, хотелось бы поговорить о задачах, которые решает data science. В список тактических задач, наверное, можно включить маркетинг, удержание клиентов и т.д. А как насчет стратегических задач?

— В бизнесе выделяют четыре уровня принятия решений: certainty, risk, uncertainty и ambiguity.

На уровне certainty менеджеру необходимо решить проблему, с которой он уже неоднократно сталкивался. Пути ее решения, как правило, известны из предыдущего опыта, результат каждого действия также очевиден. Это уровень принятия решений junior-менеджеров — то, что называется programmable decision. Примером может послужить ситуация, когда администратор торгового зала решает, нужно ли ему открыть дополнительную кассу в данный момент. На этом уровне data science может в принципе заменить человека.

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

На третьем уровне — uncertainty — нам по-прежнему известна цель, но вероятности результатов каждого действия нам неизвестны. В отдельных ситуациях мы не знаем даже полного списка возможных действий. Это уровень middle- и senior-менеджмента — директоров и вице-президентов. В этом случае data science может подсказать, какие вероятности сопутствуют каждому из решений, а также, какие решения для этой проблемы существуют в целом. Однако решение принимает непосредственно человек. Это его индивидуальная отвественность.

Самый высокий уровень — ambiguity, уровень стратегических решений. В этом случае даже цель нам до конца не ясна, и системы искусственного интеллекта могут помочь прояснить ее, понять суть проблемы. Это — уровень CEO.

— Сергей, насколько мне известно, Вы основали направление data science в компании SoftServe. Расскажите об этом опыте.

— Да, SoftServe была первой компанией в Украине, которая открыла направление data science. Я его возглавил. Интересом для создания этого направления в других компаниях может служить  возросший спрос на специалистов такого профиля на Западе. Так, последний доклад McKinsey & Company говорит о том, что к 2018 году в одних только США будет не хватать от 140 до 190 тысяч человек с глубокими аналитическими способностями и 1,5 млн менеджеров и аналитиков, которые знают, как анализировать большие данные и извлекать из них пользу для бизнеса.

— А с чего все начиналось в SoftServe?

— Мы начинали с составления бизнес-плана: чего и как хотим достичь, какими ресурсами располагаем. Это и было стартом направления data science в SoftServe.

— Можете дать пару советов компаниям, которые хотят открыть напралвение data science?

— До недавнего времени на Западе, в частности, в США, Украину и украинские IT-компании не воспринимали как тех, кто может заниматься аналитической работой, использовать искусственный интеллект. Наша цель — убедить их в обратном. Значительная часть работы сегодня направлена на то, чтобы рассказывать IT-рынку, чего мы уже достигли и к чему стремимся в будущем. Поэтому data science-сообщество в Украине такое сплоченное: мы все работаем на одну цель — на образование рынка, создание положительного имиджа для украинских компаний. И те, кто захочет ступить на этот путь вместе с нами, должны знать: это важная часть работы на сегодня.

Лариса Шурига, DataReview 

Добавить комментарий

Ваш адрес email не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =