Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
2020-02-24 15:32:02
Paper: https://arxiv.org/pdf/1412.1897.pdf
Project Page: http://www.evolvingai.org/fooling
Code: https://github.com/Evolving-AI-Lab/fooling
1. Background and Motivation:
深度神经网络学习层级的表示从而可以进行模式识别。最近,这些网络结构呈现出了很强的效果,特别是在视觉分类任务中。给定接近人类水平的 DNNs 来分类视觉物体,会抛出一个关于计算机和人类视觉的差异性的问题。一个最近的研究表明,DNN 和人类视觉之间有非常大的差异性。对输入图像做稍微的改动,就可以使得 DNN 错误的将其分类为其他物体;但是人眼看起来却几乎无差别。在本文中,作者提供了另外一个思路来说明 DNN 和 human vision 之间的不同:It is easy to produce images that are completely unrecognizable to humans, but that state-of-the-art DNNs believe to be recognizable objects with over 99% confidence。
具体来说,作者利用进化算法 或者 梯度上升方法来产生高置信度的图像。这些 DNN 模型表明在 ImageNet 和 MNIST 数据集上都有较好的效果。作者也发现,对于 MNIST DNNs,it is not easy to prevent the DNNs from being fooled by retraining them with fooling images labeled as such。
2. Generating images with evolution:
作者测试的图像是由进化算法(Evolutionary algorithms,EAs)得到的。EAs 是由达尔文进化论启发得到的。他们保持一个微生物种群(a population of "organisms"),即此处的 image,迭代的进行 face selection,然后随机的修改。哪些微生物被选择,主要取决于 fitness function,在这些实验中是 DNN 对图像预测的最高预测值。传统的 EAs 优化解决方案可以在一个目标上执行的很好,或者一小撮的目标。我们利用一种新的算法,称为 muliti-dimentional achieve of phenotypic elites MAP-Elites, 这可以确保我们同时进化一个种群,这些样本可以在很多类别都得到很好地分数。MAP-Elites works by keeping the best individual found so far for each objective。在每一次迭代中,其从种群中选择一个随机的 organism,任何个体因为有较高的 fitness score,就会用于替代当前的 champion。此处,fitness is determined by showing the image to the DNN; 如果图像产生了一个较高的预测得分,新产生的个体,将会变成 champion。
我们用了两种 encodings 来测试 EAs,即图像是如何表达为基因的(how an image is represented as a genome)。
第一种是 direct encoding,对于 MNIST 来说,每一个 28*28 分辨率都会有一个灰度值;对于 ImageNet 来说,256*256 分辨率的,会有(H,S,V)三个值。每一个像素值都被初始化为服从 [0, 255] 范围的正态随机噪声。这些值是独立变化的;首先决定哪些值需要变换,通过一个从 0.1 开始的比值,每 1000 次产生将对该值进行减半处理。 被选中变化的值,可以通过 polynomial mutation operator 来修改,规定的变化长度为 15。第二个 EA 是 indirect encoding,更可能产生 regular 的图像。具体来说,此处的 indirect encoding 是 compositional pattern-producing network (CPPN)。
重要的是,用 CPPNs 进化的图像可以被 DNNs 正确的识别,如图 3 所示,这也说明:a CPNN-encoded EA can produce images that both humans and DNN can recognize. 这些图像是从 PicBreeder.org 上产生的,用户作为进化算法的 fitness function来选择他们喜欢的图像。
CPPNs 和人工神经网络相似。一个 CPPN 将(x, y)位置的像素值作为输入,输出 MNIST 的灰度值 或者 ImageNet 的 HSV color values。像神经网络一样,CPPN 计算的函数依赖于 CPPN 神经元个数,如何连接,神经元之间的权重。每一个 CPPN node 可以是激活函数中的一个,如 sine, sigmoid, Gaussian and linear。例如,将 x 输入到高斯函数中,将会提供 left-right symmetry,将 y 输入到一个 sine function 来提供 top-bottom repetition。进化决定了 CPPN network 的拓扑,权重和激活函数。CPPN network 开始的时候,是没有 hidden nodes,随着时间的推进,慢慢的添加 nodes,鼓励进化首先搜索简单,常规的 images。本文的实验室在 Sferes 进化计算框架的基础上进行。
==