2、LanCe: 针对嵌入式多媒体应用的物理对抗性攻击的全面和轻量级 CNN 防御方法[2]
与关注 “攻击” 的上一篇文章不同,这篇文章关注的是“防御”。本文提出了:LanCe—一种全面和轻量级的 CNN 防御方法,以应对不同的物理对抗性攻击。通过分析和论证 CNN 存在的漏洞,作者揭示了 CNN 的决策过程缺乏必要的 * 定性语义辨别能力 *(qualitative semantics distinguishing ability):输入的非语义模式可以显著激活 CNN 并压倒输入中的其它语义模式,其中,语义模式是指表示语句成分之间的语义关系的抽象格式,而非语义模式是指不包含任何语义关系信息的抽象格式。利用对抗性攻击的特征不一致性,作者增加了一个自我验证阶段来改进 CNN 的识别过程。回顾图 1,对于每张输入图像,经过一次 CNN 推理后,验证阶段将定位重要的激活源(绿圈),并根据预测结果计算出输入语义与预期语义模式的不一致性(右圈)。一旦不一致性值超过预定的阈值,CNN 将进行数据恢复过程以恢复输入图像。我们的防御方法涉及最小的计算组件,可以扩展到基于 CNN 的图像和音频识别场景。
2.1 对抗性攻击分析和防御的解释
2.1.1 CNN 漏洞解读
解释和假设。在一个典型的图像或音频识别过程中,CNN 从原始输入数据中提取特征并得出预测结果。然而,当向原始数据注入物理对抗性扰动时,CNN 将被误导出一个错误的预测结果。为了更好地解释这个漏洞,作者以一个典型的图像物理对抗性攻击—对抗性补丁攻击为例进行分析。
在图 1 中,通过与原始输入的比较,我们发现一个对抗性补丁通常在颜色 / 形状等方面没有限制约束。这样的补丁通常会牺牲语义结构,从而导致明显的异常激活,并压倒其他输入模式的激活。因此,作者提出了一个假设:CNN 缺乏定性的语义辨别能力,在 CNN 推理过程中可以被非语义的对抗性补丁激活。
假设验证。根据上述假设,输入的非语义模式会导致异常的激活,而输入的语义模式会产生正常的激活。作者提出通过调查 CNN 中每个神经元的语义来评估这种差异,并引入一种可视化的 * CNN 语义分析方法—激活最大化可视化 *(Activation Maximization Visualization,AM)。AM 可以生成一个 pattern,将每个神经元最活跃的语义输入可视化。图案 V((N_i)^l)的生成过程可以被看作是向 CNN 模型合成一个输入图像,使第 l 层中的第 i 个神经元(N_i)^l 的激活度最大化。该过程可以表征为:
其中,(A_i)^l(X)为输入图像 X 的(N_i)^l 的激活,(A_i)^l 表征第 l 层的第 i 个神经元对应的激活,(N_i)^l 为第 l 层的第 i 个神经元,η为梯度下降步长。
图 4 展示了使用 AM 的可视化输入的语义模式。由于原始的 AM 方法是为语义解释而设计的,在生成可解释的可视化模式时,涉及许多特征规定和手工设计的自然图像参考。因此,我们可以得到图 4(a)中平均激活幅度值为 3.5 的三个 AM 模式。这三种模式中的对象表明它们有明确的语义。然而,当我们在 AM 过程中去除这些语义规定时,我们得到了三种不同的可视化 patterns,如图 4(b)所示。我们可以发现,这三个 patterns 是非语义性的,但它们有明显的异常激活,平均幅值为 110。这一现象可以证明作者的假设,即 * CNN 神经元缺乏语义辨别能力,可以被输入的非语义模式显著激活 *。
图 4. 通过激活最大化可视化神经元的输入模式
2.1.2 输入语义和预测激活的不一致性度量
不一致性识别。为了识别用于攻击检测的输入的非语义模式,我们通过比较自然图像识别和物理对抗性攻击,检查其在 CNN 推理过程中的影响。图 5 展示了一个典型的基于对抗性补丁的物理攻击。左边圆圈中的图案是来自输入图像的主要激活源,右边的条形图是最后一个卷积层中的神经元的激活。从输入模式中我们识别出原始图像中的对抗性补丁和主要激活源之间的显著差异,称为输入语义不一致(Input Semantic Inconsistency)。从预测激活量级方面,我们观察到对抗性输入和原始输入之间的另一个区别,即预测激活不一致(Prediction Activation Inconsistency)。
图 5. 图像对抗性补丁攻击
不一致性度量的表述。作者进一步定义两个指标来表述上述两个不一致的程度。
1)输入语义不一致度量:该度量用于衡量非语义对抗性补丁与自然图像的语义局部输入模式之间的输入语义不一致性。具体定义为:
其中,P_pra 和 P_ori 分别代表来自对抗性输入和原始输入的输入模式(input patterns)。Φ:(A_i)^l(p)和Φ:(A_i)^l(o)分别表征由对抗性补丁和原始输入产生的神经元激活的集合。R 将神经元的激活映射到主要的局部输入模式。S 代表相似性指标。
2)预测激活不一致度量:第二个不一致度量指标是在激活层面上,它用于衡量最后一个卷积层中对抗性输入和原始输入之间的激活幅度分布的不一致性。我们也使用一个类似的指标来衡量,具体如下:
其中,f_pra 和 I_ori 分别代表最后一个卷积层中由对抗性输入和原始输入数据产生的激活的幅度分布。
对于上述两个不一致度量中使用到的信息,我们可以很容易地得到 P_pra 和 f_pra,因为它们来自于输入数据。然而,由于自然输入数据的多样性,P_ori 和 f_ori 并不容易得到。因此,我们需要合成能够提供输入的语义模式和激活量级分布的标准输入数据。可以从标准数据集中获得每个预测类别的合成输入数据,以及,通过向 CNN 输入一定数量的标准数据集,我们可以记录最后一个卷积层的平均激活幅度分布。此外,我们可以定位每个预测类别的主要输入的语义模式。
2.1.3 基于 CNN 自我验证和数据恢复的物理对抗性攻击防御
上述两个不一致展示了物理对抗性攻击和自然图像识别之间的区别,即输入模式和预测激活。通过利用不一致性指标,作者提出了一种防御方法,其中包括 CNN 决策过程中的自我验证和数据恢复。具体来说,整个方法流程描述如下。
自我验证。(1)首先将输入项输入到 CNN 推理中,获得预测类别结果。(2) 接下来,CNN 可以从实际输入中定位主要激活源,并在最后一个卷积层中获得激活。(3)然后,CNN 利用所提出的指标来衡量实际输入与预测类别的合成数据之间的两个不一致指标。(4) 一旦任何一个不一致指标超过了给定的阈值,CNN 将认为该输入是一个对抗性输入。
数据恢复。(5) 在自我验证阶段检测到物理对抗性攻击后,进一步应用数据恢复方法来恢复被攻击的输入数据。具体来说,作者利用图像修复和激活去噪方法分别来恢复输入的图像和音频。
2.2 对图像物理对抗攻击的防御
2.2.1 图像场景中的防御过程
主要激活模式定位。对于图像物理对抗性攻击的防御,主要依赖于输入模式层面的输入语义不一致。因此,作者采用 CNN 激活可视化方法—类别激活映射(Class Activation Mapping,CAM)来定位输入图像的主要激活源 [8]。令 A_k(x, y) 表示在空间位置 (x, y) 的最后一个卷积层的第 k 个激活值。我们可以计算出最后一个卷积层中空间位置 (x, y) 的所有激活的总和,即:
其中,K 是最后一个卷积层中激活的总数。A_T(x, y)的值越大,表明输入图像中相应空间位置 (x, y) 的激活源对分类结果越重要。
不一致推导。根据初步分析,输入的对抗性补丁比自然输入的语义模式包含更多的高频信息。因此,作者用一系列的变换来转换这些 patterns,如图 6 所示。经过二维快速傅里叶变换(2D-FFT)和二进制转换,我们可以观察到对抗性输入和语义合成输入之间的显著差异。
图 6. 二维快速傅里叶变换后的结果
作者将 S(I_pra, I_ori)替换为 Jaccard 相似性系数(Jaccard Similarity Coefficient,JSC),并提出如下图像不一致性指标:
其中,I_exp 是具有预测类别的合成语义模式,P_pra ∩ P_exp 为 P_pra 和 P_exp 的像素值都等于 1 的像素数。基于上述不一致性指标,作者提出了具体的防御方法,包括自我验证和图像恢复两个阶段。整个过程在图 7 中描述。
图 7. 对抗性补丁攻击防御
检测的自我验证。在自我验证阶段,应用 CAM 来定位每个输入图像中最大模型激活的源头位置。然后对图像进行裁剪,以获得具有最大激活度的 pattern。在语义测试期间,计算 I_pra 和 I_exp 之间的不一致性。如果该不一致性指标高于预定义的阈值,我们认为检测到了一个对抗性输入。
图像的数据恢复。检测到对抗性补丁后,通过直接从原始输入数据中删除补丁的方式来进行图像数据恢复。在该案例中,为了确保轻量级的计算工作量,作者利用最近邻插值 --- 一种简单而有效的图像插值技术来修复图像并消除攻击效果。具体来说,对于对抗性补丁中的每个像素,利用该像素周围八个像素的平均值取代该像素。插值处理后,将恢复的图像反馈给 CNN,再次进行预测。通过以上步骤,我们可以在 CNN 推理过程中保护图像的物理对抗性攻击。
2.3 对音频物理对抗攻击的防御
不一致推导:作者利用预测激活的不一致性来检测音频中的物理对抗性攻击,即,衡量预测类别相同的实际输入和合成数据之间的激活幅度分布不一致性指标。作者利用皮尔逊相关系数(Pearson Correlation Coefficient,PCC)定义不一致度量如下:
其中,I_pra 和 I_exp 分别代表最后一个卷积层对实际输入和合成输入的激活。μ_a 和μ_o 表示 f_pre 和 f_exp 的平均值,σ_pra 和σ_exp 是标准差,E 表示总体期望值。
自我验证的检测。进一步的,将自我验证应用于 CNN 的音频物理对抗性攻击。首先,通过用标准数据集测试 CNN,获得最后一个卷积层中每个可能的输入词的激活值。然后,计算不一致度量指标 D(I_pra, I_exp)。如果模型受到对抗性攻击,D(I_pra, I_exp)会大于预先定义的阈值。作者表示,根据他们用各种攻击进行的初步实验,对抗性输入的 D(I_pra, I_exp)通常大于 0.18,而自然输入的 D(I_pra, I_exp)通常小于 0.1。因此,存在一个很大的阈值范围来区分自然和对抗性的输入音频,这可以有利于我们的准确检测。
音频数据恢复。在确定了对抗性的输入音频后,对这部分音频进行数据恢复以满足后续应用的需要。作者提出了一个新的解决方案—"激活去噪" 作为音频数据的防御方法,其目标是从激活层面消除对抗性影响。激活去噪利用了上述最后一层的激活模式,这些模式与确定的预测标签有稳定的关联性。对抗性音频数据恢复方法如图 8 所示。基于检测结果,我们可以识别错误的预测标签,并在最后一层获得错误类别的标准激活模式。然后我们可以找到具有相同索引的激活。这些激活最可能是由对抗性噪声引起的,并取代了原始激活。因此,通过压制这些激活就可以恢复原始激活。
图 8. 音频对抗性攻击防御
2.4 实验分析
2.4.1 图像场景
在本文实验中,作者使用 Inception-V3 作为基础模型生成对抗性补丁,然后利用由此生成的高迁移性的补丁攻击两个 CNN 模型:VGG-16 和 ResNet-18。然后将本文提出的防御方法应用于所有三个模型,并测试其检测和恢复的成功率。实验中的基准方法是 Patch Masking,这是一种最先进的防御方法[7]。不一致性的阈值设为 0.46。
表 7 给出了总体检测和图像恢复性能。在所有三个模型上,LanCe 的检测成功率始终高于 Patch Masking。进一步,本文提出的图像恢复方法可以帮助纠正预测,在不同的模型上获得了 80.3%~82% 的准确度改进,而 Patch Masking 的改进仅为 78.2% ~79.5%。
表 7. 图像对抗性补丁攻击防御评估
2.4.2 音频场景
对于音频场景,作者在谷歌语音命令数据集上使用命令分类模型(Command Classification Model)进行实验。对抗性检测的不一致性阈值是通过网格搜索得到的,在本实验中设置为 0.11。作为比较,作者重新实现了另外两种最先进的防御方法:Dependency Detection [8]和 Multiversion[9]。
LanCe 对所有的音频物理对抗性攻击都能达到 92% 以上的检测成功率。相比之下,Dependency Detection 平均达到 89% 的检测成功率,而 Multiversion 的平均检测成功率只有 74%。然后,作者评估了 LanCe 的恢复性能。TOP-K 指数中的 K 值被设定为 6。由于 Multiversion[9]不能用于恢复,作者重新实现了另一种方法 Noise Flooding[10]作为比较。作者使用没有数据恢复的原始 CNN 模型作为基线方法。
表 8 给出了整体的音频恢复性能评估。应用本文提出的恢复方法 LanCe 后,预测准确率明显提高,从平均 8% 提高到了平均 85.8%,即恢复准确率为 77.8%。Dependency Detection 和 Noise Flooding 的平均准确率都较低,分别为 74% 和 54%。
表 8. 音频对抗性攻击数据恢复评估
3、SentiNet:针对深度学习系统的物理攻击检测[3]
这篇文章重点关注的是图像处理领域的物理攻击检测问题,具体是指针对图像的局部物理攻击,即将对手区域限制在图像的一小部分,生成 “对抗性补丁” 攻击。这种局部限制有利于设计鲁棒的且物理上可实现的攻击,具体攻击形式可以是放置在视觉场景中的对手对象或贴纸。反过来,这些类型的攻击通常使用无界扰动来确保攻击对角度、照明和其他物理条件的变化具有鲁棒性。局部物理攻击的一个缺点是,它们通常是肉眼可见和可检测的,但在许多情况下,攻击者仍然可以通过在自主环境中部署或伪装这些方式来逃避检测。
图 9 给出一个深度学习系统示例,该系统为人脸识别系统,其作用是解锁移动设备或让用户进入建筑物。场景包括了用户的脸和其他背景对象。传感器可以是返回场景数字图像的相机的 CCD 传感器。图像由预测用户身份的人脸分类器处理。如果用户身份有效,执行器将解锁设备或打开闸门。
图 9. 部署在真实环境中的物理攻击,使用物理模式和对象而不是修改数字图像
3.1 SentiNet 介绍
本文提出了一种针对视觉领域物理攻击检测的方法:SentiNet。SentiNet 的目标是识别会劫持模型预测的对手输入。具体而言,SentiNet 的设计目标是在无需事先了解攻击内容的情况下,保护网络免受对抗性样本、触发特洛伊木马和后门的攻击。SentiNet 的核心思想是利用对手错误分类行为来检测攻击。首先,SentiNet 使用模型可解释性和对象检测技术从输入场景中提取对模型预测结果影响最大的区域。然后,SentiNet 将这些提取的区域应用于一组良性测试输入,并观察模型的行为。最后,SentiNet 使用模糊技术将这些合成行为与模型在良性输入上的已知行为进行比较,以确定预测攻击行为。SentiNet 完整结构见图 10。
图 10. SentiNet 架构概述。使用输入的输出和类别生成掩模,然后将掩模反馈到模型中以生成用于边界分析和攻击分类的值
3.1.1 对抗性目标定位
本文方法的第一步是在给定的输入上定位可能包含恶意对象的区域,即识别输入 x 中有助于模型预测 y 的部分。因为物理攻击很小并且是局部的,在不包含攻击部分的输入上评估模型可能能够恢复 x 的真实类别。
分段类别建议。本文提出的攻击检测从识别一组可能由模型 f_m 预测的类别开始。第一类是实际预测,即 y=f_m(x)。通过对输入 x 进行分段,然后对每个分段上的网络进行评估来识别其他类别。Algorithm 1 给出了通过输入分段判断类别的算法。可以使用不同的方法分割给定的输入 x,包括滑动窗口和基于网络的区域建议等。本文方法使用了选择性搜索图像分割算法:选择性搜索根据在自然场景中发现的模式和边缘生成区域列表,然后,对每个给出的分段建议进行评估,并返回前 k 个置信度预测,其中 k 是 SentiNet 的配置参数。