撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>

这两天围棋人机大战——阿法狗(阿尔法狗,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 得到许可,否则谢绝转发 )

如何测试人工智能软件?相关推荐

  1. 【软件测试】如何测试人工智能软件?

    人工智能(AI)经常成为头条新闻,它提供各种各样的可能性,使我们的生活更容易,并且它也能推动我们生活中各个领域的创新.在几乎所有领域都有人工智能应用的机会,包括家庭自动化.个人虚拟助理.自动化服务代理 ...

  2. 微软人工智能平台开源:利用《我的世界》测试AI软件

    新浪科技讯 北京时间7月9日早间消息,微软本周宣布,将人工智能平台Project Malmo提供给开源社区. 此前只有一小部分计算机科学家可以使用Project Malmo,而未来这一平台将开放给所有 ...

  3. 人工智能测试-人工智能质量工程技能简介

    翻译自 https://www.sogeti.com/globalassets/global/sogetilabs/testing-of-artificial-intelligence.pdf 人工智 ...

  4. 软件工程:浅谈人工智能软件开发与传统软件开发的区别

    题目:浅谈人工智能软件开发与传统软件开发的区别 摘要:人工智能的飞速发展带动着软件工程的发展,最终使得软件工程产生新的变革.因为人工智能特有的性质,因而导致了人工智能软件与传统软件的差异性.本文对比了 ...

  5. 没看错!用游戏测试人工智能。

    导读 <我的世界>对于José Hernández-Orallo而言并不陌生,他是一名计算机科学家,正在使用这款游戏进行自己的研究.他在瓦伦西亚理工大学的研究团队设计了一种测试机器智能性能 ...

  6. 人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法

    人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法 随着深度学习革命的不断发展,AI算法驱动的软件产品越来越影响我们的生活.比如人脸识别.机器翻译等应用越来越广泛,技术也在像纵深方向发展, ...

  7. 设计师专用WIN10系统集成1449元的AI人工智能软件可动态提高设计程序性能提升高达394%

    设计师专用WIN10系统集成1449元的AI人工智能软件可动态提高设计程序性能提升高达394% 一.Win10 64位1903专业版说明 1.系统基MSDN cn_windows_10_busines ...

  8. 人工智能软件表现抢眼,几乎准确预测了奥密克戎病毒的复杂结构

    破译复杂氨基酸序列的新算法提供了人们对冠状病毒变异株的早期认识.它们可能为未来的药物开发指明道路. 11月26日,世界卫生组织将在南非激增的冠状病毒株命名为"高关注变异株",并将其 ...

  9. 比赛——第十四届全国大学生软件创新大赛 “基于端云结合的人工智能软件创新”

    示 范 性 软 件 学 院 联 盟 关于举办第十四届全国大学生软件创新大赛 "基于端云结合的人工智能软件创新" 参赛通知 为了进一步提升大学生创新思维,全面推动软件行业发展,促进软 ...

最新文章

  1. iOS实现tableViewCell或collectionCell中点击界面按钮跳转
  2. Alpine Linux 中的 apk 命令讲解
  3. 21个营销机构网站设计案例
  4. hexo 菜单_Hexo 搭建个人博客教程 - 6 - 设置菜单,发布博客 - 2018
  5. .NET Core微服务开发网篇-ocelot
  6. python的river安装
  7. python输出星号_Python的星号(*、**)的作用
  8. 带日期的bean转为json(bean-JSON)
  9. 创建模块化程序(一)
  10. CUDA学习(九十八)
  11. 浏览器接收响应消息并显示内容
  12. 佳能gm4080无线服务器安装,佳能GM4080驱动
  13. 从计算机视觉算法实训走向落地尝试
  14. 基于C#语言Windows窗体应用(.Net Framework)的教室点名系统V1.0
  15. 超全Redis命令总结(备忘)(建议赶紧收藏)
  16. 自动创建图片库、文档库
  17. 干货 I 用数据分析进行“无死角”的复盘?
  18. 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题
  19. 云服务器数据丢失可以恢复吗?
  20. Redis Sentinel配置

热门文章

  1. 【pandas数据分析】pandas数据结构
  2. 如何去掉超链接下划线小集锦
  3. unable to connect to 192.168.1.110:5555 解决办法
  4. 微信小程序--视频播放器
  5. 画布式编程_构建HTML5画布游戏如何帮助我学习编程
  6. 愤世嫉俗的程序员,总在某乎发表言论,当起了“键盘侠”
  7. HIVE基本查询操作(二)——第1关:Hive排序
  8. 将低版本CAD图纸转换成2018版本应该如何操作?
  9. 可以模拟人工操作的软件;如访问网页,在网页中自动获取固定信息等
  10. python + selenium 实现 华为商城自动抢购