0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用异常检测识别意外事件以及偏离正常行为的情况

MATLAB 来源:MATLAB 2023-07-24 09:59 次阅读

什么是异常检测

异常检测是识别与预期行为不同的事件或模式的过程。异常检测范围广泛,从简单的离群值检测,到复杂的机器学习算法,这些算法经过训练可以发现数百个信号中隐藏的模式。

工程师和数据科学家使用异常检测来进行以下识别:

机械故障,用于预测性维护

制造生产线的缺陷

放射学影像中的恶性肿瘤

金融交易中的欺诈

零售业的客户流失

视频监控录像中的异常动作

MATLAB 中,有很多方法均可用来设计异常检测算法。哪种异常检测方法最适用于给定应用,将取决于可用异常数据量,以及您是否可将异常数据与正常数据区分开来。

异常检测的第一步是检查现有的数据。不妨考虑以下问题:

您能在原始数据中发现异常吗?

有时候,您只需查看数据即可执行异常检测。例如,下面图 1 中的信号是从风扇收集的,您可以很容易地看到表示风扇行为异常的信号突变。如果您能够通过肉眼检测异常,则也许可以使用简单的算法(例如 findchangepts 或 controlchart)进行异常检测。

087e1718-1b1c-11ee-962d-dac502259ad0.jpg

图 1:MATLAB 冷却风扇数据图,异常情况一目了然。

您能在衍生特征中发现异常吗?

通常很难从原始数据中直观地检测异常。在下面的信号中,很难确定哪个时域信号有异常。然而,如果创建功率谱以在频域中查看数据,则峰值的频率和幅度差异可以清楚地表明两个信号截然不同。在这种情况下,您可以将这些峰值用作基于有监督学习方法的异常检测算法的特征输入。

08a0215a-1b1c-11ee-962d-dac502259ad0.jpg

图 2:尽管原始时序信号(左图)中的异常看上去不明显,但在频域中查看数据(右图,使用 MATLAB 中的周期图)时,可以看到峰值频率的明显差异。

您能用统计学方法区分正常特征和异常特征吗?

在单个信号中,异常不一定那么明显。当今的复杂机器可能有数百个传感器。有时,只有同时考虑多个传感器时,异常才会变得明显。标注了数据后,您可以检查时域和频域特征的统计分布,如图 3 所示。您还可以执行特征变换和排名,以识别最能区分两个组的特征。然后,您可以使用这些特征,通过有监督学习方法基于标注的数据训练异常检测算法。

08ccbd96-1b1c-11ee-962d-dac502259ad0.jpg

图 3:左侧的 MATLAB 图分别用蓝色和红色表示成对的正常数据和异常数据。右侧是来自诊断特征设计器的相应特征直方图,用于识别哪些特征可明确区分正常数据和异常数据,以供有监督异常检测算法使用。

如果您不知道异常的具体表现该怎么办?

机械故障代价高昂,因此,操作人员通常希望通过保守的维护计划来防患未然。这可能意味着异常很少见,使得设计异常检测算法变得很棘手。

有几种设计异常检测算法的方法只需很少的异常数据,或者根本不需要异常数据。这些“仅正常”方法只基于正常数据训练算法,并将正常数据之外的数据识别为异常数据。

使用 MATLAB,您可以对数据应用以下“仅正常”异常检测方法:

阈值化。

阈值化在数据超过统计指标的阈值时识别异常。例如,时序数据中最近时段内的标准差,对信号使用控制图,使用变化点检测查找信号中的突变,或获得数据分布的稳健估计值,并将分布边缘的样本识别为异常。基于统计指标的阈值化是个不错的方法,但与机器学习方法相比,这种方法应用于多元数据比较困难,而且在异常检测方面也不够稳健。对于离群值具有稳健性的统计估计法将生成更好的结果,例如稳健协方差。

单类支持向量机。

单类支持向量机用于识别最大化类间距离的分离超平面。仅训练一个类会生成可视为正常的数据的模型。该模型使您无需任何可用于训练的标注异常即可检测异常。这种方法和其他基于距离的方法需要数值特征作为输入,而且不适用于高维数据。

