一文让你了解AI产品的测试 评价人工智能算法模型的几个重要指标

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 一文让你了解AI产品的测试 评价人工智能算法模型的几个重要指标

如何测试人工智能产品越来越受到广大测试工程师的关注,由于人工智能的测试预言(Test Oracle)不是像普通软件产品那么明确,到目前为止,基于大数据的第四代人工智能产品的测试,主要集中在“对大数据测试”“白盒测试”“基于样本分析算法的优劣”以及“对最终产品的验收测试”。“对大数据测试”主要针对数据阶段验证、对数据计算验证和对输出阶段验证;“白盒测试”主要考虑神经元覆盖(Neuron Coverage)、阈值覆盖率(Threshold Coverage)、符号变更率(Sign Change Coverage)、值变更覆盖率(Value Change Coverage)、符号-符号覆盖率(Sign-SignCoverage)和层覆盖(LayerCoverage)这六个指标;“对最终产品的验收测试”可以采用对传统软件验收测试的方法,基于业务来进行测试,比如对于人脸识别系统,是否可以在各个人脸角度变化,光线等条件下正确识别人脸。本文重点讨论的是“基于样本分析算法的优劣”。


几个基本概念


大家都知道,人工智能通过训练样本来对系统通过深度学习的算法来进行训练,然后通过测试样本来对训练样本进行测试。“基于样本分析算法的优劣”中的样本仅对于测试样本而言。在这里样本的取样结果质量有几个关键的指标:正确率、精确度、召回率和F1分数。在介绍这些指标之前,我们先来看一下下面四个概念:


  • TTrue):真样本;
  • FFalse):假样本;
  • PPositive):判断为真;
  • NNegative):判断为假。

由此,我们又可以推断出如下四个概念:

  • TP True Positive:正确的判断为真(有病判断为有病,又称真阳性)
  • FN False Negative:错误的判断为假(有病判断为没病,又称假阴性,属于漏诊)
  • FP False Positive:错误的判断为真(没病判断为有病,又称假阳性,属于误诊)
  • TN True Negative:正确的判断为假(没病判断为没病,又称真阴性)


由此得到下面一个表:


实际

(T)

