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

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

hurst_exponent в окне события, с экспоненциальным ростом амплитуды от 0 до extreme_magnitude_in_sigma, который я сам и задаю.3) простой шум, сгенерированный на основе нормального распределения с нулевым мат.ожиданием. Я занимаюсь исследованием работы мозга и на его примере попробовал чуточку дополнить методы Теории экстремальных событий:
классические алгоритмы теории экстремальных событий отвечают, когда система вышла за рамки своего обычного поведения;
граф связей между каналами показывает, куда процесс мог распространяться;
графовая нейросеть и несколько независимых линий доказательств указывают, где он начался.
Главный ожидаемый результат - найти узел (часть) системы, в котором зародилось экстремальное событие, и отличить его от узлов, куда оно пришло позже.
Шагов много, поэтому весь пайплайн я доверил простому агенту, которого создал на python. Сделал открытый репозиторий - он вот что дает:
один воспроизводимый конвейер «когда → куда → где» вместо набора разрозненных методов;
порог тревоги, откалиброванный только по фоновым данным;
граф, который я приспособил для одномерных и многомерных временных рядов;
вероятность быть источником для каждого узла;
Дальше расскажу, на чём это всё держится и что получилось на практике.
С чего всё началось
Когда готовят данные для машинного обучения, первым делом обычно «чистят выбросы». Слишком большое значение, странный пик, точка за тремя сигмами — в мусор, чтобы не мешали модели. Но иногда именно эти точки и есть то, ради чего вообще стоило собирать данные: эпилептический приступ, отказ двигателя, обвал рынка.
В этой статье расскажу простыми словами:
что такое экстремальное событие и как его видно в статистике;
почему привычная практика «выкинуть выбросы» иногда ломает всю задачу;
откуда взялась теория экстремальных значений (EVT, Extreme Value Theory) и как она развивалась;
как я соединил EVT с графами и простым агентом в библиотеке Graph-EVT-agent;
что получилось на эталоне с известным ответом и на трёх реальных примерах: мозг, авиадвигатель и фондовый рынок.
Весь код и картинки открыты: ноутбук с основами EVT лежит в репозитории Graph-EVT-agent, учебные ноутбуки с синтетическим эталоном - в EVT-educational-demo, а прикладные примеры - в Extreme-Value-Theory-New-Approach.
1. Что такое экстремальное событие
Экстремальное событие - это очень редкое и очень сильное отклонение от обычного поведения системы. Самый высокий паводок за год, самый большой дневной убыток портфеля, максимальная нагрузка на мост за весь срок службы.
Почти вся классическая статистика выросла из центральной предельной теоремы (ЦПТ). Она говорит про суммы и средние: если сложить много независимых случайных величин, получится нормальное распределение. Отсюда привычка всё мерить средним и стандартным отклонением.
Но паводку всё равно, какой уровень воды был в среднем. Мост ломается не от средней нагрузки, а от максимальной. Для максимумов есть своя предельная теорема — теорема Фишера–Типпета–Гнеденко. Она утверждает: нормированные максимумы большого числа независимых наблюдений сходятся к одному из трёх законов:
Гумбель (тип I) — хвост убывает экспоненциально: осадки, температуры, уровни рек;
Фреше (тип II) — тяжёлый степенной хвост: финансовые потери, размеры катастроф;
Вейбулл (тип III) — у величины есть жёсткий потолок: прочность материала, нагрузка до предела.
Все три объединяются в одно семейство - обобщённое распределение экстремальных значений (GEV) с параметром формы ξ: ξ = 0 — Гумбель, ξ > 0 — Фреше, ξ < 0 — Вейбулл. Вот здесь примеры.
Как статистика проявляет экстремумы
Проще всего увидеть это на симуляции. В ноутбуке я сгенерировал 200 «лет» ежедневных наблюдений для трёх разных сценариев и из каждого года взял один максимум (метод блочных максимумов).

