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

Для эффективной работы сложной технологической системы необходимы различные методы аналитики и мониторинга, обеспечивающие контроль, управление и проактивное изменение различных параметров. Как правило, мониторинг выполняется с помощью различных общих инструментов (таких как надежные системы сбора событий и визуализации). С другой стороны, создание эффективных аналитических инструментов требует дополнительных исследований, экспериментов и отличного знания предметной области. Методы анализа данных можно разделить на четыре основных типа [1]:

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

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

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

Большинство результатов мониторинга технологических систем можно представить в виде временных рядов [2]. Наиболее важными свойствами временного ряда являются:

  • привязка каждого измерения (выборочного, дискретного) ко времени его появления;
  • равное время-расстояние между измерениями;
  • возможность реконструировать поведение процесса в текущем и будущем периодах на основе данных, полученных в предыдущие периоды.

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

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

Есть четыре свойства временного ряда, достаточно точно описывающие его особенности:

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

Временные ряды могут содержать аномалии. Аномалия – это отклонение от стандартного поведения процесса. Алгоритмы обнаружения машинных аномалий используют данные о работе процесса (наборы данных). В зависимости от предметной области набор данных может включать различные аномалии. Различают несколько видов аномалий:

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

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

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

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

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

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

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

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

Алгоритмы обнаружения аномалий во временных рядах часто делят на три группы [3]:

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

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

Основная цель методов, основанных на прогнозировании, — построение качественной модели процесса для имитации сигнала и сравнения полученных смоделированных значений с исходными (истинными). Если предсказанный и истинный сигналы имеют близкие значения, то поведение системы считается «нормальным»; если значения в модели отличаются от истинных значений, то поведение системы на этом участке будет признано аномальным.

SARIMA [4] и рекуррентные нейронные сети [5] являются наиболее популярными методами моделирования временных рядов.

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

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

Одним из недавно разработанных методов, основанных на реконструкции, является TadGAN [3], который добился впечатляющих результатов в обнаружении аномалий. Он был разработан исследователями Массачусетского технологического института в конце 2020 года. Архитектура метода TadGAN содержит элементы автоэнкодера и генеративно-состязательной сети.

Ɛ действует как кодировщик, отображающий последовательности временных рядов x в вектора скрытого пространства z, а G является декодером, восстановление последовательностей временных рядов из скрытого представления z. Cx — критик, оценивающий G(Ɛ(х)) качество реконструкции, а Cz — критик, оценивающий z = Ɛ( х) скрытое сходство представления с белым шумом. Кроме того, применяется контроль «похожести» исходной и восстановленной выборок с помощью L2-меры, основанной на идеологии «Потери согласованности цикла» (обеспечивает общее сходство сгенерированных выборок с исходными выборками в GAN) [6]. Результирующая целевая функция представляет собой сумму всех метрик, предназначенных для оценки качества работы Cx, Cz критиков, а также мер подобия исходного и восстановленного сигналов.

Различные стандартные пакеты API высокого уровня (например, TensorFlow или PyTorch) могут использоваться для создания и обучения нейронных сетей. В репозитории [7] можно найти пример реализации архитектуры, похожей на TadGAN, где для тренировки весов используется пакет TensorFlow. При обучении модели были оптимизированы пять показателей:

  • aeLoss — среднеквадратичное отклонение между исходным и восстановленным временными рядами, другими словами, расхождение между x и G(Ɛ(х)),
  • cxLoss — критическая бинарная перекрестная энтропия Cx, определяющая разницу между исходным сегментом временного ряда и искусственно сгенерированным,
  • cx_g_Loss — бинарная кросс-энтропия, ошибка генератора G(Ɛ(х)), характеризующая его неспособность «обмануть» Cxкритика,
  • czLoss — критическая бинарная кросс-энтропия Cz, определяющая разницу между скрытым вектором, сгенерированным кодером Ɛ, и белым шумом, обеспечивает Ɛ(х) скрытое сходство вектора со случайным вектором, препятствующее «обучению» модели отдельных закономерностей в исходных данных,
  • cz_g_Loss — бинарная кросс-энтропия, ошибка генератора Ɛ(х), характеризующая его неспособность создать латентные векторы, подобные случайным, и тем самым «обмануть» Czкритика.

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

  • сравнение по пунктам;
  • сравнение площадей кривых в поле вокруг каждого образца (ширина является гиперпараметром);
  • Динамическое искажение времени [9].

