预测性维护:一种用于机器异常声音检测(ASD)的主动学习(AL)框架
预测性维护:一种用于机器异常声音检测(ASD)的主动学习(AL)框架
异常声音检测(ASD)在工业机械监控、故障检测等众多领域中具有举足轻重的地位。通过解析设备产生的声音信号,ASD技术能够高效地辨识设备状态,为自动化监控系统提供直观且有效的监控手段。然而,在现实应用场景中,由于故障条件的稀缺性,收集充足的异常声音数据以训练模型成为一大挑战。因此,ASD通常被视为一项无监督学习任务,仅依赖非异常声音数据进行模型训练。
尽管近年来的研究进展包括利用预训练模型在辅助任务中的应用,如声音识别、声源分离和对比学习等,但无监督ASD方法在应对新颖、未见过的异常情况时仍显乏力。在动态或持续变化的环境中,现有技术的性能表现尤为受限。因此,迫切需要开发一种能够适应声学环境变化、无需大规模重新训练即可检测新型异常的ASD系统。
主动学习(AL)作为一种突破传统异常检测方法局限性的有前途的解决方案逐渐崭露头角。AL通过挑选富含信息量的数据点进行标注,实现检测模型的迭代优化,同时降低了对大量手动标注的依赖。这种自适应学习方法在提升ASD系统的适应性和可靠性方面具有巨大潜力,尤其是在标注数据稀缺的情况下。
根据选择样本进行标注的方式,AL可分为基于池的AL和基于流的AL。基于池的AL从固定的未标注数据池中抽取样本,通常以批量方式进行,便于全面审视数据集并高效处理。相较之下,基于流的AL则针对连续到达的数据进行实时决策,确定是否请求标注。
本文聚焦于机器状态监控领域的基于流的AL方法,因其相较于基于池的AL方法具有更优的响应速度。
1 异常声音检测系统
异常声音检测(ASD)系统旨在通过分析机器发出的声音,识别并分类目标对象的状态。ASD 系统的核心是 异常分数计算器,它根据输入声音样本的特征,输出一个表示异常程度的分数。根据这个分数,系统可以判断机器是否处于正常状态。
1.1 ASD 系统概述
- 聚类音频编码器(Clustering Audio encoder):该组件负责将输入的音频信号转换成特征嵌入(embeddings)。这些嵌入能够捕捉音频信号的重要特征,用于后续的异常声音判断。
- 正常声音(训练数据):训练阶段使用的正常声音样本,用于训练音频编码器和构建参考嵌入集。
- 嵌入(Embeddings):由音频编码器生成的音频特征表示,用于计算测试声音与参考嵌入集之间的相似度。
- 参考嵌入集(Reference embeddings):一组通过聚类分析从正常声音样本中提取出的嵌入,作为评估测试声音是否异常的参考标准。
- 测试声音(Test sound):需要判断是否为异常声音的输入音频样本。
- 余弦距离(Cosine distance):测量向量之间的夹角的余弦值,使用余弦距离来衡量测试声音的嵌入与参考嵌入集之间的相似度。余弦距离越小,表示测试声音与正常声音越相似。
- 阈值(Threshold):一个预设的值,用于判断测试声音是否为异常。如果余弦距离小于这个阈值,则认为声音正常;如果大于阈值,则认为声音异常。
- 异常分数(Anomalous score):根据余弦距离计算出的分数,用于评估声音的异常程度。
- 异常/正常(Anomalous/Normal):根据异常分数和阈值判断测试声音是异常还是正常。
- 异常声音检测器(Anomalous Sound Detector):系统的核心部分,负责综合上述所有步骤,最终给出测试声音的异常判断。
1.2 ASD 系统常见方法
1.2.1 基于自编码器的方法
- 训练过程: 使用正常声音数据训练自编码器模型,使其能够学习正常声音数据的特征并重构输入信号。
- 异常分数计算: 使用训练好的自编码器模型重构测试样本,并计算重构误差作为异常分数。
- 优缺点: 基于自编码器的方法能够有效地学习正常声音数据的特征,但需要大量的正常声音数据进行训练,且重构误差的计算可能受到噪声的影响。
1.2.2 基于分类的方法
- 训练过程: 使用预训练的分类模型提取音频嵌入,例如 ResNet18、VGG 等。
- 异常分数计算: 计算测试嵌入与参考非异常嵌入集之间的余弦距离,计算异常分数。
- 优缺点: 基于分类的方法可以有效地利用预训练模型的特征提取能力,且对噪声的鲁棒性较好,但需要构建参考非异常嵌入集。
1.3 本文使用的 ASD 系统
- 特征提取器:使用 513 维的对数幅度谱图,通过短时傅里叶变换 (STFT) 从音频信号中提取特征。
- 异常分数计算器: 使用 ResNet18 作为音频编码器,提取 128 维的音频嵌入,计算异常分数。
- 决策模块:根据预设的阈值,判断机器是否处于异常状态。
2 方法
本文提出了一种基于流式主动学习的异常声音检测 (ASD) 框架,旨在解决机器状态监测系统中异常数据稀缺导致的 ASD 模型泛化能力不足问题。
2.1 流式主动学习
- 适应于实时场景:与传统的池式主动学习不同,该方法针对连续到达的数据流进行实时决策,更适合实时异常检测场景。
- 灵活更新模型:无需重新训练神经网络模型,只需更新参考嵌入集即可实现模型更新,降低了计算成本和时间。
2.2 参考嵌入集更新
- 利用预训练模型:基于在声音识别等辅助任务上预训练的音频编码器提取特征,无需额外标注数据。
- 动态更新:根据新的标注数据动态更新参考嵌入集,使其更适应变化的环境和异常类型。
2.3 混合采样策略
- 结合不确定性采样和随机采样:通过最小化不确定性采样来选择模型最不确定的样本,并通过随机采样来探索未见过的正常样本,提高模型泛化能力。
- 预算控制:通过动态调整标签查询阈值来控制标注成本,确保在有限的预算内获得最佳性能。
3 实验
3.1 数据集
DCASE 2023 挑战赛任务 2 数据集包含来自 MIMII DG 和 Toy-ADMOS2 数据集的机器声音数据,涵盖了 7 种不同的机器类型。
3.1.1 三个数据集
- 开发集:包含 7000 个训练样本和 1400 个测试样本,涵盖 7 种机器类型,包括源域和目标域的正常样本。
- 额外训练集:包含 7 种新的机器类型,每个类型 7000 个训练样本。
- 评估集:包含 7 种新的机器类型,每个类型 200 个样本,没有标签、域信息和属性信息。
3.1.2 7种机器类型
- ToyTank:一种玩具坦克,用于模拟真实坦克的运行声音。
- ToyNscale:一种玩具火车,模拟火车运行的声音。
- Vacuum:真空吸尘器,用于产生吸尘时的声音。
- bandsaw:带锯,一种用于切割材料的工业锯。
- shaker:振动器或摇床,可能用于测试或混合过程。
- ToyDrone:玩具无人机,模拟无人机飞行时的声音。
- grinder:研磨机,用于研磨或削减材料的工业设备。
3.2 实验设置
- 音频编码器:使用 ResNet18 作为音频编码器,并使用 ArcFace 损失函数进行训练。
- 参考嵌入集:从训练数据中提取 42 个正常样本的嵌入,其中 10 个来自目标域,其余 32 个来自源域的聚类中心。
- 主动学习策略
- 随机采样:从均匀分布中随机选择样本进行标注。
- 查询委员会 (QBC) 采样:使用多个模型预测结果的多样性来表示样本的不确定性。
- 混合采样策略:结合最小不确定性采样和随机采样,并通过动态调整标签查询阈值来控制标注成本。
3.3 评估指标
- AUC (Area Under the Receiver Operating Characteristic Curve):评估模型在不同阈值下的整体性能。
- pAUC (Partial AUC):评估模型在低误报率 (0 到 0.1) 下的性能。
- 谐波均值:对每种方法的性能进行综合评估。
3.4 实验结果
- AUC 和 pAUC:与随机采样和 QBC 策略相比,混合采样策略在 AUC 和 pAUC 指标上均取得了更好的结果,尤其是在低标注预算的情况下。
- 不同机器类型:混合采样策略在大多数机器类型上均取得了显著的性能提升,尤其是在 grinder 机器上,pAUC 提升最为明显。
- 谐波均值:混合采样策略在所有机器类型上的谐波均值均优于其他两种策略,表明其具有更好的泛化能力。
3.5 实验结论
- 流式主动学习框架能够有效提升 ASD 模型的性能,尤其是在低标注预算的情况下。
- 混合采样策略能够有效选择最具信息量的样本进行标注,从而提高模型泛化能力。
- 该方法具有较好的鲁棒性,能够在不同的机器类型和标注预算下取得良好的性能。