Суточные ряды выглядят совсем по-разному, но годовые максимумы во всех трёх случаях хорошо ложатся на одну и ту же GEV — меняется только знак ξ. Оценки получились близкими к теории: ξ ≈ −0,02 для осадков (теория: 0), ξ ≈ +0,35 для убытков (теория: +1/3) и ξ ≈ −0,36 для нагрузки (теория: −1/3). Нормальная кривая симметрична и асимметрию максимумов не ловит: в сценарии с тяжёлым хвостом она оценивает уровень «раз в 100 лет» в 23,7 вместо истинных 34,2.
Главное различие между законами прячется в хвосте. Его хорошо видно, если нарисовать вероятность превышения в логарифмическом масштабе.

В цифрах это выглядит так. Вероятность события «дальше шести сигм от среднего»:
Распределение |
P(X > μ + 6σ) |
|---|---|
Нормальное |
9,9 · 10⁻¹⁰ |
Гумбель |
2,6 · 10⁻⁴ |
Фреше, α = 4 |
2,8 · 10⁻³ |
Вейбулл, α = 3 |
0 (выше потолка значений нет) |
Для Гумбеля такое событие примерно в сотни тысяч раз вероятнее, чем обещает нормальный закон, для Фреше - в миллионы раз. Если моделировать максимумы «нормальным законом распределения», катастрофы автоматически объявляются невозможными.
И последняя картинка этого раздела - две теоремы на одних и тех же данных. Берём суточные убытки и считаем за каждый год сумму и максимум.

Тест Шапиро–Уилка подтверждает то, что видно глазом: для сумм p = 0,19 (нормальность не отвергается), для максимумов p ≈ 2 · 10⁻¹⁸. Суммы — это ЦПТ, максимумы — это EVT. Применять первую теорему к задачам второй — методическая ошибка.
2. Что обычно делает машинное обучение с экстремумами
В типичном ML-пайплайне экстремальные значения просто исключают. Мотивы понятные:
выбросы раздувают среднеквадратичную ошибку и «перетягивают» модель на себя;
они часто бывают артефактами: сбой датчика, ошибка ввода, обрыв связи;
их мало, и модель всё равно не успевает на них научиться;
без них обучающая выборка выглядит «корректной»: распределения гладкие, метрики стабильные.
Поэтому в ход идут правило трёх сигм, межквартильный размах, обрезка по квантилям (винзоризация), Isolation Forest «для очистки». В результате модель хорошо описывает обычный режим системы и ничего не знает о необычном.
Это нормально, если редкие события действительно шум. Но если вопрос стоит так: «как часто случается катастрофа?» или «когда начнётся эпилептический приступ?», - то выбросив хвост, мы выбросили ответ.
Цену ошибки хорошо видно на кривых уровней возврата. Уровень возврата - это значение, которое годовой максимум превышает в среднем раз в T лет («паводок раз в 100 лет»).

