Мнение

Почему вы должны изучать машинное обучение, а не науку о данных

И как вы можете начать

вступление

Согласно [1], наука о данных является одной из самых востребованных профессий на рынке труда. Но так ли это? Или уже есть более желанный?

Есть! Инженерия машинного обучения обгоняет науку о данных на рынке труда.

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

Но давайте сначала начнем с понимания разницы между обеими рабочими ролями.

Инженер по машинному обучению против Data Scientist

Цитата из статьи Snowflake довольно хорошо резюмирует различия [2]:

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

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

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

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

Согласно статье Venture Beat [4], «87% проектов по науке о данных никогда не переходят в производство». И это связано с отсутствием наемных инженеров по машинному обучению, которые умеют запускать модели в производство. Это несоответствие ясно показывает, что компании сейчас больше внимания уделяют (по крайней мере, должны) найму инженеров по машинному обучению, чтобы иметь возможность запускать модели в производство.

Мы также можем увидеть разницу, просматривая открытые объявления о вакансиях на Glassdoor. Для Калифорнии в США в настоящее время существует 1809 объявлений о вакансиях специалиста по данным по сравнению с 3345 объявлений о вакансиях инженера по машинному обучению. Так что открытых вакансий для инженеров по машинному обучению почти в два раза больше!

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

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

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

Путь к тому, чтобы стать инженером по машинному обучению

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

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я даю ссылки только на курсы, в которых участвовал сам. Ссылки, которые я предоставляю, не являются партнерскими ссылками, поэтому я не получаю никаких денег за их распространение. Я просто хочу поделиться ими с вами, потому что они действительно помогли мне в моем обучении!

Самые ценные навыки

Итак, согласно статье Udacity [6], это самые ценные навыки для того, чтобы стать инженером по машинному обучению:

  1. Основы компьютерных наук и программирование: структуры данных (стеки, очереди и т. д.), алгоритмы (поиск, сортировка и т. д.), вычислимость и сложность, а также архитектура компьютера (память, кэш, пропускная способность и т. д.).
  2. Вероятность и статистика:вероятность, правило Байеса, статистические показатели (медиана, среднее значение, дисперсия,…), распределения (равномерное, нормальное, биномиальное,…) и методы анализа (ANOVA, проверка гипотез,…)
  3. Моделирование и оценка данных: поиск полезных шаблонов (корреляции, кластеры и т. д.) и прогнозирование свойств невидимых точек данных (классификация, регрессия, обнаружение аномалий и т. д.), непрерывная оценка производительности модели с использованием правильной метрики производительности (точность , f1-счет, …)
  4. Применение алгоритмов и библиотек машинного обучения: выбор правильной модели для основной проблемы (дерево решений, ближайший сосед, нейронная сеть, ансамбль нескольких моделей и т. д.), процедура обучения для обучения модели (линейная регрессия, повышение градиента, …), понимание влияния гиперпараметров, опыт работы с различными библиотеками машинного обучения (Tensorflow, Scikit-learn, PyTorch, …)
  5. Разработка программного обеспечения и системный дизайн: понимание различных компонентов системы (REST API, базы данных, запросы и т. д.), создание интерфейсов для компонентов машинного обучения.

Инструменты для обучения

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

  1. Python: думаю, это понятно. Python по-прежнему остается языком программирования номер один в области машинного обучения [7], и его также легко освоить.
  2. Linux. Поскольку инженер по машинному обучению будет много работать с инфраструктурой, возможность работать в Linux очень важна.
  3. Облако. Все больше и больше приложений перемещаются в облако. Это означает, что вы, как инженер по машинному обучению, вероятно, также развернете модели в облачной среде. Поэтому рекомендую научиться работать хотя бы с одним из популярных облачных провайдеров (GCP, Azure, AWS). В настоящее время я прохожу курс Сертификат разработчика AWS на Udemy, который я действительно могу порекомендовать!
  4. Docker, Kubernetes. На мой взгляд, эти два инструмента необходимо изучить каждому инженеру по машинному обучению! Они настолько эффективны, что позволяют легко развертывать модели в рабочей среде и создавать полные архитектуры для ваших приложений. Я взял Полное руководство по Docker и Kubernetes на Udemy и многому научился на этом курсе!

Другие полезные онлайн-курсы

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

  1. Специализация глубокого обучения, Эндрю Нг: Этот курс посвящен глубокому обучению, обучению моделей в области классификации изображений и многому другому. Эндрю отлично объясняет теорию. Но вы также непосредственно применяете теорию на уроках, что отлично с точки зрения навыков, необходимых для применения алгоритмов машинного обучения и библиотек.
  2. Наностепень машинного обучения от UdacityТак называемая наностепень Udacity предназначена для обучения моделей машинного обучения и их запуска в производство, в основном с использованием AWS SageMaker и других ресурсов.Вы также можете проверить вышла моя статья на Medium, где я пишу о проекте Capstone, который я сделал для прохождения этого курса. ПРИМЕЧАНИЕ. Udacity заменил мой курс более новой версией этого курса. Но я думаю, что эта новая версия по-прежнему имеет большой смысл для участия.
  3. Сертификат IBM Machine Learning Professional: Этот курс на Coursera фокусируется на всех аспектах машинного обучения с большим количеством практических занятий. Вы узнаете о контролируемом и неконтролируемом машинном обучении, глубоком обучении, обучении с подкреплением и многом другом. В конце каждого курса вы должны создать свой собственный проект Capstone, где вы также должны создать отчет, описывающий ваше приложение и так далее.

Заключение

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

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

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

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

«В этой статье я объясняю основную проблему и то, как я обучал модель машинного обучения. Затем я упаковываю обученную модель в контейнер Docker и создаю простую веб-страницу с помощью Flask.

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

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

Контакт

LinkedIn |GitHub

Рекомендации

[1] Томас Х. Давенпорт и DJ Патил, Ученый по данным: самая сексуальная работа 21 века (2012), Harvard Business Review.

[2] Снежинка, ИНЖЕНЕР ПО МАШИННОМУ ОБУЧЕНИЮ VS. УЧЕНЫЙ ПО ДАННЫМ

[3] Сандип Теки, Инженер машинного обучения против специалиста по данным (2022), блог Neptune AI.

[4] VB Staff, Почему 87% проектов по науке о данных никогда не реализуются? (2019), ВенчурБит

[5] Рашид Казми, Машинное обучение в производстве (MLOps) (2022), На пути к науке о данных.

[6] Арпан Чакраборти, 5 навыков, необходимых для того, чтобы стать инженером по машинному обучению (2016), Udacity.

[7] Сакши Гупта, Какой язык лучше всего подходит для машинного обучения? (2021), Трамплин