С этой недели я официально стал специалистом по машинному обучению (технически, прикладным ученым, что эквивалентно здесь, в Amazon). Это кульминация пути, который начался примерно 2 года назад, когда мне посчастливилось присоединиться к команде ученых в исследовательском отделе машинного обучения Amazon в Индии, несмотря на то, что в то время я был инженером-программистом.

Люди регулярно спрашивают, как я сделал этот шаг (у меня нет степени магистра или доктора наук), и они выражают аналогичные амбиции работать в области прикладного машинного обучения или исследований в области машинного обучения. Этот пост — мой ответ; в нем подробно описаны ключевые идеи и предложения, которые помогли мне реализовать мою цель. Если вы подумываете о подобном переключении в своей карьере, я надеюсь, что мои слова смогут вам помочь. Эти мнения являются моими собственными и не отражают точку зрения моего работодателя.

При моем переходе учитывались четыре общих аспекта: личные инвестиции, развитие навыков машинного обучения, знание работы и обучение тому, как стать ученым.

Личные инвестиции

Признайте возможность

До перехода в отдел машинного обучения я около 2 лет работал инженером по разработке программного обеспечения (SDE). У меня было несколько крупных запусков, и я готовился к продвижению по службе. Однако я устал работать в программном обеспечении, когда машинное обучение казалось гораздо более интересным, динамичным и меритократичным.

Примерно в это же время появилась внутренняя вакансия для «инженера-исследователя»: гибрид между SDE и ученым. Я протянул руку. Через четыре собеседования мне сделали предложение… на моем нынешнем уровне. Это означало, что мне потенциально пришлось отказаться от двух лет карьерного роста в качестве SDE. После приступа нерешительности я понял, чтоя всегда могу вернуться на свою предыдущую работу, если потерплю неудачу; это убедило меня в целесообразности перехода.

Я скажу, что мне повезло, что у меня не было семьи, которую нужно было бы содержать, или кредитов, которые нужно было бы выплачивать; Я мог бы принять другое решение в тех случаях.

Имейте людей, которые поддерживают вас

Помимо моей семьи, мой менеджер Нихил Расивасиа и многие коллеги помогли мне добиться успеха. Внешнее подтверждение вашего прогресса не обязательно, но очень помогает! Путь долгий, и поддержка поможет вам не сбиться с пути.

Развитие навыков машинного обучения

Получите глубокое понимание машинного обучения

Пройдите курсы для выпускников (Intermediate/Expert на Coursera), на самом деле делайте заметки и выполняйте все упражнения. Будь ботаником. Это трудно сделать, жонглируя сроками работы, но если вы хотите быть ученым, а не инженером, замены нет.

Я лично присоединился к магистерской программе UT Austin с частичной занятостью; фиксированный учебный план и давление со стороны сверстников помогли мне учиться. Я наполовину закончил программу… по сравнению с тем, когда я начинал, мое понимание основ машинного обучения намного глубже, чем я думал. Углубление в математику машинного обучения меняет правила игры.

Говоря о математике, в блогах и постах на Reddit, в которых обсуждается, «как проникнуть в ML», часто повторяется следующее:

«Математика, которая вам нужна для машинного обучения, — это вероятность, линейная алгебра и исчисление» — Интернет

Хотя это не неправда, гораздо правильнее сказать:

«Математика, которая вам нужна для машинного обучения, — это 50% вероятности, 35% линейной алгебры и 15% исчисления»

Вероятность — это язык машинного обучения. Усердно работайте над своими вероятностными навыками, и большая часть литературы станет намного легче усваиваться. Я нашел Введение в вероятность Блицштейна и Хванга чрезвычайно доступным введением во все основные концепции.

В то же время вы должны знать, как пересекаются вероятность и линейная алгебра (например, ожидание случайных векторов) и как пересекаются исчисление и линейная алгебра (например, градиенты, гессианы, якобианы) ; большая часть продвинутой математики связана с этими пересечениями.

Улучшить глубокое обучение (и другие популярные инструменты)