孤立森林。

孤立森林可用于构建将每个观测值隔离到一个叶节点中的树。异常分数作为样本的平均深度进行计算:异常样本需要的决策数比正常样本的要少。这种方法支持数值特征和分类特征组合,并且适用于高维数据。

编码器

自编码器是基于正常数据训练且尝试重构原始输入的神经网络。经过训练的自编码器将会准确地重构正常输入。如果输入与其重构之间差异巨大,则可能表明存在异常。自编码器可用于信号和图像数据。

08f03280-1b1c-11ee-962d-dac502259ad0.jpg

图 4:自编码器经过训练,可以复制输入。利用输入与其重构之间的差异,可以对信号或图像数据进行异常检测。

当您的数据中存在异常但无法进行标注时,您还可以尝试使用无监督聚类方法进行异常检测。有时,您可以将聚类与正常数据和异常数据相关联,但除非数据集是均衡的(包含许多同类型的异常),否则使用“仅正常”方法更有可能获得有用的结果。

在应用异常检测算法之前,通常需要从原始数据中提取特征。

MATLAB 同时支持以手动和自动方法从信号、图像和文本数据中提取特征。Predictive Maintenance Toolbox 中的诊断特征设计器可以帮助您从多种类型的信号中提取特征。

总结

异常检测有助于识别离群值、与正常值的偏差和意外行为

如果您有足够的标注数据(包括异常),则可使用有监督学习方法进行异常检测

如果您的数据大部分都是正常数据,则应用某种专门的“仅正常”异常检测方法即可

上手示例:

使用 MATLAB 检测图像中的对象缺陷

要构建基于图像的异常检测算法,您可以执行以下操作:

1) 将图像馈送入预训练的 AlexNet 卷积神经网络;

2) 使用第一层后的网络激活值作为特征,然后

3) 使用 fitcsvm 训练单类支持向量机。单类支持向量机基于正常图像训练。负的分类分数表示异常。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48129

    浏览量

    740189
  • matlab
    +关注

    关注

    175

    文章

    2924

    浏览量

    228463
  • 编码器
    +关注

    关注

    41

    文章

    3364

    浏览量

    131562
  • 向量机
    +关注

    关注

    0

    文章

    166

    浏览量

    20717
  • 机器学习
    +关注

    关注

    66

    文章

    8134

    浏览量

    130577