Что это значит на практике:
тяжёлый хвост (убытки): уровень, который нормальная модель называет событием «раз в 1000 лет», на самом деле превышается примерно раз в 57 лет;
экспоненциальный хвост (осадки): «тысячелетний» по нормальной модели уровень на деле случается примерно раз в 120 лет;
ограниченный хвост (нагрузка): нормальная модель ставит «тысячелетний» уровень выше физического предела — конструкцию спроектируют с лишним запасом, а риск оценят неверно.
Обратите внимание и на расширяющуюся полосу неопределённости справа: экстраполяция в хвост всегда неточна, и это нужно честно показывать.
3. Когда выбрасывать нельзя: приступы, кризисы и «чёрные лебеди»
Есть класс задач, где редкое событие - не помеха, а цель. Его никто не планирует, и у него нет расписания.
Пример из медицины - эпилепсия. Приступ - короткий эпизод на фоне многих часов обычной активности мозга. Например, в исследовании, о котором я расскажу в конце, записи ЭЭГ длились от 8 до 24 часов, а приступов в каждой было, ну один или три. Если «почистить» такую запись от выбросов, вместе с ними уйдут и приступы. Модель, обученная на чистых данных, отлично предскажет нормальную ЭЭГ - и окажется бесполезной для врача.
Пример из финтеха - финансовые кризисы. Доходности активов имеют тяжёлые хвосты: крупные падения случаются гораздо чаще, чем позволяет нормальный закон. Модели риска, построенные на «спокойных» данных, системно недооценивают обвалы. Отсюда знаменитые слова финансового директора Goldman Sachs Дэвида Виниара в августе 2007 года о «движениях в 25 стандартных отклонений несколько дней подряд»: по нормальной модели таких событий не должно было случиться за всё время существования Вселенной, а они случились.
Нассим Николас Талеб назвал такие события «чёрными лебедями». В книге «Чёрный лебедь. Под знаком непредсказуемости» (2007) у них три признака:
событие редкое и выходит за рамки обычных ожиданий;
у него огромные последствия;
задним числом его легко «объяснить», хотя заранее никто не предсказал.
Талеб скептичен к попыткам предсказывать чёрных лебедей, и я с ним во многом согласен: точную дату приступа или кризиса не скажет никто. Можно лишь с помощью EVT решить более скромную и вполне посильную задачу. Она не обещает предсказать конкретное событие, зато позволяет:
оценить, насколько вероятны редкие экстремальные события;
заметить момент, когда система вышла за пределы своего обычного поведения;
в многоканальной системе - понять, где это началось.
Именно поэтому хвосты нельзя выбрасывать: с ними нужно работать отдельным, специально для них созданным инструментом.
4. Как развивалась теория экстремальных событий
Задачи о самой большой продолжительности жизни, наибольших нагрузках и паводках обсуждали задолго до XX века. Но математическая теория экстремальных значений сложилась в основном в 1920–1940-е годы, и это заслуга нескольких авторов, а не одной статьи. Путь был такой: задача о максимуме → порядковые статистики → предельное распределение → теория экстремальных значений.
История развития теории экстремальных событий |
Год |
Вклад в науку |
Публикация |
Что это дало |
|---|---|---|---|
Морис Фреше получил первый предельный закон для максимума для распределений с тяжёлым хвостом |
Fréchet, M. (1927). Sur la loi de probabilité de l'écart maximum. Annales de la Société Polonaise de Mathématique, 6, 93–116. |
Язык тяжёлых хвостов |
|
Рональд Фишер и Леонард Типпет показали: у нормированного максимума возможны только три предельных типа |
Fisher, R. A., & Tippett, L. H. C. (1928). Limiting forms of the frequency distribution of the largest or smallest member of a sample. Mathematical Proceedings of the Cambridge Philosophical Society, 24(2), 180–190. DOI: 10.1017/S0305004100015681 |
Теоретическая основа детекции редких максимумов |
|
Борис Гнеденко доказал теорему о трёх типах и описал «области притяжения» |
Gnedenko, B. V. (1943). Sur la distribution limite du terme maximum d’une série aléatoire. Annals of Mathematics, 44(3), 423–453. DOI: 10.2307/1968974 |
Условия, при которых EVT вообще применима |
|
1955 |
Артур Дженкинсон записал три типа одной формулой — GEV |
Единая модель для максимумов |
|
Эмиль Гумбель выпустил первую систематическую монографию «Statistics of Extremes»: паводки, нагрузки, прочность, уровни возврата |
Gumbel, E. J. (1958). Statistics of Extremes. New York: Columbia University Press. |
Переход от теории к прикладной оценке рисков |
|
1974–1975 |
Балкема и де Хаан, Пикандс: превышения высокого порога описываются обобщённым распределением Парето (GPD) |
Balkema, A. A., & de Haan, L. (1974). Residual life time at great age. The Annals of Probability, 2(5), 792–804. DOI: 10.1214/aop/1176996548 |
Модель хвоста и POT-детекция |
1983 |
Лидбеттер, Линдгрен и Рутзен перенесли теорию на зависимые ряды (экстремальный индекс) |
Учёт того, что превышения идут кластерами |
|
Дэвисон и Смит построили практические модели превышений порога |
Davison, A. C., & Smith, R. L. (1990). Models for exceedances over high thresholds. Journal of the Royal Statistical Society: Series B (Methodological), 52(3), 393–442. DOI: 10.1111/j.2517-6161.1990.tb01796.x |
Детектор, который учитывает и частоту, и величину событий |
|
1999–2000 |
Стивен Робертс применил EVT для поиска «новизны» в биомедицинских данных (ЭЭГ, МРТ) |
EVT приходит в медицину |
|
Хеффернан и Тоун предложили модель условных многомерных экстремумов |
Heffernan, J. E., & Tawn, J. A. (2004). A conditional approach for multivariate extreme values (with discussion). Journal of the Royal Statistical Society: Series B (Statistical Methodology), 66(3), 497–546. DOI: 10.1111/j.1467-9868.2004.02050.x |
Как ведут себя соседние каналы, когда один из них экстремален |
|
Величкович и соавторы предложили графовые сети с вниманием (GAT) |
Veličković, P., Cucurull, G., Casanova, A., Romero, A., Liò, P., & Bengio, Y. (2018). Graph Attention Networks. In International Conference on Learning Representations (ICLR 2018). arXiv:1710.10903. DOI: 10.48550/arXiv.1710.10903 |
Механизм ранжирования узлов графа |
|
Карпов и соавторы: EVT для объяснимого обнаружения эпилептических приступов по ЭЭГ |
Karpov, O. E., Grubov, V. V., Maksimenko, V. A., Kurkin, S. A., Smirnov, N. M., Utyashev, N. P., Andrikov, D. A., Shusharina, N. N., & Hramov, A. E. (2022). Extreme value theory inspires explainable machine learning approach for seizure detection. Scientific Reports, 12, Article 11474. DOI: 10.1038/s41598-022-15675-9 |
Приступ как экстремальное событие |
|
Герреро, Хузер и Омбао: экстремальная связность каналов ЭЭГ (Conex–Connect) |
Guerrero, M. B., Huser, R., & Ombao, H. (2023). Conex–Connect: Learning patterns in extremal brain connectivity from MultiChannel EEG data. The Annals of Applied Statistics, 17(1), 178–198. DOI: 10.1214/22-AOAS1621 |
Многоканальные экстремумы мозга |
Видно, как менялся вопрос. Сначала спрашивали: «каким будет максимум?». Потом: «как часто будет превышен уровень?». Потом: «как быть с зависимыми данными и несколькими каналами?».
Медицинские работы с EVT уже умеют отвечать, является ли наблюдение экстремальным, какие признаки имеют тяжёлый хвост, как связаны каналы в хвостовой области и как меняется мозговая сеть во время приступа. Но отдельной задачей остаётся другое: какой узел был вероятным источником экстремального события? И здесь важно не смешивать четыре пары понятий:
детекция ≠ локализация;
зависимость ≠ причинность;
корреляционный граф ≠ граф распространения;
внимание нейросети ≠ доказательство механизма.
5. Теория: от максимумов к Graph-EVT-agent
Главную идею удобно описать как пять уровней, и на каждом задаётся свой вопрос.
Уровень |
Вопрос |
|---|---|
Классическая EVT |
Насколько редким является событие? |
Многомерная EVT |
Как связаны экстремумы разных компонент? |
Графовая модель |
По каким каналам возможно распространение? |
GAT (graph attention) |
Какие узлы наиболее вероятно связаны с возникновением события? |
Graph-EVT-agent |
Объединяет все уровни для вероятностного поиска источника в многоканальной системе |
5.1. Экстремальное событие через призму математики
Экстремальное событие - это наблюдение в хвостовой области распределения или наблюдение, которое сильно отклоняется от фонового режима. EVT изучает не центр распределения, а то, как ведёт себя хвост - вероятность превышения P(X > x) при очень больших x.
Экстремальность всегда относительна: она зависит от базового распределения, выбранного хвоста, временного режима, порога и зависимости наблюдений. Поэтому полезно различать пять понятий:
редкое наблюдение - маловероятное при фоновой модели;
максимум блока - наибольшее значение за год, сутки или окно; основа GEV;
превышение порога - значение выше высокого уровня u; основа GPD;
кластер экстремумов - серия зависимых превышений одного эпизода;
системное событие - согласованные экстремумы многих каналов; именно его ищет Graph-EVT-agent.
5.2. Максимумы: теорема о трёх типах и GEV
Возьмём максимум выборки M_n = max(X₁, …, X_n). Без нормировки он просто уползает к правой границе распределения, поэтому рассматривают нормированный максимум (M_n − b_n)/a_n. Фишер и Типпет показали, а Гнеденко строго доказал: если у него есть невырожденный предел, то это один из трёх типов — Фреше, Гумбель или Вейбулл. Все три объединяются в обобщённое распределение экстремальных значений.

