Полное руководство с курсами и книгами

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

Вот темы, которые я раскрою в этом посте:

  • Что такое машинное обучение?
  • Специалист по данным против инженера по машинному обучению против инженера по данным
  • Чем занимается ML-инженер?
  • Жизненный цикл машинного проекта
  • 7 шагов, чтобы стать инженером машинного обучения с курсами и книгами

Давайте погрузимся!

Что такое машинное обучение?

Машинное обучение — это современный метод решения проблем и автоматизации задач. Машинное обучение — это область ИИ, которая позволяет машине учиться автоматически и совершенствоваться на основе опыта без явных инструкций. Создание проекта машинного обучения — сложный процесс, требующий целого ряда навыков, от моделирования до развертывания и управления инфраструктурой. Инженерия машинного обучения возникла, чтобы преодолеть разрыв между наукой о данных и разработкой программного обеспечения. К счастью, вы можете легко решать инженерные задачи машинного обучения с помощью недавно разработанных библиотек и платформ, таких как Scikit-Learn, TensorFlow, HuggingFace и Комета.

Data Scientist vs ML Engineer vs Data Engineer

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

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

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

Жизненный цикл проекта машинного обучения

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

Подготовка данных

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

Построение модели

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

Развертывание модели

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

7 шагов, чтобы стать инженером машинного обучения

Стать инженером машинного обучения непросто. Просмотрев более 500 объявлений о вакансиях инженера по машинному обучению, команда 365 обнаружила следующие навыки для должности инженера по машинному обучению:

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

1. Программирование

Для реализации проектов машинного обучения необходимо знать язык программирования. Наиболее часто используемыми языками в мире машинного обучения являются Python и R. Python больше используется в науке о данных, поскольку это универсальный и простой в освоении язык. С помощью Python вы можете выполнять сквозные машинные проекты от очистки данных до развертывания модели. Кроме того, многие важные фреймворки машинного обучения, такие как Pytorch, Scikit-Learn и PySpark, написаны на Python.

Бесплатные курсы Python:

Книги по Python:

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

2. Алгоритмы машинного обучения

Не существует волшебного алгоритма, который решит все типы задач машинного обучения. Вы можете попробовать все алгоритмы, чтобы построить хорошую модель, но это займет много времени. Очень важно быть знакомым со всеми распространенными алгоритмами машинного обучения, чтобы знать, где какие алгоритмы использовать. Вот некоторые важные алгоритмы, которые часто используются инженерами по машинному обучению: линейная регрессия, Наивный Байес, KNN, дерево решений, машины опорных векторов, случайный лес, XGBoost, K -средства и ППС.

Курсы по машинному обучению:

Книги по машинному обучению:

3. Прикладная математика

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

Курсы прикладной математики:

Книги по прикладной математике:

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

Алгоритмы машинного обучения хорошо работают со средними и небольшими наборами данных. Однако когда дело доходит до больших данных, эти алгоритмы работают не очень хорошо. Методы глубокого обучения используются для анализа больших данных. Глубокое обучение — это подобласть машинного обучения и расширение искусственных нейронных сетей. Такие проблемы, как классификация изображений, перевод с одного языка на другой и беспилотные автомобили, могут быть решены с помощью методов глубокого обучения, таких как GPT-3 и BERT на основе преобразователей.

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

Курсы глубокого обучения:

Книги по глубокому обучению:

5. Фреймворки машинного обучения

Вы можете создавать модели машинного обучения с нуля, но нет необходимости изобретать велосипед. К счастью, недавно были разработаны отличные фреймворки. Эти платформы упрощают выполнение проектов машинного обучения. Например, вы можете использовать Pandas для предварительной обработки данных, Matplotlib и Seaborn для визуализации данных, Scikit-Learn для реализации алгоритмов машинного обучения, Tensorflow и Pytorch для анализа глубокого обучения и Comet для оптимизации моделей.

Сообщения в блоге о платформе машинного обучения:

6. Млопс

Проект машинного обучения, который не развернут в производственной среде, является мертвым проектом. Операции машинного обучения (MLOps) — это основная функция машинного обучения, целью которой является внедрение моделей машинного обучения в производство, а затем их обслуживание и мониторинг. Другими словами, MLOps — это мост между построением модели и экспортом модели в производство. MLOps — относительно новая, но быстро развивающаяся область. Это эквивалент DevOps для машинного обучения. Для выполнения шагов MLOps вы можете использовать различные инструменты, такие как MLflow, Kubeflow, MetaFlow и DataRobot.

Курсы MLOps:

Книги MLOps:

7. Облачные вычисления

Проекты машинного обучения требуют большой вычислительной мощности, хранилища данных и множества серверов. Облачные вычисления помогают обучать модели на мощных машинах с несколькими графическими процессорами, развертывать эти модели и запускать любое количество серверов. Облачные вычисления в настоящее время являются растущей тенденцией в науке о данных. Наиболее часто используемыми сервисами облачных вычислений для машинного обучения являются Amazon SageMaker, Microsoft Azure Machine Learning и GCP Vertex AI для машинного обучения.

Курсы по облачным вычислениям:

Книги по облачным вычислениям:

Дополнительные навыки

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

Последние мысли

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

Вот и все. Спасибо за чтение. Я надеюсь, вам понравится это. Не забудьте подписаться на нас на YouTube | Твиттер | Каггл | ЛинкедИн 👍





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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.

Благодаря Эмили Льюис