您如何知道机器是否正常运行?通过利用深度学习来检测工业机器的常规振动数据中的异常情况,可以回答这个问题。异常检测有很多用途,但在预测性维护中特别有用。
这个深度学习示例讨论了基于双向长短期记忆网络(biLSTM) 的自动编码器。虽然这个术语拗口,但它只是意味着训练网络来重建“正常”数据。这样,当我们向算法提供一些看起来不同的数据时,重建错误会提醒您机器可能需要维护。当您拥有的所有数据都是“正常”数据时,自动编码器是一种很好的尝试方法。
数据集分为两部分:维护前的数据和维护后的数据。从逻辑上讲,我们可以假设维护的数据是“正常”的(只要我们有一支称职的维护团队!)。但我们不确定维护前的数字。
下面显示了两个相互叠加的数据样本。
提取区分训练前后数据的特征通常会很有帮助,而不是对原始信号进行训练。使用诊断特征设计器应用程序可以一次性自动从所有数据中提取特征并对其进行排序。然后,应用程序可以自动创建一个函数generateFeatures,以编程方式重做所有这些工作。
trainFeatures=generateFeatures(trainData);
这就是基于biLSTM 的自动编码器。
特征维度=1;
% 定义biLSTM 网络层
层=[sequenceInputLayer(featureDimension,'名称','in')
bilstmLayer(16,'名称','bilstm1')
reluLayer('名称','relu1')
bilstmLayer(32,'名称','bilstm2')
reluLayer('名称','relu2')
bilstmLayer(16,'名称','bilstm3')
reluLayer('名称','relu3')
fullConnectedLayer(featureDimension,'名称','fc')
regressionLayer('名称','输出')];
自动编码器的工作原理如下:网络根据普通数据进行训练。如果你传递普通数据,你可以很好地重建它。如果你向它传递一些异常数据,它将无法重建它,并且你会在重建错误中看到提示。
通过选择适当的重建误差阈值,该算法可以相当准确地识别异常。而且我们有一些已知存在异常的测试数据,可以清楚地测试算法的准确性。
预测类别