Мне потребовалось более 6 лет, чтобы стать инженером-исследователем в одном из лучших в мире стартапов на основе ИИ.

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

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

В принципе, эти шаги не обязательно выполнять в каком-то определенном порядке, но я бы не стал начинать с последнего и, возможно, самого важного шага.

Python

То, что нужно знать Python, кажется очевидным. Другое дело (и что менее очевидно) — в каком объеме необходимо знать Python новичку в МО.

Я настоятельно рекомендую начать с базовых концепций Python.

Python — язык программирования, который использует практически каждый, кто работает в сфере МО. Все остальные шаги, указанные здесь, возможны только после овладения основами Python.

Вам определенно необходимо знать, что такое список и словарь, как написать простой оператор if-else или цикл for. Вы также должны иметь представление о списковом выражении и наследовании классов.

Честно говоря, я не знаю лучшего способа для новичка, кроме как просто набрать в YouTube или Google «Руководство по изучению Python» или «Курс Python для начинающих». Там так много замечательного бесплатного контента! Но только помните: без постоянной практики написания кода невозможно добиться успехов в обучении.

Теперь подходим к главному: после изучения основ Python я бы рекомендовал выполнить несколько несложных проектов. Например, простой калькулятор, игру-змейку, мини-сайт и тому подобное.

Увлекательное занятие, но не тратьте на него слишком много времени!

Это имеет смысл только в том случае, если вы никогда раньше не программировали. Если же у вас уже есть опыт программирования и нужно просто выучить Python, не стоит слишком утруждать себя этими проектами.

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

А пока… перейдем к устрашающей математике!

Математика

Изучение машинного обучения не требует знаний высшей математики. После нескольких лет работы в этой области я могу это утверждать!

Для многих инженеров, занимающихся МО, достаточно знаний из курса базовой математики для студентов бакалавриата!

Если бы я начинал все сначала, то ограничился бы 3-4 темами:

  • Как находить производные и интегралы (хотя интегралы редко бывают полезны в МО).
  • Что такое векторы и матрицы и как выполняются основные операции с ними (которые, по сути, подчиняются интуитивно понятным правилам).
  • Основные понятия теории вероятности (которые сводятся к довольно небольшому набору концепций, в основном к правилу Байеса).
  • И, наконец, несколько математических приемов, облегчающих жизнь исследователям МО (например, правила логарифмирования и правила суммирования, с которыми вы познакомитесь по ходу дела).

Эти понятия и правила помогут вам далеко продвинуться в изучении машинного обучения.

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

Тем не менее, чем больше вы узнаете, тем лучше. Естественно, для проведения исследований требуются более обширные знания математической науки, навыки применения различных правил и более развитая интуиция.

Итак, как конкретно изучать математику в 2025 году с учетом вышесказанного?

Из множества полезных ресурсов я выделил бы наиболее современный, доступный и продвинутый — книгу «Почему машины учатся» (Why Machines Learn).

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

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

Но эта книга охватывает так много полезного из фундаментальной математики, причем в увлекательной и понятной форме. Настоятельно ее рекомендую!

Удалось ли в ней объять необъятное? Конечно, нет, но она раскрывает многие важные темы (например, вычисление производных) и поэтому является отличной отправной точкой. 

Если же вы столкнетесь в ней с чем-то непонятным или захотите что-то уточнить, можете обратиться к другим курсам и YouTube-ресурсам. Или следуйте моей сегодняшней практике — используйте потенциал LLM (Large Language Model — большая языковая модель), позволяющий получать ответы на любые вопросы!

Только помните: эти модели могут галлюцинировать, то есть уверенно излагать неверную информацию. Но когда дело доходит до фундаментальных знаний, широко распространенных в интернете, они действительно превосходны!

Если же говорить о более полном курсе математики, который я рекомендовал бы использовать, то это курс Академии Хана (Khan-academy)!

Тем не менее на стартовом этапе я бы придерживался книги «Почему машины учатся».

