Важная часть семинара была посвящена современным возможностям обучения Data science. Какие наиболее эффективные способы вы могли бы посоветовать тем, кто только начинает вливаться в эту сферу и, возможно, пока не знает, с чего начать?

Возможностей развиваться в области Data Science и стать специалистом сейчас на самом деле очень много. Во-первых, если у человека есть самодисциплина и мотивация, все можно освоить самостоятельно. Есть открытые курсы, в том числе на русском языке. Разумеется, много курсов ведется на английском, они уже позволяют понять основные алгоритмы и теорию. Из русскоязычных курсов я могу посоветовать Курс «Введение в машинное обучение» (Coursera, «Высшая школа экономики», ведет Константин Воронцов) и Специализация «Машинное обучение и анализ данных» (6 курсов на Coursera, подготовленные совместно МФТИ и «Яндексом»). Из зарубежных наиболее полезны, на мой взгляд, Курс «Machine Learning» (Coursera, ведет Andrew Ng), Курс «Neural Networks for Machine Learning» (Coursera, ведет Geoffrey Hinton), а также несколько так называемых nanodegree на платформе Udacity, подготовленных совместно с крупными компаниями: Data Analyst (совместно с Facebook), Machine Learning Engineer (совместно с Kaggle), Deep Learning.

Чтобы пойти дальше и разобраться в том, как это работает на практике, можно участвовать в соревнованиях по анализу данных. Самый крупный сайт соревнований — это платформа kaggle.com. Здесь проводятся состязания по разным направлениям, например, конкретно сейчас на платформе решается задача от «Сбербанка» по российскому рынку недвижимости. Главная цель — разработать алгоритмы, которые позволят прогнозировать цены на недвижимость, имея на руках данные о жилье и макроэкономические закономерности. Похожие соревнования проводит большое количество компаний, участие в них — хороший способ проверить свои навыки и подтянуть знания. Кроме того, такие конкурсы вкупе с пройденными курсами и статьями с анализом собственных проектов также учитываются работодателями при приеме на работу — сейчас это реальный способ подтвердить свою квалификацию.

Безусловно, есть и программы на базе университетов. Одна из них — школа анализа данных «Яндекса», которая дает хорошие базовые знания в этой области. Такие школы работают не только в Москве и Петербурге, есть они также в Екатеринбурге и Новосибирске.

Какими базовыми компетенциями должен обладать специалист, который уже начинает работать в области Data Science?

Лекция заведующего кафедрой высокопроизводительных компьютерных технологий Уральского федерального университета Андрея Созыкина
Лекция заведующего кафедрой высокопроизводительных компьютерных технологий Уральского федерального университета Андрея Созыкина

Базовый уровень — это знание математики, в частности, прикладной статистики и теории вероятностей, кроме того, безусловно, нужно обязательно знать программирование. Сейчас в области Data Science чаще всего используется язык Python и библиотеки для анализа данных. Помимо прочего, специалист должен разбираться в современных методах машинного обучения. И это не только глубокое обучение (ведь это только один из методов), но и, например, градиентный бустинг, который также активно применяется сейчас на практике. Таким образом, специалисты должны знать все актуальные методы и уметь пользоваться библиотеками для машинного обучения.

За какое время можно освоить азы и уже применять знания на практике?

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

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

Лекция заведующего кафедрой высокопроизводительных компьютерных технологий Уральского федерального университета Андрея Созыкина
Лекция заведующего кафедрой высокопроизводительных компьютерных технологий Уральского федерального университета Андрея Созыкина

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

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

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

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

Изображение, обработанное нейронной сетью. Источник: lamcdn.net
Изображение, обработанное нейронной сетью. Источник: lamcdn.net

С точки зрения развития методов машинного обучения, на ваш взгляд, в каких сферах за последнее время удалось достичь лучших результатов?

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

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

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

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

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

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

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

Беспилотный автомобиль. Источник: svopi.ru
Беспилотный автомобиль. Источник: svopi.ru

Что по этой логике делает ее гораздо более надежной, чем человека.

Есть много юридических и этических моментов на этот счет. До сих пор нельзя сказать, насколько можно доверять нейронной сети. Особенно актуально вопрос стоит, безусловно, в сфере, которая касается жизни и здоровья людей. Например, в той же медицинской диагностике. С одной стороны, нейронные сети могут выявить настолько сложные закономерности медицинских данных и предложить такие решения, которые не может найти ни один человек. Но с другой, мы до сих пор не понимаем, как именно нейронная сеть это делает. Для нас она работает в так называемом режиме black box — «черного ящика». Мы не понимаем, что у нее происходит внутри и почему она предлагает именно такие варианты. В медицине это неприемлемо, ведь в этой области мы должны четко объяснить и аргументировать каждое действие. Поэтому можем ли мы использовать то, что говорит нам нейронная сеть, в делах, касающихся жизни человека? До сих пор этот вопрос остается открытым.

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

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

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

Открытый семинар по глубокому обучению, или как стать Data Scientist, прошел 16 мая в Петербурге. Организаторы мероприятия — компания NVIDIA и Университет ИТМО. Участникам рассказали, с чего начать путь специалиста по анализу больших данных, а также продемонстрировали решение с нуля классической задачи распознавания изображений с помощью глубокой нейросети. Спикером мероприятия выступил специалист в области Data Science, заведующий кафедрой высокопроизводительных компьютерных технологий Уральского федерального университета Андрей Созыкин. Эксперт занимается научными исследованиями в области анализа медицинских изображений с помощью глубокого обучения, ведет канал YouTube, на котором размещает видеолекции по технологиям Deep Learning.