Недавно я прошла специализацию Data Science на платформе Яндекс.
Практика и хочу написать текст, который был бы мне полезен 8 месяцев назад, то есть обзор учебной программы, что мне понравилось или наоборот сделало не оправдать моих ожиданий, а также поделиться некоторыми приемами, которые могут сделать обучение более эффективным.
Содержание:
- Почему наука о данных?
- Фон
- Структура программы Яндекс.
Практикум
- Организация учебного процесса
- Что было круто
- Какие ожидания не оправдались?
- А что насчет трудоустройства?
- Как сделать обучение более эффективным
- Общее впечатление
Почему наука о данных?
Если вы это читаете, то наверняка уже ответили для себя на этот вопрос.Мне сфера ДС кажется неким глобальным конвейером для автоматизации применения научного метода — то есть для сбора наблюдений и получения на их основе моделей с предсказательной силой.
И то, насколько Data Science изменила и будет продолжать менять наш мир, я думаю, можно сравнить с теми изменениями, которые принесла автоматизация ручного труда.
И когда мне в голову пришли эти мысли, я решил, что очень хочу быть активным участником этих преобразований.
Фон
Мой опыт онлайн-обучения начался осенью 2018 года с попытки пройти специализацию «Машинное обучение и анализ данных» в МФТИ и Яндексе ( https://datasciencecourse.ru/ ).Тогда, только воодушевившись идеей изучения этой «чертовой магии ИИ», я решил, что полностью освою учебу параллельно с нынешней работой SMM-менеджера.
Но курс оказался для меня не по зубам, думаю, на это повлияла и моя низкая математическая подготовка и нулевой опыт программирования.
Тогда я понял, что сначала мне нужно подтянуть математику, я прошел онлайн-курс «Современная комбинаторика» МФТИ на Coursera ( https://www.coursera.org/learn/modern-combinatorics/home/info ) с замечательным харизматичным лектором Андреем Райгородским.
Впервые в жизни я понял, как можно получать удовольствие от решения математических задач и кайфовать от красоты понятных доказательств.
После этого был курс по теории вероятностей в Степике от Центра компьютерных наук с преподавателем Александром Храбровым ( https://stepik.org/course/3089/syllabus ).
Курс мне тоже очень понравился, было много интересных задач, решение которых запечатлело в моей голове некоторое понимание того, как работают такие зачастую нелогичные вещи, как случайные величины и их распределения.
А заодно практиковал Python, используя конспекты курса для студентов МФТИ «Алгоритмы и структуры данных в Python» другого прекрасного преподавателя Константина Хирьянова ( https://www.youtube.com/playlistЭlist=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0 ) Учиться мне удавалось в основном по вечерам и обучение продвигалось крайне медленно, например, прохождение курса теории вероятностей, в описании которого указано 37 часов, заняло у меня около четырех месяцев.
И после двух лет такого фонового обучения я начал понимать, что состарюсь быстрее, чем добьюсь какого-либо серьезного продвижения к своей цели.
Потом, по совпадению, финансирование проекта, в котором я был СММ, начало сворачиваться.
И тогда я решил пока не искать новую работу, а вывести свои сбережения, которых хватило примерно на год на оплату аренды и обеспечение базовых потребностей, и поступить на платную специализацию Data Science стоимостью около 100 тысяч рублей, с реальными учителями, одноклассниками и сроками.
чтобы у вас больше не было возможности прогуливать учебу и сдавать все вовремя.
С выбором специализации я определилась где-то за неделю, на самом деле на рынке сейчас всего около трёх-четырёх подобных программ, с примерно схожим набором курсов, но по срокам и объёму практикум подошел мне лучше всего , а еще меня привлекло то, что к подготовке программы ШАД (Школа анализа данных) приложил руку, а это уже определенный признак качества.
Структура программы Яндекс.
Практикум Сначала я опишу в общих чертах основные блоки, из которых построен курс, а затем остановлюсь подробнее на некоторых моментах.
Общая структура Специализации выглядит примерно так:
На момент моего поступления в программе было три модуля, содержащих в общей сложности 15 курсов, 2 готовых проекта и один итоговый проект. Один курс соответствует определенному навыку, которым должен обладать средний младший специалист по данным.
Тема — это раздел курса.
Каждая тема в свою очередь разделена на несколько уроков.
Например: Курс – Статистический анализ, тема – Описательная статистика, урок – Частотные гистограммы.
Урок — это элементарная частица специализации; он состоит из теории и закрепляющей практики.
Теория состоит из пары страниц текста с примерами кода, иллюстрациями и поясняющими диаграммами.
В качестве практики вам необходимо выполнить задание в онлайн-тренажере, который представляет собой окно с открытым интерпретатором Python в левой части того же экрана, где перед глазами находится задание и теория.
Студенческое рабочее место.
Для пояснения добавлены пунктирные обозначения.
В конце каждого курса необходимо выполнить самостоятельный проект, в котором студент демонстрирует навыки и знания, полученные в ходе курса.
Технически проект представляет собой Jupyter Notebook, запущенный через JupyterHub, развернутый на сервере Яндекса, в котором студент пишет код решения задачи.
Как правило, задача проекта состоит из определенного набора данных и описания того, что необходимо получить в результате.
Интерфейс Jupyterhub во время запуска проекта После выполнения задачи по нажатию соответствующей кнопки блокнот с проектом отправляется рецензенту, который просматривает ваш код, проверяет, выполнены ли задачи в полном объеме и (иногда) дает полезные рекомендации и комментарии по улучшению кода.
.
Организация учебного процесса
Завершение курса и завершение проекта — это один спринт. Чаще всего на один спринт отводится две недели — неделя на теорию и практику на симуляторе и еще неделя на выполнение проекта.Сам термин «спринт», похоже, произошел от таких методологий разработки, как Agile и им подобных.
И вообще, насколько я могу судить, весь учебный процесс постарались завернуть во что-то близкое к разработке продуктов в ИТ.
Основное взаимодействие с командой программы происходит через корпоративный мессенджер Slack, который представляет собой что-то вроде гибрида мессенджера и классического форума, с возможностью интеграции с планировщиками задач и другими сервисами.
При регистрации в программе выдается приглашение в рабочую среду Slack для студентов потока; В рабочей области создано несколько постоянных веток:
- с общей информацией о программе от команды Мастерской
- обмениваться литературой и ссылками на материалы,
- для неформального общения между студентами.
Студентов нашего потока сопровождала команда в составе:
- Куратор, который занимался всеми организационными вопросами;
- Два наставника – опытные специалисты в предметной области, делятся опытом, проводят групповые онлайн-семинары, могут быть сравнимы с научным руководителем;
- Два преподавателя – тоже опытные специалисты ДС, которые отвечают на вопросы по проектам и симулятору;
- Старшекурсник – студент предыдущего потока, который берет на себя часть работы по ответам на текущие вопросы;
- Рецензенты – проверка независимых проектов
Что было круто
Подача материала.На протяжении всей программы вы не перестанете получать от нее удовольствие.
Сразу видно, что над контентом работала большая команда профессионалов, которые не только предоставляют хороший учебный материал, но и думают о том, чтобы сделать его живым и гуманным.
На иллюстрациях присутствуют забавные персонажи и тонкий юмор, как в самих заданиях, так и в текстах, появляющихся после их успешного выполнения.
Я должен сказать, что Мастерская сделала безопасную ставку; с момента прохождения бесплатной части сразу влюбляешься в такое изложение и стиль повествования нисколько не разочаровывает на протяжении всей остальной программы.
Пример иллюстрации переобученной модели на тему метрик классификации.
Данные.
В каждом проекте используются реальные наборы данных, которые действительно интересно изучать, никаких вам Титаников и скучных ирисов :) Некоторые данные предоставлены партнерами Мастерской, а то и собраны из данных сервисов Яндекса.
Атмосфера.
Также стоит отметить непринужденный стиль всего общения, от Куратора до рецензента - здесь не душно :)
Какие ожидания не оправдались?
Признаюсь, я ожидал от курса, что это будет что-то вроде научно-популярного изложения лекций Константина Воронцова в ШАД ( плейлист на YouTube ), чтобы основные методы машинного обучения были разобраны с нуля, с наглядными иллюстрациями и популярным языком, а в идеале мы бы еще и сами написали их реализации на Python, что называется, с нуля.Сейчас я, конечно, понимаю, что за отведенное на всю программу время реализовать это чуть менее фантастика, чем загрузить все знания ДС прямо в голову через порт, как в фильме «Матрица».
И конечно, при таких больших ожиданиях меня и еще нескольких учеников моего класса постигло некоторое разочарование.
Тем не менее, мне показалось, что ребятам из Мастерской удалось 70% описанного.
Первые два модуля практически полностью оправдали мои ожидания.
До определенного момента презентация шла так, что человек, пришедший с нуля, мог не только научиться осваивать фит-предсказание, но и понимать, что там происходит внутри, просто уделяя изучению 2-3 часа в день.
В этом плане мне особенно понравился курс линейной алгебры; было даже написание модели линейной регрессии с нуля.
Курс численных методов также продолжал сохранять свои позиции; методы градиентного спуска и повышения градиента обсуждались довольно подробно.
Но начиная с середины последнего модуля, примерно с курса «Анализ временных рядов», по моим ощущениям, глубина погружения стала заметно уменьшаться.
Наиболее поверхностно, на мой взгляд, было представлено «современное состояние» — такие вещи, как трансформаторы и модели Берта в обработке естественного языка и глубокие сверточные сети типа ResNet. Что в целом логично, материал в каждой из этих тем предназначен для отдельного модуля, если не для специализации.
Однако во время групповых зумов на онлайн-консультациях с наставниками всегда можно было задать вопрос и мы часто обсуждали сложные вопросы, выходящие за рамки программы.
Благодаря этому задел на будущее сохранялся и интерес к его более детальному пониманию только возрастал.
Сейчас я немного передумал и думаю, что в некоторых случаях может быть не так уж и плохо сначала научиться пользоваться тем или иным методом, имея поверхностное представление о том, как он работает, а затем, при необходимости, разобравшись в нем более детально.
Ведь область знаний Data Science настолько обширна, что попытки понять все с самых азов могут просто никуда не продвинуться и растратить весь свой энтузиазм.
А что насчет трудоустройства?
За пару недель до окончания программы студентов подключают к программе акселерации, где им дают практические советы по написанию резюме, обучают базовым вопросам на собеседовании, учат пользоваться github и писать сопроводительные письма.Преимущество программы в том, что проверкой резюме занимаются действующие HR-специалисты, имеющие опыт подбора персонала в сфере ДС.
Мне удалось оценить рекомендации по написанию резюме только на HeadHunter. В ожидании финального спринта я решил одновременно начать двигаться к трудоустройству и в качестве теста составил резюме и откликнулся примерно на 10 вакансий.
Большинство компаний отказались от приглашения на собеседование, но было также несколько звонков от HR, а одна компания прислала тестовое задание.
Тест получился интересным и довольно обширным.
Он содержал набор данных из 185 таблиц без специального описания данных, а только с указанием, что это параметры оборудования и необходимо научиться прогнозировать значения целевого столбца с указанием типа аварии на оборудовании.
.
Необходимо было самостоятельно придумать правильную постановку задачи, выбрать метрику и учесть специфику временных рядов при формировании выборки.
Задача меня настолько увлекла, что я уже начал опаздывать на итоговый проект в Мастерской, но спортивный азарт и пара литров кофе помогли мне выполнить ее вовремя.
В итоге по результатам тестирования я попал на собеседование и случайно получил предложение на должность младшего специалиста в компании, занимающейся ИТ-интеграцией в нефтяной отрасли.
Трудно сказать, насколько этот опыт отражает качество программы акселерации, возможно, это просто какой-то выброс, но мне показалось, что спрос на специалистов ДС есть, по крайней мере, в Москве, и если вы готовы поработать некоторое время на должности начального уровня, устроиться на работу вполне возможно.
Как сделать обучение более эффективным
В направлении психологии, изучающем у людей память и обучаемость, есть такое понятие – желаемые трудности ( https://en.wikipedia.org/wiki/Desirable_difficulty ), суть явления в том, что, усложняя процесс обучения, материал усваивается лучше.Например, можно увеличить интервалы между повторением материала и решением задачи или, например, подтолкнуть учащихся к самостоятельному выводу теоремы вместо запоминания готовых правил; работает даже написание заданий менее читаемым шрифтом.
Но главное здесь — сохранять баланс и не превращать учебу в адский стресс, ведь тогда мотивация и продуктивность могут только проседать.
В своем преподавании я также пробовал применять эти приемы, например:
- Я не смотрел подсказки по задачам, пока не рассмотрел все варианты, которые мог придумать;
- Код из примеров я не копировал, а старался запоминать и писать по памяти;
- Я не смотрел разборы сложных моментов в проектах и старался не читать спойлеры в групповом чате перед отправкой решения;
- Для каждого курса я создал отдельный ноутбук «Юпитер» и вел в нем полные записи с решением задач.
Это оказалось удобно еще и потому, что позволило нам сэкономить много времени, быстро проверив, работает ли код, не дожидаясь ответа симулятора несколько секунд. С помощью таких заметок тоже может быть очень удобно освежить тему в памяти, но, конечно, если вы придерживаетесь метода желаемых трудностей, то лучше также попытаться запомнить все самостоятельно.
- Решал проекты на локальной машине.
Хотя Яндекс предоставляет всю необходимую среду для реализации каждого проекта, может быть полезнее все пощупать своими руками и научиться все устанавливать самостоятельно.
Так, например, проходя курс по SQL, я научился устанавливать спарк под Windows, а на курсе по компьютерному зрению я сначала прыгал с бубном, заставляя свой ноутбук использовать для вычислений графический процессор, чтобы чтобы не стоять в очереди к серверу Яндекса, а потом мне пришлось осваивать облачный сервис Google Collaboratory, предоставляющий графические процессоры для вычислений.
Общее впечатление
Специализация Data Science Яндекс.Практикум позиционируется как кузница младших специалистов по данным, которые после прохождения сразу могут отправиться решать пусть и не самые сложные, но реальные задачи извлечения добавленной стоимости из данных.
По моим впечатлениям, это довольно близко к истине, но при соблюдении главного условия – параллельно с программой вам придется много изучать самостоятельно и понимать то, что кажется непонятным.
Если вы с самого начала подойдете к этой программе с таким настроем и выделите время для дополнительного изучения и экспериментирования, вы сможете максимизировать пользу от обучения и избежать разочарования.
Вот и все, что я хотел рассказать о своих впечатлениях от Мастерской, надеюсь, что этот текст будет кому-то полезен.
А если вам интересно продолжение, как будет развиваться мой дальнейший путь в DS, то подписывайтесь на меня здесь, это будет мотивировать меня публиковать что-то чаще.
И самое главное, не бойтесь трудностей и ошибок, ведь они добавляют отметины жизненного опыта в набор данных, на которых обучаются нейронные сети вашего мозга.
Теги: #Машинное обучение #Образовательный процесс в сфере ИТ #наука о данных #личный опыт #Яндекс.
практикум #специализация
-
Леонардо Да Винчи Учит Писать Резюме
19 Oct, 24 -
Ваша Днк Уже Внесена Во Все Базы Данных.
19 Oct, 24 -
Необразованная Молодежь. Жизнь В Глубинке
19 Oct, 24