Если бы мне пришлось прикинуть, модели глубокого обучения используются примерно в 70% прикладных проектов машинного обучения. Это уже не хайп, и вокруг этого организованы целые отделы. Однако не позволяйте этому быть единственным методом машинного обучения, с которым вы знакомы. Бывают случаи, когда модель глубокого обучения проигрывает «классической» технике машинного обучения, такой как XGBoost, либо с точки зрения производительности машинного обучения, либо с точки зрения вычислительных затрат; в таких случаях нельзя пожимать плечами и извиняться.

Есть несколько тем, с которыми знаком каждый Ученый; изучите их как можно скорее

Как правило, эти темы входят в учебную программу курса машинного обучения для выпускников, такого как Stanford’s CS 229. Книги, которые я нашел полезными для изучения этих тем, включают:

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

Документы для конференций функционально аналогичны новостным статьям; вы поймете их только в том случае, если будете в курсе истории.

При знакомстве с новой областью не читайте сначала документы конференции; вместо этого начните с недавних обзорных статей или (при необходимости) хорошей книги по основам в этой области. Блоги могут быть полезными, особенно если их автор — ученый, а не человек, изучающий машинное обучение (поскольку они, как правило, слишком упрощены).

Знание работы

Выясните, какую работу вы на самом деле хотите.

Я не могу не подчеркнуть этого, но чтобы работать ученым, вы должны интересоваться машинным обучением не только из-за денег, но и потому, что это круто. Если это ваши основные мотивы, подумайте об инженерии машинного обучения или инженерии данных; оплата аналогична (иногда выше), и вы играете с моделями машинного обучения, не анализируя исследовательские работы и не проводя бесконечных экспериментов. Ваш карьерный рост также будет более предсказуемым, так как он не будет привязан к прихотям рецензентов. У Кэсси Козыкров есть великолепная статья о компетенциях разных ролей машинного обучения, прочтите ее, чтобы понять, какая из них вам подходит.

«Прикладная» наука — это не просто исследования

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

Тем не менее, публикация исследований как внутри компании, так и за ее пределами является важной частью карьерного роста… это еще не все.

Учитесь у своих коллег

Машинное обучение — обширная дисциплина, и никто не является экспертом (или даже знакомым) со всем. Я заметил, что мои коллеги-ученые хорошо разбираются в одной или двух областях машинного обучения (НЛП, резюме, рекомендации и т. д.), но обладают глубиной только в нескольких подобластях. Они также сильно различались по возрасту, и годы опыта не были реальным показателем их уровня.

Что меня очень освежило, так это то, что молодых ученых часто просили представить свою работу, и к ним относились с уважением (насколько я понимаю, это не очень распространено в академических кругах).

Будьте вежливы с инженерами!

Зачастую построение модели — самая безболезненная часть проекта; подключение его к существующим системам с правильными гарантиями входных данных, задержки, масштабируемости и т. д. может быть чрезвычайно сложной задачей. Инженеры ML / Data берут на себя ответственность за эту задачу; это делает их одинаково важными участниками успеха проекта Applied ML. Относитесь к этому как к симбиотическим отношениям.

Тщательно выбирайте свои проблемы

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

Как стать ученым

Разграничение научной и инженерной деятельности

Научные исследования сильно отличаются от инженерных работ. Мотивы разные (вклад в общее знание или влияние на бизнес), критерии успеха разные (статья, принятая небольшой группой экспертов, против развертывания функции для миллионов пользователей), разные артефакты (8-страничный PDF, который вы забудете сразу после публикации, в отличие от кода, который необходимо поддерживать в течение многих лет), использование предыдущей работы отличается (должно быть новым, а не повторно использовать как можно больше) ... список можно продолжить. .

Оглядываясь назад, я могу сказать, что это та область, в которой я не мог начать самостоятельно. Если бы я не работал с учеными, которые научили меня основам, я бы, вероятно, вернулся в академию, чтобы научиться делать высококачественную научную работу. У меня здесь не так много предложений, кроме как найти аналогичную среду либо в промышленности, либо в академических кругах. Статьи на Scribbr — хорошая отправная точка, если вы новичок в научных исследованиях и вам нужно изучить терминологию.

