Что такое НИПТ и почему об этом исследовании столько говорят в последнее время? Какие преимущества у данных тестов? Кому они показаны и существуют ли ограничения? Сегодня мы найдём ответы на эти и другие актуальные вопросы.
Биохимические скрининговые программы не обладают высокой точностью, они основаны на cовокупности данных статистики, уровня гормонов и размеров плода по УЗИ. Амниоцентез – самый точный метод, но он инвазивный (нужно сделать прокол плодного пузыря, чтобы получить для исследования клетки, принадлежащие плоду) и угрожает развитием осложнений и прерыванием беременности.
Медицинская наука не прекращала поиски новых тестов для скрининга, которые были бы более точны и не зависели от расчётных показателей. В качестве скрининговых тестов в последнее время хорошо себя зарекомендовали НИПТ (неинвазивные пренатальные тесты) как надёжные, удобные и не мешающие нормальному протеканию беременности. Точность метода достигает 99,9%, так как исследуется генетический материал плода (его ДНК) в венозной крови будущей матери.
Как это возможно? Учёные выяснили, что начиная примерно с 10 недели беременности в крови женщины свободно циркулирует ДНК плода. Благодаря современным технологиям врачи научились выделять её и исследовать, выявляя самые распространенные изменения хромосом.
Таким образом, почти каждая женщина может сдать венозную кровь, дождавшись срока 10 недель беременности, и определить генетическое здоровье будущего малыша.
В каких случаях исследование с применением НИПТ будет наиболее полезно?
В спектре лаборатории KDL представлено несколько комплексов НИПТ. Они отличаются объёмом исследования, показаниями и ограничениями. Важно чтобы понять, какой тест подходит именно Вам.
В каких случаях выполнение НИПТ невозможно?
Итак, выполнение неинвазивных пренатальных тестов возможно при одноплодной и двуплодной беременности. Если беременность одноплодная естественная или наступила после ЭКО с использованием собственной яйцеклетки, то доступны все исследования НИПТ. В остальных случаях существуют ограничения.
В чем отличия разных тестов линейки НИПТ?
НИПС Т21 (Геномед)- диагностика только синдрома Дауна. В исследовании выявляется дополнительная 21 хромосома, если она есть у плода. Синдром Дауна считается одной из самых частых хромосомных аномалий и его частота растёт с увеличением возраста женщины. Выполняется при беременности вследствие естественного зачатия, при ЭКО с собственной яйцеклеткой или при использовании донорской яйцеклетки; при беременности одним плодом и двойней, а также при суррогатном материнстве и если произошла редукция одного эмбриона в двойне.
НИПС 5 – ДНК тест на 5 синдромов (Геномед) – неинвазивный тест на 5 синдромов, можно определить аномалии 13, 18, 21 и в большинстве исследований выявить аномалии половых хромосом X и Y.
НИПС 5 универсальный, его выполнение возможно как при одноплодной естественной беременности, так и при беременности двойней, при носительстве донорской яйцеклетки, суррогатным матерям и в том случае, когда один плод в двойне редуцирован.
3 тестовые базовые панели:
Базовые панели позволяют выявить хромосомные аномалии 13,18, 21, Х и Y хромосом плода, а также триплоидии.
НИПС (Геномед) – включает определение вышеперечисленных синдромов (скрининг 13, 18, 21, Х, Y хромосом плода) и определение носительства у матери частых мутаций, которые могут привести к наследственным болезням, если ребенок унаследует два дефектных рецессивных гена от обоих родителей или один доминантный ген. Данные мутации выявляются в крови без выделения ДНК плода, т.е. оценивается не хромосомная мутация плода, а наличие аномальных вариантов генов у матери.
Генетические заболевания, связанные в тестируемыми в этом исследовании вариантами генов:
НИПС уникален не только клинической значимостью, но и доступностью. Одноплодная беременность, беременность двойней (с определением зиготности), в том числе при редукции одного из эмбрионов в двойне. При ЭКО с донорской яйцеклеткой и суррогатном материнстве этот тест нецелесообразен, так как определять мутации, связанные с генетическими заболеваниями нужно по крови той женщины, чья яйцеклетка дала начало эмбриону.
Следующие 2 панели включают микроделеционные синдромы:
Микроделеции – это поломки сегмента хромосом, которые являются менее распространенными, но не менее опасными, и их невозможно заподозрить на УЗИ.
НИПТ Panorama, расширенная панель (Natera) – исследуются и стандартные аномалии хромосом (13,18,21, Х, Y, триплоидии) и микроделеционные синдромы. Если у Вас беременность одноплодная естественная или в результате ЭКО с собственной яйцеклеткой, то выполнение данных панелей возможно.
При наличии двух плодов, ЭКО с донорской яйцеклеткой и суррогатном материнстве определить сегментарные нарушения технически невозможно.
Можно ли определить пол плода и в каких случаях?
Да, по желанию женщины любой НИПТ определяет пол плода и это доступно как при одноплодной, так и при двуплодной беременности.
Обращаем Ваше внимание, что получение результатов, указывающих на риски развития патологических синдромов, требует консультации генетика и дополнительной инвазивной диагностики.
Обнаружение аномалий в данных сетевого мониторинга методами статистики
Когда наблюдаемых метрик становится слишком много, отслеживание всех графиков самостоятельно становится невозможным. Обычно в этом случае для менее значимых метрик используют проверки на достижение критичных значений. Но даже если значения подобраны хорошо, часть проблем остается незамеченной. Какие это проблемы и как их обнаруживать — под катом.
Disclaimer
Автор хотя и имеет математическое образование, никак не связан ни с Data Mining, ни со статистическим анализом. Данный материал является результатом исследования, проведенного с целью выяснить возможность написания модуля поиска аномалий (пусть даже слабого) для разрабатываемой системы мониторинга.
Что ищем в двух картинках
Источник Anomaly.io
Конечно в реальности, не всегда все так просто: только на б), д) и е) явная аномалия.
Источник cyberleninka.ru
Текущее положение дел
Коммерческие продукты почти всегда представлены в виде сервиса, использующего как статистику, так и машинное обучение. Вот некоторые из них: AIMS, Anomaly.io (прекрасный блог с примерами), CoScale (возможность интеграции, напр. с Zabbix), DataDog, Grok, Metricly.com и Azure (от Microsoft). У Elastic есть модуль X-Pack на основе машинного обучения.
Open-source продукты, которые можно развернуть у себя:
2000 репозитариев на GitHub
На мой взгляд open-source по качеству поиска значительно уступает. Чтобы понять, как работает поиск аномалий и можно ли исправить ситуацию, придется немного окунуться в статистику. Математические детали упрощены и скрыты под спойлерами.
Модель и её компоненты
Для анализа временного ряда используют модель, которая отражает предполагаемые особенности (компоненты) ряда. Обычно модель состоит из трех компонент:
В зависимости от того, как связаны между собой компоненты модели, определяют её тип. Так, если все компоненты складываются, чтобы получить наблюдаемый ряд, то говорят, что модель аддиктивна, если умножаются, то мультипликативна, если что-то умножается, а что-то сладывается, то смешаная. Обычно тип модели выбирается исследователем на основе предварительного анализа данных.
Декомпозиция
Выбрав тип модели и набор компонент можно приступать к декомпозиции временного ряда, т.е. его разложению на компоненты.
Источник Anomaly.io
Сперва выделяем тренд, сгладив исходные данные. Метод и степень сглаживания выбираются исследователем.
Если использовать не одно, а несколько предшедствующих значений, т.е. среднее арифметическое k-соседних значений, то такое сглаживание называется простым скользящим средним с шириной окна k
Если для каждого предыдушего значения использовать какой то свой коэффициент, определяющий степень влияния на текущий, то получим взвешенное скользящее среднeе.
Несколько другой способ — эсконенциальное сглаживание. Сглаженный ряд вычисляется следующим образом: первый элемент совпадает с первым элементом исходного ряда, а вот последующие вычисляются по форумуле
Где α — коэффициент сглаживания, от 0 до 1. Как легко видеть чем ближе α к 1, тем больше получаемый ряд будет похож на исходный.
Для определения линейного тренда можно взять методику расчета линейной регрессии методом наименьших квадратов:
,
, где
и
— средние арифметические
и
.
Источник Википедия
Для определения сезонной составляющей из исходного ряда вычитаем тренд или делим на него, в зависимости от типа выбранной модели, и еще раз сглаживаем. Затем делим данные по длине сезона (периоду), обычно это неделя, и находим усредненный сезон. Если длина сезона не известна, то можно попытаться найти её:
Честно признаюсь, что не стал разбираться как работает преобразование Фурье. Кому интересно могут заглянуть в следующие статьи: Detect Seasonality using Fourier Transform in R и Простыми словами о преобразовании Фурье. Насколько я понял, исходный ряд/функция представляется в виде бесконечной суммы элементов и берется несколько первых значимых коэффициентов.
Для поиска авто-корреляцией просто сдвигаем функцию вправо и ищем такое положение, чтобы расстояние/площадь между исходной и сдвинутой функцией (выделено красным) было минимально. Очевидно для алгоритма должен быть задан шаг сдвига и максимальный предел, при достижении которого считаем, что поиск периода не удался.
Удалив из исходного ряда тренд и сезонный фактор, получаем случайную компоненту.
Типы аномалий
Если анализировать только случайную компоненту, то многие аномалии можно свести к одному из следующих случаев:
Идея подобных тестов — определить насколько далеко располагается отдельное значение от среднего. Если расстояние отличается от «обычного», то значение объявляется выбросом. Время события при этом игнорируется.
Считаем, что на входе ряд чисел — ,
,…
, всего
штук.
—
-ое число.
Стандартные тесты достаточно просты в реализации и требуют лишь вычисление среднего , стандартного отклонения
и иногда медианы
— среднее значение, если упорядочить все числа по возрастанию и взять то, которое по середине.
Правило трех сигм
Если 3 * S$» data-tex=»inline»/>, то
считаем выбросом.
Z-оценка и уточненный метод Iglewicz и Hoaglin
— выброс, если
больше задаваемого порога, обычно равному 3. По сути переписанное правило трех сигм.
Уточненный метод заключается в следующем: для каждого числа ряда вычисляем и для получившихся значений находим медиану, обозначаемую
.
— выброс, если
больше порога.
Тест Граббса
Находим минимальное и максимальное
значения и для них вычисляем
и
. Затем выбираем уровень значимости α (обычно один из 0.01, 0.05 или 0.1), заглядываем в таблицу критичных значений, выбираем значение для n и α. Если
или
больше табличного значения, то считаем соответствующий элемент ряда выбросом.
Обычно тесты требуют, чтобы исследовалось нормальное распределение, но зачастую это требование игнорируется.
Метод относится к прогнозированию, поэтому его применение сводится к тому, чтобы сравнить прогнозируемое значение с действительным.
Основная идея метода в том, что каждая из трех компонент экспоненциально сглаживается, используя отдельный коэффициент сглаживания, поэтому метод зачастую называется тройным экспоненциальным сглаживанием. Формулы рассчета для мультипликативного и аддиктивного сезонов есть в Википедии, а подробности о методе в статье на Хабре.
Три параметра сглаживания должны выбираться так, чтобы получаемый ряд был «близок» к исходному. На практике такая задача решается перебором, хотя RRDTool требует явного задания этих значений.
Недостаток метода: требует минимум три сезона данных.
Другой способ, примененный в Одноклассниках, — выбрать значения из других сезонов, соответсвующие анализируемому моменту, и проверить их совокупность на наличие выброса, например тестом Граббса.
Источник alexanderdyakonov.wordpress.com
Более слабый метод состоит в том, чтобы отслеживать насколько метрики зависят друг от друга во времени и в случае, когда зависимость теряется, выдавать сообщение об аномалии. Для этого, вероятно, можно использовать один из методов.
Пусть и
два набора чисел и требуется выяснить имеется ли между ними линейная зависимость. Вычисляем для
среднее
и стандартное отклонение
. Аналогично для
.
Коэффициент корреляции Пирсона
Пусть есть две строки ABC и ADEC. Чтобы получить из первой вторую, необходимо убрать B и добавить D и E. Если каждой операции удаления/добавления символа и перестановке XY в YX задать стоимость, то суммарная стоимость и будет расстояниеи Дамерау — Левенштейна.
Для определения похожести графиков можно оттолкнуться от алгоритма, использованного в KALE
Вначале исходный ряд значений, например, ряд вида [960, 350, 350, 432, 390, 76, 105, 715, 715], нормализуется: ищется максимум — ему будет соответствовать 25, и минимум — ему будет соответствовать 0; таким образом, данные пропорционально распределяются в пределе целых чисел от 0 до 25. В итоге мы получаем ряд вида [25, 8, 8, 10, 9, 0, 1, 18, 18]. Затем нормализованный ряд кодируется с помощью 5 слов: sdec (резко вниз), dec (вниз), s (ровно), inc (вверх), sinc (резко вверх). В итоге получается ряд вида [sdec, flat, inc, dec, sdec, inc, sinc, flat].
Заключение
Разумеется, многие алгоритмы нахождения аномалий уже реализованы на языке R, предназначенном для статистической обработки данных, в виде пакетов: tsoutliers, strucchange, Twitter Anomaly Detection и других. Подробнее о R в статьях А вы уже применяете R в бизнесе? и Мой опыт введения в R. Казалось бы, подключай пакеты и используй. Однако есть проблема — задание параметров статистических проверок, которые в отличии от критических значений далеко не очевидны для большинства и не имеют универсальных значений. Выходом из данной ситуации может быть их подбор перебором (ресурсоёмко), с редким периодичным уточнением, независимо для каждой метрики. С другой стороны, большая часть аномалий, не связанных с сезонностью, хорошо определяется визуально, что наталкивает на мысль использовать нейронную сеть на отрендеренные графики.
Приложение
Ниже привожу собственные алгоритмы, которые работают сопоставимо с Twitter Breakout по результатам, и несколько быстрее по скорости при реализации на Java Script.
Пусть и
два набора чисел и требуется оценить существенность различий между ними.
Вначале значения обоих рядов разбиваются на несколько (около десятка) категорий. Далее для каждой категории вычисляется число , вошедших в него значений из ряда
, и делится на длину ряда
. Аналогично для ряда
. Для каждой категории находим
и затем общий максимум
по всем категориям. Проверяемое значение критерия вычисляется по формуле
.
Выбирается уровень значимости (один из 0.01, 0.05, 0.1) и по нему определяется критичное значение по таблице. Если
больше критичного значения, то считается, что группы различаются существенно.
Поиск аномалий во временных рядах
Вокруг нас появляется все больше различных устройств, систем, комплексов, платформ – технологических, информационных, киберфизических. Мы не задумываемся о том, как кофеварка варит кофе, робот-пылесос выбирает маршрут при уборке квартиры, система биометрической идентификации определяет человека на видеокадре, а портал государственных услуг обрабатывает наше заявление на получение справки об отсутствии судимости. Мы привыкаем к этим системам как к «черным ящикам», которые дают предсказуемый результат на выходе, не заботясь о том, как эти системы себя «чувствуют». Такой потребительский подход простителен пользователям, но совсем по-другому относятся к этому компании-разработчики и те, кто занимается эксплуатацией технологических систем. Для них и описан далее один из оригинальных методов поиска аномалий во временных рядах, т.е. состояний, по которым можно понять, что системе становится «плохо» (либо станет в ближайшем будущем).
Для эффективной эксплуатации сложных технологических систем нужны мониторинг и различные методы аналитики, позволяющие контролировать, управлять, упреждающе менять параметры. Мониторинг, как правило, обеспечивается типовыми инструментами (в большинстве случаев достаточно надежной системы сбора и визуализации данных). А вот для создания эффективных аналитических инструментов необходимы дополнительные исследования, эксперименты и хорошее знание предметной области. Как правило выделяют четыре основных вида аналитики данных [1]:
С помощью диагностической аналитики исследуют причину возникновения событий в прошлом, при этом выявляются тренды, аномалии, наиболее характерные черты описываемого процесса, ищут причины и корреляции (взаимосвязи).
Прогнозная аналитика предсказывает вероятные результаты на основе выявленных тенденций и статистических моделей, полученных с помощью исторических данных.
Предписывающая аналитика позволяет получить оптимальное решение производственной задачи на основе прогнозной аналитики. Например, это может быть оптимизация параметров работы оборудования или бизнес-процессов, перечень мер по предотвращению аварийной ситуации.
Для прогнозной и предписывающей аналитики как правило используются методы моделирования, в том числе машинное обучение. Эффективность этих моделей зависит от качественной организации сбора, обработки и предварительного анализа данных. Перечисленные виды аналитики различаются как по сложности используемых моделей, так и по степени участия человека.
Для многих технологических систем результаты мониторинга можно представить в виде временных рядов [2]. Свойствами временного ряда являются:
привязка каждого измерения (сэмпла, дискрета) ко времени его возникновения,
равное расстояние по времени между измерениями,
возможность из данных предыдущего периода восстановить поведение процесса в текущем и последующих периодах.
Рис. 1. Временной ряд
Временные ряды могут описывать не только численно измеримые процессы. Применение различных методов и архитектур моделей, включая глубокие нейронные сети, позволяет работать с данными из задач обработки естественного языка (NLP), компьютерного зрения (CV) и т.п. Например, сообщения в чате можно преобразовать в числовые векторы (эмбеддинги), которые последовательно появляются в определенное время, а видео представляет из себя ни что иное как матрицу чисел, изменяющуюся во времени.
Итак, временные ряды очень полезны для описания работы сложных устройств и часто используются для типовых задач: моделирование, прогнозирование, выделение признаков, классификация, кластеризация, поиск паттернов, поиск аномалий. Примеры такого использования: электрокардиограмма, изменение стоимости акций или валюты, значения прогноза погоды, изменение в объеме сетевого трафика, параметры работы двигателя и многое другое.
Рис.2. Практические примеры временных рядов: электрокардиограмма, прогноз погоды.
У временных рядов есть типовые характеристики, которые достаточно точно описывают характер временного ряда:
Временные ряды могут содержать аномалии. Аномалия — это отклонение в стандартном поведении какого-то процесса. Алгоритмы машинного поиска аномалий используют данные о работе процесса (датасеты). В зависимости от предметной области в датасете могут быть аномалии разного вида. Принято различать несколько видов аномалий:
точечные аномалии, когда наблюдается отклонение в поведении в отдельных точках;
групповые аномалии, в которых аномально ведут себя группа точек, каждая из которых отдельно аномальной не является;
аномалии контекста, когда аномалия связана с внешними данными, не касающимися значений ряда (например, отрицательная температура на улице летом).
Точечные аномалии распознаются проще всего – это отдельные точки, в которых поведение процесса резко отличается от других точек. Например, можно наблюдать резкое отклонение значений параметра в отдельной точке.
Рис.3. Несколько точечных аномалий.
Такие значения называются «выбросы», они сильно влияют на статистические показатели процесса и их легко обнаружить, установив пороговые значения для наблюдаемой величины.
Сложнее обнаружить аномалию в ситуации, когда в каждой точке процесс ведет себя «нормально», но в совокупности значения в нескольких точках ведут себя «странно». К такому аномальному поведению можно отнести, например, изменение формы сигнала, изменение статистических показателей (среднее значение, мода, медиана, дисперсия), появление взаимной корреляции между двумя параметрами, небольшие или краткосрочные аномальные изменения амплитуды и так далее. И в этом случае задача заключается в распознавании аномального поведения параметров, которое нельзя выявить обычными статистическими методами.
Рис.4. Групповая аномалия, изменение частоты.
Поиск аномалий очень важен. В одной ситуации надо данные очищать от аномалий, чтобы получать более реальную картину, в другой же ситуации аномалии должны внимательно исследоваться, так как могут свидетельствовать о возможном скором переходе устройства в аварийный режим.
Поиск аномалий во временных рядах непрост (нечеткое определение аномалии, отсутствие разметки, неочевидная корреляция). До сих пор SOTA алгоритмы по поиску аномалий во временных рядах имеют высокий уровень False Positive.
Вручную можно обнаружить только небольшое количество аномалий, в основном точечных, при наличии хорошей визуализации данных. Групповые аномалии сложнее обнаружить вручную, особенно если речь идет о большом количестве данных и анализе информации о нескольких устройствах. Также сложным для выявления является случай «аномалии во времени», когда нормальный по параметрам сигнал появляется в «неправильное» время. Поэтому при поиске аномалий во временных рядах целесообразно применять методы автоматизации.
Большой проблемой в поиске аномалий на реальных данных является то, что данные как правило не размечены, поэтому изначально строго не определено, что такое аномалия, нет правил для поиска. В таких ситуациях необходимо применять методы обучения без учителя (unsupervised learning), при этом модели самостоятельно определяют взаимосвязи и характерные законы в данных.
Используемые для поиска аномалий во временных рядах методы принято разделять на группы [3]:
proximity-based: выявление аномалии на основе информации о близости параметров или последовательности параметров фиксированной длины, подходит для выявления точечных аномалий и выбросов, но не позволит выявить изменения в форме сигнала,
prediction-based: построение прогнозной модели и сравнение прогноза и фактической величины, лучше всего применимо ко временным рядам с выраженными периодами, циклами или сезонностью,
reconstruction-based: методы, основанные на реконструкции фрагментов данных, используют восстановление (реконструкцию) фрагмента данных, поэтому может выявлять как точечные аномалии, так и групповые аномалии, в том числе изменения в форме сигнала.
Proximity-based методы ориентированы на поиск значений, существенно отклоняющихся от поведения всех остальных точек. Самый простой и наглядный пример реализации такого метода – контроль превышения заданного порога значений.
В prediction-based методах основная задача – построить качественную модель процесса, чтобы смоделировать сигнал и сравнить полученные смоделированные значения с исходными (истинными). Если предсказанный и истинный сигнал близки, то поведение считается «нормальным», а если значения в модели сильно отличаются от истинных, то поведение системы на этом участке объявляется аномальным.
Рис.5. Моделирование временного ряда.
Наиболее распространенные методы для моделирования временных рядов – SARIMA [4] и рекуррентные нейронные сети [5].
Оригинальный подход используется в reconstruction-based моделях – сначала модель обучают кодировать и декодировать сигналы из имеющейся выборки, при этом закодированный сигнал имеет гораздо меньшую размерность, чем исходный, поэтому модели приходится учиться «сжимать» информацию. Вот пример такого сжатия для картинок 32 на 32 пикселя в матрицу из 32 чисел.
Рис.6. Схема работы автокодировщика
После обучения модели дают на вход сигналы, являющиеся отрезками исследуемого временного ряда, и если кодирование-декодирование проходит успешно, то поведение процесса считается «нормальным», в противном случае поведение объявляется аномальным.
Одним из недавно разработанных reconstruction-based методов, показывающих хорошие результаты в обнаружении аномалий, является TadGAN [3], разработанный исследователями из MIT в конце 2020 года. Архитектура метода TadGAN содержит в себе элементы автокодировщика и генеративных состязательных сетей.
Рис.7. Архитектура TadGAN (из статьи [3])
Для создания и обучения нейронной сети могут быть использованы различные стандартные пакеты (например, TensorFlow или PyTorch), имеющие высокоуровневое API. Пример реализации архитектуры, аналогичной TadGAN, с использованием пакета TensorFlow для обучения весов можно посмотреть в репозитории [7]. При обучении этой модели оптимизировались пять метрик:
aeLoss – среднеквадратичное отклонение между исходным и восстановленным временным рядом, т.е. разница между x и G(Ɛ(х)),
cxLoss – бинарная кросс-энтропия критика Cx, определяющего разницу между истинным отрезком временного ряда и искусственно сгенерированным,
cx_g_Loss – бинарная кросс-энтропия, ошибка генератора G(Ɛ(х)), характеризующая его неспособность «обманывать» критика Cx,
cx_g_Loss – бинарная кросс-энтропия, ошибка генератора Ɛ(х), характеризующая его неспособность создавать скрытые векторы, похожие на случайные, и тем самым «обманывать» критика Cz.
Рис.8. График обучения модели TadGAN для 500 эпох.
После обучения модели проводится реконструкция отдельных отрезков исследуемого временного ряда и сравнение исходного и реконструированного ряда, которое может осуществляться одним из методов:
Dynamic Time Warping [9].
Аномалия предсказана моделью, y_hat = 1
Модель предсказала отсутствие аномалии
правильно предсказанная аномалия
аномалия есть, но ее не нашли
предсказали аномалию там, где ее нет
аномалии нет и модель ее не видит
Рис.9. График синтетического ряда.
Восстановленный ряд с использованием TadGAN для разного количества эпох (4 и 80) выглядит так:
Рис.10. Моделирование ряда с помощью TadGAN для разного количества эпох (4 и 80)
Видно, что модель достаточно точно научилась предсказывать основные закономерности в данных. Попробуем добавить различные аномалии в данных и затем обнаружить их с помощью модели TadGAN. Сначала добавим несколько точечных аномалий.
Рис.11. Обнаружение точечной аномалии с помощью TadGAN
Из графика исходного и предсказанного сигналов видно, что модель не может восстановить «пики» аномальных значений, что с высокой точностью может использоваться для определения точечных аномалий. Однако в такой ситуации польза сложной модели TadGAN неочевидна – подобные аномалии можно обнаружить и с помощью оценки превышения пороговых значений.
Рис.12. Результат работы TadGAN на датасете с аномальным изменением частоты.
На этих двух примерах проиллюстрирована работа метода. Читатель и сам может попробовать создать свои датасеты и проверить возможности модели в различных ситуациях.
Более сложные примеры датасетов можно найти в статье авторов метода TadGAN [3]. Там же приведена ссылка на библиотеку Orion, являющуюся разработкой специалистов MIT, которая с использованием машинного обучения распознает редкие аномалии во временных рядах, используя подход обучения без учителя (unsupervised learning).



