Anomaly-Transformer快速上手:从环境配置到运行SOTA模型的完整指南
Anomaly-Transformer快速上手:从环境配置到运行SOTA模型的完整指南
【免费下载链接】Anomaly-TransformerAbout Code release for "Anomaly Transformer: Time Series Anomaly Detection with Association Discrepancy" (ICLR 2022 Spotlight), https://openreview.net/forum?id=LzQQ89U1qm_项目地址: https://gitcode.com/gh_mirrors/an/Anomaly-Transformer
Anomaly-Transformer是一个基于Transformer架构的时间序列异常检测模型,在ICLR 2022会议上被选为Spotlight论文。该模型通过创新的关联差异(Association Discrepancy)机制,能够高效准确地识别时间序列数据中的异常模式,为工业监控、金融风控等领域提供强大的异常检测能力。
一、模型架构解析:如何实现SOTA性能?
Anomaly-Transformer的核心创新在于其独特的关联差异机制,该机制能够有效捕捉时间序列中的异常模式。模型架构主要由以下几个关键部分组成:
图1:Anomaly-Transformer模型结构示意图,展示了其核心的关联差异机制和重构模块
- Prior-Association与Series-Association:模型通过计算这两种关联的差异来识别异常
- 关联差异最大化与最小化:通过梯度下降优化这两个方向的差异
- 异常注意力机制:专门设计的注意力模块用于捕捉异常特征
- 重构模块:包含Layer Norm和Feed Forward网络的序列重构组件
这种架构设计使Anomaly-Transformer在多个基准数据集上都取得了优异的性能表现。
二、环境准备:3步完成配置
2.1 克隆项目代码库
首先,通过以下命令克隆项目代码:
git clone https://gitcode.com/gh_mirrors/an/Anomaly-Transformer cd Anomaly-Transformer2.2 安装依赖项
项目主要依赖PyTorch和相关数据处理库,建议使用Python 3.6+环境。安装命令如下:
pip install torch torchvision numpy pandas scikit-learn2.3 准备数据集
项目支持多种常用的时间序列异常检测数据集,包括SMD、MSL、SMAP等。数据集需要放置在dataset/目录下,每个数据集对应一个子目录。
三、快速启动:使用脚本一键运行
项目提供了便捷的启动脚本,位于scripts/目录下。以SMD数据集为例,只需运行:
bash scripts/Start.sh该脚本默认执行以下操作:
- 设置CUDA可见设备
- 使用SMD数据集训练模型(10个epoch,批大小256)
- 加载预训练模型进行测试
脚本中的关键命令如下:
# 训练命令 python main.py --anormly_ratio 0.5 --num_epochs 10 --batch_size 256 --mode train --dataset SMD --data_path dataset/SMD --input_c 38 # 测试命令 python main.py --anormly_ratio 0.5 --num_epochs 10 --batch_size 256 --mode test --dataset SMD --data_path dataset/SMD --input_c 38 --pretrained_model 20四、自定义训练:关键参数解析
如果需要自定义训练参数,可以直接修改main.py中的参数设置或在命令行中指定。主要参数包括:
--lr:学习率,默认1e-4--num_epochs:训练轮数,默认10--batch_size:批大小,默认1024--win_size:时间窗口大小,默认100--input_c:输入特征维度,根据数据集调整--anormly_ratio:异常数据比例,默认0.5
例如,使用MSL数据集进行训练的命令:
python main.py --mode train --dataset MSL --data_path dataset/MSL --input_c 55 --num_epochs 15五、性能评估:为何Anomaly-Transformer是SOTA?
Anomaly-Transformer在多个权威数据集上都取得了领先的性能。以下是模型在各数据集上的F1分数表现:
图2:Anomaly-Transformer与其他方法在各数据集上的F1分数对比,其中"Ours"代表Anomaly-Transformer
从结果可以看出,Anomaly-Transformer在所有测试数据集上都取得了最高的F1分数,特别是在SMAP数据集上达到了96.69的高分,充分证明了其在时间序列异常检测任务上的优越性。
六、项目结构概览
项目主要包含以下几个关键目录和文件:
model/:模型定义目录,包含AnomalyTransformer.py和注意力机制实现attn.pydata_factory/:数据加载和预处理模块,主要文件为data_loader.pyscripts/:包含各数据集的运行脚本,如SMD.sh、MSL.sh等utils/:工具函数目录,包含日志和通用工具函数main.py:项目入口文件,负责解析参数和启动训练/测试过程solver.py:训练和测试逻辑的主要实现
七、常见问题解决
7.1 CUDA内存不足
如果遇到CUDA内存不足的问题,可以尝试:
- 减小
--batch_size参数 - 减小
--win_size参数 - 使用
--input_c参数减少输入特征维度
7.2 数据集路径错误
确保数据集路径正确设置,或通过--data_path参数指定正确的数据集位置。
7.3 模型性能不佳
尝试调整以下参数:
- 增加
--num_epochs训练更多轮次 - 调整
--lr学习率 - 尝试不同的
--anormly_ratio异常比例
总结
Anomaly-Transformer作为一种创新的时间序列异常检测模型,通过其独特的关联差异机制,在多个基准数据集上实现了SOTA性能。本指南介绍了从环境配置到模型运行的完整流程,帮助用户快速上手这一强大的异常检测工具。无论是学术研究还是工业应用,Anomaly-Transformer都为时间序列异常检测提供了一种高效可靠的解决方案。
【免费下载链接】Anomaly-TransformerAbout Code release for "Anomaly Transformer: Time Series Anomaly Detection with Association Discrepancy" (ICLR 2022 Spotlight), https://openreview.net/forum?id=LzQQ89U1qm_项目地址: https://gitcode.com/gh_mirrors/an/Anomaly-Transformer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
