Изнурительно долгое ожидание превратилось в сеанс продуктивности
№2. Codeworm
Машинное обучение - это итеративный процесс. Самое болезненное, что каждая итерация может быть мучительно долгой. Обучаете ли вы нейронную сеть, настраиваете гиперпараметры или проводите эксперимент в сотый раз, это займет время. Учитывая, что наборы данных не становятся меньше, ваше будущее машинного обучения потребует от вас пристального внимания к маленькому уголку ячейки записной книжки.
Итак, как лучше провести это время, а не ждать? В этой статье я собираюсь ответить именно на этот вопрос. В частности, я покажу вам 5 занятий, которые повысят ваши технические навыки и позволят вам расти профессионально как специалист по данным. Это короткие и увлекательные занятия, каждое из которых выбрано с учетом продолжительности среднего пробега модели.
Прежде чем ты начнешь…
Перед началом обучения любой модели, настройки гиперпараметров или эксперимента важно подготовиться. Перед тем, как нажать «Выполнить», вы должны убедиться, что каждая выполняемая ячейка и блок кода обеспечит ожидаемый результат. В противном случае вы потратите время зря.
Прежде чем углубиться, необходимо учесть множество соображений, и в этом блоге по Machine Learning Mastery рассказывается, как лучше всего спланировать каждый эксперимент и как правильно принимать решения.
Кроме того, если вы обучаете модели в Jupyter Notebooks, было бы неплохо включить уведомления ячеек. Они особенно пригодятся, когда вы будете выполнять задания, которые мы обсудим в этой статье. Вы точно не хотите пропустить завершение казни, увязнув в процессе. Вот отличная статья Parul Pandey, в которой показано, как включить эту функцию в классических Jupyter и Jupyter Lab. А теперь приступим!
1️⃣. Профессиональный
Наиболее упускаемый из виду аспект науки о данных - это создание сетей и формирование сильной профессиональной идентичности. На мой взгляд, всесторонний специалист по данным должен иметь следующие 4 вещи как часть своего профессионального имиджа:
- Профессиональная страница LinkedIn
- Регулярно обновляемое резюме
- Страница GitHub, которая выделяется
- Сильное портфолио
Они имеют решающее значение, чтобы выделиться среди толпы и эффективно продемонстрировать свои навыки другим. Успешное развитие и оттачивание профессионального имиджа требует времени, и, честно говоря, это может быть довольно скучно. Причина в том, что написание резюме профиля LinkedIn или разработка веб-сайта-портфолио - это немного за пределами зоны комфорта многих специалистов по данным, и это понятно.
Вы можете начинать с малого и делать маленькие шаги каждый раз, когда застреваете в ожидании во время экспериментов с машинным обучением. Начните загружать профессиональное изображение в свой профиль LinkedIn и создавать баннер LinkedIn, который соответствует вашей личности. Напишите свое сводное предложение в LinkedIn за предложением и превратите его в лучшее описание себя за неделю. Обновите раздел своего опыта так, чтобы показать количественные достижения и прогресс. Если вам (как и мне) не нравится LinkedIn, посмотрите это отличное видео о создании исключительного профиля LinkedIn.
В следующий раз, когда вы будете тренировать регрессор XGBoost, найдите время и обновите свое резюме. Я уверен, что вы работали над крутыми проектами, и пришло время включить их в качестве хорошего резюме. Это особенно важно для новичков, не имеющих большого опыта. Есть много отличных советов по созданию отличного резюме, но я построил свой, используя этот шаблон от Теренса Куо, который использовал его для интервью с компаниями FAANG.
Во время прогона модели зайдите в свою учетную запись GitHub (пора, потому что вы не заходили в нее в течение каких… месяцев?). К сожалению, это касается многих специалистов по обработке данных, особенно новичков. Мы не пишем много производственного кода и не занимаемся разработкой программного обеспечения, поэтому наш профиль GitHub сидит без дела, а наш график вкладов выглядит менее бесцветным, чем Мертвое море. Однако эта потрясающая статья Мартина Хайнца показывает, как можно превратить свою домашнюю страницу GitHub в полноценное портфолио или резюме.
Вы также можете сделать еще один шаг и создать и разместить свой собственный веб-сайт с портфолио. Наличие отличного портфолио, демонстрирующего ваши навыки и проекты, является универсальным требованием для любого, кто пишет код. Вы можете ознакомиться с этим руководством от Хуен Тран, в котором рассказывается, как создать минималистичный веб-сайт-портфолио. Замечательно то, что вы можете работать над этим короткими сеансами во время выполнения кода.
2️⃣. Codeworm
Без чтения невозможно стать великим писателем. То же самое относится и к кодированию - чтобы научиться этому, вам нужно познакомиться с кодом, написанным другими.
С тупо-простыми в освоении библиотеками слева и справа у нас может сложиться ложное впечатление, что мы хорошо умеем кодить. Но мы не можем понять, насколько мы плохие на самом деле, не сравнивая себя с другими.
Следя за вкладкой блокнота, начните читать чужие работы. Существует множество платформ и веб-сайтов для поиска высококачественного кода. Мне больше всего нравится читать ядра Kaggle, особенно те, которые отправляются на ежемесячные табличные соревнования на игровых площадках. Поскольку соревнования длятся всего месяц, ноутбуки, как правило, содержат самый последний обзор того, что работает, а что не работает в сегодняшней науке о данных.
Разбейте тетради вилкой, поиграйте с ними. Возможно, вам не удастся найти большой прорыв так часто, но вы гарантированно узнаете какой-нибудь удобный трюк или новую функцию, которые сделают вашу жизнь проще.
Также есть официальная галерея Streamlit. Размещенные там проекты представляют собой тщательно подобранную высококачественную работу в области машинного обучения и глубокого обучения, относящуюся ко многим отраслям. Вы можете многое узнать о машинном обучении на производственном уровне и лучших практиках развертывания.
Мы все доходим до того, что совсем не улучшаемся с точки зрения жесткого кодирования. Чтение чужого кода может показать нам новые способы взаимодействия со стандартным API наших любимых пакетов и фреймворков. Станьте кодовым червем, сделав привычкой читать код во время работы над проектами.
3️⃣. Автор
Нет, этот раздел не о том, чтобы обвинять вас в участии в пакетах и фреймворках с открытым исходным кодом. Для многих специалистов по обработке данных и инженеров машинного обучения, а также для меня, я знаю, что отправка запросов на вытягивание и участие в обсуждениях проблем на GitHub - это ужасно. Я не буду говорить вам, насколько наука о данных обязана сообществу разработчиков ПО с открытым исходным кодом за такие замечательные библиотеки, как Scikit-learn, Numpy, Pandas и т. Д.
Это занятие о создании репутации и развитии ваших навыков, помогая другим. Вместо того, чтобы стрелять, как решение проблем с вашими любимыми пакетами на GitHub, вы можете начать с малого. Стимулируйте свой мозг и узнавайте новое, отвечая на вопросы на сайтах QA.
Отфильтруйте вопросы в StackOverflow по темам, которые вам наиболее удобны, и начните писать свои собственные варианты ответов. Неважно, сколько раз на вопросы были даны ответы - важно, чтобы вы изложили свои идеи в письменном виде. Написание того, что вы знаете, укрепляет ваши знания или показывает, насколько вы не знаете по этой теме. Ответ на вопрос занимает всего несколько минут, и вы можете задавать несколько вопросов в день, просто набрасываясь на них, пока тренируете CNN.
Кроме того, не ограничивайтесь только ТАК. Если у вас есть обширные знания в области теории машинного обучения и статистики, вы можете ознакомиться с Cross-Validated. Если вы опытный профи и можете помогать другим в карьере, отправляйтесь и доминируйте в пространствах Quora.
Какую бы платформу вы ни выбрали, сделайте свое имя там. Помогите и расскажите другим о вашем собственном бренде и идеях. Это гарантирует, что вы выделитесь среди толпы и у вас будет что добавить в свое резюме.
(Кстати, одна из самых глупых вещей, которые я говорил себе в прошлом, и я уверен, что многие другие продолжают это делать, - это то, что не осталось хороших вопросов, на которые нужно ответить. Это просто смешно, потому что, только на StackOverflow каждые 14 секунд задается новый вопрос…)
4️⃣. Готовый
Всем нам есть чему поучиться. Сложные математические темы, контролируемые алгоритмы обучения, глубокий мир глубокого обучения - все это заставляет нас быть очень занятыми, когда мы пытаемся найти работу в этой области. Как только мы начинаем процесс поиска работы, мы понимаем, что нам также нужно подготовиться к собеседованию. Это означает множество ночных алгоритмов обучения, решение практических задач на Python и SQL, все сложные, но интересные вещи. Их достаточно, чтобы выбросить из головы большую часть с трудом заработанных знаний о данных, потому что мы так сосредоточены на поиске работы.
Но не обязательно начинать этот процесс прямо перед попыткой устроиться на работу. Вместо того, чтобы тратить время зря, вы можете войти в LeetCode и начать решать одну проблему за раз, пока ваша машина тренирует вашу модель. Это гарантирует, что вы не позволите своему мозгу ржаветь и напрягать мускулы для решения проблем при изучении основных тем в области науки о данных.
Некоторые вопросы по LeetCode могут быть довольно сложными, поэтому вы можете потратить больше времени, чтобы решить один вопрос. Полезный совет - рисовать решения, используя ручку и бумагу (старая школа), а не бесцельно писать код.
Сделав это привычкой каждый раз, когда вы выполняете тяжелые рабочие нагрузки, вы сможете гораздо раньше подготовиться к поиску работы.
5️⃣. Снимайте вещи со льда
Я уверен, что мы все сталкивались с этим - вы читаете статью или видите твит о какой-то замечательной библиотеке или теме и говорите себе: «Я должен это проверить!». Вы добавляете страницу в закладки, и удивляйтесь, удивляйтесь, она остается там месяцами, прежде чем вы, наконец, дойдете до нее (или никогда).
Что ж, можно сразу избавиться от этой вредной привычки. В следующий раз, когда вы будете настраивать гиперпараметры, посмотрите новую библиотеку, которую вы недавно представили. Вы тренируете новую модель? Отлично, посмотрите, что сохранили плейлист YouTube по глубокому обучению.
Это очень эффективный способ делать то, что вы давно замораживали. Например, я узнал о Plotly таким образом, и я серьезно взгляну на него в эти дни, но я знаю, что снова буду разочарован (Почему? Я расскажу об этом в следующей статье). Я также планирую проверить 3 новые библиотеки, которые сейчас довольно популярны на Kaggle - CatBoost, LightGBM и Optuna. Я также добавил в закладки несколько тем по глубокому обучению в Твиттере.
Одно можно сказать наверняка - я никогда не смогу заниматься этими делами в рамках своего обычного графика. Я подписался на отличные МООК и должен писать эти статьи. Лично я могу наверстать упущенное со своим списком желаний только тогда, когда я жду, когда что-то закончится.
Резюме
Обучение модели и настройка гиперпараметров не должны быть скучными. Вы можете превратить долгое ожидание в продуктивные сеансы с помощью простых действий. Те, которые мы обсуждали сегодня, помогут вам развить свои технические навыки и развить свою профессиональную идентичность. Мир науки о данных является конкурентоспособным, и вы должны использовать любую возможность инвестировать в себя. Спасибо за чтение!