文档章节

如何测试人工智能软件?

不最醉不龟归
 不最醉不龟归
发布于 2017/01/09 08:56
字数 1768
阅读 104
收藏 0

 

这两天围棋人机大战——阿法狗(阿尔法狗,AlphaGo)和李世石(暂时俗称:小李子)之战吸引了不少眼球,测试人员也不例外,之前就看到一篇文章,测试人员将李世石称为“谷歌(Google)高级软件测试工程师”。但也看到另外一篇文章,其观点是:李世石是一个好用户,但不是一个合格的测试工程师。然后列举了一个合格的测试工程师应该做哪些异常操作、异常输入等等,还给大家普及了测试知识。实际上,这篇文章差矣!作者可能不理解人工智能(Artificial Intelligent,AI)软件,或者说,不知道如何对AI软件、甚至像搜索引擎、图像识别软件、语音识别软件、游戏软件等有效的测试方法。如果到这时候,还要做这样的测试,如何和世界围棋冠军比赛?而且是向全世界直播的。

 

作为AI软件的一个实例——阿法狗,小李子是最合格的测试工程师。如果阿法狗赢了小李子(实际到目前是完胜3:0),说明这款软件是极其成功的,满足谷歌(Google)公司的期望,完成了其高质量的检验。如果阿法狗输了,说明还有改进的空间,质量有待提高,测试也发挥了作用,但也不能说明这款软件质量不合格,只是没有达到一流水平,因为之前得到过相对较低水平的检验:即和欧洲冠军的比赛,阿法狗5:0完胜人类专业棋手。

 

所以,对于AI软件的测试,实际有一个时间维度,AI软件随着时间(不断学习)前移,其能力必须(快速)增强,和人类一样,能够不断成长,这才是一款真正的AI软件。这里以阿法狗为例,如下图所示,阿法狗的确做到了。

AI软件最初的测试,就是看它有没有学习能力,本质上,就是算法的验证,即对启发式算法(heuristic algorithm)、启发式搜索算法(heuristic searchalgorithm)、元搜索算法(Meta-heuristicalgorithm)、强化学习和深度强化学习或具体的算法(如遗传算法、模拟退火算法、神经网络、深度神经网络、禁忌搜索、演化算法、蚁群算法)等中某些算法或算法的组合进行验证。算法的验证,主要是通过实验进行(虽然也可以通过数学、模型等演化进行证明),借助大量数据进行普适性验证。例如,比较有名的图像识别算法验证,就借助ImageNet提供的大量图片进行验证。

说起这个,还有一个故事:

       2015年5月份,百度宣称其在ImageNet测试中取得了全球最好结果,其图像识别错误率仅为4.58%,而微软是4.94%,谷歌为4.8%。在这种测试中,人类辨识ImageNet照片的错误率为5%左右。

    可是,周二,ImageNet的计算机科学家发表声明指出,百度在测试中存在违规行为,百度采用了密集测试的方法以提高成绩。按照规定,ImageNet只允许参与者每周向测试服务器提交2次测试结果。可是在3月份的5天时间内,百度却提交了40次结果。ImageNet表示,百度还使用了30个不同的账号,在过去6个月中提交了约200次测试结果。

在ImageNet测试中,人工智能需要扫描拥有100多万张图片的数据库,然后将它们分为1000个不同类别。大多数研究人员通常使用数据库中的部分图片,对软件进行图像识别测试。而通过密集测试,百度工程师可以通过调整他们的软件熟悉这些图片的信息,从而获得优势。

……

百度拒绝回答相关问题,但在ImageNet网站发表声明称,百度科学家吴韧已经为他所谓的“失误”道歉。

