德国斯图加特大学对信息物理系统进行基于 AI 的时间序列异常检测
作者 Sheng Ding、Tagir Fabarisov、Adrian Wolf 和 Andrey Morozov,斯图加特大学
对于相对简单的控制系统,例如在处理来自多个传感器的输入后驱动作动器的系统,设计工程师通常会直接考虑采用异常传感器输入。然而,随着系统日趋复杂,异常检测的难度可能呈指数增加。现代信息物理系统(例如柔性生产线、自动驾驶汽车和医疗外骨骼等)的结构和行为错综复杂,这不仅增大了故障导致工作失败的可能性,而且还增加了消除这些失败情况的潜在成本。
多年以来,研究人员和工程师们一直都在改进异常检测技术和方法。传统方法,包括基于自回归综合移动平均 (ARIMA) 模型的统计分析,已被基于机器学习和深度学习的新方法所取代。事实证明,这些基于 AI 的方法在各种异常检测场景中都行之有效,但在互联网上搜索关于异常检测的论文时,我们会发现一个有问题的趋势。这个趋势是,大多数论文都详述了如何将单一方法应用于特定类型的单个系统。在自行撰写了几篇这样的论文后,我们认识到此类论文的价值受其特殊性的限制。在这种情况下,我们需要更通用的解决方案,以找到适用于几乎各类信息物理系统的最有效的异常检测方法。
为了满足此项要求,我们的研究团队开发了一个用于时间序列异常检测 (TSAD) 的软件平台。此平台是在 MATLAB® 中使用 Deep Learning Toolbox™ 和 Statistics and Machine Learning Toolbox™ 开发的。它可简化以下过程:从现实世界或仿真系统导入和预处理数据;训练各种深度学习网络、经典机器学习模型和统计模型;以及根据性能和准确度评估最佳选项(图 1)。
在 MATLAB 中构建 TSAD 有诸多显著优势,其中包括与 Simulink® 的无缝集成,以及用于设计和实现基于 AI 的系统的广泛框架。无数从更高效的异常检测中受益的系统已经(并将继续)使用 Simulink 设计,这就让我们有许多机会针对不同用例以及众多目标用户来测试平台。此外,当真实数据不可用或不足时,Simulink 和 Simscape™ 模型的仿真也提供了有价值的训练数据源。最后,通过 Simulink 仿真,可以很好地验证使用 TSAD 确定的最有效的异常检测模型。研究人员可以使用我们团队开发的故障注入模块 (FIBlock) 将故障注入现有模型中,然后将 TSAD 软件所生成的异常检测模块纳入其模型中以进行测试(图 2a)。
下面,我们来看一项 Franka Emika 工业机器人的案例研究(图 2b)。我们首先让机器人以随机轨迹运行,并从测量值中采集数据。然后,将此时间序列数据作为 TSAD 的输入用于训练和测试。TSAD 推荐使用全连接自编码器作为数据集的最佳检测模型,这会相应地生成异常检测模块。然后,我们使用 MATLAB 和 Simulink 连接到 ROS。在第一个关节处注入了噪声故障后,控制算法变得混乱,跳过放下过程,导致管子掉落。相比之下,如果异常检测模块监测到该信号,我们可以发出红色标志,并发送一条消息,在 ROS 中执行紧急关闭。
基于 AI 的异常检测基础知识
要更清楚地了解基于 AI 的异常检测的工作原理,最好先了解信息物理系统中可能发生的各种故障(图 3)。从广义上讲,内部故障包括传感器问题(如噪声、漂移、偏差和冻结)、计算硬件问题(如位翻转)以及网络问题(如数据包丢失、延迟和抖动)。外部故障包括来自恶意用户的攻击和环境状况。如果识别和处理不当,所有这些故障,无论是单独发生还是一起发生的,都可能会导致工作失败和安全问题。
在 AI 的技术框架下,我们可以使用经典机器学习方法(例如,使用 k 均值聚类、孤立森林和局部离群值因子算法)或深度学习网络来检测故障。
鉴于存在多种可能的途径和方法,这使得找到适用于任一给定系统的异常检测器变得难上加难。此外,由于需要评估多个深度学习网络架构和超参数值,还要评估将多个检测器集于一体或基于系统的当前工作模式在各个检测器之间动态切换的潜在作用,这也加剧了该任务的复杂性。在开发 TSAD 平台的过程中,我们的目标是提供一种自适应的自动化方法来应对所有这些挑战。
使用 TSAD 平台生成异常检测器
创建异常检测器的过程从采集数据开始。无论您是已选择要使用一种特定的统计、机器学习或深度学习方法,还是计划使用 TSAD 平台来探索和评估各种方法,都是如此。在某些情况下,可以使用从运行中的系统采集的真实数据。然而,根据定义,异常并不多见,因此,可能很难捕获足够数量和种类的异常来支持高效的模型训练。基于模型的仿真,比如使用 MATLAB 和 Simulink 进行的仿真,是一种有用的替代方法,使您能够生成大量包含异常和不含异常的训练数据。FIBlock 便于执行各种故障类型的故障注入试验,例如传感器故障、计算硬件故障和网络故障(图 4)。FIBlock 还支持灵活调节故障参数。故障事件和暴露持续时间可以用不同参数化随机方法建模。
在整合好用于训练的数据集后,您就可以开始使用 TSAD 平台了。该平台的用户界面是用 MATLAB 中的 App 设计工具创建的,它可通过一系列面板提供全程分步指导。在第一个面板(“1.1 数据”)上,您要将数据从包含一个或多个 CSV 文件的文件夹加载到 TSAD 中。在第二个面板(“1.2 预处理”)上,您要对数据进行预处理,例如标准化或重新缩放,以备在训练中使用(图 5)。
接下来是训练(“1.3 训练”面板)。在此面板上,您可以选择要使用的深度学习、机器学习和统计方法,然后对其进行单独或同时训练。借助 Parallel Computing Toolbox™,您可以选择在多个计算核上以并行方式运行训练。此外,您还可以使用 Optimization Toolbox™ 启动超参数优化,以提高模型性能(图 6)。
在模型训练完后,您可以在“检测”面板上评估其性能(“1.4 (a) 检测”)。凡是经过训练的模型,均可用于检测所提供的数据集中的异常。这些模型随后会根据您选择的性能度量(例如精确度、召回率或 F1 分数)进行排序(图 7)。该选项卡还包括用于可视化性能的图,以及每个模型的计算时间度量。在某些用例中,速度较快但精确度稍差的模型可能优于速度较慢但精确度更高的模型。在这种情况下,检测必须快速完成,以防信息物理系统基于错误输入继续进行危险行为或潜在的破坏行为。
TSAD 工作流中的其余步骤可用于在 Simulink 仿真中运行所选的检测器(“1.4 (b) Simulink 检测”),以及配置平台的动态切换机制(“1.6 动态切换”)。如果信息物理系统具有不同工作模式,且需要不同异常检测方法,这种机制就特别有用。例如,电动自动驾驶汽车可能需要在针对高速公路驾驶和城市驾驶训练的异常检测模型之间动态切换,或在主动使用和停车时充电之间动态切换。
行业协作和未来增强功能
我们的团队正在不断改进 TSAD 平台,并继续开展我们在异常检测实际应用方面的工作。我们正在评估的一个领域是,在实时硬件上部署异常检测器。目前使用异常检测器的特例系统是下肢辅助外骨骼 SafeLegs,这是由卡尔斯鲁厄理工学院的同行开发的(图 8)。我们在标准笔记本电脑上并行运行异常检测。接下来,我们将探索如何使用 Simulink Real-Time™ 和 Speedgoat® 目标硬件来实时执行我们用 TSAD 平台生成的异常检测器。
在今后的工作中,我们还将与众多行业组织进行合作。例如,我们不仅将与使用 TSAD 平台运行汽车测试试验的工程师合作,而且还将与使用 TSAD 平台进行电动汽车动力总成系统故障诊断的合作伙伴合作。我们也是 SofD 的研究合作伙伴,参与了一项关于 CAN 总线通信异常检测的研究项目。该项目是德国商务和气候控制部赞助的研究计划的一部分,旨在为软件定义车辆的发展铺平道路。
全球现有 2,000 多所大学开放了全校 MATLAB 和 Simulink 使用授权,斯图加特大学便是其中之一。Campus-Wide License 让研究人员、教职工和学生可随处使用主流配置的最新版产品,无论他们身处教室、家中、实验室还是业务现场都是如此。
2023 年发布