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

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

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

Надежные методы обнаружения дрейфа

Учитывая актуальность в мире MLOps, в этой области было проведено много исследований. NannyML превосходно исследует и внедряет некоторые из них. Здесь я хочу представить и объяснить некоторые из наиболее часто применяемых идей, кратко обсудив их преимущества и недостатки.

Одномерный анализ дрейфа

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

Непрерывные переменные

Для непрерывных переменных одним из вариантов является применение критерия Колмогорова-Смирнова. Интуитивно, он сравнивает кумулятивные функции распределения эталонных и проанализированных данных (переводится как кривая, показывающая вероятность того, что переменная будет ≤ определенного значения переменной x), принимая максимальное абсолютное расстояние по вертикали между ними. как d-статистика.

В идеале d-статистика должна быть близка к нулю, что означает, что эталонные и проанализированные данные аналогичны. Учитывая полученное значение, мы также должны вычислить его p-значение —вероятность того, что оба распределения получены из одной и той же совокупности, когда мы наблюдаем d-статистику не меньше наблюдаемого (назовем это нулевой гипотезой). Мы отклоняем нашу нулевую гипотезу, если значение p ≤ 0,05 (по соглашению). Таким образом, мы обнаружили дрейф данных!

Категориальные переменные

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

Чем больше статистика хи-квадрат, тем больше различаются результаты между двумя сравниваемыми выборками. Мы также должны проверить p-значение результата, по крайней мере столь значимого, как наблюдаемое, учитывая распределение chi2 степеней свободы нашей таблицы непредвиденных обстоятельств. И снова наша нулевая гипотеза состоит в том, что обе выборки происходят из идентичных популяций. Если значение p меньше 0,05, мы отклоняем нулевую гипотезу (выявлен дрейф данных!).

Рекомендации по одномерному анализу

Плюсы. Это простой метод, полностью объяснимый и простой в общении.

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

Многомерный анализ дрейфа

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

Чтобы добиться этого, люди обычно берут справочные данные и ищут способы изучить их основную структуру. Затем проанализированные точки данных могут быть сопоставлены со скрытым пространством и реконструированы с учетом знаний, полученных при кодировании опорных точек данных. Мы можем сделать это, обучив нейронную сеть автоэнкодера или применив, например, классический алгоритм анализ главных компонентов (АГК). Здесь я рассмотрю последний подход.

Ошибка реконструкции данных PCA

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

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

Затем мы подгоняем PCA к эталонному набору данных, чтобы узнать, как лучше всего спроецировать каждую точку данных только на несколько первых основных компонентов для получения данных с меньшими размерностями. Он направлен на выполнение этого преобразования при сохранении как можно большей вариации данных (мы можем настроить желаемую сохраненную вариацию, по умолчанию NannyML составляет 65%).

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

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

Рекомендации по многомерному анализу

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

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

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

И это все! Рассмотрите возможность подписаться на меня для более продвинутого контента, связанного с данными. Кроме того, свяжитесь со мной в LinkedIn; продолжим дискуссию там!