Выявление аномалий
Выявление аномалий (англ. 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].
В системах Интернета вещей выявление аномалий критически важно для безопасности и эффективности. Это позволяет обнаруживать неисправности и нарушения в сложных сетях устройств. Методы должны справляться с обработкой потоковых данных в реальном времени, разнообразием типов устройств и требованиями к масштабируемости. Так, Гарк и соавторы[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].
Выявление аномалий в динамических сетях
В динамических сетях, таких как финансовые системы, социальные сети и транспортная инфраструктура, детектирование аномалий осложняется непрерывным изменением структуры связей и состояний. В отличие от статических графов, здесь нужны адаптивные методы.
- Аномалии сообществ
- Аномалии сжатия
- Аномалии разложения
- Аномалии по расстоянию
- Аномалии вероятностных моделей
Интерпретируемое выявление аномалий
Многие из перечисленных выше методов выдают только числовую оценку, обычно объясняемую низкой локальной плотностью данных. Однако в рамках объяснимого искусственного интеллекта всё больше требуют методов с чётким и подробным обоснованием результата. Например:
- Метод Subspace Outlier Degree (SOD)[31] выделяет признаки, по которым пример нормален, и признаки, по которым он отклоняется.
- Метод Correlation Outlier Probabilities (COP)[32] вычисляет вектор ошибок, показывающий направление смещения примера относительно нормы, что можно интерпретировать как контрфактическое объяснение.
Программное обеспечение
- ELKI — открытая библиотека на Java для интеллектуального анализа данных, поддерживает разнообразные алгоритмы выявления аномалий и ускоряющие структуры.
- PyOD — специализированная библиотека Python для выявления аномалий[51].
- scikit-learn — открытая Python-библиотека, реализующая и алгоритмы неконтролируемого обнаружения аномалий.
- Wolfram Mathematica содержит функционал неконтролируемого выявления аномалий для различных типов данных[52].


