错误和软件从计算机编程时代的开始就齐头并进。 随着时间的流逝,开发人员已经开发了一套在部署程序之前测试和调试程序的实践,但是这些实践不再适用于具有深度学习的现代系统。 今天,机器学习领域的主要实践可以称为在特定数据集上进行训练,然后在另一组上进行验证。 这样,您可以计算模型的平均效率,但是保证可靠性(在最坏的情况下可接受的效率)也很重要。 在本文中,我们描述了三种在训练有素的预测模型中查明和消除错误的方法:对抗测试,稳健的学习和
形式验证 。
根据定义,具有MO的系统不稳定。 当做出细微的差异时,即使是在特定区域内与人抗衡的系统也可能无法解决简单问题的解决方案。 例如,考虑一下扰动图像的问题:一个可以比人们更好地对图像进行分类的神经网络可以很容易地使人们相信,树懒是赛车,在图像中添加了一小部分经过精心计算的噪声。
叠加在常规图像上的竞争性输入可能会使AI困惑。 每个像素的两个极端图像相差不超过0.0078。 第一个分类为树懒,概率为99%。 第二个就像一辆赛车,概率为99%。这个问题并不新鲜。 程序总是有错误。 几十年来,从单元测试到形式验证,程序员已经获得了令人印象深刻的一系列技术。 在传统程序上,这些方法效果很好,但是要使这些方法用于MO模型的严格测试非常困难,这是因为模型的规模和结构缺乏,可以包含数亿个参数。 这表明需要开发新的方法来确保MO系统的可靠性。
从程序员的角度来看,错误是指任何不符合规范的行为,即系统的计划功能。 作为AI研究的一部分,我们正在研究一些技术,以评估MO系统不仅满足训练和测试集的要求,还满足描述系统所需特性的规格列表的要求。 这些属性中可能包括对输入数据的足够小的更改的抵抗力,防止灾难性故障的安全限制,或者预测符合物理定律。
在本文中,我们将讨论MO社区在使MO系统变得强大且可靠地符合所需规范方面所面临的三个重要技术问题:
- 有效验证符合规范。 我们正在研究有效的方法,以验证MO系统是否符合开发人员和用户要求的MO属性(例如,稳定性和不变性)。 寻找模型可以脱离这些特性的情况的一种方法是系统地搜索最差的工作结果。
- 将MO模型训练到规格。 即使有足够大量的训练数据,标准的MO算法也可以生成预测模型,其操作不符合所需的规格。 我们需要修改训练算法,以便它们不仅可以很好地在训练数据上工作,而且还可以满足所需的规范。
- MO模型符合所需规范的形式证明。 必须开发算法以确认该模型满足所有可能输入数据的期望规格。 尽管形式验证领域已经对这种算法进行了数十年的研究,尽管取得了令人瞩目的进步,但这些方法并不容易扩展到现代MO系统。
验证模型是否符合所需规格
对竞争性例子的抵制是一个经过充分研究的民防问题。 得出的主要结论之一是评估由于强力攻击而导致的网络行为的重要性,以及开发可以非常有效地分析的透明模型。 我们以及其他研究人员一起发现,许多模型都可以抵抗微弱的竞争示例。 但是,它们为更强的竞争示例提供了几乎0%的准确度(
Athalye等人,2018 ;
Uesato等人,2018 ;
Carlini和Wagner,2017 )。
尽管大多数工作着眼于与老师一起教学中的罕见失误(这主要是图像分类),但仍需要将这些思想的应用扩展到其他领域。 在一项采用竞争性方法来查找灾难性故障的最新工作中,我们将这些思想应用于测试网络,该网络经过强化培训并设计用于安全性要求较高的地方。 开发自主系统的挑战之一是,由于一个错误可能会导致严重的后果,因此即使很小的故障概率也被认为是不可接受的。
我们的目标是设计一个“竞争对手”,以帮助您提前(在受控环境中)识别此类错误。 如果对手可以有效地确定给定模型的最坏输入数据,则这将使我们能够在部署之前捕获罕见的失败案例。 与图像分类器一样,评估如何与弱者配合使用会给您在部署过程中带来虚假的安全感。 这种方法类似于在“红色团队”的帮助下进行的软件开发[红色团队–涉及第三方开发团队,该团队承担攻击者的角色,以检测漏洞/大约。 但是,它不仅仅限于寻找入侵者造成的故障,而且还包括由于归纳不足而自然发生的错误。
我们已经开发了两种补充方法来对强化学习网络进行竞争性测试。 首先,我们使用无导数优化来直接最小化预期收益。 在第二部分中,我们学习了对抗价值的功能,根据经验可以预测网络在哪种情况下可能会发生故障。 然后,我们使用此学习到的函数进行优化,专注于评估最有问题的输入数据。 这些方法仅占潜在算法丰富且不断增长的空间的一小部分,我们对这一领域的未来发展非常感兴趣。
与随机测试相比,这两种方法已经显示出显着的改进。 使用我们的方法,可以在几分钟内检测到以前必须整天搜索或根本找不到的
缺陷 (
Uesato等人,2018b )。 我们还发现,与对随机测试集进行评估所期望的结果相比,竞争性测试可以揭示网络的质的不同。 特别是,使用我们的方法,我们发现在三维地图上执行定向任务并通常在人类水平上解决这一问题的网络无法在出乎意料的简单迷宫中找到目标(
Ruderman et al。,2018 )。 我们的工作还强调必须设计出能够抵御自然故障的安全系统,而不仅仅是竞争对手。
在随机样本上进行测试时,我们几乎从来没有看到过发生故障的可能性很高的卡,但是竞争性测试表明这种卡的存在。 即使移除许多墙后,失败的可能性仍然很高,也就是说,与原始地图相比,地图的简化。规格模型训练
竞争性测试试图找到违反规范的反例。 通常,它高估了具有这些规范的模型的一致性。 从数学的角度来看,规范是一种必须在网络的输入和输出数据之间保持的关系。 它可以采用上下边界或某些关键输入和输出参数的形式。
受到这一观察结果的启发,包括DeepMind的团队(
Dvijotham等,2018 ;
Raghunathan等,2018 ;
Wong等,2018 ;
Mirman等,2018 ;
Wang等,2018 )。
Gowal等人(2018 )研究了竞争测试不变的算法。 这可以用几何来描述-我们可以限制(
Ehlers 2017 ,
Katz等人2017 ,
Mirman等人,2018 )最严重的违反规范的行为,基于一组输入来限制输出数据的空间。 如果此边界可以通过网络参数区分并且可以快速计算,则可以在训练期间使用。 然后,原始边界可以传播通过网络的每一层。

我们证明了区间边界的扩展是快速,有效的,并且-与以前的想法不同-给出了很好的结果(
Gowal等人,2018 )。 尤其是,我们证明,与MNIST和CIFAR-10数据库中的集合中最先进的图像分类器相比,它可以证明减少了错误数量(即,任何对手可能导致的最大错误数量)。
下一个目标是研究正确的几何抽象,以计算输出空间的过度近似。 我们还希望对网络进行训练,以使它们能够以更复杂的规范可靠地工作,这些规范描述了所需的行为,例如前面提到的不变性和对物理定律的遵守。
正式验证
全面的测试和培训对于创建可靠的MO系统可能有很大的帮助。 但是,形式上任意的正式测试不能保证系统的行为符合我们的期望。 在大型模型中,由于天文数字可能的图像变化,对于给定的一组输入(例如,较小的图像变化)枚举所有可能的输出选项似乎很难实现。 但是,就像在训练中一样,可以找到更有效的方法来对输出数据集设置几何约束。 正式验证是DeepMind正在进行的研究的主题。
MO社区已经提出了一些有趣的想法,用于计算网络输出空间的确切几何边界(Katz等人,2017;
Weng等人,2018 ;
Singh等人,2018 )。 我们基于优化和对偶性的方法(
Dvijotham et al。,2018 )包括根据优化来制定验证问题,该问题试图找出对被测试属性的最大违反。 如果优化中使用了对偶思想,那么任务将变得可计算。 结果,我们得到了额外的约束条件,这些约束条件指定了在使用所谓的切割平面移动间隔边界[interval bound migration]时计算出的边界。 这是一种可靠但不完整的方法:可能会满足我们感兴趣的属性,但此算法计算出的边界不够严格,因此无法正式证明该属性的存在。 但是,在收到边界之后,我们获得了不侵犯该财产的正式保证。 在图。 下面以图形方式说明了这种方法。

这种方法使我们能够将验证算法扩展到更多通用网络(激活器功能,体系结构),通用规范和更复杂的GO模型(生成模型,神经过程等)和超越竞争可靠性(
Qin )的规范。
,2018 )。
前景展望
在高风险情况下部署MO有其独特的挑战和困难,这要求开发评估技术以确保检测到不太可能的错误。 我们认为,与规范从培训数据中隐式产生的情况相比,对规范进行持续的培训可以显着提高性能。 我们期待正在进行的竞争评估研究,强大的培训模型以及正式规格验证的结果。
为了使我们能够创建自动化工具,以确保现实世界中的AI系统将“做正确的一切”,将需要做大量的工作。 我们特别高兴在以下领域取得进展:
- 进行竞争性评估和验证的培训。 随着AI系统的扩展和复杂化,设计足以适应AI模型的竞争性评估和验证算法变得越来越困难。 如果我们可以利用AI的全部功能进行评估和验证,则可以扩展此过程。
- 开发用于竞争性评估和验证的公开可用工具:为工程师和其他使用AI的人员提供易于使用的工具,在此AI失败导致广泛的负面后果之前,应能阐明AI系统的可能失败方式,这一点很重要。 这将需要对竞争评估和验证算法进行一些标准化。
- 扩大竞争范例的范围。 到目前为止,有关竞争示例的许多工作都集中在模型变化(通常在图片区域)方面的稳定性上。 这已成为开发竞争性评估,可靠的培训和验证方法的绝佳测试场。 我们开始研究与现实世界直接相关的各种属性的规范,我们期待着在这一方向上未来的研究结果。
- 培训规范。 描述AI系统“正确”行为的规范通常很难准确地制定出来。 随着我们创建越来越多的具有复杂行为并在非结构化环境中工作的智能系统,我们将需要学习如何创建可以使用部分制定的规范的系统,并从反馈中获取更多规范。
DeepMind致力于通过负责任的MO系统开发和部署对社会产生积极影响。 为了确保开发人员的贡献是肯定的,我们需要应对许多技术障碍。 我们打算在这一领域做出贡献,并很高兴与社区合作解决这些问题。