Выявление аномалий

Выявление аномалий (англ. anomaly detection) — это подход в анализе данных, заключающийся в идентификации редких объектов, событий или наблюдений, которые существенно отличаются от большинства данных и не соответствуют чётко определённому представлению о нормальном поведении[1]. Подобные примеры могут вызывать подозрение, что они были сгенерированы иным механизмом[2], или выглядеть несогласованными с остальной частью набора данных[3].

Описание

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

Существует три основных класса методов выявления аномалий[1]. Контролируемые методы требуют наличия размеченного набора данных с классами «нормальные» и «аномальные» объекты и подразумевают обучение классификатора. Однако этот подход встречается редко из-за дефицита размеченных данных и несбалансированности классов. Полуконтролируемые методы предполагают наличие разметки только части данных, чаще всего только для «нормальных» примеров; на их основе строится модель нормального поведения, по которой вычисляется вероятность принадлежности новых объектов к нормальным. Неконтролируемые методы не требуют разметки данных и благодаря универсальности и практической применимости используются чаще всего.

Определения

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

Неоднозначные определения

  • Выброс — наблюдение, настолько сильно отличающееся от других, что возникает подозрение в иной природе его появления[2].
  • Аномалии — это экземпляры или группы данных, которые очень редко встречаются в наборе данных и чьи признаки существенно отличаются от большинства данных.
  • Выброс — наблюдение (или подмножество наблюдений), кажущееся несогласованным с остальной частью данных[3].
  • Аномалия — точка или группа точек, относительно удалённая от других в многомерном пространстве признаков.
  • Аномалии — это такие структуры в данных, которые не соответствуют устоявшемуся понятию нормального поведения[1].

Формализованные определения

  • Пусть T — наблюдения из одномерного нормального распределения, а O — отдельная точка из T. Тогда z-оценка для O превышает заранее выбранный порог тогда и только тогда, когда O является выбросом.

История

Обнаружение вторжений

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

К концу 1970-х и началу 1980-х годов анализ подобных логов в основном осуществлялся постфактум для расследования инцидентов, поскольку огромный объём данных делал невозможным мониторинг в реальном времени. Развитие цифровых хранилищ позволило анализировать аудиторские логи онлайн с помощью специальных программ, однако из-за высокой ресурсоёмкости они чаще запускались вне пиковых нагрузок[4].

В 1990-е годы появились системы обнаружения вторжений в реальном времени, способные анализировать данные аудита по мере их поступления и оперативно реагировать на атаки, что стало поворотным моментом в переходе к проактивной защите[4].

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

Применения

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

Обнаружение вторжений

Идея выявления аномалий для систем обнаружения вторжений (IDS) впервые прозвучала в работе Дороти Деннинг в 1986 году[6]. Для IDS выявление аномалий обычно реализуется через пороги и статистические методы, а также с помощью технологий мягких вычислений и индуктивного обучения[7]. К 1999 году в числе анализируемых характеристик были профили пользователей, рабочих станций, сетей, удалённых хостов, групп пользователей и программ — как по частоте, так и по среднему, дисперсии, ковариациям и стандартному отклонению[8]. Противоположный подходу выявления аномалий в IDS — обнаружение злоупотреблений.

Борьба с мошенничеством в финтехе

Выявление аномалий имеет решающее значение для предотвращения мошенничества в финтех-отрасли[9][10].

Предобработка данных

Предобработка данных с целью удаления аномалий может стать важным этапом анализа, преследующим разные цели. Статистики, такие как среднее и стандартное отклонение, становятся точнее после их удаления, а визуализация — информативнее. В задачах с учителем исключение аномальных данных часто приводит к существенному росту точности моделей[11][12].

Видеонаблюдение

Выявление аномалий становится всё более важным для систем видеонаблюдения в целях повышения безопасности[13]. Современные методы на основе свёрточных нейронных сетей (CNN) и рекуррентных сетей с простыми рекуррентными узлами (SRU) успешно выявляют необычные поведения в видеоданных. Такие модели способны обрабатывать и анализировать большие видеопотоки в реальном времени, распознавая отклонения, которые могут свидетельствовать о потенциальных угрозах безопасности. Особое значение в этой области имеют масштабируемые фреймворки для работы с множеством потоков при ограниченных вычислительных ресурсах[14][15].

Инфраструктура ИТ

В управлении инфраструктурными ИТ-системами выявление аномалий существенно для обеспечения бесперебойной работы и надёжности сервисов[16]. Такими системами управлять сложно из-за большого количества взаимосвязанных компонентов и объёмов данных, поэтому используются методы агрегирования и интерпретации информации[17]. Внедрение библиотек по лучшим практикам (ITIL) позволяет отслеживать и управлять производительностью систем и пользовательским опытом[16]. Вовремя обнаруженные аномалии позволяют выявить и предотвратить возможные ухудшения работы или сбои, обеспечивая стабильную работу бизнеса[16].

Системы Интернета вещей (IoT)