(F

判断

(P)

TP

FP

(N)

FN

TN


精确度、召回率、准确性、FnScore


这个表,成为混淆矩阵。下面把这张表再进行加工。

image.png


通过这张表,我们得到了所有的指标,在这些指标中,以下2个是特别有用的:

  • 精确度(PPV=TP/(TP+FP):真阳性在判断为真的比例数。是衡量所有判断为真的样例的质量;
  • 召回率(TPR= TP/(TP+FN):在所有的真样本中有多少被找出。

另外还有2项是此重要的,其中1项没有在上表中体现:

  • 特异度(Specificity= TN/(FP+FN):即真阴率,实际的假样本被正确地找出;
  • 准确性=(TP + TN) / (TP + FP + TN + FN):所有的查出的真阳与真阴数所占所有样本的比率。


为了让大家更不好的理解这些指标,我们来看一个案例。某电子商务网站,根据Linda的历史购物框推选了15个商品,其中12个是推荐正确的,3个是推荐错误的,这个系统中有50个商品,其中符合推荐给Linda的应该为20个,其他30个为不符合的。下面让我们来看一下上面谈到的各个指标:


  • 精确度(Precision=12/15=80%;
  • 召回率(Recall=12/20=60%;
  • 特异度(Specificity=(30-(15-12))/30=27/30=90%;
  • 准确性=(12+ Specificity)/50=(12+27)/50=78%


那么是不是精确度或者召回率越高越好呢,那可不一定,要视具体的产品而定。比如新冠病毒的检测软件,我们宁可降低精确度,也要保证召回率,不放过一个病例。这种情况即所谓的“宁错杀一百,不放过一个”的策略。比如:样本中有50真样本,50假样本,判断得到95个,其中50个为真,45个为假。这样精度50/95=53%,召回率=50/50=100%,由此可见这种算法精确度并不高,只有53%,而召回率达到了100%。另外一种情况,是可以牺牲召回率,而保证精确度,比如精准扶贫,对于每一个扶贫农夫开销是很大的,所以不允许存在把钱花在假贫困户上。比如:同样样本中有50真样本,判断得到15个,其中15个为真,其中0个为假。这样精度15/15=100%,召回率=15/50=30%,由此可见这种算法精确度很高高,达到100%,而召回率不高,仅为30%


一般而言精确度和召回率应该是负相关的,如果两个值都低说明算法有了问题了,这里提出了F0.5分数、F1分数、F2分数、F3分数等指标。用的最多的是F1分数。


Fn分数(F1Score=(1+n2)×精度×召回率×2 / (n2×精确度+召回率)

所以:

  • F0.5分数(F0.5Score=1.25×精度×召回率/ (0.25×精度+召回率)
  • F1分数(F1 Score=2×精度×召回率/ (1×精度+召回率)
  • F2分数(F1 Score=5×精度×召回率/ (4×精度+召回率)

这样在上面的商品推荐案例中:

  • F0.5 Score=1.25×80%×60%/0.25×80%+60%=0.6/0.8=75%
  • F1 Score=2×80%×60%/1×80%+60%=0.96/1.4=68%
  • F2 Score=5×80%×60%/4×80%+60%=2.4/3.8=63%


一般而言,如果Fn分数低于60%算法就有问题了,如果低于50%,就存在严重事故了。由此可见n值越大,要求越严格。


        接下来介绍几个更高级的度量图


ROC 曲线(ReceiverOperating Characteristic curve)


ROC曲线为接受者操作特性曲线是指在特定刺激条件下,以被试在不同判断标准下所得的假阳率为横坐标,真阳率为纵坐标,画得的各点的连线。

image.png

AUCArea Under the Curve)为ROC下面的面积。


P-R(Recall-Precision)曲线



横坐标为,纵坐标为召回率,纵坐标为精确度。

image.png


如何选择ROC和P-R曲线


  • 在很多实际问题中,正负样本数量往往很不均衡。比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的1/1000,甚至1/10000。若选择不同的测试集,P-R曲线的变化就会非常大,而ROC曲线则能够更加稳定地反映模型本身的好坏。所以,ROC曲线的适用场景更多,被广泛用于排序、推荐、广告等领域。


  • 但需要注意的是,选择P-R曲线还是ROC曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。


  • PR曲线比ROC曲线更加关注正样本,而ROC则兼顾了两者。


  • AUC越大,反映出正样本的预测结果更加靠前(推荐的样本更能符合用户的喜好)。


  • 当正负样本比例失调时,比如正样本1个,负样本100个,则ROC曲线变化不大,此时用PR曲线更加能反映出分类器性能的好坏。这个时候指的是两个分类器,因为只有一个正样本,所以在画auc的时候变化可能不太大;但是在画PR曲线的时候,因为要召回这一个正样本,看哪个分类器同时召回了更少的负样本,差的分类器就会召回更多的负样本,这样precision必然大幅下降,这样分类器性能对比就出来了。


Kappa系数


K=(P0-Pe)/(1-Pe)

P0是每一类正确分类的样本数量之和除以总样本数,也就是总体分类精度


假设每一类的真实样本个数分别为a1,a2,...,aC,而预测出来的每一类的样本个数分别为b1,b2,...,bC,总样本个数为n,则有Pe=( a1×b1+a2×b2+…+aC×bC)/(n×n)


让我们来看一个例子,比如有如下混淆矩阵:


判断

A

B

C

实际

A

239

21

16

B

16

73

4

C

6

9

280


  • 所有案例数:239+21+16+16+73+4+6+9+28=664
  • 判断为A的案例数:239+16+6=261
  • 判断为B的案例数:21+73+9=103
  • 判断为C的案例数:16+4+280=300
  • A的案例数:239+21+16=276
  • B的案例数:16+73+4=93
  • C的案例数:6+9+280=295


这样:

  • P0=(239+73+280)/664=0.8916
  • Pe=(261×276+103×93+300×295)/(64×64)=0.3883
  • K=(0.8916-0.3883)/(1-0.3883)=0.8228


通过K的值,可以判定模型的好坏:

  • 0.0~0.20:极低的一致性(slight)
  • 0.21~0.40:一般的一致性(fair)
  • 0.41~0.60:中等的一致性(moderate)
  • 0.61~0.80:高度的一致性(substantial)
  • 0.81~1:几乎完全一致(almostperfect)


顾老师的课程

软件安全测试

https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486

接口自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486

DevOps 和Jenkins之DevOps

https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486

DevOps与Jenkins 2.0之Jenkins

https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486

Selenium自动化测试

https://study.163.com/course/courseMain.htm?

courseId=1209835807&share=2&shareId=480000002205486

性能测试第1季:性能测试基础知识

https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486

性能测试第2季:LoadRunner12使用

https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486

性能测试第3季:JMeter工具使用

https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486

性能测试第4季:监控与调优

https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486

Django入门

https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486

啄木鸟顾老师漫谈软件测试

https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3天前
|
传感器 人工智能 监控
智慧电厂AI算法方案
智慧电厂AI算法方案通过深度学习和机器学习技术,实现设备故障预测、发电运行优化、安全监控和环保管理。方案涵盖平台层、展现层、应用层和基础层,具备精准诊断、智能优化、全方位监控等优势,助力电厂提升效率、降低成本、保障安全和环保合规。
智慧电厂AI算法方案
|
14天前
|
安全 Linux 虚拟化
|
11天前
|
机器学习/深度学习 人工智能 算法
人工智能与医疗健康:AI如何改变生命科学
【10月更文挑战第31天】人工智能(AI)正深刻改变医疗健康和生命科学领域。本文探讨AI在蛋白质结构预测、基因编辑、医学影像诊断和疾病预测等方面的应用,及其对科研进程、医疗创新、服务效率和跨学科融合的深远影响。尽管面临数据隐私和伦理等挑战,AI仍有望为医疗健康带来革命性变革。
66 30
|
3天前
|
机器学习/深度学习 人工智能 监控
智慧交通AI算法解决方案
智慧交通AI算法方案针对交通拥堵、违法取证难等问题,通过AI技术实现交通管理的智能化。平台层整合多种AI能力,提供实时监控、违法识别等功能;展现层与应用层则通过一张图、路口态势研判等工具,提升交通管理效率。方案优势包括先进的算法、系统集成性和数据融合性,应用场景涵盖车辆检测、道路环境检测和道路行人检测等。
|
3天前
|
传感器 人工智能 监控
智慧化工厂AI算法方案
智慧化工厂AI算法方案针对化工行业生产过程中的安全风险、效率瓶颈、环保压力和数据管理不足等问题,通过深度学习、大数据分析等技术,实现生产过程的实时监控与优化、设备故障预测与维护、安全预警与应急响应、环保监测与治理优化,全面提升工厂的智能化水平和管理效能。
智慧化工厂AI算法方案
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
25 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
19 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
4天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
21 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
1分钟认识:人工智能claude AI _详解CLAUDE在国内怎么使用
Claude AI 是 Anthropic 开发的先进对话式 AI 模型,以信息论之父克劳德·香农命名,体现了其在信息处理和生成方面的卓越能力
|
15天前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。

热门文章

最新文章