Качество задачи бинарной классификации оценивается через F1-метрику: «положительно» (нулевая гипотеза) — есть аномалия; «отрицательный» (альтернативная гипотеза) — аномалии нет.

Для демонстрации работы метода будем использовать синтетические (искусственно созданные) ряды без аномалий. Этот ряд представляет собой сумму двух синусоид, значения которых меняются в диапазоне от -1 до 1.

Кривая ряда:

Ряд, реконструированный TadGAN для различного количества этапов (4 и 80), будет следующим:

Мы видим, что модель научилась предсказывать основные закономерности в данных. Давайте попробуем добавить различные аномалии в данные, а затем обнаружить их с помощью модели TadGAN. Сначала мы собираемся добавить несколько точечных аномалий.

Основываясь на исходных и предсказанных кривых сигнала, мы видим, что модель не может восстановить «пики» аномальных значений; однако он может обнаруживать точечные аномалии с высокой точностью. В этом случае трудно увидеть, какую пользу мы получаем, используя такую ​​сложную модель, как TadGAN, потому что подобные аномалии могут быть обнаружены по превышению порога оценки.

А теперь обратимся к сигналу с другим типом аномалии: периодическому сигналу с аномальными колебаниями частоты. Здесь нет превышения порога. Все элементы ряда имеют «нормальные» значения с точки зрения амплитуды, а аномалия обнаруживается только в групповом поведении нескольких точек. TadGAN также не способен реконструировать сигнал (как вы можете видеть на картинке) и не может использоваться в качестве доказательства групповой аномалии.

Эти два примера иллюстрируют работу метода. Вы можете попробовать создать свои собственные наборы данных и проверить возможности модели в различных ситуациях.

Более сложные примеры наборов данных были опубликованы разработчиками TadGAN в своей статье. Также есть ссылка на другую разработку специалистов Массачусетского технологического института — библиотеку Orion, способную выявлять редкие аномалии во временных рядах с помощью неконтролируемого машинного обучения.

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

Технология, описанная в этой статье, имеет практическое применение в CL Thymus, программном обеспечении CyberLympha на основе AI/ML, предназначенном для защиты сетей OT и промышленных систем управления, использующих протоколы обмена данными, основанные на неизвестных или проприетарных протоколах без общедоступных спецификаций. . Более подробная информация о CyberLympha и ее продуктах доступна на сайте компании.

Рекомендации

  1. Что такое аналитика данных? (ru), https://www.intel.ru/content/www/ru/ru/analytics/what-is-data-analytics.html
  2. Домбровский. Эконометрика (ru). http://sun.tsu.ru/mminfo/2016/Dombrovski/start.htm
  3. TadGAN: обнаружение аномалий временных рядов с использованием генеративно-состязательных сетей, https://arxiv.org/abs/2009.07769
  4. Введение в моделирование и прогнозирование временных рядов, описание SARIMA https://arxiv.org/ftp/arxiv/papers/1302/1302.6613.pdf
  5. Основы RNN, https://arxiv.org/abs/1808.03314
  6. Потеря согласованности цикла, https://paperswithcode.com/method/cycle-consistency-loss
  7. https://github.com/CyberLympha/TadGAN
  8. Orion, библиотека для обнаружения аномалий, https://github.com/signals-dev/Orion
  9. Описание алгоритма Dynamic Time Warping, https://towardsdatascience.com/dynamic-time-warping-3933f25fcdd
  10. https://medium.com/mit-data-to-ai-lab/time-series-anomaly-detection-in-the-era-of-deep-learning-dccb2fb58fd
  11. https://medium.com/mit-data-to-ai-lab/time-series-anomaly-detection-in-the-era-of-deep-learning-f0237902224a