制造数据多种多样。一些数据可直接进行分析,例如寻找垫圈孔直径的统计离群值。分析其他类型的数据可能更具挑战性,例如对产生不良噪声的发动机进行人工分类。
机器学习和人工智能 (AI) 模型有助于处理这种更具挑战性的数据。但有时候,项目结果并不理想,尤其是尝试取代人工解释和分类的项目更是如此。最初的 AI 结果看似很理想,但实则经不起时间的推敲。这通常是由于数据分析、领域专业知识和混杂信号之间存在着脱节所导致的,因此数据未能得到充分了解。
通过询问如下问题可以缓解上述问题:
- 数据中是否存在干扰因素?
- 数据形式是否最适用于 AI 模型?
- 数据是否包含训练机器学习/AI 模型所需的信息?
- 输入数据是否包含仅与输出数据间歇性关联的信号?
- 训练数据是否完全涵盖测量系统的工作范围?
- 是否存在训练数据未涵盖必要可变性的情况?
- 我当前的分类(或回归)过程有多高的准确度?我能期望 AI 模型为我提供多高的准确度?
本白皮书提供了八个最佳实践步骤,可帮助机器学习/AI 经验有限的工程师回答上述问题,从而更好地理解原始数据,进而改进结果。其中涵盖 MATLAB® 中可用于调查并解决这些问题的功能。这些最佳实践在以音频数据、图像数据和时间序列数据为主题的三个场景中进行了说明。
这八个步骤提供了理解并充分利用数据的方法。这些步骤分为下面四个阶段:
- 了解数据的性质
- 了解所采集数据的限制
- 预处理数据和训练模型
- 评估结果
1. 征集专家意见
收集有关物理机制(产生需要检测的测量特性)的信息,以及任何凭经验理解的特征。此过程通过询问以下问题,帮助您设计有关如何预处理数据以及如何对数据进行分类的策略:
- 是否需要使用均值和标准差对数据进行归一化,或这种归一化方法是否会降低信号质量?另一种归一化方法是否更合适?
- 频率分析或使用其他数学关系变换数据是否可以简化人工分类,是否也可能有助于 AI?
- 统计方法或图形可视化是否可帮助人们实现明确的类分离,从而为选择用于训练 AI 模型的特征提供指导?
- 需要哪种类型的信号行为和信号级别?哪种假设会导致期望的结果?如何通过试验来验证信号级别?
2. 了解数据采集假设
了解哪些因素可能会影响数据采集过程,有助于设计数据采集和数据预处理策略,以减少可能的工件,否则,如果这些影响因素不加控制,可能会使机器学习/AI 方法失败。采集数据时可以考虑如下一些问题:
- 是否假设操作人员仅凭听觉检测缺陷,但他们可能也会获得您没有意识到的视觉提示?
- 是否假设传送带速度是恒定不变的,或机器标定是始终一致地执行的?
- 是否假设两个音频放大器具有相同的频率响应,或两部相机对同一图像场景具有相同的 RGB 响应?
- 是否假设两名操作人员以相同的方式操作机器,或温度对您的数据没有影响?
了解所采集数据的限制
3. 采集可重现的数据
通过更好地了解产生所需测量值背后的物理机制来采集数据,同时在实际操作中尽可能地减少潜在的混淆变量,具体方法是提出以下问题:
- 是否可以在相同条件下重复测量,以验证数据的可重现性?
- 在重复执行操作时,信号级别的变化有何不同?
- 如果为了适应机器学习/AI 系统而变更了过程,例如采用新的数据采集协议,那么,如何通过检查确保这种更改不会影响数据中进行预测所需的信息?
4. 通过试验检查数据
执行试验,以评估非受控数据采集因素的影响,这些因素可能会影响机器学习/AI 训练。通过测试来评估这些非受控因素的影响程度,并回答以下问题:
- 如果在您的数据中变量不受控制或未表示,则在假设它不影响数据的情况下,您如何执行试验来检查该假设?
- 可否拥有一个稳定的已知物理标准样本,该样本可用于在系统上进行定期测量,以检查可能会影响机器学习/AI 准确度的系统漂移?
- 如何使用无监督学习(聚类)来寻找随时间出现的新聚类,以检测可能影响最终模型的不受控制的可变性?
- 如何通过使用主成分分析或其他数据缩减方法来实现降维,从而减轻使用高度相关的信号所带来的过大影响?
5. 预处理数据
- 理想情况下,将数据预处理为便于执行人工检测或分类的状态。这种经过预处理的数据可能更适用于训练准确的机器学习/AI 模型。询问如何运用从步骤 1-4 中学到的知识来制定预处理策略?人们在预处理的数据中发现趋势越容易,机器学习/AI 模型发现趋势也就越容易。
- 如果在试验条件达到极值条件(如极值温度)时未发现信号,但在这些条件下信号应该显而易见,则数据可能不包含机器学习/AI 检测或测量所需的信息。
- 使用无监督学习来检查是否存在预期聚类的迹象,并检测意外的聚类,该聚类可能是最终模型的混淆因素。
6. 训练
首先,使用简单模型对数据进行探索性训练,并利用测试数据评估哪种模型对于当前数据可能表现最好;这有助于确立一个性能基准。然后,通过执行以下操作进行优化:
- 使用快速训练会话来评估不同机器学习/AI 模型,以评估哪些模型是最佳模型。从最简单的模型类型入手。在模型类型选定后,使用验证数据来检测过拟合,从而优化训练选项。测试集可用于检查模型是否能对训练中未遇到过的新数据做出准确的预测。
- 使用从更简单模型的结果中获得的信息,为实现更复杂的模型提供最佳方法。
7. 盲态研究
执行盲态研究,将当前检测/分类的最佳实践与新机器学习/AI 模型进行比较。
- 使用盲态研究将机器学习/AI 行为与当前最佳实践进行比较。确保这对于传统方法和机器学习/AI 方法来说均为盲态研究。如果机器学习/AI 将取代人类,请确保结果对人类也是盲态的。
- 在进行人工比较时,请注意控制来自其他来源的提示,例如可能给操作人员提供额外提示的无序序列号、标记或标签。使用适当的度量,如精度、召回率、混淆矩阵等。
8. 查看,然后复查,并根据需要重复
- 查看步骤 5-6 的结果。如果无法对数据进行预处理,以强调需要检测的特征,并且步骤 6 的训练结果不充分,请执行以下操作:
- 复查(如果查看后得出的结论不理想)步骤 1-4,以评估掩盖需要检测的特征的信号级别和因素,然后研究如何开发更好的数据采集方法或更好的预处理方法,以强调需要检测的特征。
- 在复查步骤 1-4 后,重复执行步骤 5-7,以确定是否需要更长期的测试,或是否需要进一步改进。
下面三个假设场景涵盖音频数据、图像数据和时间序列数据。在这些场景中,虚构的用户会将这些最佳实践应用于机器学习/AI 项目中。在很多步骤中,他们都使用了 MATLAB。
机器生产中的音频数据:检测生产线上发出噪声的钻头
Ken 领导着一支团队,该团队负责在生产线的末端对钻头进行测试。他们手动插上电源给钻头通电,通过倾听判断钻头是否有异常噪声。Ken 希望能够自动执行此过程,并使用 AI 模型来确定是否存在异常噪声。他还希望把成本压下来,但同时只有不良钻头的检测率达到 99% 以上,这种方法才会具有商业可行性。
Ken 遵循了下面的最佳实践检查清单:
- 征集专家意见
- 了解数据采集假设
- 采集可重现的数据
- 通过试验检查数据
- 预处理数据
- 训练
- 盲态研究
- 查看,然后复查,并根据需要重复
Ken 咨询了一位从事振动最小化工作的同事。该同事指出,钻头产生的噪声会因握持方式而异。Ken 可以借用同事的特殊测试平台以缓解潜在的问题,并将其用作标准化平台。
Ken 在生产线停工期间采集不良钻头数据。一位同事注意到,正常数据受到制造机器噪声的污染。Ken 使用了异常检测,并确认机器噪声可检测为异常,因此可能会过度影响 AI;Ken 更新了数据采集策略,以确保机器噪声同样存在于没有缺陷的良好 (OK) 数据和有缺陷(即不良,或称 NG)的数据中。他还可以看出良好钻头和不良钻头主成分的差异。他想检查这种差异是否真实存在,于是决定检查数据的可重现性。
Ken 采集制造噪声来增强其 NG 数据,因为这些数据没有背景制造噪声。他使用钻头测试平台,基于第 1 步和第 2 步中获得的信息,从存在制造噪声的不良钻头集中采集新数据。他还多次记录良好钻头和不良钻头,以检查可重复性或钻头噪声的变化,因为 NG 钻头通常通电多次,而 OK 钻头仅通电一次。
使用小波时频分析器,Ken 不但可以验证同一钻头的多次记录之间是否存在极小的差异,而且还可以可视化良好和不良钻头之间的差异。他尝试使用不同方法来提取音频特征,并训练支持向量机 (SVM) 分类器,以实现更高的分类准确度。他还尝试通过使用 fitcauto()
或分类学习器来评估不同机器学习模型和超参数,从而提高分类准确度。
Ken 对数据处理过程进行了标准化,并使用 audioDataAugmenter
向数据中添加了额外的变化。然后,他在小波时频分析器中使用具有最佳参数的小波进行研究,并使用 cwt()
处理代码中的数据以供训练。
Ken 使用 cvpartition
将数据分成训练集、验证集和测试集。然后,他使用试验管理器通过不同参数训练卷积神经网络 (CNN)。他使用 CNN 的训练参数和用于预处理数据以生成图像的小波变换进行试验。他使用迁移学习修改预训练的 AI 模型,以对数据进行训练。他可以使用可视化和可解释性方法,进一步验证和调试 AI 模型的预测。
Ken 采集了一些新数据,对其进行了匿名处理,并让他的团队通过听这些数据判断其属于良好还是不良类别。Ken 的团队在仅使用音频数据的情况下表现不佳。他发现,他们可以目测检查钻头,这种方式会影响他们对良好/不良分类的判断决策。
Ken 发现,在只有音频的情况下,CNN 的表现可媲美他的团队,不过,他的团队的表现随目测检查能力的提高而提高。Ken 可以考虑在 AI 中增加目测检查,作为将来的改进措施。
医疗设备的图像数据:检测预装注射器中的污染物
Jen 签订了一份开发识别预装胰岛素注射器中的污染物的 AI 技术的合同。她拿到了有缺陷的注射器的图像,以及缺陷类型的说明。但她无法识别其中一些缺陷,因为她未接受过相关培训。客户公司生产大量的注射器,完全靠人工检查是不可行的;捕获到此类缺陷将有助于减少召回问题。
Jen 遵循下面的最佳实践检查清单:
- 征集专家意见
- 了解数据采集假设
- 采集可重现的数据
- 通过试验检查数据
- 预处理数据
- 训练
- 盲态研究
- 查看,然后复查,并根据需要重复
Jen 让客户明确圈出图像上的缺陷。缺陷可能是注射器内外的颗粒、划痕或污迹。因此,她需要将整个针头包括在内。一些图像具有灯光反射问题,她建议客户使用偏光镜,以尽可能减缓这种问题。
Jen 通过旋转、裁剪和归一化来标准化图像。她将经过预处理和匿名处理的图像发回给客户。经反馈确认,预处理未能去除训练有素的技术人员进行分类所需的信息。
Jen 请客户提供更多优质图像的示例,以便更好地了解什么不算是缺陷,并增加可能图像的多样性。
Jen 使用 imageDatastore
处理图像。为了解这些差异,她使用图像配准器、图像配准和 imsubtract()
来叠加注射器,以寻找差异。她训练 AI 模型来检测图像异常。通过查看异常热图,Jen 可以更好地了解注射器缺陷的潜在位置。
Jen 基于前三个步骤设计了一种预处理策略。她使用 createMask()
删除背景(桌面),该背景在训练 AI 模型时应予以排除。她使用图像标注器创建 boxLabelDatastore
,以基于不同缺陷类型训练 AI 模型。她使用图像增强来更改图像以创建更大的训练集,并使用 bboxwarp()
来调整更改后的图像的边界框,从而增强训练图像。
Jen 使用 YOLOX 目标检测器来检测缺陷类型。在初步分类后,她发现其中一个类存在较高的误分类率。在向该类中添加了更多训练数据后,她观察到分类错误有所减少。
Jen 将 AI 与 App 设计工具打包在一起,并使用 MATLAB Compiler™ 对其进行了编译,以供客户测试。编译的 App 不需要 MATLAB 许可证。
客户测试 AI App,并发送误分类图像的示例,以便 Jen 可以执行第二次训练。
预测燃气轮机阀门的“早期失效”
Ben 的任务是使用机器学习 /AI 根据交货前的测试平台测试数据来预测公司的微型涡轮 (MT) 交货后是否会出现早期失效。他有大量的测试平台测试数据,但在故障事件发生之前和期间只有一个数据集。虽然故障并非常见,但它们会对 Ben 公司的客户产生严重影响。
Ben 遵循下面的最佳实践检查清单:
- 征集专家意见
- 了解数据采集假设
- 采集可重现的数据
- 通过试验检查数据
- 预处理数据
- 训练
- 盲态研究
- 查看,然后复查,并根据需要重复
Ben 了解到,故障似乎与碎屑事件有关,这些事件导致压缩机在使用 100 至 200 小时之间出现轴承损坏,但该问题的根源尚不清楚。
相关人员已做出很大努力,以确保测试平台测试的一致性。在数据采集过程中,其他变化是由于环境温度、压力、油和燃油成分以及未受严格控制的操作人员等因素造成的。
Ben 只有一个涵盖故障的数据示例,因此他创建了数字孪生。他从 Simulink® 燃气轮机模型入手,对该模型进行了更新,以包括在有碎屑存在时的轴承行为,并使用参数估计器 对其进行调节,以模拟真实燃气轮机。
Ben 使用基于正常数据的模型和他的一个故障数据示例对轴承受到的损坏进行仿真。在仿真模型数据中,故障发生前 100 小时的故障指示信号预计比实际数据中的噪声要小。在添加了合成噪声后,Ben 发现,扩展卡尔曼滤波器可以检测缺陷趋势。
Ben 通过振动信号和频率-转速图变化来检查模型数据,以了解轴承损坏在整个系统中的表现情况,从而帮助他了解在实际数据中应寻找哪些内容。对于实际数据,需要将具有时间周期单位(秒)的信号变换为频率(赫兹)形式。数据有许多共线性信号。Ben 使用主成分进行数据缩减。
由于短时间内的高频噪声预计会使信号变得模糊,但随时间变化的低频漂移会暴露缺陷,因此,Ben 决定尝试使用 LSTM 网络,因为它可以用于检测较长期的趋势。随着测试时间的延长,LSTM 网络似乎能够根据模型数据检测到表明存在问题的微小漂移(性能下降)。
Ben 基于更大的数据集训练 LSTM 网络,并使用模型数据建立盲态研究,以评估实际系统中的可能检测范围。
Ben 发现,他需要增加涡轮测试平台测试时间,以检测与故障相关联的微小漂移,并准备成本效益分析,以证明延长涡轮平台测试时间来尝试检测这种漂移所招致的成本是合理的。
对原始正常数据使用异常检测工具后,Ben 还发现,环境温度越高,特定操作人员越有可能与异常检测器阈值之外的离群值相关联,从而与早期失效事件相关联。这就需要进行更多调查。
在信号处理领域应用深度学习和机器学习时,除了数据清洗和预处理,还有其他技巧和方法可供学习。
机器学习/AI 模型有助于消除生产环境中繁琐且易出错的手动测试和 QA 任务。生产中的故障虽然严重,但不常见,因此,根本原因可能不太清楚。
这可能会使机器学习/AI 解决方案难以可靠地实现。但是,通过了解数据,您可以为训练生成良好的数据集。
通过上面八个步骤和场景示例,您可以应用更系统化的方法来提高数据质量,并弥合机器学习/AI 概念与其成功实现之间的差距。
MATLAB 可以帮助您实现这一目标。
关于作者
Mike Simcock 是 MathWorks 的高级顾问,致力于研究需要针对人工智能和其他应用进行真实数据处理的项目。在加入 MathWorks 之前,Mike 曾担任 Altran 的高级顾问,也是 Malvern Instruments、Halliburton 和 Ometric 的首席研发科学家。Mike 拥有索尔福德大学的化学学士学位和半导体材料博士学位。他发表了许多涉及试验数据的同行评审出版物,并拥有大约 20 项与薄膜光学设备制造和光学仪器应用相关的专利。无论 Mike 身在何处,MATLAB 一直伴随着他。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)