异常检测如何识别意外事件与偏离正常行为
异常检测用于识别与预期行为不同的事件或模式,广泛应用于预测性维护、质量控制、医疗影像、金融安全、客户分析和安防监控。常用方法包括阈值化、单类支持向量机、孤立森林和自编码器,具体选择取决于数据特点。
什么是异常检测?
异常检测是一种识别与预期行为存在显著差异的事件或模式的技术。其应用范围非常广泛,从简单的离群值检测,到能够从数百个信号中挖掘隐藏模式的复杂机器学习算法,均涵盖在内。
工程师与数据科学家常借助异常检测来完成以下识别任务:
- 机械故障识别,用于预测性维护
- 制造生产线的缺陷检测
- 放射学影像中的恶性肿瘤筛查
- 金融交易中的欺诈行为发现
- 零售业的客户流失预测
- 视频监控录像中的异常动作捕捉
在 MATLAB 中,有多种方法可用于设计异常检测算法。具体哪种方法最适合特定应用,取决于可用的异常数据量,以及是否能够将异常数据与正常数据有效区分。
异常检测的常见应用场景
异常检测在以下领域得到了广泛应用:
- 预测性维护:通过实时监测传感器数据,提前发现机械故障隐患。
- 质量控制:精准检测生产线上的产品缺陷。
- 医疗影像:辅助识别放射学影像中的恶性肿瘤区域。
- 金融安全:及时发现信用卡欺诈交易。
- 客户分析:预测零售业客户流失风险。
- 安防监控:在视频中快速检测异常动作行为。
异常检测的第一步:分析您的数据
在开展异常检测之前,务必先对现有数据进行全面检查。不妨从以下四个核心问题入手:
1. 您能在原始数据中直接发现异常吗?
有时候,只需简单查看数据即可完成异常检测。例如,下图 1 中的信号采集自风扇,您可以很直观地看到表示风扇行为异常的信号突变。如果能够通过肉眼识别异常,则可以考虑使用简单的算法(如 findchangepts 或 controlchart)进行异常检测。

图 1:MATLAB 冷却风扇数据图,异常情况一目了然。
小提示:如果数据噪声较大或存在周期性波动,建议先进行滤波或去趋势处理,再通过肉眼观察。
2. 您能在衍生特征中发现异常吗?
通常,直接从原始数据中直观检测异常并不容易。在下面的信号中,很难判断哪个时域信号存在异常。然而,如果创建功率谱从频域角度查看数据,峰值频率和幅度的差异就能清楚表明两个信号截然不同。在这种情况下,可以将这些峰值作为基于有监督学习方法的异常检测算法的特征输入。

图 2:尽管原始时序信号(左图)中的异常看上去不明显,但通过频域分析(右图,使用 MATLAB 中的周期图)可以观察到峰值频率的明显差异。
常见问题:如果频域特征也不明显该怎么办?
答:可以尝试时频分析或小波变换,或者提取更多统计特征(如均值、方差、偏度、峰度等)。
3. 您能用统计学方法区分正常特征和异常特征吗?
在单个信号中,异常不一定那么明显。当今的复杂设备可能安装有数百个传感器,有时只有同时分析多个传感器的数据才能发现异常。在标注数据后,您可以检查时域和频域特征的统计分布,如图 3 所示。此外,还可以执行特征变换与排名,找出最能区分两个组的特征。然后,利用这些特征,通过有监督学习方法基于标注数据训练异常检测算法。

