# 预测得准，为什么仍可能找错异常

作者：贺育隆（Yulong He）
更新日期：2026-09-06
内容类型：已发表论文解读与技术思考
主题：多模态与时序
页面：https://hreyulog.github.io/wiki/anomaly-detection.html

时间序列预测与异常检测有不同的目标。模型选择需要对齐最终任务，而不是只优化中间指标。

用正常历史预测未来，再把偏离预测的部分标记为异常，是一条直观的思路。但这里其实有两个问题：怎样预测，以及怎样把误差转化成异常判断。

## 预测只是第一步

2022 年的这篇合著论文比较了神经网络和梯度提升等预测方法，并在时间序列异常检测任务中分析其表现。研究使用的基准由多个独立单变量序列组成，每条序列包含一个异常区段。[公开论文全文](https://pureportal.spbu.ru/files/97617692/Time_series_anomaly_detection_CPS2022.pdf)

论文不仅比较预测器，还讨论了用窗口内累计偏差定位异常。这样的设计提醒我：异常分数的构造，本身就是方法的一部分，不能隐藏在预测模型之后。

## 中间目标与最终目标会不一致

论文结果显示，预测能力较强的模型不一定具有更好的异常识别表现。过于灵活的预测器可能削弱异常的残差信号；预测不足又可能让正常变化产生大量误差。这个观察限于论文的任务和样本，不能据此认定某种模型家族普遍不适合检测异常。

我的理解是，异常检测关心的是“正常与异常能否被分开”，而不是无差别地逼近所有观测。即使两种方法的平均误差相近，它们在关键异常区段上的行为也可能不同。

## 一个容易被基准设置掩盖的问题

如果预先知道每条序列恰有一个异常区段，就可以把问题处理成定位任务。实际监测中，异常可能不存在，也可能反复出现，此时还需要考虑阈值、误报和检测延迟。论文基准的结果，不能直接证明系统已具备连续在线告警能力。

这一区别是我从早期工作中保留下来的重要提醒：**先检查基准给了哪些先验，再讨论结果能否迁移。**

## 为什么今天仍然值得讨论

在代码评测和其他机器学习任务中，也存在类似的中间指标问题。一个方便优化的数字，很容易逐渐替代真正关心的目标。对我而言，这项研究的持续价值在于形成一种习惯：从最终决策倒推评价方式，再选择模型，而不是先选模型再寻找能展示优势的指标。

## 依据文献

### 利用预测方法检测时间序列异常

Н. Э. Девришев, Ю. Хэ, О. Л. Петросян. **Обнаружение аномалий во временных рядах с помощью методов прогнозирования**. *Процессы управления и устойчивость, 9(25)*, 2022.

会议论文集论文 · 已发表。 [原始文献](https://pureportal.spbu.ru/files/97617692/Time_series_anomaly_detection_CPS2022.pdf) · [机构书目](https://pureportal.spbu.ru/en/publications/--------%281a491a09-e1c5-4d31-b3f1-958b306970e2%29.html)


## 延伸阅读

- [评测代码：看起来合理，不等于真的正确](https://hreyulog.github.io/wiki/code-evaluation.html)
- [多一个模态，什么时候才真正有用](https://hreyulog.github.io/wiki/multimodal-robustness.html)
