随着互联网大数据的兴起,信息爆炸式增长,深度学习等机器学习算法在互联网领域的广泛应用,人工智能再次进入快速发展时期。那么怎么测试AI软件,可能将成为测试的热点问题。
人工智能定量评测目前面临两个重要挑战:第一是人工智能系统目前没有形成统一的模型,第二是人工智能系统与人类为代表的生命体之间目前没有形成统一的模型。
这两个挑战都指向了同一个问题,即对于所有的人工智能系统和所有生命体(特别是以人类为代表的生命体)需要有一个统一模型进行描述,只有这样才能在这个模型上建立智力测量方法并进行测试,从而形成统一的,可进行相互比较的智力发展水平评价结果。
对于这个问题,前人研究者已经从不同方向进行了深入研究,这些研究为我们建立智能系统的标准模型奠定了基础:
冯•诺伊曼结构给予我们的启发是:标准智能系统模型应包含输入输出系统,能够从外界获取信息,能够将内部产生的结果反馈给外部世界,只有这样,标准智能系统才能成为“活”的系统。
戴维.韦克斯勒关于人类智能的定义给予我们最大的启示是:智力能力是由多个要素组成,而非图灵测试或视觉图灵测试那样只关注智力能力的一个方面。
DIKW模型体系给予我们的启发是:智慧是一种解决问题,积累知识的能力;知识是人类不断与外界交互后沉淀下来结构化的数据和信息,这提醒我们,一个智能系统不仅仅体现出知识的掌握,更重要的还有关于解决问题的创新能力。
这种关于知识的掌握能力,知识的创新能力与戴维.韦克斯勒理论、冯.诺依曼架构结合,就可以形成智能系统智力能力的多层次结构。综上所述,我们得出智能系统的标准模型应该具备一下特点:
第一、具有输入输出的功能,即可以与外界通过数据、信息和知识进行交互的能力。
第二、具有存储数据、信息、知识的能力,即将外界数据、信息和知识化为自身资源的能力。
第三、具有生成新数据、信息和知识的能力,即基于自身拥有的知识,在新数据或信息的启发下,对数据、信息和知识进行创新从而产生新的数据、信息和知识的能力,如图1.4所示(为了简化,本图中数据、信息、知识统一用知识描述)。
智能系统标准模型示意图如下:
我们可以提出如下标准智能系统定义:
无论系统(包括人工智能系统,人类等生命系统等),如果符合如下特征,就可以认为这个系统属于标准智能系统(Standard Intelligent System):
特征1 能够通过声音、图像、文字等方式(包括但不仅限于这三种方式)从外界获取数据,信息和知识的能力。
特征2 能够将从外界获取的数据、信息和知识转化为系统掌握知识的能力。
特征3 能够根据外界数据、信息和知识所产生的需求,通过运用所掌握的知识进行创新的能力,这些能力包括但不仅限于联想、创作、猜测、发现规律等,这种能力运用的结果可以形成自身掌握的新的知识。
特征4 能够通过声音、图像、文字等方式(包括但不仅限于这三种方式)将系统产生数据,信息和知识反馈给外界或对外界进行改造。
AI软件最初的测试,就是看它有没有学习能力,本质上,就是算法的验证,即对启发式算法(heuristic algorithm)、启发式搜索算法(heuristic searchalgorithm)、元搜索算法(Meta-heuristicalgorithm)、强化学习和深度强化学习或具体的算法(如遗传算法、模拟退火算法、神经网络、深度神经网络、禁忌搜索、演化算法、蚁群算法)等中某些算法或算法的组合进行验证。算法的验证,主要是通过实验进行(虽然也可以通过数学、模型等演化进行证明),借助大量数据进行普适性验证。例如,比较有名的图像识别算法验证,就借助ImageNet提供的大量图片进行验证。
AI软件的测试,更多的是靠“试验”进行验证,这和“Test”倒是更吻合,Test本质上就是“样本性的试验验证活动”。AI软件的测试还依赖大数据,基于大数据自动产生、分析、呈现等技术,更有效地验证AI软件的合理性。与AI软件比赛是最有效的测试手段之一,如:围棋人机大战——阿法狗(AlphaGo)和李世石(俗称:小李子)之战。
一些传统的测试方法也会在AI软件测试中用到,如在代码级的单元测试就没什么区别,性能测试、可伸缩性测试、安全性测试也是要进行的。
当然,AI软件测试没那么容易,这里只是通俗易懂地解释如何对AI软件进行测试。实际工作中,AI软件的前期测试还是很困难的。例如,为了测试Numenta(工作模式更接近人的大脑的AI软件),IBM资深研究员Winfried Wilcke带领着一百人的团队来测试它的算法。如果我们面对俄罗斯的控制机器人集群的智能软件包Unicum,又如何测试呢?它可是说是“机器人之上的机器人”,可以独立分配集群内部的机器人角色、确定集群中的核心、替换脱离的单位,还会自动占据有利位置,搜寻目标,并在自动模式下向操纵员申请作战与摧毁目标的许可。
未来测试精英需要进一步了解AI软件,进一步提升数学能力,更好理解各种启发式搜索算法、并行算法、分布式架构等技术,才能有更好的对策和方法应对AI软件的测试挑战。