Самое замечательное в ней то, что она посвящена пониманию математики в контексте МО и затрагивает многие его концепции.

Но что же делать после прочтения этой книги?

Машинное обучение

Теперь самое время изучить все, что связано с машинным обучением, а затем и с глубоким обучением!

Я намеренно разделил машинное обучение и глубокое обучение, потому что эти области искусственного интеллекта немного отличаются друг от друга и часто преподаются отдельно. Хотя, говоря обо всей теме в целом, буду использовать только аббревиатуру МО.

Классическое МО — это не те новомодные веяния, которые будоражат воображение современников. Это сугубо фундаментальные знания, которыми должен обладать каждый инженер МО, дата-сайентист или любой другой исследователь!

Не стоит пропускать этот этап в карьере специалиста МО.

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

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

Что особенно примечательно, этот курс включает в себя реальные упражнения по программированию! Таким образом, вы наконец-то начнете учиться тому, как создавать конвейеры МО и обучать некоторые модели, что необычайно интересно!

Курс немного пересекается с материалом книги «Почему машины учатся», но это совершенно не страшно!

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

Так что я бы не торопился отказываться от повторения пройденного материала!

Даже сейчас, став ученым-исследователем, я продолжаю смотреть видеолекции по изученным предметам и каждый раз открываю для себя новые факты или просто освежаю в памяти свои знания.

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

Теперь наступает время действительно крутых вещей.

Глубокое обучение

Это не просто захватывающая часть обучения — на данном этапе вы должны принять важное решение.

Хотите ли вы освоить глубокое обучение на уровне, достаточном для использования существующих моделей и применения их для решения определенных задач? Или вас действительно интересует теория глубокого обучения, включая представление о всем разнообразии основных моделей и использование более сложных математических законов и формул?

Видите ли, МО — все еще новая эмпирическая область, в которой ценятся не столько теоретические знания, сколько практические навыки. Таким образом, для создания продвинутых проектов или продуктов на основе МО обычно не требуется глубокого знания теории МО.

Если бы я хотел получить работу в сфере МО как можно быстрее (что все равно заняло бы немало времени), я бы выбрал первый вариант, который назвал бы «прикладным».

В этом случае не стоит тратить слишком много времени на тщательное изучение теории глубокого обучения. Достаточно пройти курс Эндрю Ына «Специализация — глубокое обучение», из которого вы узнаете много базовых сведений о глубоком обучении и получите практический опыт в программировании.

Опять же, ни один ресурс не содержит всего необходимого в полном объеме! К сожалению, в этом курсе не рассказывается о трансформерах, которые просто обязательны для изучения. Для восполнения этого пробела я бы прошел курс CS25 от Стэнфорда, доступный на YouTube. А еще посмотрел бы практически все видео Андрея Карпаты на YouTube и попробовал бы писать код вместе с ним!

Теперь вы должны быть достаточно подготовлены, чтобы перейти к следующей стадии изучения МО, которая, безусловно, является одной из самых важных!

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

Итак, я бы поработал над книгой «Понимание глубокого обучения». Это совершенно потрясающий ресурс, охватывающий массу вопросов глубокого обучения! Он затрагивает практически все основные модели глубокого обучения, которые вам нужно знать.

Особенно впечатляет то, что книга, содержащая массу актуальных теоретических и практических упражнений, доступна бесплатно в PDF-формате!

Лично я купил ее, но только для того, чтобы поддержать этот удивительный бесплатный ресурс. Рекомендую использовать PDF-файл, потому что он постоянно обновляется и позволяет переходить по соответствующим ссылкам.

По сравнению с книгой «Почему машины учатся», читать «Понимание глубокого обучения» не так просто — потребуются приличные усилия. Но зато вы получите тот объем теоретических знаний, который необходим для получения потрясающей работы в области МО.

Конечно, прочтение одной этой книги еще не гарантирует потока приглашений на все собеседования. Но, благодаря ей, вы ознакомитесь со всеми наиболее актуальными теориями и существующими моделями.

И, опять же, ни один ресурс не идеален!

