Искусственный интеллект обыграл человека в шахматы в 1996 году. После этого еще 20 лет непосильной задачей для компьютера оставалась древняя китайская игра Го, знаменитая своей сложной тактикой. В 2016 году программа AlphaGo смогла победить чемпиона в Го, используя обучаемые нейронные сети. А в конце 2018 года стало известно о новой победе искусственного интеллекта. Программа AlphaStar обошла профессионального киберспортсмена в компьютерной игре StarCraft. В отличие от шахмат и Го, в StarCraft соперники не видят действий друг друга, поэтому программе нужно было самостоятельно отыскивать информацию, необходимую для принятия решений.
Подобные турниры – это популярная демонстрация современных достижений data science, или науки о данных. В обычной жизни технологии, заложенные в основу AlphaStar, применяются для решения прикладных задач, например, прогнозирование, распознавание изображений, анализ текстов. Над такими задачами работает data scientist. В русском языке пока нет общепринятого эквивалента для этой специальности – в вакансиях может встречаться и «специалист по исследованию данных», и «дата-ученый», но мы будем придерживаться варианта «исследователь данных».
Эта профессия возглавляет список самых высокооплачиваемых позиций даже в Кремниевой долине. Сегодня про исследователей данных много пишут и говорят, но чем конкретно занимаются эти специалисты, к какой науке относятся и как связаны с программированием? Мы расскажем не только об этом, но и том, как стать одним из них.
Содержание:
2. Традиционный подход к науке о данных
3. Современный подход к науке о данных
4. Как начать заниматься наукой о данных
5. А стоит ли вообще начинать?
Data science, или наука о данных, изучает проблемы преобразования разрозненных данных в ценные знания. Новая дисциплина объединила в себе комплекс методов, которые позволяют находить в данных скрытые закономерности. Сегодня наука о данных – это синергия математики, статистики и машинного обучения, включая самый современный подход – глубокое обучение.
С помощью науки о данных можно решать различные практические задачи: распознавание мошеннических транзакций в банковской сфере, прогнозирование покупательского спроса в ритейле, таргетирование аудитории для рекламного бизнеса и многое другое. Для решения таких задач исследователь данных обучает алгоритм машинного обучения и получает модель, которая самостоятельно обрабатывает полученную информацию, находит закономерности и выдает нужный результат.
Одна из самых распространенных задач для исследователей данных – прогнозирование, или предиктивная аналитика. Она может быть полезна в различных сферах: медицине, науке, бизнесе. Недавно в США биотехнологический стартап создал модель, которая определяет возраст человека по составу бактерий в его кишечнике (ошибка прогноза не превышает 4 лет). Программа проанализировала микрофлору 1165 здоровых людей разного возраста и выявила закономерность, что из 95 видов бактерий 39 сильнее всего меняются на протяжении нашей жизни. Эти бактерии можно считать своеобразными маркерами старения, на которых ученые могут проверять, как различные факторы влияют на наше долголетие. Возможно, в будущем именно машинное обучение приведет нас к эликсиру вечной молодости. А пока чаще всего предиктивная аналитики применяется для улучшения бизнес-процессов.
Команды специалистов, которые занимаюся исследованием данных, есть во многих известных компаниях – Facebook, Amazon, Walmart, Nestle, Uber. Результат их работы мы видим практически каждый день. Один из примеров – поисковик Google, который в 2015 году дополнили системой исскуственного интеллекта RankBrain. Этот алгоритм машинного обучения ранжирует страницы, анализируя не только ключевые слова, но и поведение человека в интернете.
В стриминговых сервисах, вроде YouTube, персональные рекомендации пользователям тоже подбирают алгоритмы. А киносервис Netflix известен своей системой, которая даже постер к фильму адаптирует под каждого зрителя. Любителю мелодрам и поклоннику комедий алгоритмы подберут разные иллюстрации к одному и тому же кино.
Методы науки о данных постоянно совершенствуются. Раньше исследователь данных, решая задачи прогнозирования, применял классические статистические методы, например, линейный регрессионный анализ, кластеризацию, временные ряды. Затем специалист на языке программирования писал модель, в которой логически выводил взаимосвязи между переменными в данных.
В машинном обучении модель учится сама, а не программируется человеком. Например, исследователю данных нужно создать модель, которая определяла бы, кто изображен на фотографии: взрослый человек или ребенок. В машинном обучении это задача будет относиться к бинарной классификации, то есть распределению объектов на два класса. Сначала исследователь данных определяет признаки, на основе которых модель должна отличать изображения. Так, взрослых и детей можно различить по росту и размеру тела. Эти признаки исследователь будет задавать модели для тренировки на обучаемой выборке данных. Специалисту нужно провести эксперименты с несколькими алгоритмами машинного обучения, чтобы выбрать модель, которая на большинстве объектов обучающей выборки дает верные ответы.
Тип машинного обучения (обучение с учителем и обучение без учителя) – это способ, как именно модель тренируется находить закономерности в данных. Каждому типу обучения соответствует несколько алгоритмов.
В данном случае обучающая выборка состоит из размеченных данных, между которыми уже известны соответствия. Примером может быть задача классификации изображений, описанная выше. В обучающей выборке фотографии были бы помечены как «взрослый» и «ребенок». Во время обучения алгоритм должен научиться классифицировать изображения на основе признаков, заданных специалистом. После обучения модель, столкнувшись с новыми данными, сможет самостоятельно находить в них связи.
Алгоритмы обучения с учителем: дерево принятия решений, наивная байесовская классификация, логистическая регрессия, метод опорных векторов (SVM) и др.
При этом способе обучения алгоритм должен самостоятельно найти смысловые связи и выявить закономерности в данных. Такой метод часто применяется в рекомендательных системах интернет-магазинов, когда покупателям предлагают товары на основе его предыдущих покупок.
Алгоритмы обучения без учителя: алгоритмы кластеризации, метод главных компонент (PCA), метод ближайших соседей (k-means) и др.
Сегодня самым прогрессивным направлением для исследователей данных считается глубокое обучение (deep learning), в котором используются многоуровневые нейронные сети. Этот подход превосходит традиционные методы машинного обучения в анализе текста, распознавании человеческой речи (natural language processing), в области компьютерного зрения. Глубокое обучение используются в таких новейших решениях, как генерация изображений или создание софта для автономных автомобилей. Однако и в задачах, связанных с бизнес-процессами, нейронные сети применяется все активнее.
С точки зрения математики, нейросеть – это композиция линейной функции и нелинейной функции активации. Архитектуру искусственных нейронных сетей описывают по аналогии с головным мозгом. Так, нейроны в сети связаны между собой синапсами, которые характеризуются коэффициентом усиления (его называют «вес»). Информация, которую принимает нейрон от всех синапсов, суммируется и умножается на соответствующие им «веса». К этому значению и применяется функция активации.
Нейросети состоят из нескольких слоев: первый – принимает информацию, последний – выдает результат, а на промежуточных слоях (скрытые слои) идет параллельная обработка данных. Если в нейросети больше одного скрытого слоя, то она считается глубокой. Чем больше слоев в сети, тем более сложные зависимости в данных она способна находить.
Сегодня чаще всего нейросети создают на языке программирования Python, в котором есть библиотеки для глубокого обучения. К нейросети можно применять обучение с учителем и без учителя. Исследователь готовит набор данных для обучения и подбирает гиперпараметры, к которым относятся количество слоев сети и нейронов в каждом из них, скорость обучения и другие значения.
Исследователь больших данных – это больше профессиональный математик, чем программист. В сфере высшего образования еще нет единого подхода, как готовить таких специалистов. Вузы обычно предлагают программы, связанные с наукой о данных, для магистратуры. В Беларуси такой вариант обучения можно найти только в БГУ – на факультете прикладной математики и информатики есть магистратура по специальности «Алгоритмы и системы обработки больших объемов информации». На уровне бакалавриата лучше всего получить высшее математическое образование, которое поможет развить один из главных навыков для исследователя данных – математическое моделирование реального мира.
Хорошая теоретическая база в математике понадобится, чтобы попасть на серьезные курсы по науке о данных и машинному обучению. В Минске студенты и выпускники математических специальностей могут бесплатно учиться в филиале Школы анализа данных (ШАД) от компании Яндекс, где готовят исследователей больших данных и разработчиков машинного обучения. Курсы длятся два года – часть лекций нужно посещать лично, а некоторые предметы изучаются через видеолекции и удаленную работу с преподавателем. Занятия ведут сотрудники факультета прикладной математики и информатики БГУ и минского офиса Яндекс. Набор в школу проходит ежегодно и обычно начинается весной. Кандидатам нужно пройти три этапа отбора – онлайн-тестирование, письменный экзамен и собеседование.
Но даже если вы не посвятили пять лет жизни высшей математике, вам не закрыт путь в науку о данных. Вы можете учиться самостоятельно, хотя это будет и нелегко. Начинать все равно нужно с математики – вас ждут основы матанализа, линейной алгебры, теория вероятностей. Изучать машинное обучение помогут дистанционные программы. Онлайн-курсы можно подобрать на платформах Сoursera и edХ. Актуальные материалы вы найдете на сайте Learn with Google AI, посвященном машинному обучению и искусственному интеллекту. Здесь можно пройти бесплатный курс, разработанный на основе внутренней учебной программы Google.
В науке о данных, как и в математике, знания нужно отрабатывать на задачах, постоянно повышая уровень сложности. Для исследователей данных со всего мира возможность потренироваться предлагает Kaggle. Это одна из самых известных платформ для проведения соревнований по машинному обучению. Для каждого конкурса организаторы выкладывают описание задачи и две выборки данных (тренировочную и тестовую), устанавливают дедлайн и сумму приза для победителя. Участникам нужно создать предиктивную модель, которая показала бы лучший результат на тестовой выборке данных. Kaggle поможет получить новичкам первый практический опыт, который стоит указать в своем резюме. А если в соревнованиях удалось добиться хороших результатов, то при устройстве на работу это докажет высокий уровень знаний и навыков.
Активное развитие технологий все больше подогревает интерес к науке о данных со стороны различных компаний, и спрос на специалистов в этой области продолжает расти. Профессия исследователя данных сложная и требует редкого сочетания способностей и навыков, поэтому найти подходящего кандидата нанимателям непросто. Однако, уже на старте карьеры исследователь данных может стать ценным специалистом, работа которого будет высоко оплачиваться.