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

Качество данных

Модели ML надежны только в том случае, если они хорошо обучены. Данные — это важный фактор надежности любой модели. Они должны быть качественными, и их качество должно основываться на точности, полноте, последовательности и своевременности.

Точность данных

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

Дубликаты в обучающем наборе данных, например, могут привести к тому, что модель ML будет неправильно присваивать больший вес этим точкам данных.

Что поможет улучшить качество данных?

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

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

Полнота данных

Полноту данных легко понять на примере. Возьмём пример модели, которую обучают определять породы кошек.

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

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

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

Согласованность данных

Несогласованность данных может наблюдаться как в элементах данных, так и в метках. Должны быть стандарты, которые помогут обеспечить согласованность между наборами данных. 

Допустим, правительство собирает данные об атмосфере с датчиков температуры. Если каждый датчик был откалиброван по разным стандартам, это приведет к неточным и обманчивым прогнозам модели. В этих данных есть следующие несоответствия:

  • Разница в единицах измерения, таких как мили и километры.
  • Проблема в данных о местоположении. Например, некоторые люди могут указывать полное название улицы как “улица Гагарина”, а другие могут сокращать его как “ул. Гагарина”.

Своевременность данных

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

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

Воспроизводимость данных

Модели ML обладают неотъемлемым элементом случайности. Во время обучения веса модели ML инициализируются случайными значениями. Затем эти веса сходятся во время обучения, когда модель выполняет итерацию и учится на данных. В связи с этим соответствующий код модели, заданный с сопоставимыми данными обучения, будет давать существенно разные результаты в разных тренировочных циклах. Эта разница создает проблему воспроизводимости. Если вы тренируете модель с точностью 98,1%, повторное обучение не гарантирует получение того же результата, что затрудняет выполнение измерений в разных экспериментах.

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

Дрейф данных

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

Пример:

Возьмём модель, которую обучают классифицировать заголовки новостных статей, такие как «политика», «бизнес» и «технологии». Если вы тренируете и оцениваете свою модель на исторических новостных статьях ХХ века, она, скорее всего, не будет работать на текущих данных. Сегодня известно, что статья со словом «смартфон» в заголовке, вероятно, посвящена технологиям. Модель, обученная на исторических данных, не знает этого слова. Эта техническая особенность известна как дрейф данных.

Решение проблемы дрейфа данных:

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

Масштаб

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

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

Отсутствие масштабирования также влияет на эффективность регуляризации L1 или L2. Величина весов для функции зависит от степени ее значений, поэтому регуляризация повлияет на разные функции по-разному. Масштабируя все функции для сохранения между [–1, 1], мы гарантируем, что нет большой разницы в относительных величинах различных функций.

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

Масштабирование можно разделить на следующие категории:

  • Линейное масштабирование.
  • Нелинейное преобразование.

Подведём итоги

Мы увидели, что проектирование, создание и развертывание систем ML являются важными этапами рабочего процесса ML. Построение производственных моделей продолжает превращаться в инженерную систему, в которой используются методы ML, разработанные в исследовательской среде, и применяются их к бизнес-задачам.

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.