针对人工智能系统前沿测试方法,可靠性测试

白癜风中医医院 https://wapjbk.39.net/yiyuanfengcai/video_bjzkbdfyy/

前面的文章中我们对于人工智能系统测试的总的流程进行了阐述,本文我们一起了解一下,人工智能系统测试具体有哪些技术?就我们的研究成果跟大家进行一个分享和讨论。

前面的文章中我们提到了,人工智能系统测试分为很多步骤,其中比较典型的步骤包括模型离线的评估以及可靠性的测试。对于一些人工智能系统测试特有的问题,比如说测试结果准确与不准确难以确定、测试充分性难以确定的问题,我们之前的学术界也好,工业界也好,也研究出了一些方法去应对这些难点。比如说用蜕变测试或变异测试这些方法去测试AI系统,接下来我们会一个个进行详细的介绍。

模型离线评估

首先对于模型离线评估来说,这个往往是通过一些具体的可以计算的一些指标来进行评估。有很多这样的指标,比如说敏感度、特异度等。特定的系统可能会某些指标有一些特定的要求,比如说大于某一个值等。这个具体的值是和具体的风险分析相对应的,比如说你这个系统是不是会对人的生命财产造成严重的损失?这个风险就决定了我们最后指定离线评估通过的准则的时候,需要考虑的具体的阈值是多少。设置模型离线评估通过准则,如:Sensitivity=truepositive/positive≥90%Specificity=truenegative/negative≥85%

这个指标有非常多种,在这里我们仅以分类这样一个应用来说。举一两个例子,比如对于分类来说,我们可以去计算它的一个准确率、查准率、查全率等等,这些指标都是有一定的公式的。这些指标都是去衡量对于所有的测试输入来说,到底能准确判断的输出到底有多少。

a)准确率(accuracy):对于给定的数据集,预测正确的样本数占总样本数的比率准确率=预测正确的样本数/总样本数*%

b)查准率(也叫精确率,Precision):对于给定的数据集,预测为正例的样本中真正例样本的比率查准率=预测正确的正例样本数/预测为正例的总样本数*%

c)查全率:(也叫召回率、敏感度、Recall):对于给定的数据集,预测正确的正例样本占所有实际为正例样本的比率查全率=预测正确的正例样本数/实际为正例的总样本数*%

d)F1值:查准率和查全率的调和平均数F1=2?(查准率?查全率)/(查准率+查全率)*%

除了这些指标之外,对于分类应用来说还有很多其他的指标,下面这张表格中比较全面地列出了对于一个典型的分类应用来说,可以测量的一些指标。我们前面提到的只是一部分,比如说准确率、召回率等。每一行、每一列除以一行总的量和一列总的量都会形成一个相应的指标。对于医学领域来说,甚至还有一些对于医学领域特定的一些指标。具体指标的选择需要根据具体的应用来确定选取哪些指标来作为衡量的一个标准。

除了分类之外,我们再举一个例子,比如对于目标检测这样一个应用场景来说,(目标检测业务场景是什么呢,比如说在一张图像当中,我能够用人工智能的程序去框出我所关心的目标它所在的位置在哪里,比如说在这一张图片当中去框出人脸的位置),它的评价指标又和前面讲的的分类指标有所不同。这个时候就需要去计算我框出的框和具体正确的框的位置之间到底差多少,比如说我们可以去计算两个框之间的相似度是多少,这个是可以用两个框重合的面积去比上两个框的相并面积。也就是用交并比这样一个指标来衡量。

同时也可以用mAP,也就是平均准确率来衡量,可以通过一条曲线来计算,比如说我们设定不同的判断阈值,会得到不同的查准率和查全率,然后绘制成一条曲线,这条曲线下的面积代表目标检测这个类的平均准确率,对于不同的类别我们再算一个平均值,就得到了mAP的指标。

a)IoU:目标检测算法中用来评价2个矩形框之间相似度的指标(两个矩形框相交的面积/两个矩形框相并的面积)IoU=(area(B_p∩B_gt))/(area(B_p∪B_gt))

b)mAP:用来度量模型预测框类别和位置是否准确的指标。根据不同的threshold,得到不同点的查准率(precision)和查全率(recall),然后绘制成一个曲线,这条曲线下的面积代表该类的AP,而mAP则是对不同类别的AP取均值

其实还有很多的对于不同的应用场景来说比如说自然语言处理等指标,这些指标都可以运用一些公式或者工具去计算,计算出来的就是比较客观的对于模型连线评估判断的评估指标。

这里我们再举几个例子,比如说对于最终的模型准确率我们可以划出一个曲线来,对不同的模型曲线来进行一个比较,谁的准确率比较高一些。

Overallaccuracy

对于一些分类的应用来说,特别是多分类的应用,我们可以计算出每一个类它的准确率和召回率,以及它的宏观准确率、召回率,甚至于F1值有多少。

Sensitivity(Recall)/Precision/F-Measure

再比如说,我们可以通过混淆计算的方式来比较直观地去判断一个模型的好坏。对于多分类系统来说,我们可以画出这样的一个矩阵,这个矩阵的每一行是每一类的真实的类型,每一列是推断的类型。这个矩阵,如果对角线上的数字越大,就说明每一类正确识别的次数就越多。对角线上的数字越大,非对角线上的数字越小,就说明这个模型越好,反之,这个模型性能就不怎么好。

如果说在非对角线上有某个数字特别大,我们就要需要去具体的观察,比如说这一类我可能判断的失误比较多一些,就可以进一步去判断,这一类到底什么原因它判断的错误比较多,有可能是训练样本的原因?还是测试数据值的原因?等等,这个矩阵会给大家一个非常好的参考。

Confusionmatrix

还有比如说我们可以通过这些可视化的方式来用肉眼去判断一下我们这个分类系统到底是不是好。比如说我们可以把测试的数据分类后的结果,用t-SNE这样的技术算法去进行一个绘图。

从这一张绘图中,我们可以看到如果说同一颜色的数据点都靠得比较近、都靠成一团的话,就说明我们这个模型它对于数据的分类来说是分的比较清楚的。

反之,如果这个模型把不同颜色的点都混在一起的话,就说明这个模型对于某些类型的数据它可能分类地不是特别的好,或者说很难以区分。这里面可能又有很多因素造成,可能我这个训练数据当中,有几类数据长得确实比较像,对于这个模型来说确实是很难区分。或者还有一种可能,就是刚才说的过拟合的原因,也就是说我模型训练的时候,训练到的一些知识过于


转载请注明:http://www.aierlanlan.com/tzrz/7326.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了