为什么我们要注重机器学习模型的调试?
作者头像
  • 2020-03-09 07:00:01 5

如何理解和修复机器学习模型中的问题

理解并修复机器学习(ML)模型中的问题,对于模型的广泛应用至关重要。随着人们对ML模型可能存在的问题有了更深的认识,调试这些模型的需求变得越来越重要。如果不能及时发现和解决这些问题,大规模采用和部署ML将会受到限制。

所有ML模型都有可能出现错误,因此所有关心ML的人都应该关注模型调试。这包括高级管理人员、前线数据科学家以及负责风险、法律和合规性的人员。本文旨在为技术和非技术人员提供一份简明的技术指南,介绍什么是模型调试,以及如何在实际操作中调试ML模型。这些观点基于作者作为数据科学家和律师的经验,重点在于管理和减轻ML部署的风险。

什么是模型调试?

有时,ML模型会出现错误,但有时这些错误不仅限于技术层面,还可能带有社会歧视性质、遭到攻击或仅仅是因为不道德。当前的模型评估技术,如交叉验证或ROC曲线,无法完全揭示部署ML模型时可能产生的所有问题。

这就是模型调试发挥作用的地方。模型调试是一门新兴学科,致力于发现和修复ML系统中的问题。除了采用更新的技术外,该领域还借鉴了模型风险管理、传统模型诊断和软件测试的方法。模型调试试图像对待代码一样对待ML模型(因为它们本质上就是代码),并通过探索复杂的ML响应功能和决策边界来检测和纠正准确性、公平性、安全性和其他问题。调试可以针对多种错误形式,包括:

  • 不透明性:了解模型的工作原理对于识别和解决问题至关重要。透明度虽然不能保证信任,但却是调试过程中不可或缺的一部分。
  • 社会歧视:目前在ML中存在很多广为人知的社会歧视事件。这些事件可能会对特定群体造成伤害,并给模型所有者带来声誉或法律风险。
  • 安全漏洞:攻击者可能会破坏ML模型或与其关联的数据,导致一系列不良后果。对ML安全性的研究正在成为一个不断发展的领域。
  • 隐私危害:模型可以通过多种方式侵犯个人隐私。例如,训练数据中的个人信息可以在模型中被解码,或者通过推理敏感属性等方式侵犯隐私。
  • 模型衰减:ML模型和数据管道容易出现意外变化,这些变化可能会严重影响模型性能。

为了预防和解决这些问题,最好的办法是进行模型调试。接下来我们将介绍几种调试方法。

当前的调试方法

数据科学家可以使用以下四种主要方法来查找ML模型中的错误:敏感性分析、残差分析、基准模型和ML安全审计。

虽然我们提到的分析方法看似技术性强,但我们认为,了解这些工具及其使用方法对于所有风险管理团队来说都非常重要。即使是技术水平较低的人也能考虑使用模型调试技术。

敏感性分析

敏感性分析是一种简单但强大的方法,用于发现有趣的输入数据并观察模型对此类数据的预测。尽管不需要正式框架即可进行敏感性分析,但使用TensorFlow系列中的工具可以有效地调试模型。敏感性分析的具体方法包括:

  • 对抗性示例搜索:系统地寻找可能导致模型产生奇异响应的数据。例如,通过CleverHans和Foolbox等软件包可以帮助识别对抗性示例。
  • 部分依赖性曲线:通过系统地可视化模型中一个或多个变量的变化,了解模型的响应。
残差分析

残差分析是一种常用的模型调试技术。残差是模型误差的数值度量,代表模型预测与实际结果之间的差异。小残差通常意味着模型准确,而大残差则表示模型错误。通过残差图,可以直观地看到异常值和其他类型的错误。然而,残差分析需要真实的输出结果,因此在实时监控中可能难以应用。

基准模型

基准模型是用于与ML模型进行比较的简单、可信或可解释的模型。通过比较ML模型与基准模型的预测,可以判断ML模型的优劣。基准模型还可以作为有效的调试工具,帮助识别ML模型中的问题。

ML安全审计

针对ML模型的攻击类型繁多,可能导致模型输出异常或泄露敏感数据。除了常规的模型评估方法外,建议将已知的ML攻击纳入组织正在进行的白帽黑客或红队审核中。

发现问题后的应对措施

您已经通过系统的方法找到了ML模型中的准确性、公平性和安全性问题。现在的问题是如何解决这些问题。以下是七种补救策略:

  • 可解释的ML模型:可解释的ML模型更容易调试。近年来,这一领域的技术取得了显著进展。
  • 模型编辑:某些ML模型可以被直接编辑,例如决策树或增强型模型。
  • 模型断言:通过业务规则实时改善或覆盖模型预测。
  • 歧视补救:通过数据预处理、模型训练和选择以及预测后处理来减少歧视。
  • 模型监控:定期监控模型的性能,以确保其在部署后的准确性、公平性和安全性。
  • 异常检测:实时捕捉和纠正异常输入和预测,以防止对抗性攻击。

结论

信任的ML模型是每个人的需求。随着ML技术的普及,模型调试变得越来越重要。无论是Kaggle用户还是数据科学家,亦或是法律和风险管理专家,都应该重视模型调试。如果您想深入了解这些技术,可以通过GitHub上的示例代码或参与ICLR会议了解更多细节。希望这些技巧能帮助您和您的团队更好地调试ML模型。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
调试模型注重机器为什么我们学习
    下一篇