原文标题:什么是异常检测?使用异常检测识别意外事件以及偏离正常行为的情况

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    工业异常检测超越特定阈值限制的解决方案

    异常检测和分割(AD&S)对于工业质量控制至关重要。虽然现有方法在为每个像素生成异常分数方面表现出色,但实际应用需要产生一个二进制分割来识别异常
    发表于 04-09 10:44 70次阅读
    工业<b class='flag-5'>异常</b><b class='flag-5'>检测</b>超越特定阈值限制的解决方案

    当算术运算期间发生除以零或下溢/溢出时,ARM926EJ-S内核的行为是什么?

    当算术运算期间发生除以零或下溢/溢出时,ARM926EJ-S 内核的行为是什么。 我知道有些架构已经定义了行为,或者可以将其配置为触发中断以响应其中一个算术异常。 该处理器是否具有在运行时检测
    发表于 02-22 07:35

    miniprog3在win7电脑识别异常,也无法下载仿真怎么解决?

    miniprog3在win7电脑识别异常,也无法下载仿真,但是该下载器在别的电脑(win10)上是可以正常识别使用的,请问有没有遇到过这种情况,我这边尝试过禁掉数字签名,但是没有解决问
    发表于 02-18 08:48

    防盗报警器电路图分享

    防盗报警器是一种电子设备,主要用于预防抢劫、盗窃等意外事件。它通常由防盗报警主机和防盗报警配件组成,能够探测入侵行为或由配件主动触发报警信号,并通过现场警号、网络或通信方式将报警信息传达给指定的人或系统平台。
    的头像 发表于 02-12 17:36 965次阅读
    防盗报警器电路图分享

    TLF35584寄存器VMONSTAT出现异常行为的原因?

    我看到寄存器 VMONSTAT 出现异常行为,出于某种原因(我们仍然不知道为什么)寄存器显示 QVR(电压基准)不正常,尽管我们肯定知道输出引脚上有电压,但根据数据表,寄存器报告 QT1 和 QT2
    发表于 01-22 06:16

    基于DiAD扩散模型的多类异常检测工作

    现有的基于计算机视觉的工业异常检测技术包括基于特征的、基于重构的和基于合成的技术。最近,扩散模型因其强大的生成能力而闻名,因此本文作者希望通过扩散模型将异常区域重构成正常
    的头像 发表于 01-08 14:55 423次阅读
    基于DiAD扩散模型的多类<b class='flag-5'>异常</b><b class='flag-5'>检测</b>工作

    IGBT温度传感器异常的原因以及解决方法

    正常运行。本文将详细介绍IGBT温度传感器异常的原因以及解决方法。 首先,我们来了解一下IGBT温度传感器的工作原理。IGBT是一种结合了晶体管的高速开关元件,可以用于控制电流和电压。IGBT温度传感器则是一种用于监测IGBT
    的头像 发表于 12-19 14:10 1139次阅读

    变压器油位异常的原因和处理方法是什么?

    变压器油位异常的原因和处理方法是什么? 变压器油位异常是指变压器内部绝缘油的液位偏离正常范围,常见的异常情况有油位过高或过低。油位
    的头像 发表于 11-23 15:34 1830次阅读

    异常、陷阱和中断有什么区别呢?

    异常和中断会暂停程序以响应硬件或软件中的意外事件。中断是异步事件,异常是同步事件,但是中断和异常之间的区别也取决于具体情况
    的头像 发表于 09-14 15:20 1114次阅读
    <b class='flag-5'>异常</b>、陷阱和中断有什么区别呢?

    ARMv8-M处理器故障处理和检测

    特定功能。ARMv8‑M处理器的体系结构包含故障通过异常处理功能,以及用于处理系统级的非屏蔽中断(NMI) 错误,例如,褐化检测。特定于实现的功能,如错误此处不包括存储器的纠正代码(ECC
    发表于 08-02 06:28

    什么是“可解释的人工智能”(XAI)?面向异常检测的“可解释人工智能”(XAI)有哪些案例?

    异常检测识别某种事物偏离正常和预期情形的过程。 如果能够及早检测
    的头像 发表于 08-01 14:54 1116次阅读

    维修E3631A是德电源电流回读异常

    近日某院校送修是德电源E3631A,客户反馈电源电源电流回读异常,对仪器进行初步检测,确定与客户描述故障一致。本期将为大家分享本维修案例。 下面就是是德-E3631A维修情况   是德电源
    的头像 发表于 07-31 14:12 397次阅读
    维修E3631A是德电源电流回读<b class='flag-5'>异常</b>

    工业机械异常检测

    您怎么知道一台机器是否在正常运行?问题的回答是:通过利用深度学习来检测工业机器的常规振动数据中的异常情况异常检测有很多用途,而尤其在预测性
    的头像 发表于 05-31 16:31 462次阅读
    工业机械<b class='flag-5'>异常</b><b class='flag-5'>检测</b>

    Python中的异常机制(一)

    一刻不在路上. 在今夜首先了解 什么是异常 : 软件程序在运行过程中,可能会遇到能使其不能正常运行的问题,我们称之为异常,英文是:Exception . 然后, 我们会了解 捕获异常
    的头像 发表于 05-11 18:17 589次阅读
    Python中的<b class='flag-5'>异常</b>机制(一)

    英码智慧工地AI行为识别方案,提高工地的安全性和管理效率

    ,如未戴安全帽监测、玩手机识别、人员聚集监测、抽烟识别、未穿反光衣监测、烟雾检测、车牌识别、安全带穿戴识别等,可以对工地的各种
    的头像 发表于 05-09 13:37 365次阅读
    英码智慧工地AI<b class='flag-5'>行为</b><b class='flag-5'>识别</b>方案,提高工地的安全性和管理效率