(来源:http://tech.qq.com/a/20150604/006269.htm )

 

AI软件的测试,更多的是靠“试验”进行验证,这和“Test”倒是更吻合,Test本质上就是“样本性的试验验证活动”。AI软件的测试还依赖大数据,基于大数据自动产生、分析、呈现等技术,更有效地验证AI软件的合理性。

 

比赛是对AI软件的测试的最有效手段之一,虽然代价比较大。除了时间维度(纵向)外,还可以从其它维度进行测试或验证,如横向——同时和不同能力的人类棋手进行比赛,人类棋手水平越低,阿法狗花时越少;或者做让子测试,人类棋手水平越低,阿法狗能够让子越多。

也可以对“算法深度”这个维度进行测试,算法深度越深,阿法狗的能力越强(虽然会更耗时),而且阿法狗能够根据剩余时间调整算法深度。昨天比赛,不少专家就期望:小李子能再坚持一下,让阿法狗耗时用完,进入读秒阶段,情形又会怎样?阿法狗会不会算不过来,走出各种败招?

这里只是讨论了AI软件不同于传统软件的某些测试特点。当然,某些传统的测试方法也会在AI软件测试中用到,如在代码级的单元测试就没什么区别,一些性能测试、可伸缩性测试、安全性测试也是要进行的。

 

当然,AI软件测试没那么容易,这里只是通俗易懂地解释如何对AI软件进行测试。实际工作中,AI软件的前期测试还是很困难的。例如,为了测试Numenta(工作模式更接近人的大脑的AI软件),IBM资深研究员Winfried Wilcke带领着一百人的团队来测试它的算法。如果我们面对俄罗斯的控制机器人集群的智能软件包Unicum,又如何测试呢?它可是说是“机器人之上的机器人”,可以独立分配集群内部的机器人角色、确定集群中的核心、替换脱离的单位,还会自动占据有利位置,搜寻目标,并在自动模式下向操纵员申请作战与摧毁目标的许可。

未来需要进一步了解AI软件,进一步提升数学能力,更好理解各种启发式搜索算法、并行算法、分布式架构等技术,才能有更好的对策和方法应对AI软件的测试挑战。

 

(如果其它公众号想转发本文,请邮件联系作者:Kerryzhu at vip.163.com 得到许可,否则谢绝转发 )

本文转载自:http://www.360doc.com/content/16/0313/15/30520336_541838800.shtml

不最醉不龟归
粉丝 25
博文 443
码字总数 464975
作品 0
深圳
程序员
私信 提问
@程序员,终于可以放心写bug了!

作者 | 琥珀、非主流 出品 | AI科技大本营(公众号ID:rgznai100) “如果 Facebook 没有 AI,那它将失去根基。”去年@Scale软件工程大会上,Facebook AML 实验室负责人 Joaquin Candela 在演...

CSDN资讯
2018/09/15
0
0
【站在AI中的“神”】谷歌AI总指挥Jeff Dean特写

     新智元编译   来源:Wired   译者:刘克一   【新智元导读】18年前,Jeff Dean加入谷歌,随后被称为谷歌“最具天赋的程序员”。现在,这位年近50岁的谷歌人工智能的现负责人,...

深度学习
2018/04/20
0
0
如何判断一个产品是否真的使用了AI技术

摘要:这篇文章中,我们将会讨论如何判断一个产品是否真正使用了人工智能技术,还是只是宣称自己使用了AI,以此来吸引新用户。这篇文章同样也能帮助投资人判断一家宣称自己使用了AI技术的初创...

SDK.cn
2018/09/06
0
0
@程序员,终于可以放心写bug了!Facebook的debug神器你值得拥有

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/82719408 作者 | 琥珀、非主流 出品 | AI科技大本营(公众号ID:rgznai1...

AI科技大本营
2018/09/14
0
0
测试开发人才稀缺,2018测试之旅来袭

测试之旅是测试公益社区Testwo(测试窝)发起的以软件测试为主题的系列活动。活动旨在为广大软件测试从业人员提供一个分享交流的平台,使大家不但能够学到软件测试中的技能,更能开阔眼界,并...

异步社区
2018/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
6
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
7
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部