人工智能系统可靠性测试如何利用差分测试生成易出错的测试样本
2021/10/22

上一篇文章中我们为大家介绍了,人工智能系统可靠性测试的典型方法对抗样本,除了对抗样本之外,我们可以生成一些也是容易让人工智能系统出错的一些样本。比如说我们可以应用相似的人工智能系统的输出,来构造一些容易使人工智能系统出错的样本,比如说参考项我们可以引入A、B、C、D等多个系统,这些系统功能是相似的,我们在构建这个样本的时候,通过一定算法去构建出能够使这个被测系统和A、B、C、D这些系统输出不一样的样本。

这些往往都是一些非常异常的、或者corner case的一些样本,这些样本也对于人工智能的可靠性测试也是非常有帮助的。
差分测试(Differential Testing)——引入其他功能相同的DNN,作模型交叉验证。
功能相同(或相似)的DNN系统在现实中可能存在多个实现(比如不同的公司就有不同的自动驾驶系统)。
当测试某个系统A的时候,使用功能相似的系统B,C,D等作为参考系统。
给定相同的输入,如果系统A的输出不同于其他参考系统,那么有很大概率A的输出是错误的。
在一些常见的AI应用领域,多个功能相同的DNN是容易找到的(如图像分类领域就有VGG、ResNet、DenseNet等)。
最大化被测DNN与其他参考DNN之间的输出差异。

软件测试服务

具体来说,比如我们可以去调节图像的明暗度,使得我们A、B、C、D不同的人工智能系统它的输出不一样。比如说在图像比较明亮的时候,我们的A系统判断是向左转,我们把这个图像变暗之后,使得B系统输出的变成了向右转。

软件测试服务

我们还可以把这个图像放大,至于这个放大程度,我们可以通过精确的训练去计算出来。使得两套系统对于这同一张图片判断不一样,一张识别为一辆汽车,另一张识别为一个笑脸。像这样的图片就能很好地测试出我们的人工智能系统的可靠性。

软件测试服务