Data Science и Machine Learning: с чего начать и где учиться

Меня зовут Ольга Мажара, я преподаю «Искусственный интеллект» в КПИ им. Игоря Сикорского и являюсь Senior Java Developer в Intellias.

Я училась в КПИ на теплоэнергетическом факультете по специальности программист. В то далекое время Data Science и ML не были мейнстримом и изучались фрагментарно в рамках других курсов, таких как ИИ или математические методы. Позже, после окончания аспирантуры, преподавала машинное обучение на этой же кафедре. Параллельно работала в Samsung R&D Institute Ukraine. Многие кухонные разговоры на работе были посвящены подходам к изучению Data Science, и мне было интересно сравнивать мнение коллег и студентов.

Сейчас я преподаю на факультете информатики и вычислительной техники. Сегодня Data Science и Machine Learning стали довольно популярны — четверть дисциплин и половина дипломных работ на курсе посвящены этому направлению. Однако, если раньше была проблема в недостатке информации, сейчас есть запрос на структуризацию и помощь в выборе курса, который даст необходимый для работы минимум навыков.

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

Что такое Data Science и Machine Learning

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

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

В Украине Data Science и Machine Learning ранее использовались как слова-синонимы, сейчас же эти понятия уже начинают разделять. В наших реалиях вакансии, где необходимо знание Machine Learning, зачастую называются Data Scientist и наоборот. Поэтому, если вы хотите работать с данными, вам следует изучить и то, и другое.

Процесс обучения Data Science и Machine Learning можно разбить на пять блоков:

  1. Математика
  2. Язык программирования
  3. Алгоритмы машинного обучения
  4. Deep Learning
  5. Отдельные специализации

Рассмотрим каждый из них более детально.

Математика

Для начала давайте разберемся, нужна ли вообще математика в работе с Data Science и Machine Learning. Коротким ответом будет: да, нужна. Безусловно, есть много примеров того, как успешные Data Scientists занимают призовые места на Кaggle-соревнованиях, не имея при этом технического образования. Но даже они согласятся, что знание математики дает значительное преимущество в работе с Data Science.

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

Для успешной работы минимально нужно понимать три раздела математики:

  1. Основы линейной алгебры
  2. Основы математического анализа (интегрирование, производные и частные производные)
  3. Основы теории вероятностей и математическая статистика

Язык программирования

Для работы с данными вы должны уметь программировать. Например, чтобы загрузить данные, распарсить, синтезировать новые признаки или воплотить в жизнь любую другую вашу идею. Основным языком программирования большинства Data Science специалистов является Python.

Python сам по себе очень простой язык, в нем реализовано множество библиотек для обработки и анализа данных. Популярные ранее R и Matlab сегодня встречается все реже и реже, поэтому, если вы только начинаете осваивать Data Science, сосредоточьтесь на изучении Python .

Базовые алгоритмы машинного обучения

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

На Coursera есть хороший курс с легкой и наглядной подачей материала, который поможет разобраться во всех этих аспектах. Несмотря на то, что в этом курсе используется Octave, а не Python, вам стоит его пройти. Здесь изучите основы и принципы машинного обучения, а также получите необходимые знания по линейной алгебре. Курс не требует какой-либо предварительной подготовки и подходит всем, кто собирается изучать Data Science.

Теоретическая часть курсов на Coursera бесплатная, а практическая — платная. Но, если у вас нет возможности заплатить за практику, вы можете поискать решения других студентов и специалистов на гитхабе. Кроме того, есть различные специализированные курсы от университетов — Стэнфорда, Гарварда, Мичигана, Университета Дюка и так далее.

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

Deep Learning

Имея базовое понимание принципов машинного обучения и знание Python, можно приступить к изучению Deep Learning. Это один из разделов машинного обучения, в основе которого лежит использование нейронных сетей. Тут я рекомендую к изучению курс Deep Learning Specialization .

Отдельные специализации

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

Сложно ли выучить Data Science

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

Если же решили перейти в Data Science из другой сферы, я бы рекомендовала решать практические задачи на Kaggle. Решайте их самостоятельно, разбирайте решения других людей — все это помогает развивать логику и аналитику. Обратите внимание на блоги различных Data Scientists, YouTube-каналы с разбором и описанием того, как они строили модель, какую логику вкладывали в решение.

Кроме того, в свободном доступе есть много данных, на которых можно практиковаться. Возьмите, к примеру, статистику по заболеваемости COVID-19 и попробуйте найти закономерности (такой конкурс недавно проводили на Kaggle). Вы можете посмотреть на чужие хорошие решения, разобрать логику и постепенно улучшать свои знания алгоритмов. При постоянной практике и наличии аналитического мышления очень скоро вы начнете делать первые успехи в Data Science.

Что почитать

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

И все же советую почитать:


Чтобы не пропустить новые статьи Ольги Мажары — подпишитесь на нее в телеграм-боте Ленты DOU .

Опубліковано: 30/11/20 @ 11:00
Розділ Блоги

Рекомендуємо:

5 міфів про фасилітацію. Для чого і коли вона потрібна
Cтворюємо універсальний підхід управління ІТ проєктом. Погляд менеджера
Scrum Guide помер. Нехай живе Scrum Guide
Навіщо знати декілька мов програмування
Як Junior-спеціалісту створити перше резюме. Покрокова інструкція з поясненнями