Студенты GeekUniversity соревнуются в разработке наиболее успешной модели ИИ на Python. Правда, бояться бунта машин рановато: все, что модели умеют — это предсказывать цены на недвижимость. О том, как проходят эти соревнования, почему для обучения ИИ используется язык программирования Python и о других интересных вещах нам рассказал специалист по Data Science Сергей Ширкин. Сергей имеет богатый профессиональный опыт в сфере финансов и IT, а в настоящее время работает в маркетинге и является деканом факультета искусственного интеллекта в GeekUniversity.
— Сергей, что студентам дает курс «Python для Data Science»? Что они изучают?
— В первую очередь курс дает представление об основных программных библиотеках для языка Python, которые используются в Data Science, а также помогает освоить базовые приемы работы с ними. Речь идет о библиотеках NumPy, Pandas, Matplotlib, Seaborn, Scikit-learn. Это основные библиотеки для обработки данных, математических алгоритмов и построения моделей.
С помощью этих библиотек уже можно создавать работающие модели искусственного интеллекта. Чтобы успешно работать с ИИ, необходимо знать библиотеки и уметь пользоваться ими, поэтому их изучение — важный этап в подготовке будущих Data Scientist’ов.
— Почему именно Python? В чем его преимущества в работе с ИИ и Data Science?
— Python — достаточно простой для изучения, но при этом чрезвычайно мощный язык. Кроме того, он является интерпретируемым, то есть отдельные команды преобразуются в исполняемый код непосредственно в процессе выполнения программы. Это несколько замедляет работу программ (в отличие от тех, что написаны на компилируемых языках), но зато позволяет запускать их без предварительной компиляции, как в Java или C++. Отдельные команды можно запускать прямо из среды разработки. Мы используем пакет Anaconda с Jupyter Notebook — этот софт дает дополнительные преимущества в работе с табличными данными, позволяет запускать команды и строить графики в ячейках данных, в целом облегчает работу.
Правда, у Python в Data Science и области обработки данных есть один конкурент — это язык R. Он тоже интерпретируемый, также позволяет запускать отдельные команды из командной строки и строить графики, обладает удобной средой разработки. Но его минус в том, что разработанные на R программы сложно использовать для промышленных решений. К тому же он довольно специализированный, ориентированный в основном на статистические вычисления. Python лишен такого недостатка: это полноценный, универсальный язык программирования, а разработка ИИ на Python уже не представляется сном, как это было раньше. Сегодня даже наблюдается «миграция» специалистов с R на Python — а в обратную сторону такого движения не происходит.
Наконец, для Python создано множество программных библиотек, которые упрощают разработку в сфере машинного обучения. Частично они написаны на том же Python, частично — на C++, они удобные, быстрые и непрерывно развиваются. Так что, если речь идет об искусственном интеллекте, то сегодня 95 % разработок ведется именно на Python.
— На курсе вы даете не только теоретические знания, но и практические навыки на примере конкретных задач?
— Да, наши студенты участвуют в своеобразном состязании: создают модель, которая учится прогнозировать цены на недвижимость.
Представьте агентство по продаже недвижимости, у которого есть база данных по квартирам, выставленным на продажу. Известны их характеристики: количество комнат, площадь, этаж. Кроме того, заданы характеристики районов: экологическая обстановка, какие магазины есть поблизости, каковы социальные условия и так далее. Цены некоторых квартир известны, а других — нет.
По совокупности этих признаков строится модель, которая учится предсказывать цены на квартиры. Ее задача — проанализировать данные о жилье, для которого стоимость указана, и выявить закономерности в ценообразовании. Затем модели предлагается контрольный набор данных, в котором отсутствует информация о ценах (эти данные есть только у преподавателя). Результаты работы модели — предсказанные цены на недвижимость — сравниваются с реальными. Чем точнее полученные цифры, тем выше качество работы модели.
Мы уже подвели итоги соревнования, и первые места в своих группах заняли Сергей Кабанов, Михаил Донченков, Арминэ Мороз и Рашид Исхаков. Студенты отлично поработали!
Кстати, построение удачной модели — не просто хорошее достижение, но и большое преимущество. Студенты, модели которых попали в топ, могут стать наставниками в GeekUniversity — помогать другим группам и потокам с предметом, который сами хорошо освоили. Наставничество позволяет не только поделиться знаниями, но и отточить навыки, глубже разобраться в предмете, поднять собственный уровень. Кроме того, это помогает подготовиться к собеседованиям при трудоустройстве.
— По завершении этого курса уже можно пытаться устраиваться на работу?
— Да, у нас есть студенты, которые окончили этот курс, разместили резюме на сайтах вакансий, и некоторым из них почти сразу прислали приглашения. Конечно, полученных знаний еще недостаточно, чтобы браться за любые проблемы. Но вполне можно решать задачи вроде нашей — такие, где требуется анализ табличных данных, прогнозирование результата. Студент, окончивший курс создания ИИ на Python, сможет воспользоваться теми же методами, чтобы построить аналогичные модели.
Курс дает не только быстрые знания о библиотеках, но и навыки для реальной работы. Человек быстро входит в курс дела и попадает в рабочую обстановку. Студенты практически с минимальными знаниями приходят на курс, а через месяц уже строят работоспособные модели.
— Что еще может оказаться преимуществом при трудоустройстве?
— Многие работодатели приветствуют, если соискатель на должность Data Scientist участвовал в соревнованиях и конкурсах. Большой плюс — участие в конкурсах Kaggle (примечание GB: kaggle.com — это веб-сообщество, в котором участники могут взяться за решение практических задач в сфере машинного обучения и искусственного интеллекта, например: за распознавание рукописного текста, анализ изображений, прогнозирование транзакций клиентов и подобных. За победу в состязании зачастую предусмотрены крупные денежные призы). Причем преимуществом является уже сам факт участия в конкурсе. Победить там достаточно сложно, так как участников всегда много. Даже войти в первые 10 % — это уже огромное достижение. Далеко не все специалисты, уже работающие в Data Science, принимали участие в конкурсах Kaggle!
Конечно, чтобы участвовать в состязании Kaggle, нужно знать библиотеки для Data Science и уметь пользоваться ими — в том числе теми, которые мы изучаем на курсе. Библиотек много, мы осваиваем здесь самые основные и востребованные. Вряд ли с полученными знаниями студент сможет создать модель для анализа текста или распознавания изображений (мы проходим это на факультете позже). Но работать с табличными данными он будет готов. Некоторые из наших студентов по окончании курса отправились на Kaggle и приняли участие в конкурсе (результат мне неизвестен, но сам факт — уже знаменательный).
— Где сегодня востребован Data Scientist?
— Практически во всех сферах. Преимущество специалиста по Data Science в том, что он сможет использовать свои навыки везде: например, сначала поработать в финансовом секторе, а потом с легкостью перейти в маркетинг — не потребуется изучать его с нуля, так как глубокие профильные знания не нужны. Принципы построения моделей универсальны, технологии работают везде одинаково, библиотеки используются одни и те же. Знания о предметной области, конечно, будут очень полезны, но их можно получить уже по ходу работы.
Специалисты по Data Science востребованы сегодня в ритейле, телекоме, у операторов связи, в создании поисковых систем, в промышленности и нефтяной отрасли. Специалист может попробовать себя в совершенно разных сферах. Поработал в продажах, захотелось нового — занялся компьютерным зрением или обработкой естественного языка. У нашего выпускника много дорог!
Заработок специалиста в крупных городах начинается примерно от 70 тысяч рублей в месяц. Это средняя зарплата спеца по Data Science на Python и Machine Learning, у которого нет опыта работы. Через год-два можно найти более прибыльное место. С тремя годами опыта человек может рассчитывать на зарплату в 200 тысяч, с пятью — 250 и более.
— Какие знания нужны для учебы на курсе?
— Потребуются основы программирования на Python. Еще надо уметь находить производные, иметь понятие о матрицах, векторах — но глубокого погружения в математику на этом курсе у нас нет. Мы не объясняем здесь работу с алгоритмами, даем только самое общее представление. В последующих курсах будем изучать математический анализ, линейную алгебру, статистику и все то, что необходимо для подробного разбора алгоритмов, а также сами алгоритмы машинного обучения, нейронные сети и многое другое.
— Спасибо за интересный рассказ! Желаем вам новых успехов, а студентам — побед и больших достижений!
Пройти обучение
Комментарии