跳转到主要内容
Chinese, Simplified

如果你的机器学习模型在坚持测试数据集上的正确性得分很高,那么在生产中部署它安全吗?

所有的模型都是错误的,但有些是有用的。

-- 乔治·伯克斯(英国著名统计学家)

但我要问的问题是:更正确的模型更有用吗?

最近,我们为一位客户培训了语音识别,其准确率高于给定目标。在仔细检查错误后,我们发现该模型在转录数字方面做得特别差。显然,仅仅评估模型的准确性是不足以决定模型是否足够好,可以部署。

模型评估与模型测试

在机器学习中,我们主要关注模型评估:在看不见的坚持测试数据集上总结模型正确性的度量和图。

另一方面,模型测试是为了检查模型的学习行为是否与“我们期望的”相同。它不像模型评估那样严格定义。通过模型误差和特征误差进行组合(就像我在语音识别中发现的数字问题一样)只是一种测试。

有关训练前和训练后的概述,请参阅Jeremy Jordan的机器学习系统的有效测试。有关相同的一些示例测试用例,请参阅:Eugene Yan的《如何测试机器学习代码和系统》。

 

模型解释性(Explainability)或模型可解释性(Interpretability)

人类可以在多大程度上理解模型的结果,并可以解释其决策“逻辑”。至少对于非DNN模型来说,这是测试中非常重要的一部分。

10种ML测试

Srinivas Padmanabhuni博士在针对您的AI/ML/DL模型的10个测试中列出了10种类型的测试,包括模型评估、模型测试、推理延迟等:

 

  1. 随机测试与训练验证测试分割(Randomized Testing with Train-Validation-Test Split:):在未发现的数据上测量模型准确性的典型测试。
  2. 交叉验证技术(Cross-Validation Techniques):测量数据分割的多次迭代的性能,例如K-Fold、LOOCV、Bootstrap。
  3. 可解释性测试(Explainability Tests):当模型(如DNN)不可解释时很有用。主要有两种类型:模型不可知测试和模型特定测试。
  4. 安全测试(Security Test)防止使用中毒数据欺骗模型的对抗性攻击。再次,有两种变体:白盒(具有模型参数知识)和黑盒。
  5. 覆盖测试(Coverage Tests):一种系统的方法,以确保看不见的数据足够多样化,涵盖广泛的输入场景。
  6. 偏见/公平性测试Bias / Fairness Tests):确保模型不歧视任何人口学。
  7. 隐私测试(Privacy Tests):防止隐私攻击/侵犯。模型推断不应使计算出训练数据成为可能,并且推断的数据中不应嵌入PII。
  8. 性能测试(Performance Tests):模型推理是否发生在用例的延迟SLA内。
  9. 漂移测试(Drift Tests):防止概念/数据漂移。
  10. 代理测试(Tests for Agency):模型结果与人类行为的接近程度。

带有代码示例的详细示例

与Eugene Yan的文章相似,但篇幅更长,重点不同,代码示例更详细:

总结

当谈到机器学习测试时,它与软件测试大不相同。它还没有像传统测试那样成熟和被广泛理解。

对于在生产中部署,您不应该只关注模型评估,还应该测试模型的切片、运行时性能、偏差、安全性等。

我们都在想办法测试机器学习模型。

原文地址
https://www.ml4devs.com/newsletter/002-model-evaluation-vs-model-testing-vs-model-explainability/
本文地址
Article

微信

知识星球

微信公众号

视频号