Изменения

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

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

17 858 байт добавлено, 23:15, 24 февраля 2020
Нет описания правки
[[Файл:Datascience-lifecycleЖизненный_цикл_модели_машинного_обучения.pngjpeg|550px|thumb|right| Жизненный цикл модели MLмашинного обучения [https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining#/media/File:CRISP-DM_Process_Diagram.png Источник]]]
'''Жизненный цикл модели машинного обучения''' {{---}} это многоэтапный процесс, в течении которого исследователи, инженеры и разработчики обучают, разрабатывают и обслуживают модель машинного обучения.Модель Разработка модели машинного обучения принципиально отличается от традиционной разработки программного обеспечения и требует своего собственного уникального процесса: жизненного цикла способа разработки ML. Модель машинного обучения — это приложение искусственного интеллекта (ИИ), которое дает возможность автоматически учиться и совершенствоваться на основе собственного опыта без явного участия человека. Основная цель модели заключается в том, чтобы компания смогла использовать преимущества алгоритмов искусственного интеллекта и машинного обучения для получения дополнительных конкурентных преимуществ.
В данном конспекте жизненный цикл модели машинного обучения будет рассмотрен на примере модели, которая предсказывает превышает ли доход человека 50 тысяч долларов.==Бизнес-анализ==
==Исследование==На этом этапе необходимо вместе с заказчиком сформулировать проблемы бизнеса, которые будет решать модель. Также, требуется сформулируйте вопросыпонять, которые определяют бизнес-целикто участвует в проекте со стороны заказчика, на которых могут сосредоточиться методы науки о данных.Главная задача этого этапа — понять основные бизнес-переменныекто выделяет деньги под проект, которые будет прогнозировать модель. Такие переменные называются ключевыми показателями моделии кто принимает ключевые решения. После этого Вдобавок необходимо определить какие метрики будут использоваться, чтобы определить успешность проекта. Примеры метрик: продолжительность пребывания товара на складе, количество материала, которое экономится в процессе производства узнать существуют ли готовые решения и количество абонентов, которые остались у своего оператора.Далее требуется понять ключевые показатели модели, ставя и уточняя "острые" вопросы: релевантныеесли да, конкретные и однозначныечем они не устраивают заказчика. Машинное обучение — это работа с именами и числами для получения ответов на такие вопросы. В основном модели машинного обучения отвечают на следующие вопросы:* Сколько? (регрессия) * К какой категории относится объект? (классификация) * К какой группе относится объект? (кластеризация) * Является ли действия данного пользователя странными? (обнаружение аномалий) * Что похожее предложить пользователю? (рекомендация)
Главная задача этого этапа {{---}} понять основные бизнес-переменные, которые будет прогнозировать модель. Такие переменные называются ключевыми показателями модели. После этого необходимо сформировать команду проектаопределить какие метрики будут использоваться, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда чтобы определить успешность проекта состоитПоследняя задача данного этапа заключается в поиске метрики успешности модели. Например, может потребоваться спрогнозировать количество абонентов, которые хотели уйти от своего оператора, но в итоге остались у него. К моменту завершения проекта требуется чтобы модель уменьшила отток абонентов на X%. С помощью этих данных можно составить рекламные предложения для минимизации оттока. Метрики должны быть составлены в соответствии с принципами [https://ru.wikipedia.org/wiki/SMART SMART].
Далее необходимо оценить какие ресурсы потребуются в течении проекта: есть ли у заказчика доступное железо или его необходимо закупать, где и как хранятся данные, будет ли предоставлен доступ в эти системы, нужно ли дополнительно докупать/собирать внешние данные, сможет ли заказчик выделить своих экспертов для консультаций на данный проект.  Нужно описать вероятные риски проекта, а также определить план действий по их уменьшению. Типичные риски следующие: * Не успеть закончить проект к назначенной дате.* Финансовые риски.* Малое количество или плохое качество данных, которые не позволят получить эффективную модель.* Данные качественные, но закономерности в принципе отсутствуют и, в результате, заказчик не заинтересован в полученной модели. После того, как задача описана на языке бизнеса, необходимо поставить ее в терминах машинного обучения. Особенно нужно узнать ответы на следующие вопросы: Какая [[Оценка качества в задачах классификации и регрессии|метрика]] будет использована для оценки результата модели(например: accuracy, precision, recall, MSE, MAE и т.д.)? Каков критерий успешности модели (например, считаем точность (англ. ''accuracy'') равный 0.8 {{---}} минимально допустимым значением, 0.9 {{---}} оптимальным)? После необходимо сформировать команду проекта, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда проекта состоит из менеджера, исследователей, разработчиков, аналитиков и тестировщиков.  ==Сбор Анализ и подготовка данных== На данном этом этапе осуществляется анализ, сбор и подготовка всех необходимых данных для использования в модели. Основные задача данного этого этапа состоит в том, чтобы получить обработанныеобработанный, высококачественный набор данных, чья связь с целевыми переменными закономернакоторый подчиняется некоторой закономерности. Сбор Анализ и подготовка данных состоят из 3 4 стадий: анализ данных, сбор данных, нормализация данных и моделирование данных. ===Анализ данных=== Задача этого шага – понять слабые и сильные стороны в имеющихся данных, определить их достаточность, предложить идеи, как их использовать, и лучше понять бизнес-процессы заказчика. Требуется провести анализ всех источников данных, к которым заказчик предоставляет доступ. Если собственных данных не хватает, тогда необходимо купить данные у третьих лиц или организовать сбор новых данных. Для начала нужно понимать, какие данные есть у заказчика. Данные могут быть: собственными, сторонними и «потенциальными» данными (нужно организовать сбор, чтобы их получить). Также требуется описать данные во всех источниках (таблица, ключ, количество строк, количество столбцов, объем на диске). Далее, с помощью таблиц и графиков смотрим на данные, чтобы сформулировать гипотезы о том, как данные помогут решить поставленную задачу. Обязательно до моделирования требуется оценить, насколько качественные нужны данные, так как любые ошибки на данном шаге могут негативно повлиять на ход проекта. Типичные проблемы, которые могут быть в данных: пропущенные значения, ошибки в данных, опечатки, неконсистентная кодировка значений (например «w» и «women» в разных системах).
===Сбор данных===
 Сбор данных — это процесс сбора информации по интересующим переменным в установленной систематической форме, которая позволяет отвечать на поставленные вопросы исследования, проверять гипотезы и оценивать результаты. Правильный сбор данных имеет важное значение для обеспечения целостности исследований. Как выбор подходящих инструментов сбора данных, так и четко разграниченные инструкции по их правильному использованию снижают вероятность возникновения ошибок. Прогнозирующие модели хороши только для данных, из которых они построены, поэтому правильная практика сбора данных имеет решающее значение для разработки высокопроизводительных моделей. Данные не должны содержать ошибок и должны быть безошибочными и содержать релевантную информациюрелевантными
===Нормализация данных===
Cледующий Следующий шаг в процессе подготовки — это то место, где аналитики и инженеры данных обычно проводят большую часть своего времени: очистка и нормализация "грязных " данных. Часто это требует от них принимать решения на основе данных, которые они не совсем понимают, например, что делать с отсутствующими или неполными данными, а также с выбросами. Что еще хуже - , эти данные нелегко соотнести с соответствующей единицей анализа: вашим клиентом. Например, чтобы предсказать, уйдет ли один клиент (а не сегмент или целая аудитория), нельзя полагаться на разрозненные данные из разрозненных источников. Ваш специалист Инженер по данным подготовит подготавливает и объединит объединяет все данные из этих источников в формат, который могут интерпретировать модели MLмашинного обучения.  
===Моделирование данных===
 Следующим этапом проекта машинного обучения подготовки данных является моделирование данных, которые мы хотим использовать для прогнозирования. Моделирование данных — это сложный процесс создания логического представления структуры данных. Правильно сконструированная модель данных должна быть адекватна предметной области, т.е. соответствовать всем пользовательским представлениям данных. Моделирование также включает в себя смешивание и агрегирование веб данных, данных из мобильных приложений, оффлайн данных и др.
Для модели, рассматриваемой в данном конспекте, инженеры объединяют разнородные данные в цельный набор данных. Например, у них есть уже готовые данные по признакам, и они объединяют их в один набор данных.
==Разработка =Конструирование признаков=== Конструирование признаков состоит из учета, статистической обработки и [[Уменьшение размерности|преобразования данных для выбора признаков]], используемых в модели. Чтобы понять лежащие в основе модели механизмы, целесообразно оценить связь между компонентами и понять, как алгоритмы машинного обучения будут использовать эти компоненты. На данном этапе нужно творческое сочетание опыта и информации, полученной на этапе исследования данных. В конструирование признаков необходимо найти баланс. Важно найти и учесть информативные переменные, не создавая при этом лишние несвязанные признаки. Информативные признаки улучшают результат модели, а не информативные — добавляют в модель ненужный шум. При выборе признаков необходимо учитывать все новые данные, полученные во время обучения модели.  ==Моделирование== На этом шаге происходит обучения модели. Обучение моделей машинного обучения происходит итерационно – пробуются различные модели, [[Настройка гиперпараметров|перебираются гиперпараметры]], сравниваются значения выбранной метрики и выбирается лучшая комбинация.
На данном этапе осуществляется разработка ===Выбор алгоритма===Вначале нужно понять, какие модели и решаются две основные будут использоваться. Выбор модели зависит от решаемой задачи: конструирование , используемых признакови требований по сложности (например, и поиск если модель будет дальше внедряться в Excel, то Дерево решений или AdaBoost не подойдут). При выборе моделиобязательно принять во внимание следующие факторы:* Достаточность данных (обычно, которая лучше остальных решает поставленную задачу, на основе имеющихся метриксложные модели требуют большого количества данных).* Обработка пропусков (некоторые алгоритмы не умеют обрабатывать пропуски).* Формат данных (для части алгоритмов потребуется конвертация данных).
===Конструирование признаковПланирование тестирования=== Конструирование признаков состоит из учетаДалее необходимо определить, на каких данных будет обучаться модель, статистической обработки и преобразования а на каких тестироваться. Традиционный подход – это разделение набора данных для создания признаковна 3 части (обучение, используемых валидация и тестирование) в моделипропорции 60/20/20. Чтобы понять лежащие в основе В данном случае обучающая выборка используется для обучения модели механизмы, целесообразно оценить связь между компонентами а валидация и понять, как алгоритмы машинного тестирование для получения значения метрики без эффекта переобучения. Более сложные стратегии обучения будут использовать эти компонентымодели подразумевают использование различных вариантов кросс-валидации. На Также на данном этапе нужно творческое сочетание опыта и информациишаге требуется определить, как будет происходить оптимизация гиперпараметров моделей, сколько потребуется итераций для каждого алгоритма, полученной на этапе исследования данных. В конструирование признаков необходимо найти балансбудет ли использоваться [https://medium. Важно найти и учесть информативные переменные, не создавая при этом лишние несвязанные признакиcom/@elutins/grid-searching-in-machine-learning-quick-explanation-and-python-implementation-550552200596 grid-search] или [https://en. Информативные признаки улучшают результат модели, а не информативные — добавляют в модель ненужный шумwikipedia. При создании признаков необходимо учитывать все новые данные, полученные во время обучения моделиorg/wiki/Random_search random-search].
===Обучение модели===
В зависимости от типа вопросаНа данном шаге начинается цикл обучения. После каждой итерации записывается результат модели. На выходе получаем результаты для каждой модели и использованных в ней гиперпараметров. Кроме того, для моделей, у которых значение выбранной метрики превышает минимально допустимое, нужно обратить внимание на следующие особенности: * Необычные закономерности (Например, точность предсказания модели на который вы ищете ответ95% объясняется всего лишь одним признаком). * Скорость обучения модели (Если модель долго обучается, то стоит использовать более эффективный алгоритм или уменьшить обучающую выборку).* Проблемы с данными (Например, в тестовую выборку попали объекты с пропущенными значениями, и, как следствие, значение метрики было посчитано не полностью, и она не позволяет целиком оценить модель). ===Оценка результатов===После формирования списка из подходящих моделей, нужно еще раз их детально проанализировать и выбрать лучшие модели. На выходе необходимо иметь список моделей, отсортированный по объективному и/или субъективному критерию. Задачи шага: провести технический анализ качества модели (ROC, Gain, K-S и т.д.), оценить, готова ли модель к внедрению в корпоративное хранилище данных, достигаются ли заданные критерии качества, проанализировать результаты с точки зрения достижения бизнес-целей. Если критерий успешности (выбранная метрика) не достигнут, то необходимо или улучшить текущую модель, можно или использовать разные алгоритмы другую. Прежде чем переходить к внедрению нужно убедиться, что результат моделированияпонятен и логичен. Например, прогнозируется отток клиентов и значение метрики GAIN равно 99%. Слишком хороший результат – повод проверить модель еще раз. Процесс обучения модели  ==Оценка решения==Результатом предшествующего этапа является построенная модель машинного обучения состоит из следующих и найденные закономерности. На данном этапе происходит оценивание результатов проекта. Если на предыдущем этапе оценивались результаты моделирования с технической точки зрения, то здесь происходит оценка результатов с позиции достижения бизнес-целей. Например, насколько качественно полученная модель решает поставленные бизнес-задачи. Также, необходимо понять найдена ли в течении проекта какая-то новая полезная информация, которую стоит выделить отдельно. Далее необходимо проанализировать ход проекта и сформулировать его сильные и слабые стороны. Для этого нужно ответить на следующие вопросы: * Какие этапы проекта можно было сделать эффективнее?* Какие ошибки были сделаны? Возможно ли их избежать в будущем?* Были ли не сработавшие гипотезы? Если да, стоит ли их повторять? * Были ли неожиданности при реализации шагов:? Как их предусмотреть в будущем?  С помощью кросс-валидации разделите набор данных случайным образом Затем, если модель устраивает заказчика, то необходимо или внедрить модель, или, если существует возможности для улучшения, улучшить модель. Если на два набора данныхданном этапе несколько подходящих моделей, то нужно выбрать модель, которая будет дальше внедряться. ==Внедрение==[[Файл:Deployment lifecycle.png|450px|thumb|right| Цикл развертывания [https: //christophergs.github.io/assets/images/deployment.png Источник]]] Внедрение модели машинного обучения в производство означает доступность модели для других бизнес-систем. Внедряя модель, другие системы могут отправлять ей данные и получать от модели прогнозы, которые, в свою очередь, используются в системах компании. Благодаря внедрению модели машинного обучения, компания сможет в полной мере воспользоваться созданной моделью машинного обучения . Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться.Создав эффективно работающую модель, требуется ввести ее в эксплуатацию для тестированиявзаимодействия с другими системами компании. В зависимости от бизнес-требований, модель исполняет прогнозы в режиме реального времени или в стандартном режиме. Обучите Для развертывания модели, необходимо внедрять модель с помощью тренировочного открытого API-интерфейса. Интерфейс упрощает использование модели различными приложениями, например:* Веб-сайты. * Электронные таблицы. * Панели мониторинга бизнес-приложения. * Серверные приложения. Также необходимо понять, собирается ли компания использовать Платформу как Сервис (англ. ''Platform as a Service, PaaS'') или Инфраструктуру как Сервис (англ. ''Infrastructure as a Service, IaaS''). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров для быстрого масштабирования количества контейнеров по мере увеличения спроса. Далее, нужно убедиться, что развертывание происходит через платформу непрерывного развертывания(англ. ''Continuous Deployment platform''). ==Тестирование и мониторинг== На данном этапе осуществляется тестирование, мониторинг и контролирование модели. В основном тесты моделей машинного обучения делятся на следующие части: ===Дифференциальные тесты=== Происходит сравнение результатов, данных новой моделью, и результатов, данных старой моделью для стандартного набора тестовых данных. Оцените Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения модели, которая выглядит работающей, но, на самом деле, таковой не является, например, когда устаревший набор данных для использовался в обучении или модель обучилась не на всех признаках. Такие проблемы, присущие машинному обучения, не приведут к ошибке на стандартных тестах. ===Контрольные тесты=== Тесты сравнивают время, затрачиваемое либо на обучение, либо на предоставление прогнозов из модели от одной версии к другой. Они мешают вводить неэффективные добавления кода в модели машинного обучения и тестирования. Опять же, это то, что трудно уловить с помощью традиционных тестов (хотя некоторые инструменты статического анализа кода могут помочь).  ===Нагрузочные / стресс-тесты=== Используйте ансамбль конкурирующих алгоритмов Это не совсем специфичные тесты для модели машинного обучения, а но с учетом необычно больших требований к ЦП / памяти в некоторых моделях машинного обучения такие тесты особенно стоит использовать. ===A/B-тестирование=== Еще один популярный способ тестирования - A/B-тестирование. Этот метод также связанные с ними параметры настройки называется сплит-тестированием (перебор гиперпараметровангл. ''split testing'' ). A/B-тестирование позволяет оценивать количественные показатели работы двух вариантов модели, а также сравнивать их между собой. Чтобы получить статистически значимый результат, которые определяют ответы очень важно исключить влияние моделей друг на поставленный вопрос по имеющимся даннымдруга. Все вышеперечисленные тесты намного проще использовать с контейнеризованными приложениями, так как это делает раскрутку реалистичного производственного стека тривиальной. ВыяснитеМониторинг и оповещение могут быть особенно важны при развертывании моделей. По мере усложнения системы потребуются возможности мониторинга и оповещения, какой алгоритм наиболее точно решает поставленную задачучтобы сообщать, сравнивая метрики когда прогнозы для все возможных вариантовконкретной системы выходят за пределы ожидаемого диапазона. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минут. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделей. ==См.также==* [[Общие понятия]]* [[Модель алгоритма и её выбор]]* [[Оценка качества в задачах классификации и регрессии]] ==Источники информации== #[https://docs.microsoft.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
правка

Навигация