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 训练单类支持向量机。单类支持向量机基于正常图像训练。负的分类分数表示异常。





审核编辑:刘清

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

    关注

    2573

    文章

    54368

    浏览量

    786060
  • matlab
    +关注

    关注

    189

    文章

    3018

    浏览量

    237599
  • 编码器
    +关注

    关注

    45

    文章

    3903

    浏览量

    141443
  • 向量机
    +关注

    关注

    0

    文章

    166

    浏览量

    21539
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136233

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机开发功能安全中编译器

    在各个领域,功能安全领域对开发人员提出了新要求。功能上安全的代码必须包括防御性代码,以防御各种原因引起的意外事件。例如,由于编码错误或宇宙射线事件而导致的内存损坏可能导致执行根据代码逻辑“不可能
    发表于 12-01 06:44

    怎么判断土压力计数据正常还是异常?

    土压力计数据的正常异常工作性态是怎样的?通过对大量监测数据的分析总结,可识别出土压力计的正常异常工作模式,这为判断仪器工作状态和评估工程
    的头像 发表于 10-31 14:43 110次阅读
    怎么判断土压力计数据<b class='flag-5'>正常</b>还是<b class='flag-5'>异常</b>?

    有哪些常见的AI算法可以用于装置数据的异常检测

    在装置数据(如工业设备传感器数据、电子装置运行参数、化工装置工况数据等)的异常检测中,AI 算法的选择需结合数据特点(如 时序性、维度、标注情况 )、检测目标(如实时性、精度、可解释性
    的头像 发表于 09-18 09:27 414次阅读
    有哪些常见的AI算法可以用于装置数据的<b class='flag-5'>异常</b><b class='flag-5'>检测</b>?

    如何利用AI算法进行装置数据的异常检测

    - 异常闭环” 的全流程设计,实现精准、高效的异常识别。以下是具体实施框架与关键步骤: 一、第一步:明确装置数据异常类型与检测目标 在选择 AI 算法前,需先定义 “
    的头像 发表于 09-05 15:27 1116次阅读
    如何利用AI算法进行装置数据的<b class='flag-5'>异常</b><b class='flag-5'>检测</b>?

    多次运行AIBase中的析构函数出现意外掉线的情况,怎么解决?

    第一次运行无异常,但是第二次运行这里会意外掉线,try+catch同样无法捕捉,大家如何析构yolo的? 目前解决办法就是注释掉这段代码,不释放是否会出现问题,虽然暂时没发现异常
    发表于 08-14 07:10

    协议分析仪能监测哪些异常行为

    协议分析仪通过深度解析网络通信中的协议字段、时序和状态,能够精准识别多种异常行为,涵盖从配置错误到恶意攻击的广泛场景。以下是其可监测的核心异常行为
    发表于 07-22 14:20

    机器学习异常检测实战:用Isolation Forest快速构建无标签异常检测系统

    本文转自:DeepHubIMBA无监督异常检测作为机器学习领域的重要分支,专门用于在缺乏标记数据的环境中识别异常事件。本文深入探讨异常
    的头像 发表于 06-24 11:40 1201次阅读
    机器学习<b class='flag-5'>异常</b><b class='flag-5'>检测</b>实战:用Isolation Forest快速构建无标签<b class='flag-5'>异常</b><b class='flag-5'>检测</b>系统

    工地AI行为识别系统作用

    等),并即时预警,帮助工地实现从“人防”到“技防”的转型升级。 为什么工地需要AI行为识别系统? 1、事故频发,安全难保障 工地环境复杂,工人违规操作、防护缺失等问题频出,传统人工巡检难以及时发现风险。 2、监管成本高,效率低
    的头像 发表于 05-08 12:00 722次阅读

    景区AI行为识别系统作用

    景区AI行为识别系统作用 景区AI行为识别系统是什么? 景区AI行为识别系统是利用人工智能技术(
    的头像 发表于 05-07 15:32 660次阅读
    景区AI<b class='flag-5'>行为</b><b class='flag-5'>识别</b>系统作用

    工厂园区AI行为识别系统作用

    违规操作(如未戴防护装备、危险区域闯入)、设备异常(如机械误操作)等风险,实现从“人盯人”到“AI主动管控”的转变,助力工厂安全、效率与合规管理全面升级。 工厂园区为什么需要AI行为识别系统? 1、安全事故频发 1)工人违规操作
    的头像 发表于 05-06 17:49 497次阅读

    基于RV1126开发板实现驾驶员行为检测方案

    在RV1126上实现驾驶员行为检测:通过图像识别出这几种行为:打电话、抽烟、疲劳驾驶。
    的头像 发表于 04-21 11:07 913次阅读
    基于RV1126开发板实现驾驶员<b class='flag-5'>行为</b><b class='flag-5'>检测</b>方案

    基于RV1126开发板实现驾驶员行为检测方案

    在RV1126开发板上实现驾驶员行为检测:通过图像识别出这几种行为:打电话、抽烟、疲劳驾驶。
    的头像 发表于 04-18 17:47 354次阅读
    基于RV1126开发板实现驾驶员<b class='flag-5'>行为</b><b class='flag-5'>检测</b>方案

    异常零流量小区检测功能介绍

    随着5G部署规模不断扩大,网管KPI的分析需求突增也日益显著,存在用户感知问题无法从告警和KPI数值中直接体现的情况;或者某些小区存在故障而网络维护工程师无法及时监控识别出来。异常零流量小区,就是指
    的头像 发表于 03-22 09:54 835次阅读
    <b class='flag-5'>异常</b>零流量小区<b class='flag-5'>检测</b>功能介绍

    ShiMetaOS | 怎样免费调用人脸识别模块以及视频结构化分析软件API

    非法闯入、值班离岗、跌倒等异常行为,精准甄别抽烟、打电话、安全帽佩戴、车辆识别等场景状态。该系统全面兼容Android、Linux、OpenHarmony等主流操
    的头像 发表于 02-05 17:09 994次阅读
    ShiMetaOS  | 怎样免费调用人脸<b class='flag-5'>识别</b>模块<b class='flag-5'>以及</b>视频结构化分析软件API

    无人机在光伏巡检中的实际应用

    的发生,光伏电站的运维人员会定期对光伏组件及输变电线缆进行巡检,排查,以避免上述意外事件的发生,保障光伏电站的正常运行。        而传统的光伏电站巡检后,运维人员需要分析大量光伏组件图像数据,非常耗费人力和时间成本。因
    的头像 发表于 12-18 17:29 717次阅读