图 3:左侧的 MATLAB 图分别用蓝色和红色表示成对的正常数据和异常数据。右侧是来自诊断特征设计器的相应特征直方图,用于识别哪些特征可以明确区分正常数据和异常数据,供有监督异常检测算法使用。
4. 如果您不知道异常的具体表现该怎么办?
机械故障代价高昂,因此操作人员通常希望通过保守的维护计划来防患于未然。这可能意味着异常事件很少发生,使得设计异常检测算法变得棘手。
有几种设计异常检测算法的方法只需很少的异常数据,甚至根本不需要异常数据。这些“仅正常”方法只基于正常数据训练算法,并将正常数据之外的数据识别为异常。
当异常数据稀缺时:四种“仅正常”方法
使用 MATLAB,您可以对数据应用以下“仅正常”异常检测方法:
1. 阈值化
阈值化方法在数据超过统计指标的阈值时识别异常。例如,时序数据中最近时段内的标准差、对信号使用控制图、利用变化点检测查找信号中的突变,或获取数据分布的稳健估计值,并将分布边缘的样本视为异常。基于统计指标的阈值化是不错的起点,但与机器学习方法相比,它在处理多元数据时较为困难,且异常检测的稳健性不足。采用对离群值具有稳健性的统计估计法(如稳健协方差)将获得更好的结果。
小提示:选择阈值时可以使用百分位数或3σ原则,但需要根据实际数据分布进行适当调整。
2. 单类支持向量机(One-Class SVM)
单类支持向量机用于识别能够最大化类间距离的分离超平面。仅训练一个类别会生成一个描述正常数据的模型。该模型使您无需任何标注异常即可进行检测。这种方法和其他基于距离的方法需要数值特征作为输入,且不适用于高维数据。
3. 孤立森林(Isolation Forest)
孤立森林通过构建多棵决策树,将每个观测值隔离到一个叶节点中。异常分数根据样本的平均深度计算:异常样本需要的决策次数通常比正常样本更少。该方法支持数值特征和分类特征的组合,并且适用于高维数据。
4. 自编码器(Autoencoder)
自编码器是一种基于正常数据训练、尝试重构原始输入的神经网络。经过训练的自编码器能够准确重构正常输入,如果输入与其重构结果之间存在较大差异,则可能表明存在异常。自编码器可用于信号和图像数据。

图 4:自编码器经过训练来复制输入。利用输入与其重构之间的差异,可以对信号或图像数据进行异常检测。
常见问题:当数据中存在异常但无法标注时该怎么办?
答:您可以尝试使用无监督聚类方法进行异常检测,但除非数据集非常均衡(包含大量同类型的异常),否则使用“仅正常”方法更有可能获得有用的结果。
特征提取:让异常更“明显”
在应用异常检测算法之前,通常需要从原始数据中提取特征。MATLAB 同时支持手动和自动方法,从信号、图像和文本数据中提取特征。Predictive Maintenance Toolbox 中的诊断特征设计器可以帮助您从多种类型的信号中提取特征。
上手示例:使用 MATLAB 检测图像中的对象缺陷
要构建基于图像的异常检测算法,您可以执行以下步骤:
- 将图像馈送入预训练的 AlexNet 卷积神经网络;
- 使用第一层后的网络激活值作为特征;
- 使用
fitcsvm训练单类支持向量机。单类支持向量机基于正常图像训练,负的分类分数表示异常。
总结
- 异常检测有助于识别离群值、与正常值的偏差以及意外行为
- 如果您拥有足够的标注数据(包括异常),则可使用有监督学习方法进行异常检测
- 如果您的数据大部分都是正常数据,则应用某种专门的“仅正常”异常检测方法即可
重要提醒:无论选择哪种方法,都建议先用交叉验证或留出法评估模型效果,避免过拟合。对于高维数据,优先考虑孤立森林或先进行特征降维再使用单类 SVM。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:异常检测如何识别意外事件与偏离正常行为要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点第五届财富管理论坛暨华尊奖颁奖典礼在南京举办,规模与规格创历届之最,参会嘉宾超350位,近90家券商高管出席。论坛以“新叙事新生态”为主题,梳理行业转型脉络,华尊奖评选圆满收官,多家券商代表分享财富管理转型实践。
一套包含5500张人工标注图像的衣物颜色检测数据集,聚焦黑、蓝、绿、红、黄、白六类基础色系,采用YOLO标准格式,覆盖真实生活、电商及工业分拣场景,适用于智能穿搭推荐、衣物分拣和服装质检等视觉任务。
一套包含5595张精细标注图像的纺织瑕疵检测数据集,采用YOLO标准格式,覆盖其他线头、脱出线头、其他瑕疵、污渍四类常见缺陷。数据源自真实生产场景,经人工精准标注,适配YOLO系列等主流检测模型,适用于纺织工业自动化质检与智能视觉分拣等场景。
田间杂草定位与检测数据集包含4200张高质量人工标注图像,采用YOLO标准格式,以单类别杂草为检测目标。数据源于真实农田环境,覆盖多种作物、杂草类型及复杂光照、遮挡工况,适用于智能除草、精准施药、农田监测等智慧农业场景。
- 日榜
- 周榜
- 月榜
热点快看
