在当今许多工业和在线应用中,实时识别数据流中的异常(罕见、意外事件)至关重要。异常可能指示制造缺陷、系统故障、安全漏洞或其他重大事件。
典型的基于机器学习的异常检测系统以监督方式训练,使用标记示例。但在许多在线环境中,数据极其多样,且其分布不断变化,导致收集和标记数据的成本过高。此外,没有单一的异常检测模型在所有数据类型上都表现最佳。在实际观察中,某些模型对一类客户很有效,而不同模型则对另一类客户很有效。但对于给定的客户,预先确定应部署哪个模型并不容易,因为客户的工作负载时常变化,因此性能最佳的异常检测模型也随之变化。
在即将于2025年国际机器学习会议(ICML)上发表的一篇论文中,我们尝试用一种称为SEAD(流式异常检测器集成)的方法来解决这些问题。SEAD使用一组异常检测模型的集成,因此它始终能为每种数据类型采用最佳模型,并且它以无监督方式运行,在训练期间不需要标记的异常数据。它能高效地在在线环境中工作,处理流入的数据流,并动态适应数据的变化。
为了评估SEAD,将其与三个先前的异常检测模型(每个模型有四种超参数设置)和一个基于规则的方法进行了比较,共计13个基线模型。在15个不同的任务中,SEAD的平均排名最高(5.07),方差最低(6.64)。
奖励克制
SEAD背后的基本见解是:异常是罕见的。因此,SEAD为集成中那些持续产生较低异常分数的模型(或称“基础检测器”)分配更高的权重。由于不同的基础检测器使用不同的评分系统,SEAD根据历史分数的分布,将分数分配至不同的分位数,从而实现分数的标准化。
为了计算权重,使用了乘法权重更新机制,这是专家系统中的标准方法。使用此方法时,每个基础检测器以一个起始权重初始化。在每一轮结束时,每个基础检测器的新权重是其旧权重乘以学习率与该轮输出标准化异常分数乘积的负指数。所有基础检测器以这种方式更新后,它们的权重被归一化,使其总和为1。通过这个过程,持续输出较大分数的检测器将开始获得较低的权重。这项工作的技术洞察是将最初为监督环境提出的经典乘法权重更新思想,应用到异常检测的无监督环境中。
在模型评估期间,可以观察到算法根据输入数据为基础检测器重新分配权重。在一个数据集上,SEAD为两个不同的模型分配了高权重,这两个模型在涉及真实异常数据的测试阶段都持续识别出了异常。然而,在该阶段之后,在干净数据上,其中一个模型持续发出警报,SEAD迅速降低了它的权重。
为了进一步研究SEAD适当加权模型的能力,在集成中的13个模型基础上,增加了13个额外算法,这些算法只是随机生成分数。在测试集上,SEAD的准确率仅下降了0.88%,这表明更新算法在快速剔除不可靠模型方面做得很好。
计算效率
像SEAD这样的集成方法的一个缺点是同时运行多个模型会产生计算开销。为了解决这个问题,尝试了一种名为SEAD++的方法,它根据权重比例随机采样集成模型的子集。这相对于原始SEAD实现了大约两倍的速度提升,且精度损失极小。因此,在计算资源有限的使用场景中,SEAD++是一个有前景的替代方案。
SEAD代表了流式数据异常检测领域的重大进步。通过实时从候选池中智能选择性能最佳的模型,它确保了可靠且高效的异常检测。其无监督、在线的特性,加上其适应性,使其成为适用于广泛应用的宝贵工具,为流式环境中的异常检测设立了新标准。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)