В системах Интернета вещей выявление аномалий критически важно для безопасности и эффективности. Это позволяет обнаруживать неисправности и нарушения в сложных сетях устройств. Методы должны справляться с обработкой потоковых данных в реальном времени, разнообразием типов устройств и требованиями к масштабируемости. Так, Гарк и соавторы[18] предложили многоступенчатую архитектуру с применением пространственного и плотностного кластеризации и локально-чувствительного хэширования для повышения стойкости систем.

Нефтяная промышленность

В нефтяной промышленности выявление аномалий важно для мониторинга критически важных механизмов[19]. Мартí и соавторы применили оригинальный алгоритм сегментации для анализа данных датчиков с целью обнаружения аномалий в реальном времени[19]. Это позволяет оперативно выявлять и устранять отклонения, обеспечивая надёжность и безопасность нефтяных объектов[19].

Мониторинг трубопроводов нефти и газа

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

Методы

В литературе предложено множество методик выявления аномалий[1]. Эффективность методов зависит от характеристик набора данных: одни лучше выявляют локальные выбросы, другие — глобальные, а при сравнении на разных наборах систематических преимуществ нет[21][22]. Для большинства алгоритмов требуется задание малопонятных заранее параметров, критичных для результата. Ниже приведены некоторые популярные подходы:

Безпараметрические

Также называются частотными или основанными на счёте. Самый простой вариант — построение гистограммы по обучающим или известным нормальным данным: если тестовая точка не попадает ни в один из бинов, она считается аномалией; можно также присваивать «оценку аномальности» в зависимости от высоты бина[1]. Ключ к эффективности — правильно подобрать ширину бинов.

Более сложные методы используют ядерные функции для аппроксимации распределения нормальных данных, а объекты из областей с низкой плотностью считаются аномалиями[23].

Параметрические методы

  • Z-оценка,
  • Критерий диапазона Тьюки,
  • Тест Граббса

Плотностные методы

  • Методы основаны на локальной плотности (например, алгоритм k-ближайших соседей[24][25][26], локальный фактор выброса[27], леса изоляции[28][29] и др[30].)
  • Многомерные методы: SOD[31] (подпространства), COP[32] (корреляционные), методы на основе тензоров[33] для высокоразмерных данных[34]
  • Метод одномодового (one-class) SVM[35]

Нейросетевые методы

  • Репликаторные нейронные сети[36], автоэнкодеры, вариационные автоэнкодеры[37], нейросети LSTM[38]
  • Байесовские сети[36]
  • Скрытые Марковские модели[36]
  • Метод минимальной детерминанты ковариации[39]
  • Глубокое обучение
    • Свёрточные нейронные сети (CNN): Широко применяются для неконтролируемого выявления аномалий, особенно при анализе изображений и видео. Их способность к иерархическому извлечению пространственных признаков позволяет детектировать визуальные аномалии; например, CNN можно обучить на изображениях изделий для обнаружения дефектов в промышленности[40].
    • SRU (Simple Recurrent Units): Для временных рядов SRU, разновидность рекуррентных сетей, позволяют детектировать временные аномалии, выявляя отклонения в динамике В отличие от традиционных RNN, SRU быстрее и более удобны для параллелизации, что особенно ценно для оперативного обнаружения отклонений на финансовых рынках и в обслуживании оборудования.
    • Foundation-модели: С момента появления крупных Foundation-моделей их функции активно используются для сегментации и локализации аномалий, например, через совместное обучение текстовых и визуальных эмбеддингов (CLIP и аналоги)[41], а также с помощью генеративных моделей для выявления аномалий по ошибке реконструкции.

Кластерные методы

  • Кластеризация: выявление выбросов с помощью анализа кластеров[42][43]
  • Отклонения от ассоциативных правил
  • Методы на основе нечеткой логики

Ансамбли

  • Ансамблевые методы: объединение детекторов и фич-бэггинг[44][45], нормализация оценок[46][47], создание ансамблей разнородных моделей[48][49].

Другие методы

Метод HBOS (Histogram-based Outlier Score) применяет гистограммы признаков и предполагает их независимость для быстрой выдачи результата[50].

Выявление аномалий в динамических сетях

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

Виды аномалий в динамических сетях

  1. Аномалии сообществ
  2. Аномалии сжатия
  3. Аномалии разложения
  4. Аномалии по расстоянию
  5. Аномалии вероятностных моделей

Интерпретируемое выявление аномалий

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

  • Метод Subspace Outlier Degree (SOD)[31] выделяет признаки, по которым пример нормален, и признаки, по которым он отклоняется.
  • Метод Correlation Outlier Probabilities (COP)[32] вычисляет вектор ошибок, показывающий направление смещения примера относительно нормы, что можно интерпретировать как контрфактическое объяснение.

Программное обеспечение

  • ELKI — открытая библиотека на Java для интеллектуального анализа данных, поддерживает разнообразные алгоритмы выявления аномалий и ускоряющие структуры.
  • PyOD — специализированная библиотека Python для выявления аномалий[51].
  • scikit-learn — открытая Python-библиотека, реализующая и алгоритмы неконтролируемого обнаружения аномалий.
  • Wolfram Mathematica содержит функционал неконтролируемого выявления аномалий для различных типов данных[52].

Примечания