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

Последние достижения в этой области особенно привлекли мое внимание. Генеративный ИИ, такой как MidJourney, который может создавать сложное изображение из простой подсказки, Автономные транспортные средства, ChatGPT и т. д. такое чувство, что я никогда не обрету покой, пока не пойму, как все это вообще возможно.

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

1- Математика

Как говорит Джефф Делани из Fireship.io, машинное обучение — это своего рода причудливый способ ведения статистики 😛.

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

2- Данные, базы данных и обработка данных

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

  • Реляционные и нереляционные базы данных
  • SQL, NoSQL
  • Фреймы и серии данных
  • Форматы данных (JSON, XML, CSV,…)
  • Извлечение, преобразование, загрузка (ETL)

3- Программирование и разработка программного обеспечения

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

Основные понятия, которые необходимо изучить:

  • Структуры данных
  • Объектно-ориентированное программирование
  • Шаблоны разработки программного обеспечения
  • Жизненный цикл разработки программного обеспечения

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

  • C
  • C++
  • Ява
  • Юлия
  • R

4- Отчетность, визуализация и аналитика

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

5 – Концепции и алгоритмы машинного обучения

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

  • Контролируемое обучение
  • Обучение с подкреплением
  • Обучение без учителя

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

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

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

Все это может показаться довольно громоздким. Моя стратегия состоит в том, чтобы сосредоточиться на «забавной» части, а именно на обучении созданию самообучающихся систем с помощью кода (концепции машинного обучения, программирование на Python). Это то, что меня больше всего интересует и будет поддерживать мою мотивацию. Я планирую переключиться на другие темы, когда они мне понадобятся. Например, изучение линейной алгебры, чтобы понять, как обучающий набор данных может быть представлен в виде матриц и векторов. Таким образом, в процессе обучения у меня будет общая нить, усваивающая концепции, которые мне нужны на этом пути.

Не стесняйтесь комментировать с любым предложением или исправлением.

Спасибо за прочтение ! 👋