在这篇论文中,我们提出了一个基于人类感知的注意力模型来扩充一个现代神经网络结构。具体地说,我们逆向地训练和分析了一个神经模型,该模型包含了一个受人类启发的视觉注意力模块,该模块由一个循环的、自上而下的顺序过程引导。我们的实验评估揭示了几个有关新模型的鲁棒性和表现的显著发现。
近年来,深度神经网络模型的应用取得了很大的进展。从大规模的图像分类[21]到语音识别[25],通过利用了新的硬件优势、更大的内存和更好的优化策略,这些模型的性能得到了稳步的提高。然而,自原始的 AlexNet 论文发布[31]以来,此类任务的领先模型范式并没有发生显著变化。模型仍然主要以纯粹的前馈方式构建,交错的卷积层(通常带有有限支持的小内核)和简单的非线性层[40]组成。最近提出的ResNets 是我们目前使用的最强大的模型之一,它依然并没有显著地改变这种情况
虽然毫无疑问,这些模型在解决某些任务时非常成功,但人们对它们的健壮性和可靠性表示了担忧[36,49]。对输入的微小的、精心选择的扰动,通常是人类观察者察觉不到的,可能会导致这些模型以高可信度[49]输出不正确的预测。这种 扰动 称为对抗性的样例 (adversarial examples)[18,49],也正是本文研究的主角[4,9,56]。
当前神经网络模型的范例无疑受到了人类和灵长类视觉系统[44]的启发。早期的初级模型已经直接做出了这种联系(类比人类和灵长类的神经网络建立计算机领域现代神经网络模型),而这类神经网络模型的激活模式(activation)与脑[8]中的神经之间的行为存在着一系列联系。这些类神经网络模型和生物视觉系统之间的相似之处主要适用于早期视觉处理[14],特别是发生在有时间限制 (time-limited) 的场景[14]中的前馈处理 (feed-forward processing)。这已经在一些有趣的作品中讨论过,包括在对抗性的例子 (adversarial examples) 的上下文中。
然而,前馈神经网络和灵长类视觉系统之间有一些主要的区别。灵长类动物的眼睛有一个中央凹,它在不同的空间分辨率下对不同的视觉输入区域进行采样。此外(可能与中央窝紧密相连),该系统具有很强的注意力瓶颈 (attentional bottleneck),这在许多不同的研究工作中已经得到了证实[45,7]。视觉皮层有许多反馈和自上而下的周期性连接,它不是纯粹的前馈。另外,人类并不把图像看作是一个静态的场景,而是通过一系列的扫视 (saccade)/定影 (fixations) 来探索图像,在这个过程中收集和整合信息[34]。这已经被认定是导致人类产生不同的分类错误的原因,这些错误与深度神经网络[13]的错误在性质上是不同的。
在这项工作中,我们建议使用一个软的 (soft),顺序的 (sequential),空间的 (spatial),自上而下(top-down)的注意机制(我们简称为S3TA)[39],从灵长类的视觉系统中获得灵感。虽然我们并不认为这是一个生物学上合理的模型,但我们确实认为这个模型捕捉了视觉皮层的一些功能,即注意力瓶颈 (attention bottleneck) 和连续的、自上而下的控制。
我们在ImageNet图像上对模型进行了对抗性训练 (adversarially train),表明该模型对对抗攻击(主要针对投影梯度下降或PGD[32,36]攻击)具有最先进的鲁棒性。我们证明,通过增加我们展开模型的步骤(attention steps)的数量,我们能够更好地抵御由于攻击者和防御者之间的计算竞争而导致的更强的攻击。
最后,但也很重要的是,我们展示了由此产生的对抗性示例 (adversarial examples) 通常(虽然不总是)包含全局的、显著的结构,这些结构可以被人类感知和解释 (图1) 。此外,我们发现攻击通常试图将模型的注意力吸引到图像的不同部分,而不是直接干扰源图像中的主要对象。
图 1 我们用一个连续自顶向下的注意力模型来扩充一个现代神经网络来进行图像分类。该模型对 PGD攻击具有最先进的对抗性鲁棒性,生成的对抗性图像通常可以被人所感知和理解。左边是一个源图像 (lable:钱包 ),它是一个反向训练的ResNet-152,我们的模型对它进行了正确的分类。在中间和右边是对每个模型进行250步PGD攻击产生的对抗性示例 (target:海狸 )。这两种模型都不能抵御攻击,并像本文第一个例子一样预测目标类。然而,尽管 ResNet的攻击图像不包含可见的可解释结构,但攻击我们模型的图像包含一个突出的、连贯的海狸头的图像(最好在屏幕上放大查看)。
对抗性训练的目的是建立能够抵抗对抗性攻击的模型。[18]和[36]等技术的核心是在每个训练步骤中(使用快速梯度符号法或PGD攻击)找到最坏的反例,并将它们添加到训练数据中。由[36]创建的模型在MNIST和CIFAR-10上已经被证明是可靠的。[28]建议使用 对抗性Logit配对(adversarial Logit Pairing (ALP))来鼓励一个网络的Logit预测一个干净的图像以及与它相似的对抗性副本。然而,ALP在较强的[15]攻击下表现较差。为了在ImageNet[12]上获得较好的性能,[56]提出了特征去噪网络和对抗训练相结合的方法。其他方法,如[20],通过添加不可微的预处理步骤来更明确地实现梯度模糊。虽然这些梯度掩蔽技术使基于梯度的攻击失败,但更复杂的对手,如无梯度方法[51,2],却可以绕过这些防御。
注意机制已经广泛应用于许多序列建模[24]等问题答疑,机器翻译[6,52],视频分类和字幕 [46,33],图像分类和字幕 [37,11,17,1,55,60,53,5,57 ], 文本分类[58,47],生成模型[42, 59, 30],对象跟踪[29],强化学习[10]。我们在[39]中引入的模型的基础上建立了模型,并对其进行了调整和修改,用于 ImageNet 尺度下的图像分类。该模型使用类似于 [52,42] 的 soft keys、质询向量(query) 和注意值 (attention) 类型。但是,本文使用的模型采用由 LSTM 生成的自顶向下 (too-down source)的源,而不是使用直接来自输入的self-attention(有关详细信息,请参阅 第3节)。此外,该模型的输出是高度压缩的,除了使用空间基 (spatial basis) 保持空间结构外,没有其他空间结构。这与 self-attention 中每个像素关注其他像素不同的模式不同,因此空间结构得以保留。最后,它在与[57]相似的时间序列上应用注意,但使用的注意机制有很大的不同。有关完整的模型细节,请参见 第3节。
已经有一些工作研究了如何利用注意力来加强分类器以对抗对抗性攻击。[35]使用受凹点启发的手工图像裁剪来减少对抗干扰(adversarial disturbation)对ImageNet分类精度的影响。[54] 试图通过应用一个从对抗扰动形式 (adversarial-perturbed form)的图像生成的硬掩码 (hard mask) 来规范分类器的激活。最近也有研究表明,压缩和刺激 (squeeze and excite)[27]自我注意 (self-attention) 有助于对自然的对抗性例子(natural adversarial examples)[23]进行分类。我们在 第5.4节 中对这个数据集的模型进行了评估。
我们的模型是基于[39]提出的用于增强学习 (reinforcement learning) 的模型,并将其应用于 ImageNet 尺度下的图像分类。该模型 顺序地质询 (query) 输入,并在 每个时间步(time step) 积极地关注 相关的空间信息片段 ,以改进其对正确标签的估计。这两个关键的组成部分是:
我们通过经验表明,这两个方面都有助于它对对抗攻击(adversarial attack)的适应。
我们简要地强调了模型的重要部分,如 图2 所示。我们建议读者参考[39]和补充材料。
图 2 顺序的自顶向下注意力模型的一般视图 (sequential top-down attention model)。输入图像通过一个 ResNet 生成一个 key 和一个 value 张量。我们将一个固定的、预定义的空间基 (spatial basis) 连接到这两个张量。从LSTM状态解码的质询向量 (query),并在 每个空间位置 计算质询向量 (query)与 keys 向量之间的内积。然后应用 softmax 生成一个注意力映射图 (attention map)。这个注意映射图(attention map)与 value 张量进行逐点相乘(point-wise multipled)运算,所得到的结果在空间上求和得到一个 answer 向量。这个 answer 向量是 LSTM 在这个时间步 (time step) 的输入。然后将 LSTM 的输出解码为类logit (class logits),以产生分类器的输出。在每个时间步 (time step) 可以生成多个质询向量(query) (最终产生匹配数量的 answer 向量)。
该模型首先将输入图像通过视觉网络传递给卷积神经网络 (这里我们使用一个修改过的ResNet-152,如下所示)。
我们对所有时间步 (time step) 使用相同的输入图像,因此ResNet的输出只需要计算一次。得到的输出张量然后根据通道维度,产生一个 keys 张量和一个 values 张量
对于这两个张量,将他们连接到一个固定尺寸的空间基 (spatial basis) 张量,它使用傅里叶表示 (Fourier representation) 来编码空间位置。这种 spatial basis 很重要,因为我们的注意力瓶颈 (attentional bottleneck) 沿着空间求和,导致这些张量的空间结构消失;而这种 spatial basis 可以允许传递空间位置信息 (spatial location information)。
我们为几个计算步骤展开(unroll)自顶向下(top-down)的控制器(controller),在每个步(step)中关注输入(attending input),并通过控制器处理 answer 张量以生成输出(output)(或下一个状态(state))。自顶向下控制器(top-down controller)是一个LSTM核心[26],它的前一个状态(previous state)通过一个质询网络(query network)(一个多层感知机MLP)解码成一个或多个质询向量 (query)。
每个质询向量 (query) 的通道数与 【keys 张量通道数 + spatial basis 张量通道数】的通道数总和相同。我们在每个空间位置上取【质询向量 (query)】与 【keys 张量 + spatial basis 张量】的内积,得到一个【表示应该分配多少注意权重的(attention logits)】的单通道映射 (single channel map of attention logits)
我们通过一个空间 softmax 来生成这个质询向量 (query) 的注意力映射 (attention map),然后将得到的注意力映射 (attention map) 与 【value 张量 + spatial basis 张量】的总和张量 逐点地相乘 (point-wise multipled)。 请注意,一个单通道的映射 ( single channel map of attention logits) 是用于所有的通道 (channel),我们注意到这一点的重要性如下:
通过交叉熵损失函数 Cross-entropy 来计算最终的 【output】与 【ground_truth 类】的差距。LSTM的初始状态也是通过学习得到的的。由于模型是完全可微的,所以我们用对抗训练(adversarial train)(如4.1节 和 5 所述) 对本模型以及ResNet进行端到端的训练。
在本文中,关于我们的模型版本有几个重要的地方需要做一点说明:
注意力瓶颈 (attention bottleneck) 使模型的决策依赖于潜在图像中更大的范围。这可能是由于在每一个时间步(time step)注意映射 (attention map) 的规模 (shape) ,以及这些 attention map 会随着时间的步的推移而发生很大的变化。这将导致局部对抗性扰动(adversarial perturbation)[38]的有效性降低。我们将在第 6 节中讨论这个问题,并说明:实际上,我们经常观察到攻击者 (attacker) 需要全局扰动 (global perturbation) 才能成功进行攻击。
接着上一点说,注意映射 (attention map) 有一个单独的通道 (single channel),这个 channel 将所有的 value 通道整合到 (modulate) 一起,这一事实限制了这些通道 (channel) 的内容在空间上的一致性。在一个常规的 ResNet 架构中,最后一个块的输出是通过在每个通道上独立完成的平均池化 (average pooling on each channel)操作来读取的——这允许网络在信息到达最后一层时丢失空间结构。
为了使空间元素 (spatial element) 的注意瓶颈(attention bottleneck)效应更加明显,我们修改了ResNet体系结构,使最终的输出具有更大的空间维度。这是通过把所有块(block)(除了第2个剩余块(residual block))的 S t r i d e s Strides Strides 改成 1 1 1 来实现的。对于 ImageNet 输入( 224 × 224 224×224 224×224像素 ),结果映射是 28 × 28 28×28 28×28 像素 (与常规ResNet中的 7 × 7 7×7 7×7不同)。
注意机制的自顶向下特性(top-down nature)使得质询向量(query)来自LSTM的隐藏状态,而不是来自于输入。因此,模型可以根据其内部隐藏状态主动选择相关信息,而不仅仅是输入。这使得模型在质询图像 (querying image) 和生成输出 (producing output) 时考虑自身的不确定性。
模型的顺序特性 (sequential nature) 允许在不改变参数数量的情况下增加计算能力。我们在第 5 节中演示了这将会有助于增强健壮性。
在本节中,我们将在监督学习的背景下正式定义对抗性风险 (adversarial risk)。
给定一个模型 m θ m_{\theta} mθ 和他的参数 θ \theta θ,我们想要最小化从数据分布 D D D 中采样出的输入数据 (input) x x x 和 标签 (label) y y y 之间的损失 ℓ \ell ℓ。形式上,我们的目标是最小化预期风险 (expected risk):
E ( x , y ) \mathbb E_{(x,y)} E(x,y) ~ D ℓ ( m θ ( x ) , y ) D^{\ell(m_{\theta}(x),y)} Dℓ(mθ(x),y)
在经验上,我们在有限的训练集上优化经验风险,并使用平均损失来估计一个剩余测试集上的预期风险。正如[51]所指出的那样,预期风险较低的模型在任何数据点上的表现都可能很差。在不允许发生单一灾难性故障的情况下,经验风险估计可能存在问题。
因此,我们还需要考虑最坏的风险情况所需的鲁棒模型:
s u p ( x , y ) ∈ s u p p D ℓ ( m θ ( x ) , y ) sup_{(x, y)∈suppD} \ell(m_θ(x), y) sup(x,y)∈suppDℓ(mθ(x),y)
局部的对抗风险 ( l o c a l a d v e r s a r i a l r i s k local \ adversarial \ risk local adversarial risk) 公式:
E ( x , y ) ∼ D [ s u p x ′ ∈ N ϵ ( x ) ℓ ( m θ ( x ′ ) , y ) ] \mathbb E_{(x,y) \sim D}[sup_{x^{'}∈N_{ϵ}(x)}\ell(m_{\theta}(x^{'}),y)] E(x,y)∼D[supx′∈Nϵ(x)ℓ(mθ(x′),y)] (1)
在本文中,我们考虑了图像预测应该在图像 x x x 的一个 ℓ ∞ \ell_{∞} ℓ∞-球型区域内保持不变的规范,同时最大扰动的允许范围是 ϵ = 16 / 255 ϵ=16/255 ϵ=16/255,相对于分布在 0 − 1 0-1 0−1 之间的像素强度比例。
具体来说,我们主要关注 ImageNet 数据集[12],我们主要将 目标PGD的攻击 (targeted PGD attack) 作为威胁模型 (threat model) ,假设非目标攻击可以导致在ImageNet上进行不太有意义的比较(例如,对非常相似的犬种进行错误分类),则威胁模型可以根据 [2, 28, 56] 随机选择目标类别。
为了训练能够抵抗对手攻击的模型,我们采用了[36]和最近的[56]的对抗训练方法。
根据 公式(1) 中的对抗风险,我们想最小化以下鞍点问题(saddle point problem):
m i n θ ρ ( θ ) min_{\theta}ρ(\theta) minθρ(θ)
ρ ( θ ) = E ( x , y ) ∼ D [ m a x x ′ ∈ N ϵ ( x ) ℓ ( m θ ( x ′ ) , y ) ] ρ(\theta)=\mathbb E_{(x,y)\sim D}[max_{x^{'}∈N_{ϵ}(x)}\ell(m_{\theta} (x^{'}),y)] ρ(θ)=E(x,y)∼D[maxx′∈Nϵ(x)ℓ(mθ(x′),y)] (2)
在这种情况下:
在我们的实验中,我们用PGD近似地解决了内部最大化问题。具体来说,我们使用迭代符号梯度 (iterative signed gradients)对交叉熵损失 (cross-entropy) 进行PGD,如[32,56]中所述。在训练过程中,我们使用的是有针对性的PGD攻击 (targeted PGD attacks),即根据[28,56]对目标类 (targeted class) 进行均匀随机选择。
在本文中,我们使用PGD攻击 (PGD attacks)来评估该模型,该模型在业界中被认为是一种强攻击1,有几篇发表的论文将其作为 benchmark。
在不能使用解析梯度的情况下,或者在没有梯度的情况下,我们可以使用 无梯度优化来近似梯度。利用无梯度方法,我们可以验证模型结构的鲁棒性是否来源于梯度模糊。
在这项工作中,我们使用SPSA算法[48],这是非常适合的高维优化问题,甚至对于有噪声的情况下的目标也非常有用处。我们使用在[51]中提供的 SPSA 公式来产生对抗攻击 (adversarial attacks)。
在SPSA算法中:
具体来说,对于第 i i i 个样本,估计梯度 g i g_i gi 的计算方法如下:
g i = f ( x t + δ v i ) − f ( x t − δ v i ) 2 δ v i g_i=\frac{f(x_t+δv_i)-f(x_t-δv_i)}{2δv_i} gi=2δvif(xt+δvi)−f(xt−δvi)