验证自动化机器学习模型- Oracle问题

除非更新调试协议,否则随着机器学习和人工智能变得越来越普遍,自动化控制软件可能难以执行验证测试。

我的一个更有抱负的职业目标是在不降低质量的情况下提高验证测试的效率。自动化系统的测试对于确保控制系统和产品的质量至关重要。传统上,调试包括将系统响应与预先批准的一组输出进行比较。这种方法很好地服务于所有代码执行路径都是确定和可知的行业。

随着机器学习(ML)和人工智能(AI)在工厂车间的应用越来越普遍,越来越明显的是,新部署的机器模型正在颠覆传统的测试技术。识别通过监督学习开发的现代机器模型的每个可能的执行路径并不总是可能的,也不实际。为传统的状态机逻辑或序列开发的协议将需要现代化以继续提供相同级别的置信度。

当前这一代的调试协议是基于在20世纪80年代早期和90年代建立的自动化软件测试技术,使用所谓的测试“oracle”。在这个意义上,神谕指的是绝对权威(即真理的来源),用于确定某个测试是否通过或失败。预期输入的正确输出由Oracle决定。这个角色可以是设计文档、用户需求或经验丰富的主题专家。

随着机器学习应用在工厂车间的使用越来越多,自动化控制软件将开始落入不可测试的软件类别。输入域很大,边界难以定义,环境先决条件决定了对结果的正确解释。当前对显式测试的依赖将需要发展和利用隐式测试方法来保持相关性。

今天的验证测试分为显式测试和隐式测试。遗留系统中隐式测试的一个很好的例子是验证PID控制回路。虽然PID的数学模型是已知的,但出于所有实际目的,它们通常作为一个黑盒进行测试,该黑盒接受输入,随着时间的推移应用数学模型,并设置输出。在调试期间对pid进行现场测试是很常见的。然而,测试在很大程度上依赖于测试人员保持对输入的巧妙控制,以获得通过/失败结果的正确输出。一旦投入生产或与级联循环配对,控制一组复杂的现实世界输入几乎是不可能的。

即便如此,大多数工程师也能很快确定一个过程是否控制不正确。异常情况,如反向控制响应,振荡,或只是坏的调谐参数是可识别的训练有素的眼睛。对于不依赖于观察者技能的一致且可重复的测试,测试应该依赖于一系列重叠的弱oracle来隐式地验证正确的功能。

上面的PID示例说明了验证机器学习算法的问题,其中输入的数量可能是可变的,数学模型是未知的,输出包含一个置信度因子。这些新算法需要一种不同的隐式测试方法。现在就应该开始开发健壮的验证策略。

在可预见的未来,人类神谕仍然是需要的。但我们可以开始整合已经在其他行业使用的先进工具,以解决类似的问题,验证机器学习模型的有效性:

变质的测试是为了帮助缓解应用软件测试中的Oracle问题而开发的。简单地说,该方法使用系统输出和多个输入之间的关系来检测可能的故障。一个可能的应用是控制pH值,当被控制的材料的体积是已知的。如果系统开始倾倒过量的中和溶液,我们可能会认为出了问题,我们只是在制造盐。在这种情况下,变形测试有助于约束随机系统中无法精确预定义的可测试值。

交叉验证独立模型是另一种可能的工具。其核心是,交叉验证评估系统的两个独立数学模型的输出,以确定它们是否一致。这样做的主要缺点是需要加倍的工作和处理。但是,随着我们的行业在设备建成之前向过程建模的方向发展,这个初始模型可以用来验证现实世界的过程。

虽然这不是解决Oracle问题的方法,但是现在的准备可以帮助集成和塑造来自其他行业的现有工具,以推进用于验证的隐式测试。现在正在部署机器学习模型。追求先进的测试方法是自动化行业值得向往的目标。

比尔·穆勒是f公司主管、高级工程师Lucid自动化和安全的积分器成员控制系统集成商协会(相)。有关Lucid自动化和安全的更多信息,请访问其配置文件工业自动化交流中心

更多掌控