Важная оговорка: теорема говорит о форме предела. Подгонка GEV к конечным блокам - это уже статистическое приближение, параметры которого оцениваются по данным.
У метода блочных максимумов есть понятные плюсы (простота, классическое обоснование, естественность для годовых максимумов) и минусы: все значения ниже максимума блока теряются, результат зависит от длины блока, наблюдений мало. Для коротких медицинских сигналов он подходит плохо.
Отсюда же главный практический продукт EVT — уровень возврата z_T: значение, которое годовой максимум превышает с вероятностью 1/T. Это не «ровно раз в T лет». Для независимых годовых максимумов вероятность хотя бы одного превышения за T лет равна примерно 1 − 1/e ≈ 63%.
5.3. Превышения порога: GPD и POT
Балкема, де Хаан и Пикандс сделали следующий шаг: от максимумов перешли к превышениям высокого порога u. Оказалось, что величина превышения Y = X − u (при условии X > u) для высокого порога описывается обобщённым распределением Парето:
Параметр формы ξ здесь тот же, что и в GEV, - единый язык для максимумов и превышений. Метод POT (Peaks Over Threshold) использует все превышения, а не один максимум на блок. Поэтому именно он лежит в основе EVT-детектора Graph-EVT-agent.
У POT есть два тонких места:
выбор порога - компромисс: низкий порог нарушает асимптотику (смещение), высокий оставляет мало превышений (большой разброс). Помогают график среднего превышения, графики устойчивости ξ и β, проверка чувствительности к порогу;
кластеры - соседние превышения часто образуют один физический эпизод. Три дня высокой воды - это один паводок, а не три. Для временных рядов это учитывает экстремальный индекс θ: величина 1/θ примерно равна среднему размеру кластера. Перед подгонкой GPD превышения объединяют в кластеры (декластеризация).
5.4. Много каналов: многомерные экстремумы
Когда наблюдается вектор X = (X₁, …, X_p), появляются две разные задачи:
совместные превышения — насколько вероятно, что все компоненты экстремальны одновременно;
условное поведение — как ведут себя остальные компоненты, когда одна из них экстремальна. Это модель Хеффернана–Тоуна, и она естественна для многоканальной ЭЭГ: «опорный канал экстремален — что происходит с остальными?».
Почему не хватает обычной корреляции? Две переменные могут быть слабо связаны «в среднем», но сильно связаны в хвосте. Связь положительных и отрицательных экстремумов может быть разной. А иногда связь появляется только во время редкого режима. Для этого есть отдельная мера - коэффициент хвостовой зависимости χ: вероятность того, что вторая переменная экстремальна, если экстремальна первая.
5.5. Graph-EVT-agent: «когда → куда → где»
Я попробовал сделать алгоритм Graph-EVT-agent, который объединяет четыре уровня: EVT + граф зависимости + узловые признаки + GAT.
Этап 1. EVT — «когда?». Каждый канал стандартизуется по фону робастно: из значения вычитается медиана m_j, результат делится на MAD s_j. Затем в каждый момент берётся среднее из K самых сильных отклонений:
Альтернатива - расстояние Махаланобиса с ковариацией Ледуа–Вольфа; она используется в прикладных примерах ниже. К хвосту фонового индикатора подгоняется GPD, и получается порог тревоги q_EVT. Момент события t_EVT — первое устойчивое превышение порога после фона: одиночный выброс — не начало события.
Здесь действуют жёсткие запреты: параметры фона нельзя оценивать на будущих данных, порог нельзя выбирать по тестовым меткам, а данные делятся на обучение, валидацию и тест только целыми эпизодами. Если канал всего один, этот этап - единственный: можно найти момент, хвостовую вероятность и уровень возврата, но источник по одному каналу найти нельзя.
Этап 2. Граф — «куда?». Узлы - каналы, рёбра - допустимые пути распространения. Это гипотеза о зависимости, а не доказательство причинности, и у неё есть конкурирующие варианты:
AR/VAR - рёбра по устойчивой зависимости остатков авторегрессионных моделей; подходит для примерно стационарных рядов;
DFA и cross-DFA - рёбра по сходству многомасштабных профилей флуктуаций;
вейвлеты + осцилляторы Курамото - рёбра по фазовой синхронизации, которая сильнее суррогатного фона;
Этап 3. Узловые признаки. Для каждого узла графа считается, как он отреагировал на событие: амплитуда, энергия, задержка, степень в графе, отклик соседей. Рабочая гипотеза о «подписи» источника: у него более ранняя активация, более резкий фронт и меньшая зависимость от уже активированных соседей. У вторичного узла отклик позже и больше похож на соседей. Но это проверяемая гипотеза, а не закон. В примере со стерео-ЭЭГ ниже самый ранний отдельный контакт не удерживает приступ, а источником признан другой стержень.
Этап 4. GAT — «где?». Графовая сеть с вниманием передаёт информацию только по рёбрам графа, разным соседям даёт разный вес и выдаёт для каждого узла число (логит). Softmax превращает эти числа в распределение вероятностей P(источник = j), а оценкой источника становится узел с наибольшей вероятностью. В прикладных примерах используется GATv2. Веса внимания — не причинные коэффициенты: они описывают, как обученная сеть агрегирует информацию, а не механизм распространения. Известная статья Jain и Wallace так и называется: «Attention is not Explanation».
Чтобы учить GAT, нужна метка источника, полученная независимо от модели: клиническая разметка, экспериментальная метка, синтетическое событие с известным источником или физически известный источник. Псевдометки, полученные эвристикой, явно помечаются: сеть, обученная на них, лишь копирует эвристику.
Итог читается как цепочка «хвостовой риск → момент события → распространение → источник».
5.6. Почему «агент»
Шагов много, и в каждом есть развилка: один канал или много, есть событие или нет, стационарен фон или нет. Поэтому в библиотеке есть детерминированный планировщик в стиле «спланировал → выполнил → проверил»:
он проверяет вход и приводит его к виду [время, канал]; пропуски считаются ошибкой — библиотека не придумывает отсчёты;
выбирает маршрут: 1-D или n-D;
всегда проверяет, есть ли экстремальное событие;
если события нет — останавливается с причиной
no_evt_detected;если событие есть, но канал один — останавливается с причиной
single_channel_cannot_localize: по одному каналу физический источник найти невозможно, и библиотека честно об этом говорит;иначе строит граф, ранжирует источники и при наличии обученной модели запускает GNN/GAT.
Поверх числового конвейера можно включить команду LLM-агентов (через Mistral API или любого другого провайдера). Это пять ролей: проверка входа, проверка EVT-детекции, проверка графа, проверка локализации и координатор, который собирает итоговый отчёт. Принципиальный момент: агенты не меняют числа. Они не двигают порог, не правят рёбра и не переставляют источники — только объясняют и критикуют уже посчитанный результат человеческим языком. Это слой аудита, а не «самостоятельный ИИ». Правда, запрет менять числа задан инструкцией для модели, а не жёсткой схемой, поэтому текст отчёта всё равно стоит сверять с посчитанными значениями. Зато результат полностью воспроизводим и без LLM.
6. Почему агенты нужны именно сейчас
Можно спросить: зачем агент, если есть формулы и скрипты? Мой ответ - потому что изменились сами задачи.
Каналов стало слишком много. Врач физически не может одновременно смотреть на сотню контактов стерео-ЭЭГ, инженер - на все датчики парка двигателей, аналитик - на сотни акций. Нужен кто-то, кто сам пройдёт по всем шагам и скажет, на что смотреть.
Обычное ML плохо видит хвосты. Нейросети учатся на типичном. Чем реже событие, тем меньше примеров и тем хуже модель. EVT даёт порог с понятным статистическим смыслом, опираясь только на фон, и не требует тысяч размеченных катастроф.
Конвейер стал длинным, и в нём легко ошибиться. Выбрать фон, порог, способ построения графа, разбиение на обучение и тест - на каждом шаге можно незаметно «подсмотреть в будущее». Агент-планировщик фиксирует порядок действий, замораживает параметры на фоне и записывает, что именно было сделано. Это делает результат воспроизводимым.
Нужна объяснимость, а не только метрика. В медицине и инженерии ответ «модель уверена на 0,93» мало кого устраивает. Нужно «когда» и «где», плюс понятное объяснение, почему. Разделение задачи на EVT-детекцию и графовую локализацию даёт именно такую структуру, а LLM-роли переводят её на человеческий язык.
LLM стали дешёвыми и доступными. Ещё недавно добавить в научный конвейер слой текстового разбора было дорого и сложно. Сейчас это несколько API-вызовов. Но я сознательно оставил LLM роль рецензента: числа считает детерминированный код.
Graph-EVT-agent — очень простой агент. У него нет памяти, сложного планирования и свободы действий. Но именно поэтому его поведение можно проверить. Мне кажется, это правильная точка входа: сначала надёжный и прозрачный агент на хорошо изученной математике, а уже потом - что-то более самостоятельное.
7. Примеры
7.1. Быстрый старт: шесть каналов за пару секунд
Самый простой пример - синтетическая запись из 6 каналов, где событие начинается в канале ch2 и расходится на остальные.