Получить научного наставника

Каждый домен ML проводит исследования по-разному. Существуют разные эталонные наборы данных и разные стандарты публикации. В качестве крайнего примера взгляните на различия между принятыми статьями на ICML 2021, ACL 2021 и COLT 2021, трех несомненно ведущих конференциях в разных областях исследований. ACL ориентируется на эмпирические результаты, тогда как COLT — это чистая теория, а ICML находится где-то посередине. Все они являются первоклассными конференциями по машинному обучению, но почти не говорят на одном языке.

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

В этих случаях бесценно иметь доступ к старшему научному сотруднику (кто-то, кто является экспертом в этой области), чтобы помочь ориентироваться в этом мире. Проблема, конечно, в том, что таких людей очень мало. Единственный способ получить к ним доступ — присоединиться к авторитетной лаборатории (либо в промышленности, либо в академии) в качестве стажера или другой младшей должности. Это неприглядный факт об исследованиях машинного обучения, который поднимает барьер входа в эту область.

Сосредоточьтесь на чтении только релевантных статей

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

Вам не нужно быть экспертом, чтобы внести свой вклад в развитие современного искусства

Я не решался писать статьи на новые для меня темы... что, если я ошибусь в важном понятии и выставлю себя дураком?

  • В этом отношении я нашел совет покойного Стивена Вайнберга очень мотивирующим. Перефразируя, первый шаг к хорошему исследованию – это провести качественное исследование и попросить эксперта проверить его. Так что не бойтесь проводить исследования в меру своих возможностей! Такие процессы, как рецензирование, предназначены для предоставления отзывов о работе, которая не соответствует планке.
  • Кроме того, ваши исследовательские идеи не должны быть сложными; они должны быть новыми, и ваши эксперименты должны строго показывать, что они работают. Многие проблемы нельзя решить с помощью более простых методов, поэтому существуют такие вещи, как LSTM и Transformer. Однако слышали ли вы о перекрестной проверке K-fold? Это простая, чрезвычайно популярная идея, которая значительно повышает эффективность обобщения моделей машинного обучения. Сосредоточьтесь на результатах, а не на сложности.

Правильно проводите эксперименты

Проверьте свои идеи как можно быстрее; Как ученый, это основной способ измерить, насколько продуктивно вы работаете изо дня в день.

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

Написание статей научит вас профессиональным приемам

Как только вы начнете писать статьи, вы поймете несколько истин о научном письме:

  • Статьи трудно читать, потому что (а) они пытаются сжать огромное количество информации в ограниченном пространстве, что не у всех получается; (б) авторы стараются выглядеть профессионально даже при обсуждении очень простых идей.
  • Статья, которую вы сейчас читаете, основана на идеях одной или двух цитируемых статей… выясните, какие именно, и прочитайте их, если необходимо.
  • Ни один из авторов не читал все исследовательские работы, которые они подробно цитируют. Многие цитаты предназначены для установления фоновых знаний о проблеме или «очевидных» фактах в предметной области. Если большой процент этих фактов является для вас новой информацией, сделайте шаг назад и сначала изучите предысторию.

Сосредоточьтесь на том, как и где вы представляете свою работу

  • Влияние ваших идей во многом зависит от того, насколько хорошо вы их излагаете, особенно в письменной форме(бумагах, технических документах и т. д.). Если ваши знания английского языка плохи, поработайте над их улучшением: Элементы стиля Странка и Уайта — классический справочник.
  • Избирательность места, где вы публикуетесь, — это критерий качества вашей работы. Одна статья на конференции уровня 1 стоит больше, чем 3. –4 доклада на конференциях Tier-3.

В этой статье есть много вещей, которые не были освещены… как я уже говорил, это путешествие, которое содержит множество «маленьких» осознаний о себе и своей области. Тем не менее, я надеюсь, что это дает некоторое представление о важной части этого путешествия. Удачи!