本文最初发表于 Towards Data Science 博客,经原作者 Andre Ye 授权,InfoQ 中文站翻译并分享。 卷积神经网络(Convolutional Nerual Network,CNN)构成了图像识别的基础,这无疑是深度学习最重要的应用之一。然而不幸的是,有关深度学习的许多研究都是在数据集的“完美世界”约束下进行的——追求几个百分点的正确率。因此,尽管我们开发的架构在理论测试中效果非常好,但在现实世界中却不一定如此了。 对人眼来说,对抗性样本或输入与普通图像难以区分,但却能完全骗过各种图像识别架构。对抗性输入的部署显然会带来许多令人不安的危险影响,特别是当人工智能被赋予更多自主决策的权力时,尤为如此。 因此,理解和解决应用于深度学习的系统产生对抗性输入——伦理黑客的方法是非常重要的。 由 Goodfellow 等人提出的一种简单的方法,用于系统生成对抗性输入,称为“快速梯度符号法”(fast gradient signed method)。 考虑如下:
为了执行逐个元素的乘法和求和(例如 在这方面,我们必须实现两个目标,以产生对抗性输入:
Goodfellow 等人提出的解决方案是双管齐下的,而且相当聪明,原因有几个。 η 设置为符号 (w),其中 sign 函数对于负值返回 -1,正值返回 1(0 表示 0)。如果权重为负,则将其乘以 -1 以得到正和;如果权重为正,则乘以 1 而结果无变化。 例如,如果权重向量为 考虑下面的一些“图像”。尽管它们以二维形式表示的,但可以将它们视作一维向量。 最终总和为 10,与原始输出 -7 相差很大。当然,这将会使网络的预测更加糟糕。 这样做可以达到进行较大更改的目的,但一点也不谨慎。毕竟,我们的图像在我们进行干扰的时候,发生了明显的改变: 请记住,我们之前将最终总和表示为 在对抗性输入的实际产生中,像素数 η 的每个元素都相当大:+1 或 -1,这对适当缩放的数据有很大的影响。为了解决这个问题,我们将每个 η 元素乘以一个带符号的 ϵ,其中 ϵ 是传感器检测到的最小数值单位(或更小)。对于 8 位颜色,该数字将为 256,因此 ϵ=1/255。 因为 ϵ 是“不可检测”的(或者几乎不可检测),所以它在视觉上对图像应该没有什么不同。但是,每一个变化都是按照 sign 函数构建的,这样加权和的变化是最大的。 因此,我们将 -ϵ 或 +ϵ 添加到输入向量的每个元素上,这是一个足够小的变化,以至于它不可检测,但使用 sign 函数构造,从而使变化最大化。
让我们考虑一下在上一个例子中 ϵ=0.2 时这种情况的影响。我们可以得到 3 个单位的差额(总和为 -4)。 这是相当可观的,特别是考虑到 perbutation 向量对原始输入向量的微小变化。 让我们考虑一下在上一个例子中 ϵ=0.2 时这种情况的影响。我们可以得到 3 个单位的差额(总和为 -4)。 如果权重向量具有 n 个维数,并且元素的平均绝对值为 m,则激活值将增长为 ϵnm。在高维图像中(如 256×256×3),n 的值为 196608。m 和 ϵ 可以非常小,但仍会对输出产生重大影响。 这种方法非常快,因为它只通过 +ϵ 或 -ϵ 来改变输入:但是它这样做的方式如此有效,以至于完全愚弄了神经网络。 在上图中,0.007 的 ϵ 对应于 GoogLeNet 转换为实数之后的 8 位图像编码的最小为的大小。来源:Goodfellow 等人。 Goodfellow 等人在应用 FGSM 时发现了有趣的结果:
显然,这些对抗性的输入会导致严重的错误率,但也许更令人担忧的是高置信度。这些网络不仅做出了错误的预测,还对自己错误的输出“充满了信心”。这显然是有问题的:想象一下,教一个犹豫不决回答 2×4=6 的学生和一个自豪地宣布答案的学生之间的区别。 这些对抗性的输入 / 样本可以解释为高维点积的一个特性:当需要在其中分配和的像素数量较多时,加权和可以更大,而对每个单独像素的改变也会更小。 事实上,对抗性样本是网络过于线性的结果。毕竟,这样的变化(比如说)对一个由 sigmoid 函数组成的网络的影响微乎其微,因为在大多数地方,perbutation 的影响都是递减的。具有讽刺意味的是,正是这种特性——死亡梯度(dying gradients)ReLU 和其他容易受到对抗性输入影响的无界函数的兴起。 本文中提出的其他要点包括:
走出数据集的限制性和完美条件的世界,进入不那么有序的现实世界变得越来越重要。通过发现有效的策略来欺骗我们的图像识别模型,我们就可以在它们被用于更恶意的目的之前对其进行屏蔽。 |
|