文章整理自TiD00质量竞争力大会
陈龙(百度技术中台测试部资深测试工程师)
《AI模型泛化能力的自动化测试》演讲
TiD00质量竞争力大会邀请了百度技术中台测试部资深测试工程师陈龙为参会者带来《AI模型泛化能力的自动化测试》精彩演讲。
陈龙从AI模型的质量维度,模型泛化能力及其自动化测试的重要性,AI模型泛化能力的自动化测试方案,泛化能力测试待进一步解决的问题四个方面,分享了AI模型泛化能力的自动化测试方案。
一、AI模型的质量维度
(一)AI模型简介
传统的机器学习主要解决分类问题、聚类问题和回归问题等,典型算法包括决策树、SVM、DBSCAN等等。
深度学习是机器学习的一个分支。它最初是通过深度神经网络训练模型的一种方法,在01年左右,随着大数据的发展,底层芯片算力的大幅提升,深度学习迎来了蓬勃发展的机会。CNN、RNN、LSTM等深度学习模型效果都有了很大的提高。
近些年随着AI技术的快速发展和落地,系统化保障AI模型的质量就变得非常重要。此次分享以深度学习模型为例,介绍模型泛化能力的一种自动化测试方案。
(二)AI模型的质量维度AI模型质量维度可以分为功能类指标、非功能类指标、其他定制化指标三类。功能类指标包括准确率、精确率、召回率、F值等。
上图右部分,Positive、Negative指正负样本。True、False指测试结果是否准确。我们就把它分成了TP、TN、FP、FN,也就是正、负样本分别预测正确的、错误的。
准确率指测试集中正样本预测正确的加上负样本预测正确的个数除以总样本数。精确率指预测为正样本正确的个数除以所有预测为正样本的个数。召回率指预测为正样本的个数除以样本中所有正样本的个数。F值是精确率和召回率的调和平均值,即模型精确率和召回率的一种综合表达。
非功能类指标包括泛化能力、鲁棒性、可解释。泛化能力是指模型对新样本或新数据能不能很好的识别。鲁棒性一般是使用数据生成算法验证模型的抗攻击能力,经常和安全性一起作为组合进行模型测试。可解释性是通过类似反卷积的方法对模型训练过程进行可视化,试图解释模型效果和训练过程。
我们在实际项目测试中,一般情况下主要通过模型的功能类指标来测试。比如某一个模型升级,在线下用测试集统计准确率、召回率有没有提升。但是我们往往无法预估模型上线后的效果是否真正有所提高。怎样评估上线后模型效果是否达到预期,在线上真实场景下的效果有没有真正变好,这就是泛化能力测试所要解决的问题。
二、模型泛化能力及其自动化测试的重要性
(一)模型的泛化能力模型的泛化能力是模型对新数据的适应能力,即通过模型训练来学习规律,并对训练集以外的数据可以进行判别。简单说就是除了训练集里的数据,对于真实的数据是不是会有比较好的识别效果。
如上图所示,这个是一个小猫小狗的图像二分类模型。左边是训练集,有各种小猫小狗的图片。右边是线上真实场景数据。在这里面可以发现,小猫在运动,在伸手,在跳。小狗有趴草地,趴地板的。对于模型的泛化能力验证,主要考察对真实场景数据中那些类似于训练集的样本是不是有比较好的识别效果。
除此之外还要验证真实世界中和训练集不一样的样本,比如左边图没有跑跳的小猫。那么在真实场景里,模型是否可以识别跑跳的小猫。这就是泛化能力的测试