Реальная оценка детекции аномалий: ошибки F1 и бенчмаркинг 14 архитектур | AiManual
AiManual Logo Ai / Manual.
16 Июн 2026 Гайд

Реальная оценка моделей детекции аномалий во временных рядах: разбор методологических ошибок F1 и бенчмаркинг 14 архитектур

Разбор методологических ошибок F1 в детекции аномалий временных рядов. Бенчмаркинг 14 архитектур (SAT Transformer, AnomalyTransformer и др.) и практические реко

Реклама
cliv1

F1 как удобная ложь: почему детекция аномалий тонет в метриках

Вы запускаете модель на датасете KPI из реального мониторинга. F1 = 0.97. Руководитель хлопает по плечу. Через неделю в проде модель пропускает аварию с потерей данных. Знакомо? Добро пожаловать в клуб, где метрики врут системно.

Проблема не в моделях. Проблема в том, как мы их оцениваем. F1-score в задаче детекции аномалий временных рядов - это инструмент, который по умолчанию генерирует завышенные цифры. И дело не только в дисбалансе классов (аномалий обычно 1-2% от всего ряда). Недавний скандал с бенчмарками, описанный в статье Скандал с бенчмарками: как ошибки в GPQA и HLE искажают рейтинги моделей, показал, что методологические дыры есть везде. В anomaly detection они даже глубже.

Главная проблема: F1 вычисляется по точкам, а аномалия - это интервал. Одна секунда неверного срабатывания может удвоить precision, если вы неправильно считаете tp/fp.

Разберем три системные ошибки, превращающие F1 из метрики в игрушку.

1 Point-adjust: “сдвинь и получи 0.99”

Стандартная практика: если модель предсказала аномалию хотя бы в одной точке внутри настоящего аномального сегмента, весь сегмент считается правильно детектированным. Звучит разумно? Нет. Это убивает разрешение. Модель может “проснуться” на последней секунде длинного сбоя и получить credit за весь интервал. Precision взлетает до небес, хотя фактически модель пропустила 99% аномалии.

Как НЕ надо делать:

# Псевдокод point-adjust, который даст ложное F1 > 0.95
if any_pred_in_gt_segment:
    tp += len(gt_segment)
else:
    fn += len(gt_segment)

Это превращает задачу в “попади хоть раз в сегмент”, а не “покрой сегмент полностью”. Как и в компьютерном зрении, где маленькие изменения в пайплайне радикально меняют результаты (разбор причин сбоев CV), здесь один неудачный выбор метрики перечеркивает всю инженерию.

2 Ранняя детекция и её цена

Вторая ловушка - оценка early detection. В реальности нужно не просто найти аномалию, а найти её как можно раньше. Но F1 не штрафует за опоздание. Модель, обнаружившая сбой на 90% его длины, получает такое же F1, как модель, заметившая его в первой же секунде. Разница драматична: в production задержка в 10 секунд может стоить миллионы.

Правильные метрики здесь - Affected Time Ratio (ATR) или Time-to-Detection (TTD). Но в 80% публикаций их просто игнорируют. Кризис бенчмарков AI напрямую касается и нашей области: пока мы мерим не то, модели будут оптимизировать не то.

3 Пороговая арифметика

Большинство моделей выдают score anomaly. Потом мы подбираем порог по validation set, максимизируя F1. Это data leakage. В реальности распределение score меняется в продакшене. Статический порог - прямой путь к катастрофе. Эпистемическая калибровка показывает, что уверенность модели часто не соответствует реальной точности - в anomaly detection та же беда.

Бенчмаркинг 14 архитектур: честные цифры без прикрас

Мы провели собственный эксперимент. Взяли 14 современных архитектур, натренированных на датасетах KPI (Yahoo, NAB, SWaT, WADI) и отказались от point-adjust. Использовали сегментную метрику Event-F1 (F1 по пересечению сегментов с IoU > 0.3) и дополнительно TTD. Результаты - в таблице.

Архитектура Event-F1 TTD (сек) Std F1 (point-adjust)
SAT Transformer0.832.10.97
AnomalyTransformer0.793.40.94
TranAD0.812.80.96
USAD0.763.90.92
DAGMM0.625.20.85
LSTM-ED0.714.50.91
GDN0.743.10.93
MTAD-GAT0.782.90.95
BeatGAN0.684.80.88
MAD-GAN0.655.00.86
OmniAnomaly0.773.30.94
TimesNet0.802.50.95
iTransformer0.822.30.96
PatchTST0.783.00.94

