Специализация «Инженерное машинное обучение для производства» (MLOPs) — Примечания к курсу

Эта неделя посвящена стратегиям моделей и ключевым проблемам в разработке моделей. Он охватывает анализ ошибок и стратегии работы с различными типами данных. В нем также рассматривается, как справиться с дисбалансом классов и наборами данных с сильным перекосом.

Содержание:

· Проблемы моделирования машинного обучения:
Проблемы при разработке модели:
· Определение базового уровня производительности
· Советы по началу работы
Начало работы с моделированием:
Ограничения развертывания при выборе модели:
Проверка работоспособности кода и алгоритма:
· Анализ ошибок и аудит производительности
Что такое анализ ошибок?
Примеры тегов:
Полезные метрики для каждого тега:
Расстановка приоритетов над чем работать:
Добавление/улучшение данных для определенных категорий:
Искаженный набор данных [Как с ними справиться?]
Аудит производительности
· Разработка ИИ, ориентированного на данные
· Увеличение данных
· Отслеживание экспериментов
· От больших данных к хорошим данным
Что означает термин «Хорошие данные

Введение

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

Проблемы моделирования машинного обучения:

Системы ИИ включают в себя как код (алгоритмы/модель), так и данные. Многие исследования ИИ сосредоточены на части кода, а не на улучшении данных. В большинстве случаев более эффективно сосредоточиться на улучшении данных, а не на улучшении модели, потому что данные больше адаптированы к вашей проблеме, чем алгоритм.

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

Проблемы в разработке модели:

При построении модели есть три ключевых этапа, к которым должно стремиться большинство проектов:

  1. Во-первых, модель должна хорошо работать на тренировочном наборе (обычно измеряемом средней ошибкой обучения).
  2. После того, как вы хорошо поработали на тренировочном наборе, ваша модель должна хорошо работать на наборах для разработки/тестирования.
  3. В конце концов, вам нужно убедиться, что ваша модель хорошо справляется с бизнес-метриками/целями проекта.

Установите базовый уровень производительности

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

Существует несколько способов установить базовый уровень в зависимости от типа данных (неструктурированные данные или структурированные данные):

  • Производительность на уровне человека — HLP
  • Поиск современной литературы / с открытым исходным кодом
  • Быстрая и грязная реализация
  • Производительность старой системы

Базовый уровень помогает указать, что может быть возможно. В некоторых случаях (например, HLP) это также дает представление о том, что является неустранимой ошибкой/байесовской ошибкой.

Советы по началу работы

Приступаем к моделированию:

  • Поиск литературы, чтобы увидеть, что возможно (курсы, блоги, проекты с открытым исходным кодом)
  • Найдите реализации с открытым исходным кодом, если это возможно
  • Разумный алгоритм с хорошими данными часто превосходит отличный алгоритм без таких хороших данных.

Ограничения развертывания при выборе модели:

Следует ли учитывать ограничения развертывания при выборе модели?

  • Да, если базовый уровень уже установлен и цель состоит в сборке и развертывании.
  • Нет (или не обязательно), если цель состоит в том, чтобы установить базовый уровень и определить, что возможно и что, возможно, стоит предпринять.

Проверка работоспособности кода и алгоритма:

Попробуйте переобучить небольшой набор обучающих данных перед обучением на большом. Если модель плохо работает на обучающих данных, она не будет хорошо работать на тестовых данных.

Анализ ошибок и аудит производительности

Что такое анализ ошибок?

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

Примеры тегов:

Визуальный осмотр:

  • Метки конкретных классов
  • Свойства изображения (размытость, темный фон, светлый фон, отражение и т. д.)
  • Другие метаданные: модель устройства, характеристики устройства…

Рекомендации по продуктам:

  • Демография пользователей
  • Характеристики продукта/категория

Полезные метрики для каждого тега:

  • Какая доля ошибок имеет этот тег?
  • Какая часть всех данных с тегами неправильно классифицирована?
  • Какая часть всех данных имеет этот тег?
  • Насколько можно улучшить данные с этим тегом?

Расставьте приоритеты над чем работать:

Определите наиболее важные категории для работы на основе:

  • Сколько возможностей для улучшения есть?
  • Как часто появляется эта категория?
  • Насколько легко повысить точность в этой категории?
  • Насколько важно улучшаться в этой категории?

Добавление/улучшение данных для определенных категорий:

Для категорий, которым вы хотите отдать приоритет:

  • Соберите больше данных
  • Используйте увеличение данных, чтобы получить больше данных
  • Повышение точности этикеток/качества данных

Искаженный набор данных [Как с ними справиться?]

Наборы данных, в которых соотношение положительных и отрицательных примеров очень далеко от 50–50, называются асимметричными наборами данных.

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

Аудит производительности

Даже если ваша модель хорошо справляется со всеми метриками, которые вы установили для оценки. Стоит провести последний аудит производительности, прежде чем запускать его в производство.

Структура аудита:

проверка на точность, справедливость/предвзятость и другие проблемы.

Подумайте, как система может пойти не так:

  • Производительность по подмножествам данных (например, этническая принадлежность, пол, устройства…)
  • Насколько распространены определенные ошибки (например, FP, FN)
  • Выступление в редких классах

Установите метрики для оценки производительности в отношении этих проблем на соответствующих срезах данных.

Получить поддержку владельца бизнеса/продукта

Разработка ИИ, ориентированного на данные

Увеличение данных

Увеличение данных — это эффективный способ получить больше данных, особенно для неструктурированных данных, таких как изображения, аудио или текст. Целью увеличения данных является создание реальных примеров, с которыми алгоритм работает плохо, но люди (или другой базовый уровень) справляются хорошо.

Вот контрольный список, который вы можете использовать при создании новых данных:

  • Звучит реалистично?
  • Ясно ли отображение X → y? (например, могут ли люди распознавать речь?)
  • Алгоритм в настоящее время плохо справляется с этим?

Иногда использование цикла итерации данных более эффективно, чем использование цикла итерации модели.

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

Часто задаваемый вопрос: может ли добавление данных повредить алгоритму обучения?

Для проблем с неструктурированными данными, если:

  • Модель крупная (низкий уклон)
  • Отображение X → y ясно (например, учитывая только входные данные X, люди могут делать точные прогнозы)

Затем добавление данных редко вредит точности.

Для структурированных данных создание новых примеров затруднено. Вместо создания новых данных мы можем создавать новые функции.

Анализ ошибок может быть сложнее, если нет хорошей базовой линии (например, HLP) для сравнения. Анализ ошибок, отзывы пользователей и сравнительный анализ с конкурентами могут вдохновить на добавление новых функций.

Отслеживание экспериментов

Поскольку вы итеративно работаете над построением своей модели, одна вещь, которую вам нужно сделать более эффективной, — это отслеживать ваши эксперименты.

От больших данных к хорошим данным

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

Что означает термин «хорошие данные»?

  • Охватывает важные случаи (хорошее покрытие входов X)
  • Определен последовательно (определение меток y однозначно)
  • Имеет своевременную обратную связь с производственными данными (распространение охватывает отклонение данных и отклонение концепции)
  • Размер соответствует

Использованная литература:

[1] Специализация «Инженерия машинного обучения для производства (MLOps)»