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

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

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

Как обнаружить дрейф данных?

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

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

Теперь у вас есть все данные, необходимые для сравнения первоначальных прогнозов с отредактированными и вычисления показателей эффективности, чтобы увидеть, превышают ли они ваши средние показатели эффективности.ЛЕГКО, ПРАВИЛЬНО?

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

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

Обнаружение дрейфа Колмогорова–Смирнова

Тест Колмогорова-Смирнова (тест KS) — это статистический тест, не требующий ввода данных пользователем и используемый для сравнения непрерывных или прерывистых одномерных распределений вероятностей. Его можно применять либо для сравнения распределения выборки с эталонным распределением вероятностей (одновыборочный КС), либо для двух выборок распределений совокупности, имеющих одинаковую изменчивость, чтобы выяснить, взяты ли они из разных распределений совокупности неизвестных параметров.

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

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

Дополнительную информацию об обнаружении дрейфа KS можно найти в подробной документации библиотеки seldon здесь.

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

Как справиться с дрейфом данных?

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

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

Дрейф данных указывает на то, что поток входного изображения изменился, но как и почему?

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

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

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

Может быть два разных сценария производительности вашей модели.

1) Если модель по-прежнему работает должным образом

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

2) Если модель больше не работает должным образом

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

Ключевые выводы

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

Хороший способ поддерживать непрерывный мониторинг и высокую производительность модели — использовать инструмент, который выполняет мониторинг за вас и автоматизирует ваш цикл обратной связи, чтобы всегда обнаруживать дрейф данных. В Picsellia мы выпустили последнюю версию нашей платформы MLOps, которая позволяет вам выявлять деградацию модели, настраивать автоматические оповещения, когда что-то не так, и при необходимости запускать автоматическое переобучение вашей модели. Если вы хотите узнать больше о нашей платформе MLOps или попробовать ее бесплатно, свяжитесь с нами!

Первоначально опубликовано в блоге Picsellia