目前的深度卷积神经网络(CNN)在多个视觉相关的任务中都达到或超过了人类的水平,例如图片的分类、人脸识别等。同时,CNN也是容易被愚弄的,我们可以通过一定的手段骗过CNN,使其分类错误。
例如上面例子中,一个熊猫图像,原本神经网络可以将其正确分类为熊猫,而加上了一些看似白噪声的干扰,就使得神经网络以99%的置信度将其归类为长臂猿。
这种愚弄神经网络的方法就是对抗样本(adversarial examples)。这种方法在安全领域受到十分密切的关注,因为随着人工智能应用的普及,其安全性就越来越重要,如果一个AI很容易被骗过,那么将非常容易被黑客利用。例如,垃圾邮件发送者可以通过欺骗AI来防止被过滤掉,而更严重的例子是,自动驾驶技术中就包括了行人、车辆的识别,如果黑客使用对抗样本使得AI误以为路面上没有人,那就将造成重大交通事故。
这里介绍一种简单的产生对抗样本的方法,其示意图如下(此处展示的是希望将人物误分类为书柜)
我们的目标是:给定左边上面一张图(例如用户照片或者路面的雷达影像),想要产生一张与原始照片非常接近的,同时使得神经网络误分类的照片。
学习的目标就是左边下面的那张噪声图片,记为N图。这可以通过梯度下降的方法做到,其流程为:
初始化N图为随机噪声
将N图与原始照片叠加,然后输入网络,得到神经网络的分类值
计算神经网络的分类值对N图中各像素的梯度(这可以在tensorflow中轻松的得到)
使用梯度下降更新N图
重复第2、3、4步,直到神经网络以99%的置信度分类错误
下面是一些结果,所有这些图片都会被分类为鸵鸟。
显然,神经网络被我们愚弄了。
领取专属 10元无门槛券
私享最新 技术干货