Введение в концепцию идентификации редких выборок данных

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

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

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

Некоторые популярные методы обнаружения аномалий включают в себя:

  • Методы, основанные на плотности: эти методы идентифицируют аномалии как точки в данных, которые особенно изолированы или удалены от большинства данных. Примеры включают алгоритм локального фактора выбросов (LOF) и одноклассовую машину опорных векторов (SVM).
  • Методы на основе кластеризации: эти методы идентифицируют аномалии как точки, которые не вписываются ни в один из установленных кластеров данных. Примеры включают алгоритм k-средних и алгоритм максимизации ожидания (EM).
  • Методы на основе правил. Эти методы выявляют аномалии путем сравнения данных с набором предопределенных правил или пороговых значений. Примеры включают простые методы установления порога и более сложные системы, основанные на правилах.

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

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

Различие между функциями

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

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

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

Например, рассмотрим систему, отслеживающую производительность сервера. Контекстные функции могут включать местоположение сервера, время суток или тип используемого оборудования. Поведенческие характеристики могут включать использование ЦП, объем доступной памяти или время отклика сервера. Система обнаружения аномалий может использовать как контекстные, так и поведенческие функции для выявления необычных закономерностей в данных, которые могут указывать на проблему с сервером. Нужен еще один наглядный пример? Обратите внимание на температуру в летние месяцы, здесь вполне может быть температура выше 25 °C, в то время как в зимние месяцы такая температура может быть весьма необычной. В этом случае температура считается поведенческой характеристикой, а времена года определяют контекст.

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

Методы обнаружения аномалий

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

Анализ экстремальных значений

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

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

K-ближайший сосед

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

Вот как работает алгоритм KNN для обнаружения аномалий:

  1. Алгоритм сначала обучается на наборе данных, который считается нормальным или свободным от аномалий. На этапе обучения алгоритм изучает характеристики обычных экземпляров в наборе данных.
  2. Когда встречается новый экземпляр данных, алгоритм вычисляет расстояние между новым экземпляром и экземплярами данных в обучающем наборе данных.
  3. Затем KNN выбирает K экземпляров из обучающего набора данных, наиболее близких к новому экземпляру, где K — параметр, указанный пользователем.
  4. Затем KNN проверяет характеристики K ближайших соседей и использует эту информацию, чтобы определить, является ли новый экземпляр аномалией или нет.

Существует множество вариантов применения алгоритма KNN для обнаружения аномалий, но это основная идея. Одним из основных преимуществ KNN для обнаружения аномалий является простота реализации и возможность применения к широкому спектру наборов данных. Однако алгоритм может быть чувствительным к выбору K, а также может быть дорогостоящим в вычислительном отношении, если набор данных большой. При оценке всего набора данных в автономном режиме KNN имеет вычислительную сложность O(N²), однако существует множество расширений для алгоритма KNN, делающих его быстрее, например, за счет использования методов индексирования, ускоряющих работу. вычислительная сложность на этапе вывода составляет O(N log(N)), но за это приходится платить более высокой сложностью на этапе обучения.

Анализ главных компонентов

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

Часто PCA используется двумя разными способами: (i) как метод уменьшения размерности для других методов. Если данные имеют очень большую размерность и мы знаем, что некоторые функции зависят друг от друга, мы можем захотеть построить новое, меньшее, выборочное пространство, в котором функции не зависят друг от друга, что затем может быть предоставлено для другого метода обнаружения аномалий. или (ii) непосредственно как метод обнаружения аномалий. В контексте использования PCA непосредственно для обнаружения аномалий оценка выполняется путем проецирования экземпляров данных в сокращенное k-мерное пространство (где k — количество главных компонент ), а затем репроецирование обратно в исходное сэмпловое пространство. Путем вычитания перепроецированной выборки и исходной выборки получается ошибка перепроекции, которую можно использовать для описания того, насколько хорошо полученный экземпляр данных вписывается в изученную модель PCA.

В приведенной выше формуле ошибка перепроецирования eₚ, вычисляется с использованием N-мерной выборки данных (Nk), x и главные компоненты e.

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

Нейронные сети автокодирования (автоэнкодеры)

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

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

Вот как можно использовать автоэнкодер для обнаружения аномалий:

  1. Автоэнкодер обучается на наборе данных, который считается нормальным или свободным от аномалий. При непосредственном использовании автоэнкодера для обнаружения аномалий этап обучения основан на предположении: «обучение автоэнкодера на данных, относящихся к нормальному поведению, приведет к высоким ошибкам реконструкции, когда автоэнкодер используется для экземпляров аномальных данных».
  2. Когда встречается новый экземпляр, автоэнкодер проецирует экземпляр данных в сжатое скрытое пространство признаков и повторно проецирует его обратно в исходное пространство признаков.
  3. Затем вычисляется разница между исходным экземпляром и реконструированным экземпляром и используется для определения того, является ли новый экземпляр аномалией или нет, поскольку она описывает, насколько хорошо наблюдаемый экземпляр данных соответствует изученной модели нормального поведения данных.

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

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

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

  • Аггарвал, CC (2017). Введение в анализ выбросов. В разделе Анализ выбросов (стр. 1–34). Спрингер, Чам.
  • Чен Дж., Сате С., Аггарвал К. и Турага Д. (июнь 2017 г.). Обнаружение выбросов с помощью ансамблей автоэнкодера. В Материалы международной конференции SIAM 2017 года по интеллектуальному анализу данных (стр. 90–98). Общество промышленной и прикладной математики.
  • Чандола, В., Банерджи, А., и Кумар, В. (2009). Обнаружение аномалий: опрос. Вычислительные опросы ACM (CSUR), 41(3), 1–58.
  • Чалапати, Р., и Чавла, С. (2019). Глубокое обучение для обнаружения аномалий: обзор. препринт arXiv arXiv:1901.03407.
  • Бласкес-Гарсия, А., Конде, А., Мори, У., и Лосано, Дж. А. (2021). Обзор обнаружения выбросов/аномалий в данных временных рядов. Компьютерные опросы ACM (CSUR), 54(3), 1–33.
  • Граабек, С.Г., Анкер, Э.В., Кристенсен, А.Л., и Фугл, А.Р. (2022). Экспериментальное сравнение методов обнаружения аномалий для совместных роботов-манипуляторов.
  • Кригель, Х. П., Крогер, П., Шуберт, Э., и Зимек, А. (2011, апрель). Интерпретация и объединение оценок выбросов. В Материалы Международной конференции SIAM по интеллектуальному анализу данных 2011 г. (стр. 13–24). Общество промышленной и прикладной математики.

Все изображения, если не указано иное, принадлежат автору.