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

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

Люди учатся по-разному. Поэтому эта статья — не руководство по изучению ML, которому должен следовать каждый, а то, как я хочу снова попасть в эту область. Возможно, вам полезно знать мой опыт, чтобы вы знали, подходят ли вам мои рекомендации.

Мой фон

Я не специалист по ML. Я студентка бакалавриата Национального университета Сингапура по специальности «Вычислительная техника».

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

Впервые я познакомился с машинным обучением во время зимних каникул на первом курсе, пройдя специализацию Coursera Deep Learning Specialization от Эндрю Нг, одного из самых популярных пионеров в области искусственного интеллекта. До участия в MOOC у меня был приличный опыт в области исчисления, линейной алгебры, статистики и программирования на C и Python.

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

  • Не предпринимал никаких серьезных действий и не читал никаких подробных книг по машинному обучению.
  • Знать, как кодировать на Python: помимо самых базовых вещей, вы должны знать некоторые концепции объектно-ориентированного программирования (как проектировать классы, как реализовать наследование в Python).
  • Немного знакомы с основными научными библиотеками Python: numpy, pandas и matplotlib.
  • Иметь базовые математические знания, особенно линейную алгебру (это нормально, если вы не знаете, но понимание векторных и матричных операций поможет вам понять основные механизмы алгоритмов ML). Если вы хотите изучать линейную алгебру, ознакомьтесь с MIT 18.06, который преподает профессор Гилберт Стрэнг, вероятно, лучший курс линейной алгебры.

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

Введение CS50 в искусственный интеллект с помощью Python

CS50 больше не нуждается в представлении. Это очный и онлайновый вводный курс по компьютерным наукам, который преподает профессор Дэвид Дж. Малан в Гарвардском университете. Помимо исходного курса, CS50 предлагает и другие учебные курсы. Один из них — Искусственный интеллект или CS50 AI.

Чего ждать? Должны ли мы изучать машинное обучение вместо искусственного интеллекта?

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

CS50 AI охватывает множество концепций и алгоритмов, лежащих в основе современного ИИ. Лучшее в этом курсе то, что у вас будет возможность испачкать руки. Вам нужно выполнять 1-2 проекта в неделю и в общей сложности 7 недель, в течение которых вы будете реализовывать определенные алгоритмы/концепции, изложенные в лекции, для создания игровых движков, решателя кроссвордов или модели классификации изображений.

Мне потребовалось время, чтобы решить все проекты, но оно того стоило.

И курс совершенно бесплатный. Вы должны заплатить, чтобы получить сертификат Edx, но весь контент доступен на веб-сайте CS50.

Специализация Эндрю Нг по машинному обучению (Coursera)

Специализация по машинному обучению — это расширенная версия курса Машинное обучение от Coursera, который был одним из самых популярных онлайн-курсов по машинному обучению, который первоначально преподавал в Стэнфорде Эндрю Нг, и состоит из 3 курсов:

  • Контролируемое машинное обучение: регрессия и классификация
  • Расширенные алгоритмы обучения
  • Неконтролируемое обучение, рекомендации, обучение с подкреплением

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

Что мне особенно нравится в этой специализации, так это необязательные лабораторные работы. Хотя они необязательны, и даже если вы взглянете на них, не так уж много вещей, которые нужно сделать. Но найдите время, чтобы просмотреть исходный код для этих лабораторий. Они чрезвычайно полезны для меня.

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

Практическое глубокое обучение для программистов от fast.ai

Практическое глубокое обучение для программистов, подготовленное Джереми Ховардом, бывшим президентом Kaggle и соучредителем fast.ai, представляет собой практическое введение в то, как применять глубокое обучение и машинное обучение для решения практических задач.

Курс основан на книге Deep Learning for Coders with fastai & Pytorch, которая находится в свободном доступе онлайн в виде Jupyter Notebooks.

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

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

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

Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow — Орельен Жерон

Если у вас нет времени читать несколько книг или записываться на несколько онлайн-курсов, вот моя рекомендация: прочтите и следуйте примерам из этой книги. Для меня это лучшее практическое введение в ML.

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

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

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

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

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

А поскольку новые открытия в области машинного обучения публикуются каждый месяц или все еще находятся в исследовательских лабораториях, очень важно быть в курсе последних событий, читая статьи или копаясь в исходных кодах. Взгляните на paperswithcode.com, чтобы узнать о тенденциях и современных исследованиях ML, а также о коде для его реализации.

Я напишу больше.