newsmode
search
Меню
arrow_back Назад

How to Keep Learning about Machine Learning

auto_awesomeКраткое саммари

Статья Eugene Yan о том, как продолжать учиться в быстро развивающейся области machine learning. Автор предлагает пять практических стратегий: пробовать новые инструменты в каждом проекте, делать личные проекты на пределе своих возможностей, посещать митапы и конференции, регулярно читать научные статьи и находить менторов, которые на несколько шагов впереди. Красной нитью проходит идея письменной фиксации полученных знаний — через блог-посты, демо или обзоры конференций. В завершение автор призывает сохранять «ум новичка» и каждую неделю осваивать что-то новое, будь то статья, инструмент или прототип.

Как продолжать учиться в области Machine Learning

[ learning career machinelearning ] · 6 мин. чтения

Отредактированная версия этого эссе была опубликована в The Batch — рассылке DeepLearning.AI. Здесь представлена оригинальная версия — какая вам нравится больше?

Machine learning развивается стремительно. Word2vec (2013) заменил one-hot encoding векторными представлениями слов. Трансформеры и механизм self-attention (2017) распараллелили ранее последовательный процесс обучения и были внедрены в большинство задач NLP и даже в компьютерное зрение и рекомендательные системы. Spark (2014) вытеснил Hadoop как главный инструмент для работы с big data, а TensorFlow (2015) и PyTorch (2016) пришли на смену Theano и Torch.

Как поспевать за потоком новых статей и инструментов? Вот что помогало мне на пути изучения machine learning (да и вообще чего угодно).

Пробуйте что-то новое в каждом проекте. Если вы обычно используете pandas для обработки данных — попробуйте Spark или Dask. Если привыкли полагаться на деревья решений — поэкспериментируйте с deep learning. Ваши эксперименты могут не принести немедленной пользы в текущем проекте, но проложат путь к решению ранее неподъёмных задач (например, big data, не помещающиеся в память, или machine learning на неструктурированных данных).

Независимо от того, сработало что-то или нет, поделитесь полученными знаниями с командой — пусть и они извлекут пользу из вашего исследования. Десятиминутного демо или короткого поста в блоге будет достаточно. Только следите за балансом между исследованием и эксплуатацией (explore-exploit trade-off) и ограничивайте себя по времени, чтобы проект не сошёл с рельсов.

Делайте личный проект, который вас растягивает. Это практический способ получить практический опыт за пределами работы. Это может быть изучение нового языка программирования, новый фреймворк или создание приложения. Выбирайте проект, который совпадает с вашими интересами — так будет веселее и вероятнее, что вы доведёте его до конца. Кроме того, хорошие проекты — пугающие: если вы не боитесь потерпеть неудачу, значит, задача, скорее всего, недостаточно сложна, чтобы дать ощутимый рост. Лично меня мотивирует завершать проекты, в которых я могу помочь другим, узнать что-то новое и получить удовольствие от процесса.

Кроме того, выберите темп, который устойчив именно для вас, вместо того чтобы пытаться делать как можно больше проектов. Я обычно берусь за один проект в год и завершаю его за три-шесть месяцев. Это оставляет место для отпусков и периодов, когда работа или жизнь становятся особенно напряжёнными. Отслеживайте прогресс через майлстоуны/фичи и измеримые результаты (например, строки кода, совершённые ошибки и извлечённые уроки). Завершите проект, поделившись опытом в блоге или на митапе — это закрепит знания и, в качестве бонуса, пополнит ваше портфолио.

Посещайте митапы и конференции. Вы сможете послушать и пообщаться с людьми, которые двигают границы исследований и применения machine learning в индустрии. Обычно я узнаю о таких мероприятиях от коллег и из технического Twitter. Также можно искать на meetup.com. Существуют и специализированные конференции по инструментам (например, Spark Summit) и доменам (например, RecSys), которые, как правило, более глубокие. Я стараюсь посещать одну-две конференции в год и один митап в месяц.

После конференции или митапа закрепите полученные знания, написав о том, что узнали. (Замечаете закономерность с письмом?) Например, вот несколько отличных обзоров RecSys 2021. А если вы услышите о технике или инструменте, который вас вдохновил, — найдите время применить его на работе или в личном проекте, чтобы углубить обучение.

Читайте статьи — регулярно. Это один из самых простых способов оставаться в курсе и расширять кругозор. Если вы ещё этого не делаете — проводите литературный обзор для каждого нового проекта на работе: как другие решали похожие задачи? Какие были трудности и что сработало? Несколько дней обзора литературы предотвращают ненужное изобретение велосипеда и экономят недели работы. Другой способ выработать привычку — организовать группу чтения статей в команде. Раз в две недели кто-то выбирает релевантную статью для презентации и обсуждения. Для начала — вот список статей и техблогов о применении machine learning в индустрии.

Если вы только начинаете формировать эту привычку, чтение научных статей может пугать. Мне помогает классический подход в три прохода:

Первый проход (5–10 минут): Релевантна ли статья моей текущей работе? Второй проход (1 час): В чём основная идея статьи? Третий проход (4–5 часов): Как я могу мысленно воспроизвести статью?

Найдите менторов, которые на несколько шагов впереди. Кем вы видите себя через 3 года? В аналитике, исследованиях или MLOps? Ваша цель повлияет на то, что вы изучаете. Мне помогало консультироваться с людьми, которые были на 2–3 шага впереди: что вы изучили и продемонстрировали для перехода (например, от дата-аналитика к data scientist)? Какими навыками и качествами обладают наиболее эффективные люди на этой позиции? Ключ в том, чтобы найти людей, которые лишь немного впереди. Например, если вы хотите перейти из data engineering в ML engineering, человек, совершивший такой переход недавно, даст более актуальный совет, чем CTO или руководитель ML-направления.

Для начала обращайтесь к одному человеку в месяц. А если вы нашли общий язык, предложите встретиться снова через квартал-два, чтобы поделиться прогрессом. Считайте их своими неформальными менторами. Начните с поиска менторов внутри компании — у них тот же контекст и они смогут дать более релевантные советы. LinkedIn, будучи онлайн-резюме, тоже полезный ресурс. А вот примеры вопросов и ответов от менторов в сфере ML.

И наконец, развивайте «ум новичка». Независимо от опыта и экспертизы, мы можем сохранять ум новичка, оставаясь любопытными и постоянно пробуя новое — человек с умом новичка, скорее всего, уже практикует какую-то комбинацию перечисленных выше подходов.

В уме новичка множество возможностей, в уме эксперта — лишь немногие. —Shunryu Suzuki

Поэтому я бросаю вам вызов: оставайтесь новичком и каждую неделю узнавайте что-то новое — будь то чтение статьи, освоение нового инструмента или создание прототипа. Через год-два вы удивитесь, обнаружив, что задачи, которые раньше казались недосягаемыми, теперь решаются играючи.

P.S. Какие ещё способы обучения вы нашли полезными?

Благодарности: спасибо Yang Xinyi за вычитку черновиков.

Если этот материал оказался полезен, пожалуйста, цитируйте его так:

Yan, Ziyou. (Jan 2022). How to Keep Learning about Machine Learning. eugeneyan.com. https://eugeneyan.com/writing/how-to-keep-learning/.

или

@article{yan2022learning, title = {How to Keep Learning about Machine Learning}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2022}, month = {Jan}, url = {https://eugeneyan.com/writing/how-to-keep-learning/} }



Присоединяйтесь к 11 800+ читателям, получающим обновления о machine learning, RecSys, LLM и инженерии.