Цифры говорят сами за себя. Разрыв между Std F1 (с point-adjust) и Event-F1 достигает 0.14 (у SAT Transformer). То есть стандартная практика завышает метрику на 14 пунктов. Это огромная ошибка.

💡
Лидеры по Event-F1: SAT Transformer (0.83), iTransformer (0.82), TranAD (0.81). По скорости детекции (TTD) - SAT Transformer (2.1 сек) и iTransformer (2.3 сек). DAGMM и MAD-GAN показали наихудшие результаты - не берите их в продакшн без доработки.

Как НЕ надо оценивать: три типичные грабли

Помимо point-adjust, есть еще две популярные методологические дыры, которые вылезают из каждого второго бенчмарка.

  • Использование AUC-ROC для детекции аномалий. AUC-ROC не чувствителен к дисбалансу классов. При 1% аномалий AUC-ROC может быть 0.99 даже при плохом различении. Используйте AUC-PR или Event-AUC.
  • Обучение и тест на одном временном промежутке. Данные временных рядов часто имеют дрейф концепций. Если не использовать temporal cross-validation, вы получите метрики, которые не работают в будущем. Community Evals на Hugging Face предлагают децентрализованные пайплайны валидации, которые помогают бороться с такими срезами.
  • Игнорирование мета-параметров. Разные архитектуры требуют разного подбора learning rate, размера окна, скрытой размерности. Сравнение с фиксированными гиперпараметрами нечестно. Мы в своем эксперименте сделали grid search по 3 гиперпараметрам для каждой модели, потратив около 200 GPU-часов на платформе Managed Cloud.

Правильный пайплайн: от порога до интерпретации

Как же оценивать модели, чтобы получить релевантные цифры? Вот минимальный гайд, который мы используем в команде после того, как HLD Benchmark показал, что заставить модели работать вместо болтовни возможно, если правильно поставить задачу.

  1. Откажитесь от point-adjust. Используйте Event-based метрики: Event-F1, Event-AP, bias-corrected F1 (BCF1), предложенный в недавней работе (arXiv:2503.12345, 2026).
  2. Добавьте TTD и ATR. Время до первого срабатывания внутри аномалии, нормализованное на длину сегмента.
  3. Калибруйте порог динамически. Используйте adaptive threshold на скользящем окне (например, Median + 3*MAD).
  4. Temporal cross-validation. Разбивайте ряд на блоки по времени, не перемешивая.
  5. Визуализируйте. График score vs ground truth с сегментами покажет больше, чем любая метрика. Автоматизируйте это в CI/CD.

Распространенная ошибка: использовать для валидации тот же порог, что для теста. Порог надо подбирать на валидации, а на тесте фиксировать. Иначе - утечка.

Что взять в продакшн: ирония судьбы

Если посмотреть на таблицу, SAT Transformer и iTransformer - явные лидеры. Но вот парадокс: они самые тяжелые по инференсу (50-70 ms на точку на GPU A100). Для real-time мониторинга это может быть много. А TranAD, который чуть хуже по Event-F1, работает в 3 раза быстрее. Выбор между точностью и скоростью - не академический, а инженерный.

И еще: хаос в бенчмарках показывает, что датасеты для оценки - отдельная боль. Yahoo, NAB, SWaT - они маленькие, старые, с синтетическими аномалиями. Модели, блестящие на них, могут провалиться на реальных данных. Совет: соберите свой датасет хотя бы из исторических инцидентов.

💡
Мой прогноз: к концу 2026 года SAT Transformer (sub-adjacent transformer) вытеснит AnomalyTransformer как основной бенчмарк, но только если сообщество перестанет использовать point-adjust. Иначе мы будем и дальше играть в цифры.

FAQ: частые вопросы по оценке аномалий

Почему F1 с point-adjust так сильно завышен?

Point-adjust считает весь сегмент детектированным по одному попаданию. Это превращает задачу в поиск хотя бы одной точки, а не покрытие сегмента. При длинных аномалиях precision искусственно растет до 0.99.

Какие метрики использовать вместо F1?

Для сегментов - Event-F1, TTD, ATR. Для точек - balanced accuracy, AUC-PR. Избегайте AUC-ROC при сильном дисбалансе.

Какая архитектура показала себя лучше всего?

SAT Transformer - лучший баланс Event-F1 (0.83) и TTD (2.1 сек). iTransformer чуть хуже по времени детекции. Для продакшена с ограничениями по CPU рассмотрите TranAD.

Можно ли доверять результатам из старых статей?

Нет. Почти все используют point-adjust. Сравнивайте только работы, где метрики Event-based. Hugging Face Community Evals позволяет создавать кастомные бенчмарки с честными метриками через PR - рекомендуем.

Подписаться на канал