Редактирование: Жизненный цикл модели машинного обучения
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | [[Файл:Жизненный_цикл_модели_машинного_обучения.jpeg|550px|thumb|right| Жизненный цикл модели машинного обучения [https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining#/media/File:CRISP-DM_Process_Diagram. | + | [[Файл:Жизненный_цикл_модели_машинного_обучения.jpeg|550px|thumb|right| Жизненный цикл модели машинного обучения [https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining#/media/File:CRISP-DM_Process_Diagram.pngИсточник]]] |
− | '''Жизненный цикл модели машинного обучения''' | + | '''Жизненный цикл модели машинного обучения''' – это многоэтапный процесс, в течении которого исследователи, инженеры и разработчики обучают, разрабатывают и обслуживают модель машинного обучения. Разработка модели машинного обучения принципиально отличается от традиционной разработки программного обеспечения и требует своего собственного уникального способа разработки. Модель машинного обучения — это приложение искусственного интеллекта (ИИ), которое дает возможность автоматически учиться и совершенствоваться на основе собственного опыта без явного участия человека. Основная цель модели заключается в том, чтобы компания смогла использовать преимущества алгоритмов искусственного интеллекта и машинного обучения для получения дополнительных конкурентных преимуществ. |
− | == | + | ==Исследование== |
На этом этапе необходимо вместе с заказчиком сформулировать проблемы бизнеса, которые будет решать модель. Также, требуется понять, кто участвует в проекте со стороны заказчика, кто выделяет деньги под проект, и кто принимает ключевые решения. Вдобавок необходимо узнать существуют ли готовые решения и, если да, чем они не устраивают заказчика. | На этом этапе необходимо вместе с заказчиком сформулировать проблемы бизнеса, которые будет решать модель. Также, требуется понять, кто участвует в проекте со стороны заказчика, кто выделяет деньги под проект, и кто принимает ключевые решения. Вдобавок необходимо узнать существуют ли готовые решения и, если да, чем они не устраивают заказчика. | ||
− | Главная задача этого этапа | + | Главная задача этого этапа — понять основные бизнес-переменные, которые будет прогнозировать модель. Такие переменные называются ключевыми показателями модели. После этого необходимо определить какие метрики будут использоваться, чтобы определить успешность проекта. Например, может потребоваться спрогнозировать количество абонентов, которые хотели уйти от своего оператора, но в итоге остались у него. К моменту завершения проекта требуется чтобы модель уменьшила отток абонентов на X%. С помощью этих данных можно составить рекламные предложения для минимизации оттока. Метрики должны быть составлены в соответствии с принципами [https://ru.wikipedia.org/wiki/SMART SMART]. |
Далее необходимо оценить какие ресурсы потребуются в течении проекта: есть ли у заказчика доступное железо или его необходимо закупать, где и как хранятся данные, будет ли предоставлен доступ в эти системы, нужно ли дополнительно докупать/собирать внешние данные, сможет ли заказчик выделить своих экспертов для консультаций на данный проект. | Далее необходимо оценить какие ресурсы потребуются в течении проекта: есть ли у заказчика доступное железо или его необходимо закупать, где и как хранятся данные, будет ли предоставлен доступ в эти системы, нужно ли дополнительно докупать/собирать внешние данные, сможет ли заказчик выделить своих экспертов для консультаций на данный проект. | ||
Строка 17: | Строка 17: | ||
* Данные качественные, но закономерности в принципе отсутствуют и, в результате, заказчик не заинтересован в полученной модели. | * Данные качественные, но закономерности в принципе отсутствуют и, в результате, заказчик не заинтересован в полученной модели. | ||
− | После того, как задача описана на языке бизнеса, необходимо поставить ее в терминах машинного обучения. Особенно нужно узнать ответы на следующие вопросы: Какая [[Оценка качества в задачах классификации и регрессии|метрика]] будет использована для оценки результата модели(например: accuracy, precision, recall, MSE, MAE и т.д.)? Каков критерий успешности модели (например, считаем | + | После того, как задача описана на языке бизнеса, необходимо поставить ее в терминах машинного обучения. Особенно нужно узнать ответы на следующие вопросы: Какая [[Оценка качества в задачах классификации и регрессии|метрика]] будет использована для оценки результата модели(например: accuracy, precision, recall, MSE, MAE и т.д.)? Каков критерий успешности модели (например, считаем Accuracy равный 0.8 — минимально допустимым значением, 0.9 — оптимальным)? |
После необходимо сформировать команду проекта, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда проекта состоит из менеджера, исследователей, разработчиков, аналитиков и тестировщиков. | После необходимо сформировать команду проекта, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда проекта состоит из менеджера, исследователей, разработчиков, аналитиков и тестировщиков. | ||
Строка 35: | Строка 35: | ||
===Нормализация данных=== | ===Нормализация данных=== | ||
− | Следующий шаг в процессе подготовки — это то место, где аналитики и инженеры данных обычно проводят большую часть своего времени: очистка и нормализация "грязных" данных. Часто это требует от них принимать решения на основе данных, которые они не совсем понимают, например, что делать с отсутствующими или неполными данными, а также с выбросами. Что еще хуже, эти данные нелегко соотнести с соответствующей единицей анализа: клиентом. Например, чтобы предсказать, уйдет ли один клиент (а не сегмент или целая аудитория), нельзя полагаться на данные из разрозненных источников. Инженер по данным | + | Следующий шаг в процессе подготовки — это то место, где аналитики и инженеры данных обычно проводят большую часть своего времени: очистка и нормализация "грязных" данных. Часто это требует от них принимать решения на основе данных, которые они не совсем понимают, например, что делать с отсутствующими или неполными данными, а также с выбросами. Что еще хуже, эти данные нелегко соотнести с соответствующей единицей анализа: вашим клиентом. Например, чтобы предсказать, уйдет ли один клиент (а не сегмент или целая аудитория), нельзя полагаться на данные из разрозненных источников. Инженер по данным подготовит и объединит все данные из этих источников в формат, который могут интерпретировать модели машинного обучения. |
===Моделирование данных=== | ===Моделирование данных=== | ||
− | |||
Следующим этапом подготовки данных является моделирование данных, которые мы хотим использовать для прогнозирования. Моделирование данных — это сложный процесс создания логического представления структуры данных. Правильно сконструированная модель данных должна быть адекватна предметной области, т.е. соответствовать всем пользовательским представлениям данных. Моделирование также включает в себя смешивание и агрегирование веб данных, данных из мобильных приложений, оффлайн данных и др. | Следующим этапом подготовки данных является моделирование данных, которые мы хотим использовать для прогнозирования. Моделирование данных — это сложный процесс создания логического представления структуры данных. Правильно сконструированная модель данных должна быть адекватна предметной области, т.е. соответствовать всем пользовательским представлениям данных. Моделирование также включает в себя смешивание и агрегирование веб данных, данных из мобильных приложений, оффлайн данных и др. | ||
Для модели, рассматриваемой в данном конспекте, инженеры объединяют разнородные данные в цельный набор данных. Например, у них есть уже готовые данные по признакам, и они объединяют их в один набор данных. | Для модели, рассматриваемой в данном конспекте, инженеры объединяют разнородные данные в цельный набор данных. Например, у них есть уже готовые данные по признакам, и они объединяют их в один набор данных. | ||
− | == | + | ==Разработка модели== |
− | + | На данном этапе осуществляется разработка модели и решаются две основные задачи: конструирование признаков, и поиск модели, которая лучше остальных решает поставленную задачу, на основе имеющихся метрик. | |
− | На данном этапе | ||
− | == | + | ===Конструирование признаков=== |
− | + | ||
− | + | [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A3%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8 Конструирование признаков] состоит из учета, статистической обработки и преобразования данных для создания признаков, используемых в модели. Чтобы понять лежащие в основе модели механизмы, целесообразно оценить связь между компонентами и понять, как алгоритмы машинного обучения будут использовать эти компоненты. | |
− | + | На данном этапе нужно творческое сочетание опыта и информации, полученной на этапе исследования данных. В конструирование признаков необходимо найти баланс. Важно найти и учесть информативные переменные, не создавая при этом лишние несвязанные признаки. Информативные признаки улучшают результат модели, а не информативные — добавляют в модель ненужный шум. При создании признаков необходимо учитывать все новые данные, полученные во время обучения модели. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Обучение модели=== | ===Обучение модели=== | ||
− | + | В зависимости от типа вопроса, на который вы ищете ответ, можно использовать разные алгоритмы моделирования. Процесс обучения модели машинного обучения состоит из следующих шагов: | |
− | + | С помощью кросс-валидации необходимо разделить набор данных случайным образом на два набора данных: | |
− | * | + | * Данные для обучения. |
− | * | + | * Данные для тестирования. |
− | + | Обучите модель с помощью тренировочного набора данных. | |
− | + | Оцените набор данных для обучения и тестирования. | |
− | + | Используйте ансамбль конкурирующих алгоритмов машинного обучения, а также связанные с ними параметры настройки (перебор [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B0_%D0%B8_%D0%B5%D1%91_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80 гиперпараметров]), которые определяют ответы на поставленный вопрос по имеющимся данным. | |
− | + | Выясните, какой алгоритм наиболее точно решает поставленную задачу, сравнивая метрики для все возможных вариантов. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | ==Развертывание== |
− | [[Файл:Deployment lifecycle.png|450px|thumb|right| Цикл развертывания | + | [[Файл:Deployment lifecycle.png|450px|thumb|right| Цикл развертывания]] |
− | + | Развертывание моделей машинного обучения или простое внедрение моделей в производство означает доступность моделей для других бизнес-систем. Развертывая модели, другие системы могут отправлять им данные и получать их прогнозы, которые, в свою очередь, заполняются в системах компании. Благодаря развертыванию модели машинного обучения компания сможет в полной мере воспользоваться созданной моделью машинного обучения. | |
Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться. | Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться. | ||
− | Создав эффективно | + | Создав набор эффективно работающих моделей, требуется ввести их в эксплуатацию для взаимодействия с другими системами компании. В зависимости от бизнес-требований прогнозы выполняются в режиме реального времени или в стандартном режиме. Для развертывания модели, необходимо предоставить их с помощью открытого API-интерфейса. Интерфейс упрощает использование модели различными приложениями, например: |
* Веб-сайты. | * Веб-сайты. | ||
* Электронные таблицы. | * Электронные таблицы. | ||
Строка 91: | Строка 71: | ||
* Серверные приложения. | * Серверные приложения. | ||
− | Также необходимо понять, собирается ли компания использовать Платформу как Сервис (англ. ''Platform as a Service, PaaS'') или Инфраструктуру как Сервис (англ. ''Infrastructure as a Service, IaaS''). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров | + | Также необходимо понять, собирается ли компания использовать Платформу как Сервис (англ. ''Platform as a Service, PaaS'') или Инфраструктуру как Сервис (англ. ''Infrastructure as a Service, IaaS''). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров (теперь Kubernetes является стандартом) для быстрого масштабирования количества контейнеров по мере изменения спроса.Также, нужно убедиться, что развертывание происходит через платформу непрерывного развертывания(англ. ''Continuous Deployment platform''). |
==Тестирование и мониторинг== | ==Тестирование и мониторинг== | ||
Строка 99: | Строка 79: | ||
===Дифференциальные тесты=== | ===Дифференциальные тесты=== | ||
− | Происходит сравнение результатов, данных новой моделью, и результатов, данных старой моделью для стандартного набора тестовых данных. Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения | + | Происходит сравнение результатов, данных новой моделью, и результатов, данных старой моделью для стандартного набора тестовых данных. Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения моделей, которые выглядят рабочими, например, когда устаревший набор данных использовался в обучении или признак был случайно удален из кода. Такие проблемы, присущие машинному обучения, не приведут к ошибке на стандартных тестах. |
===Контрольные тесты=== | ===Контрольные тесты=== | ||
Строка 119: | Строка 99: | ||
==См.также== | ==См.также== | ||
* [[Общие понятия]] | * [[Общие понятия]] | ||
− | * [[ | + | * [[Глубокое обучение]] |
− | |||
==Источники информации== | ==Источники информации== | ||
Строка 130: | Строка 109: | ||
[[Категория: Машинное обучение]] | [[Категория: Машинное обучение]] | ||
+ | [[Категория: Глубокое обучение]] |