南京索引科技有限...吧 关注:23贴子:134
  • 0回复贴,共1

如何测试人工智能软件

只看楼主收藏回复

Google AlphaGo (中文昵称阿尔法狗)和韩国棋手李世石之围棋大战吸引力不少眼球,测试人员也不例外,而且还戏称李世石为“谷歌高级软件测试工程师”。但也看到另一篇文章,其观点是:李世石是一个好用户,但不是一个合格的测试工程师。然后列举了一个合格的测试工程师应该做哪些异常操作、异常输入等,还给大家普及了测试知识。实际上,这篇文章差矣!作者可能不理解人工智能(AI)软件,或者说,不知道如何对AI软件、甚至像搜索引擎、图像识别软件、语音识别软件、游戏软件等进行有效的测试方法。这不是传统的功能测试,虽然也可以去做功能测试、性能测试甚至安全性测试,在代码级的单元测试就更没什么区别。但这不是讨论如何测试AI软件的核心问题,核心问题是验证它是否具有人工智能。
如果阿尔法狗赢了李世石,说明这款软件是极其成功的,满足谷歌公司的期望,完成了其高质量的检验。如果阿尔法狗输了,说明还有改进的空间,质量有待提高,测试也发挥了作用,但也不能说明这款软件质量不合格,只是没有达到一流水平,因为之前得到过相对较高水平的检验:即和欧洲冠军的比赛,阿尔法狗5:0完胜人类专业棋手。

所以,对于AI软件的测试,实际有一个时间维度,AI软件随着时间能够不断学习,其能力必须快速增强,说明和人类一样,能力是不断成长的,这才是一款真正的AI软件。AI软件最初的测试,就是看它有没有学习能力,本质上,就是算法的验证,即对启发式算法、启发式搜索算法、元搜索算法、强化学习和深度强化学习或具体的算法中某些算法或算法的组合进行验证。算法的验证,主要是通过实验进行(虽然也可以通过数学、模型等烟花进行证明),借助大量数据进行普适性验证。例如,比较有名的图像识别算法验证,就借助ImageNet提供的大量图片进行验证。就像神经网络深度学习,一般会将数据集拆分为两个数据集,70%的大数据集作为训练数据来训练模型,而30%的小数据集作为测试集以验证神经网络模型。
AI软件的测试,更多的是靠“试验”进行验证,AI软件的测试还依赖大数据。基于大数据自动产生、分析、呈现等技术,更有效地验证AI软件地合理性。
系统和人类真实的对抗赛是对AI软件测试的最有效手段之一,虽然代价比较大。除了时间维度外,还可以从其他维度进行测试或验证,如横向——同事和不同能力的人类棋手进行比赛,人类棋手水平越低,阿尔法狗比赛所花费的时间越少,或者阿尔法狗能够让更多的棋子。也可以对“算法深度”这个维度进行测试,算法深度越深,阿尔法狗的能力越强,而且阿尔法狗能够根据剩余时间调整算法深度。如果李世石在比赛时再坚持一下,让阿尔法狗耗时用完,进入读秒阶段,情形又会怎样?阿尔法狗会不会算不过来,走出各种败招?
当然,AI软件测试没那么容易,这里只是通俗易懂地解释如何对AI软件进行测试。在实际工作中,AI软件地前期测试还是很困难地。例如,为了测试Numenta(工作模式更接近人类大脑的AI软件),IBM资深研究员带领着一百人的团队来测试它的算法。如果我们面对俄罗斯的控制机器人集群的智能软件包Unicum,又如何测试呢?它可以说是“机器人之上的机器人”,可以独立分配集群内部的机器人角色、确定集群中的核心、替换脱离的单位,还会自动占据有利位置,搜寻目标,并在自动模式下向操纵员申请作战与摧毁目标的许可。这些问题就留给你们去思考吧。
#软件测试##人工智能#


IP属地:安徽1楼2022-09-15 11:35回复