Привет, мир машиностроения!
Сегодня я хотел бы затронуть тему жизненного цикла проекта машинного обучения. Я считаю, что самый важный вывод из этого короткого текста, которым я хочу поделиться с вами, заключается в том, что у проекта есть жизненный цикл. Не просто набор шагов (о которых я расскажу в следующих абзацах), я также хотел бы подчеркнуть итеративный характер проекта.
Сказав это, давайте сразу перейдем к этапам проекта машинного обучения. Большинство специалистов по данным тратят большую часть своего времени на обсуждение доступных данных и выяснение того, как создать наилучшую модель с этими доступными данными. По сути, это означало бы, что есть две фазы: сбор данных и моделирование. Однако эти шаги являются лишь частью полного проекта. Мы должны рассмотреть четыре шага в проекте машинного обучения:
Область действия.Это часть, в которой описывается реальная проблема. Потенциальные функции (независимо от того, как их собирать) и сопоставление этих функций с потенциальной целью. Здесь важно установить некоторые ключевые показатели, такие как точность, задержка, необходимое время или необходимые ресурсы.
Сбор данных.Это часть проекта, где мы определяем наши данные или устанавливаем базовую линию, а также другие задачи, такие как маркировка и организация данных. Некоторые важные вопросы здесь включают последовательную маркировку данных, нормализацию данных или учет того, что в рабочей среде наборы данных не исправляются, они фактически развиваются.
Моделирование.Это часть проекта, в которой происходит выбор модели, а также ее обучение и анализ ошибок. Поскольку это итеративный процесс, нам, возможно, придется вернуться к выбору модели или даже к этапу сбора данных. Это совершенно нормально и ни в коем случае не должно рассматриваться как неудачный проект.
На данный момент стоит упомянуть, что процесс обучения обрабатывает три аспекта: код, гиперпараметры и данные. В некоторых случаях, особенно в исследовательских областях, данные остаются неизменными, и меняются только код и гиперпараметры. Однако для производственных целей весьма полезно сохранить исправление кода и изменить данные и гиперпараметры. Иногда интереснее обновить только код, а иногда интереснее обновить только данные. Однако хорошая система машинного обучения обновляет код и данные (а также гиперпараметры). С другой стороны, анализ ошибок должен помочь вам сосредоточиться на сборе более качественных данных для повышения производительности, а не только на улучшении кода.
Развертывание: Эта часть проекта обеспечивает развертывание для производства, мониторинга и обслуживания систем. Это позволяет вам иметь доступ к реальным данным и трафику в реальном времени, что может привести вас к моделированию или даже к сбору данных или маркировке для обновления модели. Опять же, мы несколько раз упоминали, что это следует рассматривать как итеративный процесс. Процесс развертывания различается для каждого проекта, но обычно он заключается в сохранении модели на сервере (облачном сервере) и доступе к ней через API для получения ответа (прогнозов из вашей модели), чтобы вы могли получить доступ на своем устройстве.
Разница между данными для моделирования и реальными данными известна как дрейф данных (например, из-за различий в распределении данных). Это также может произойти как полная концепция: Дрейф концепции. Мы рассмотрим их в следующих статьях. Но пока этот краткий текст должен служить кратким изложением жизненного цикла (опять же, жизненный цикл означает для нас итеративный процесс) проекта машинного обучения.
Для получения дополнительной информации вы можете посетить курсы Эндрю Нг.
Пожалуйста, оставьте комментарий, если вам понравилось!