Изменения

Перейти к: навигация, поиск

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

219 байт добавлено, 12:53, 10 февраля 2020
Нет описания правки
[[Файл:Datascience-lifecycle.png|550px|thumb|right| Жизненный цикл модели ML]]
'''Жизненный цикл модели машинного обучения''' – это многоэтапный процесс, в течении которого исследователи, инженеры и разработчики обучают, разрабатывают и обслуживают модель машинного обучения.Модель Разработка модели машинного обучения принципиально отличается от традиционной разработки программного обеспечения и требует своего собственного уникального процесса: жизненного цикла разработки ML. Модель машинного обучения — это приложение искусственного интеллекта (ИИ), которое дает возможность автоматически учиться и совершенствоваться на основе собственного опыта без явного участия человека. Основная цель модели заключается в том, чтобы компания смогла использовать преимущества алгоритмов искусственного интеллекта и машинного обучения для получения дополнительных конкурентных преимуществ.
В данном конспекте жизненный цикл модели машинного обучения будет рассмотрен на примере модели, которая предсказывает превышает ли доход человека 50 тысяч долларов.==Исследование==
==Исследование==На этом этапе необходимо вместе с заказчиком сформулировать проблемы бизнеса, которые будет решать модель. Также, требуется сформулируйте сформулировать вопросы, которые определяют бизнес-цели, на которых могут сосредоточиться методы науки о данных.
Главная задача этого этапа — понять основные бизнес-переменные, которые будет прогнозировать модель. Такие переменные называются ключевыми показателями модели. После этого необходимо определить какие метрики будут использоваться, чтобы определить успешность проекта. Примеры метрик: продолжительность пребывания товара на складе, количество материала, которое экономится в процессе производства и количество абонентов, которые остались у своего оператора.
Далее требуется понять ключевые показатели модели, ставя и уточняя "острые" вопросы: релевантные, конкретные и однозначные. Машинное обучение — это работа с именами и числами для получения ответов на такие вопросы. В основном модели машинного обучения отвечают на следующие вопросы:
==Сбор и подготовка данных==
 На данном этапе осуществляется сбор и подготовка всех необходимых данных для использования в модели. Основные задача данного этапа состоит в том, чтобы получить обработанныеобработанный, высококачественный набор данных, чья связь с целевыми переменными закономерна. Сбор и подготовка данных состоят из 3 стадий: сбор данных, нормализация данных и моделирование данных.
===Сбор данных===
 
Сбор данных — это процесс сбора информации по интересующим переменным в установленной систематической форме, которая позволяет отвечать на поставленные вопросы исследования, проверять гипотезы и оценивать результаты. Правильный сбор данных имеет важное значение для обеспечения целостности исследований. Как выбор подходящих инструментов сбора данных, так и четко разграниченные инструкции по их правильному использованию снижают вероятность возникновения ошибок. Прогнозирующие модели хороши только для данных, из которых они построены, поэтому правильная практика сбора данных имеет решающее значение для разработки высокопроизводительных моделей. Данные должны быть безошибочными и содержать релевантную информацию.
 
===Нормализация данных===
 Cледующий шаг в процессе подготовки — это то место, где аналитики и инженеры данных обычно проводят большую часть своего времени: очистка и нормализация "грязных " данных. Часто это требует от них принимать решения на основе данных, которые они не совсем понимают, например, что делать с отсутствующими или неполными данными, а также с выбросами. Что еще хуже - эти данные нелегко соотнести с соответствующей единицей анализа: вашим клиентом. Например, чтобы предсказать, уйдет ли один клиент (а не сегмент или целая аудитория), нельзя полагаться на разрозненные данные из разрозненных источников. Ваш специалист по данным подготовит и объединит все данные из этих источников в формат, который могут интерпретировать модели ML.