Скорее всего, вы не все поймете с первого раза, и, возможно, вам не понравится способ подачи тех или иных концепций. Это совершенно нормально!

В таком случае всегда можно обратиться к другим ресурсам: зайдите на YouTube, поищите с помощью Google толковые посты в блогах или воспользуйтесь помощью LLM.

Даже эта книга не может охватить все! В ней, к сожалению, не рассматриваются RNNS и LSTM. Она в основном фокусируется на трансформерах как популярной современной архитектуре. Поэтому каждый раз, когда столкнетесь с пропуском какого-то материала, ищите его где-нибудь в другом месте.

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

В целом, если вы действительно хотите усвоить глубокое обучение, эта книга — лучший вариант, хотя, скорее всего, на ее проработку уйдет немало времени!

Однако не следует в спешке ее читать, чтобы понять все за один раз. Освоение материала частями позволит лучше понять теории моделей машинного обучения и глубокого обучения.

Проекты

Не могу не подчеркнуть, насколько важны проекты.

Как упоминалось ранее, МО по большей части является эмпирической и практической областью науки. Вам придется часто заниматься программированием независимо от того, где вы будете работать.

Прежде всего, вам следует изучить некоторые фундаментальные библиотеки стека разработки моделей МО, такие как pandas, numpy и matplotlib, для работы с данными и их визуализации.

На YouTube есть эффективные и доступные для понимания руководства. Часто бывает достаточно даже 20-минутного урока, чтобы воспользоваться необходимым инструментом.

Что касается фреймворков МО, таких как Tensorflow и PyTorch, то представление о них можно получить на курсах по машинному обучению и глубокому обучению, о которых я упоминал ранее.

И опять же, если вам будет трудно что-то понять, просто погуглите или спросите у LLM! В этом и заключается удивительная особенность изучения МО в 2025 году: все доступно онлайн. Но ничто не развивает так профессиональные навыки, как их реальное применение.

Итак, для начала я бы просто выбрал задания на Kaggle.

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

Итак, после решения задач на платформе Kaggle наступает самый важный этап на пути от новичка, прошедшего курс МО, до профессионального инженера/исследователя в области МО.

Речь идет о работе над более крупными и сложными проектами. Предпочитаемый мной тип проектов — повторная реализация работы других исследователей.

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

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

Если действительно преуспеете в машинном обучении, возможно, даже сможете найти способы усовершенствовать некоторые из последних разработок или применить их к новой задаче.

На этом этапе вы продвинетесь очень далеко на пути машинного обучения!

С каждым проектом вы будете становиться сильнее и сможете браться за более грандиозные проекты. Но помните: первый ваш проект не должен быть самым впечатляющим, что вполне нормально!

Если вы уясните это, мой последний бонусный совет не покажется вам столь пугающим. 

На каком бы этапе вы ни находились, вам необходимо демонстрировать свою работу.

Изучая основы МО, делитесь тем, что узнали, в LinkedIn или X.

Освоив новый классный метод МО, расскажите о нем в посте на LinkedIn или в своем блоге!

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

Именно такой подход помог мне однажды пройти собеседование с исследователем Google DeepMind. Я написал в блоге пост о проекте, которым занимался, и показал его интервьюеру.

Круче этого — работа над демо-сайтами!

И самый высший пилотаж — написание отчета о проделанной работе в виде научной статьи.

Как только эта статья будет готова, загрузите ее на сайт arxiv. В самом лучшем случае ее примут на какую-нибудь крутую конференцию!

А вас на этом этапе уже можно считать исследователем!

Заключение

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

В какие-то моменты будет очень, очень сложно.

Особые трудности могут возникнуть на этапе освоения математики или программирования.

Просто не сдавайтесь и старайтесь получать удовольствие от самого процесса обучения.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Boris Meinardus: How I’d learn ML in 2025 (if I could start over)

Предыдущая статьяC++: подробное руководство по выводу массива
Следующая статьяНе смотрите свысока на отладку через печать