Page 329 - 《软件学报》2026年第2期
P. 329
808 软件学报 2026 年第 37 卷第 2 期
[4]
层堆叠而成的卷积神经网络 ConvNet (记作 CN) [41] ; 带有残差连接的残差网络 ResNet ; 以及使用不同尺寸卷积核
的残差网络作为基模块的集成网络 InceptionTime (记作 IT) [29] .
(3) 基于 Transformer 的方法. 使用 Sylligardos 等人 [4] 构建的基于 SiT-stem [42] 的 Transformer 模型 (记作 Trans)
作为异常检测算法选择器. 这是一种基于卷积模块和多头自注意力机制的时间序列分类模型.
(4) 基于 Rocket 的方法. MiniRocket [43] 是一种特殊的时间序列分类算法. 该方法利用大量具有随机参数的卷积
核和预先设计的池化操作, 将时间序列转换成特征向量. 进而在特征向量上构建线性分类器. 为了与现有研究 [4] 一
致, 本文将 MiniRocket 方法简称为 Rocket.
表 3 时间序列异常检测数据集信息
数据集 序列数量 平均序列长度 平均异常数量 平均异常长度 应用场景描述
帕金森病患者臀部和腿部3个加速度传感器的带注释读数. 这些
Daphnet 45 21 760 7.6 2 841
患者在步行任务期间会出现步态冻结 (FoG)
洛杉矶101号北高速公路格伦代尔入口匝道的环形传感器数据.
Dodgers 1 50 400 133 5 612
异常现象代表道奇队比赛后的异常交通
标准心电图数据. 异常代表室性早搏. 通过识别信号的周期性, 将
ECG 52 230 351.9 195.6 15 634
一个长度约为1E7的长序列拆分为47个序列
来自一款便携式拾放演示器的数据. 该设备使用储气罐为所有抓
Genesis 6 16 220 3 50
取和存储单元供电
柴油加热循环数据, 包含3个储层的状态, 例如温度和液位. 异常
GHL 126 200 001 1.2 388.8
表明最高温度或泵频率发生变化
机器性能指标监控数据集, 反映了Web服务的规模、质量和机器
IOPS 58 102 119.2 46.5 2 312.3
的健康状态
KDD21 250 77 415.06 1 196.5 在最近的SIGKDD 2021中发布的复合数据
由具有非平凡异常的Mackey-Glass时间序列组成, 表现出人眼难
MGAB 10 100 000 10 200
以区分的混乱行为
摘录了48个时长为30 min的双通道动态心电图记录, 这些记录来
MITDB 32 650 000 210.1 72 334.3
自BIH心律失常实验室在1975–1979年间研究的47名受试者
由真实世界和人工时间序列组成, 包括AWS服务器指标、在线广
NAB 58 6 301.7 2 575.5
告点击率、实时流量数据以及Twitter提及的大型上市公司的集合
根据温度、湿度、光和二氧化碳进行二元分类 (房间占用) 的实
Occu. 10 5 725.8 18.3 1 414.5
验数据. 地面实况占用率通过每分钟拍摄的带时间戳的照片获得
包括用户执行典型日常活动时记录的运动传感器读数. 旨在对人
OPP 465 31 616.9 2 1 267.3 类活动识别算法 (例如分类、自动数据分割、传感器融合和特征
提取) 进行基准测试
从典型的分层传感器测量系统收集的环境数据的集合, 例如温度、
Sen.Sco. 23 27 038.4 11.2 6 110.4
湿度和太阳辐射
从一家大型互联网公司收集的为期5周的服务器性能检测数据,
SMD 281 25 562.3 10.4 900.2
包含来自28台不同机器的3组实体
包括78个时长为30 min的心电图记录, 用于补充MIT-BIH心律失
SVDB 115 230 400 208 27 144.5
常数据库中的室上性心律失常示例
YAHOO 367 1 561.2 5.9 10.7 雅虎公司某生产系统生产流量的真实和合成时间序列
时间序列异常检测算法自动选择的目的是提高未知数据上的异常检测准确率. 因此, 本文以算法选择器在测
试数据上所选算法的异常检测准确率为标准来比较所提方法与基准方法的性能优劣. 异常检测准确率的评测指标
使用 AUC-PR [28] . 该指标不受类别不平衡的影响, 并且独立于预测阈值, 因此被广泛用于异常检测任务中. AUC-PR
衡量的是精度-召回率 (Precision-Recall) 曲线下方的面积. 该曲线以精度作为横坐标、召回率作为纵坐标在二维空
间中绘制. 面积值越大, 所评测算法的准确率越高.
4.3 实验方法
本文所提方法基于 Python 3.8 和 PyTorch 库实现. 实验在一台拥有 Platinum 8260 CPUs 和 Ubuntu 20.04 LTS