===Моделирование данных===
Следующим этапом проекта машинного обучения подготовки данных является моделирование данных, которые мы хотим использовать для прогнозирования. Моделирование данных — это сложный процесс создания логического представления структуры данных. Правильно сконструированная модель данных должна быть адекватна предметной области, т.е. соответствовать всем пользовательским представлениям данных. Моделирование также включает в себя смешивание и агрегирование веб данных, данных из мобильных приложений, оффлайн данных и др.
Для модели, рассматриваемой в данном конспекте, инженеры объединяют разнородные данные в цельный набор данных. Например, у них есть уже готовые данные по признакам, и они объединяют их в один набор данных.
Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться.
Создав набор эффективно работающих моделей, требуется ввести их в эксплуатацию для взаимодействия с другими системами компании. В зависимости от бизнес-требований прогнозы выполняются в режиме реального времени или в стандартном режиме. Для развертывания модели, необходимо предоставить их с помощью открытого API-интерфейса. Интерфейс упрощает использование модели различными приложениями, например:
* вебВеб-сайты в Интернете; * электронные Электронные таблицы;
* Панели мониторинга бизнес-приложения;
* серверные Серверные приложения. Также необходимо понять, собираетесь собирается ли компания использовать Платформу как Сервис (англ. ''Platform as a Service-, PaaS'') или Инфраструктуру как Сервис (англ. ''Infrastructure as a Service-, IaaS''). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров (теперь Kubernetes является стандартом) для быстрого масштабирования количества контейнеров по мере изменения спроса. УбедитесьТакже, нужно убедиться, что развертывание происходит через платформу непрерывного развертывания(англ. ''Continuous Deployment platform'').
==Тестирование и мониторинг==
На данном этапе осуществляется тестирование, мониторинг и контролирование модели. В основном тесты моделей машинного обучения делятся на следующие части:
 
===Дифференциальные тесты===
Происходит сравниваете средние / на строку прогнозысравнение результатов, данные данных новой моделью, и прогнозырезультатов, данные данных старой моделью для стандартного набора тестовых данных. Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения моделей, которые выглядят рабочими, например, когда устаревший набор данных использовался в обучении или функция признак была случайно удалена из кода. Эти виды проблем, связанных с ML, не приведут к провалу традиционных тестов..
===Контрольные тесты===
Тесты сравнивают время, затрачиваемое либо на обучение, либо на предоставление прогнозов из модели от одной версии к другой. Они мешают вводить неэффективные добавления кода в ваши ML-приложениямодели. Опять же, это то, что трудно уловить с помощью традиционных тестов (хотя некоторые инструменты статического анализа кода помогутмогут помочь).
===Нагрузочные / стресс-тесты===
Это не совсем ML-специфичные тесты, но с учетом необычно больших требований к ЦП / памяти в некоторых ML-приложениях моделях такие тесты особенно стоит выполнятьиспользовать.
===A/B-тестирование===
Еще один популярный способ тестирования - A/B-тестирование. Этот метод также называется сплит-тестированием (от англ. ''split testing — раздельное тестирование'' ). A/B-тестирование позволяет оценивать количественные показатели работы двух вариантов модели, а также сравнивать их между собой. Чтобы получить статистически значимый результат, очень важно исключить влияние моделей друг на друга. 
Все вышеперечисленные тесты намного проще с контейнеризованными приложениями, так как это делает раскрутку реалистичного производственного стека тривиальной.
Мониторинг и оповещение могут быть особенно важны при развертывании моделей. По мере усложнения системы потребуются возможности мониторинга и оповещения, чтобы сообщать, когда прогнозы для конкретной системы выходят за пределы ожидаемого диапазона. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минут. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделей.
==Источники информации==
Мониторинг и оповещение могут быть особенно важны при развертывании моделей#[https://docs. По мере усложнения системы потребуются возможности мониторинга и оповещения, чтобы сообщать, когда прогнозы для конкретной системы выходят за пределы ожидаемого диапазонаmicrosoft. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минутcom/en-us/azure/machine-learning/team-data-science-process/lifecycle The Team Data Science Process lifecycle]#[https://christophergs. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделейgithub.io/machine%20learning/2019/03/17/how-to-deploy-machine-learning-models/ How to Deploy Machine Learning Models]#[https://www.deploymachinelearning.com/ Deploy Machine Learning Models with Django]#[https://tealium.com/blog/under-the-hood/data-readiness-lessons-from-the-field-for-machine-learning-data-prep/ Machine Learning Data Preparation]
51
правка

Навигация