Код выглядит так:
from graph_evt_agent import EVTConfig, GraphConfig, GraphEVTPipeline, load_timeseries pipeline = GraphEVTPipeline( EVTConfig(baseline_size=400, tail_quantile=0.95, alarm_probability=0.999, top_k=3, persistence=3), GraphConfig(method="ar", edge_threshold=0.2), ) result = pipeline.run_detailed(load_timeseries("episode.csv")) result.plan.route # "1-d" или "n-d" result.detection.time_index # момент первого устойчивого превышения result.ranking # ранжирование источников (None для 1-D)
Единственное жёсткое требование к данным: первые baseline_size отсчётов должны быть фоном до события.
7.2. Проверка на эталоне с известным источником
На реальных данных истинный источник почти никогда не известен. Поэтому сначала метод стоит проверить там, где ответ знаем заранее. Для этого в репозитории EVT-educational-demo есть синтетический эталон: 12 связанных осцилляторов Курамото, замкнутых в кольцо. В канал channel_00 начиная с отсчёта 932 добавлен фрактальный импульс (показатель Хёрста H = 0,75). Дальше он расходится по кольцу: на каждом шаге задержка 5 отсчётов и ослабление в 0,65 раза.

Результат:
истинное начало - отсчёт 932, тревога - на отсчёте 949 (задержка 17 отсчётов);
прозрачный ранжировщик ставит
channel_00на первое место с вероятностью 0,47;после обучения на размеченных эпизодах доля верных ответов Top-1 на 17 валидационных эпизодах: GNN — 0,76, GAT — 0,71, эвристика — 0,65.
И две честные границы. Если потребовать не одно, а два превышения подряд (persistence = 2), тревога сдвигается на 10 отсчётов позже, а источником назначается сосед channel_01. Поэтому настройки фиксируют до теста, а не подбирают под ответ. А на эпизодах из другого генератора данных обученные GNN и GAT не угадали ни одного источника из 12, тогда как прозрачный ранжировщик угадал 8. Обученная модель хороша там, где её учили, и не переносится в чужой домен сама собой.
Это иллюстрация процедуры на данных с известным ответом, а не оценка точности на реальных системах.
7.3. Три реальные системы: медицина, финансы, авиация.
Дальше - три реальных примера из репозитория Extreme-Value-Theory-New-Approach. Во всех используется одна и та же схема из шести шагов: задача → данные → граф → поиск момента («когда») → поиск источника («где») → результат. Код один и тот же, меняется только адаптер: что считается узлом и ребром.
7.4. Что показали примеры
Во всех трёх системах EVT находит момент события без «подглядывания в будущее», а линии доказательств в сходятся на одном источнике.
При этом важно сказать и о том, чего примеры не показали. При честном разбиении данных (по двигателям, стержням, секторам) графовая нейросеть не обгоняет простые модели без графа в задаче классификации узлов. Например, в мозге AUROC GAT с графом — 0,868, без рёбер — 0,867, у логистической регрессии — 0,879. Ценность графа здесь — в локализации и интерпретации, а не в росте метрики. Кроме того, в мозге и финансах нет независимой «истины» об источнике, а в авиации она приближённая. Это демонстрация метода, а не клиническая или промышленная валидация.
Если свести всё вместе, то Graph-EVT-agent может:
найти момент события по фону, не подглядывая в будущее;
построить и заморозить проверяемую гипотезу графа;
ранжировать узлы-кандидаты с вероятностями и неопределённостью;
сверить несколько линий доказательств вместо одного числа;
работать одним кодом в разных областях.
И не может:
автоматически доказать причинность;
найти источник по одному каналу;
назвать истинный источник без внешней разметки;
гарантировать, что граф улучшит метрику;
заменить врача, инженера или аналитика.
8. Заключение
Я давно занимаюсь изучением работы мозга, и именно мозг привёл меня к этой теме. Приступ эпилепсии - классическое экстремальное событие: редкое, сильное, незапланированное и спрятанное внутри многих часов обычной записи.
Всё началось с работы, которую мы сделали вместе с коллегами:
Karpov OE, Grubov VV, Maksimenko VA, Kurkin SA, Smirnov NM, Utyashev NP, Andrikov DA, Shusharina NN, Hramov AE. Extreme value theory inspires explainable machine learning approach for seizure detection. Sci Rep. 2022 Jul 6;12(1):11474. doi: 10.1038/s41598-022-15675-9. PMID: 35794223; PMCID: PMC9259747.
В этой работе приступы рассматривались как выбросы в спектральной мощности ЭЭГ, то есть как экстремальные события. На записях 83 пациентов с фокальной эпилепсией (25 каналов, от 8 до 84 часов) распределение мощности в полосе 2–5 Гц оказалось тяжелохвостым. Одноклассовый SVM искал в записи выбросы — участки, непохожие на основную массу активности. Чувствительность составила 77%, а у 60 из 83 пациентов были найдены все приступы. Точность при этом около 12%: врач всё равно проверяет кандидатов глазами, но объём записи для ручного просмотра сокращался до 95%. Главное — подход получился объяснимым: понятно, почему участок записи помечен как подозрительный.
Эта работа показала, что EVT отлично отвечает на вопрос «когда?». Но для врача не менее важен вопрос «где?» - какая область мозга вовлекается первой. Именно эта статья стала для меня отправной точкой: от неё я перешёл к развитию теории экстремальных событий для многоканальных систем, к графам зависимостей между каналами и к агентам, которым можно доверить весь многошаговый конвейер. Из этой идеи выросли Graph-EVT-agent и примеры, о которых я рассказал выше. А то, что та же схема без изменений заработала на авиадвигателях и фондовом рынке, говорит о том, что подход не привязан к медицине.
Главная мысль статьи: не выбрасывайте хвосты. Если в вашей задаче важны редкие события - приступы, отказы, обвалы, - им нужен свой инструмент. Теория экстремальных значений даёт для этого строгую математику, граф помогает найти источник, а простой агент делает весь путь воспроизводимым и объяснимым.
Aquahawk
Очень недооценённая тема, я поверхностно знаком со стороны финансов и инвестиций. Талеб в 2020 выпустил шикарную книгу Статистические последствия жирных хвостов: О новых вычислительных подходах к принятию решений (tatistical Consequences of Fat Tails: Real World Preasymptotics, Epistemology, and Applications (Technical Incerto Vol. 1) )
Жесточайше математическая книга с кучей интегралов.
DenisDenisMIS Автор
Спасибо! Это действительно нетипичная для него книга.
Вот здесь есть и разбор и сама его книга в электронном виде: https://github.com/MarcosCarreira/StatisticalConsequencesOfFatTails
В репозитория, к сожалению, всё на неизвестном мне вольфраме(
Aquahawk
Я купил себе официальный печатный экземпляр на русском языке. Что интересно книжка продавалась запаяной, и полистать её нельзя. Я думаю это чтобы продать её тем, кто боится трёхэтажных формул. Местами правда пришлось читать оригинал на английском чтобы понять что он имел ввиду :)