想象你走进一家全自动超市,没有收银员,只有一个叫“小识”的AI机器人守在出口。它靠头顶的摄像头扫一眼你手里的商品,就能报出名字和价格。有一天,一个精明的顾客买走了最贵的进口巧克力,却在结账时被识别成了最便宜的薯片——原因是他往巧克力包装上贴了一张打印出来的、花里胡哨的小贴纸。这张贴纸不是普通涂鸦,而是精心算出来的图案。它能让AI“看走眼”,却让人看不出任何破绽。 这种贴在物理物体上、专门欺骗AI视觉系统的图案,就叫对抗Patch贴片。它不是黑客写的病毒,不是改代码的漏洞,而是一张实实在在的纸——打印出来、贴在物体上、在真实世界的光照和角度下都能生效。一个巧克力盒子大小的贴片,为什么能让见多识广的AI认错东西?这就好比老师认学生靠的是面部特征,而恶作剧的同学在别人背后贴了一张“我是转学生”的纸条,老师扫一眼纸条就信了。AI认东西靠的是像素统计特征,贴片恰好改写了这些特征。 这篇文章将带你完整理解对抗Patch贴片:它从哪来、为什么有效、怎么设计、怎么部署到现实、怎么评估威力、以及如何防御。你不用提前懂任何AI知识,跟着“超市恶作剧”这个故事走一遍,就能建立完整的直觉。
对抗Patch贴片是物理世界AI攻击的核心技术之一。掌握它能帮你理解AI系统的真实脆弱性,对从事自动驾驶、安防监控、零售识别等AI落地的工程师而言,这是一堂绕不开的安全必修课。
可视化演示
动态演示对抗Patch贴片设计的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
对抗Patch贴片设计:对抗Pa 对抗Patch贴片的基本概念与 对抗Patch图案的优化生成方 核心机制可视化 对抗Patch贴片设计整体架构与关键组件
基本概念
先回到超市的故事。AI收银员“小识”刚上岗时表现神勇,任何商品扫一眼就能报出名字。但有个顾客发现,往巧克力上贴一张超市积分兑换的卡通贴纸,小识偶尔会把它念成别的名字。进一步实验发现:贴纸的图案不是随便选的,有些图案“毒性”特别强——只要占包装的十分之一面积,就能稳定骗过小识。这种图案,就是对抗Patch贴片的雏形。
“对抗Patch贴片”这个名字里有三个关键词。“对抗”指它来自对抗样本研究——早年间研究人员发现,给图片加上人类肉眼几乎察觉不到的细微噪声,就能让神经网络把熊猫认成长臂猿。但这些噪声是直接改图片像素的,没法打印出来贴到真实物体上。“贴片”则把战场从数字世界搬到了物理世界:它是一块完整、独立、可打印的图案,不依赖整体图像的微小扰动。“物理攻击”特点则强调了它与普通对抗样本最大的不同——它的目的是在现实光照、角度、距离下触发,而非仅在电脑屏幕上生效。
打个比方:普通对抗样本像“给照片里的人P上一副墨镜”,只能在数字世界骗过AI;对抗Patch则像“做一副真墨镜给人戴上”,拿到哪里都能骗过AI。前者靠修改整张图片的像素,后者靠设计一块独立的、可以贴到任意物体上的“视觉咒语”。
攻击原理
小识为什么会看走眼?它识别商品的逻辑不是“看懂”巧克力,而是把像素矩阵映射到类别概率上:看到深棕色的块状区域,就输出“巧克力 95%”;看到黄色包装袋,就输出“薯片 90%”。这种映射本质上是高维空间中的统计分类。贴片的作用相当于往这个空间里注入一个“强势信号”,把分类边界彻底推偏。
从数学上看,设模型为 $f$,原始输入图像为 $x$,贴片图案为 $\delta$。贴片生效的第一步是把贴片叠加到图像上:被遮罩 $M$ 覆盖的区域替换为贴片图案,其余区域保留原图。整个对抗Patch设计的目标,是找出一张贴片 $\delta$,使得“贴了贴片的图像”在模型 $f$ 下被判定为攻击者指定的目标类别。
1. 贴片参数 $\delta$:$\delta$ 就是我们要设计的贴片图案,它是一个二维像素矩阵。每次迭代,我们都对它做微调。
2. 期望符号 $\mathbb{E}_{x \sim \mathcal{X}}$:从训练图像分布 $\mathcal{X}$ 中随机抽取图像 $x$ 求平均,确保贴片不是只对某一张图有效,而是对一批图都有效。
3. 贴片叠加 $x \oplus \delta$:把贴片 $\delta$ 贴到图像 $x$ 上,得到一张“被攻击”的合成图——对应现实里把贴纸贴到商品包装上。
4. 模型预测对数概率:$\log p_{y_{target}}(f(\cdot))$ 取目标类别概率的对数。对数函数是单调递增的,最大化对数和最大化原始概率等价,但数值上更稳定、梯度更友好。
5. 最优贴片 $\delta^*$:$\arg\max_{\delta}$ 表示遍历所有可能的贴片图案,找到让整体期望值最大的那一个,这就是攻击者最终打印出来的贴纸。
实际计算中,攻击者先用随机噪声初始化一张贴片,然后计算目标概率对贴片的梯度,沿梯度上升方向反复迭代更新贴片图案,几百步后,一张“毒性贴纸”就炼成了。整个过程就像调制一杯越来越辣的蘸水——每次只加一点点辣椒,直到食客(模型)被辣到完全失去理智。
威胁模型
做恶作剧也要讲“剧本”:恶作剧的目标是让老师点名时叫错名字,还是让他完全说不出名字?恶作剧的人能站到同学旁边,还是只能远远地扔纸团?对抗Patch的威胁模型就是回答这类问题的“剧本框架”。
威胁模型通常包含三个核心维度。第一是攻击类型:目标攻击要求模型把物体误认为某个指定类别(比如把“巧克力”认成“薯片”,精确指鹿为马);非目标攻击只要求模型别认对就行(认成香蕉、可乐、纸巾都可以,怎么错都行)。第二是攻击阶段:对抗Patch属于逃逸攻击,它只在模型推理阶段发挥作用,不需要污染训练数据——就像恶作剧者不改老师的教案,只在考试时递小抄。第三是攻击者能力假设:白盒攻击者掌握了模型的全部参数和梯度,可以精确计算贴片图案;黑盒攻击者只能通过反复查询模型的输出,像盲人摸象一样摸索出有效的图案;此外还要考虑攻击者能否接近目标物体、能否把贴片贴上去、贴片有没有尺寸限制。
这些假设直接决定了贴片设计方案。白盒场景下可以直接用梯度优化;黑盒场景下要借助迁移性——即在一个公开模型上生成贴片,再拿到目标模型上碰运气。威胁模型是整个设计的“世界观设定”,不定义清楚,后面所有参数和评估都是空中楼阁。
设计方法
在实验室电脑上,贴片在静态图片上效果拔群,可一旦打印出来贴到真实物体上,光照变了、角度歪了、距离远了,效果往往大打折扣。这就像恶作剧者在灯光昏暗的教室里排练好的台词,一到阳光刺眼的操场上就没人听得清。要让贴片在真实世界“自带舞台效果”,就需要期望变换(Expectation over Transformation, EOT)。
EOT的核心思想是:优化贴片时,不是只考虑它在标准姿态下的效果,而是把所有可能物理变化都“揉”进优化目标里。设贴片合成函数为 $A(x, P)$,物理变换 $t$(旋转、缩放、亮度、透视等)服从分布 $T$,EOT的优化目标是:
1. 贴片合成函数 $A(x, P)$:$A$ 表示把贴片 $P$ 按掩码位置贴到图像 $x$ 上的操作,输出一张“带着贴片的图”。
2. 物理变换 $t$:$t$ 是对整张图施加的仿射变换,包括旋转、平移、缩放、亮度调节等,模拟真实世界中摄像头从不同角度、距离拍摄贴片的效果。
3. 变换分布 $T$ 与期望 $\mathbb{E}_{t \sim T}$:$T$ 是所有可能物理变换构成的空间,期望表示在变换空间上求平均。由于变换空间无穷大,实际中通过蒙特卡洛采样:每次迭代随机抽取一批变换 $t_1, t_2, \dots, t_k$,计算它们的平均损失作为近似。
4. 最大化对数概率:对目标类别概率取对数并求最大化,得到能抵抗物理环境变化的最终贴片 $\hat{P}$。
损失函数的选择也很有讲究。除了直接最大化目标类别概率,还可以组合“最小化真实类别概率”“拉大目标与真实类别的logit差距”等多项,像调鸡尾酒一样按比例混合,让贴片的攻击力更猛烈、更稳定。
关键参数
同样是恶作剧,贴纸贴多大、贴在哪个位置、是正着贴还是斜着贴,效果天差地别。对抗Patch设计中有几个决定成败的关键参数。
Patch尺寸与遮挡比例。贴片面积占图像总面积的比例是关键中的关键。太小了,模型很容易忽略;太大了,虽然攻击成功率上升,但人类肉眼一眼就能看出异常,失去隐蔽性。实际工程中常用5%~20%的遮挡比作为平衡点——这就像给同学背后贴纸条,纸条太小老师看不见,太大又太显眼。
贴片位置与角度。贴片放在物体的哪个部位也至关重要。放在目标检测器注意力最集中的区域(比如人脸的五官中心、商品的Logo区域)效率最高;放在边缘或背景区域,攻击效果会大打折扣。贴片本身的图案方向也要考虑——因为真实世界里贴片可能被斜着贴、倒着贴,训练时需要随机采样贴片自身的旋转角度。
优化超参数。梯度上升的迭代次数、学习率、批次大小同样影响贴片质量。迭代太少,贴片还没“变毒”;迭代太多可能过拟合到训练图像,物理迁移性下降。学习率过大则震荡不收敛,过小则训练缓慢。这些参数像做菜的火候——大火爆炒还是小火慢炖,得根据菜品(场景)灵活调整。
物理部署
设计好的贴片终究要走出电脑,变成一张真实的贴纸。这个环节充满了“理想与现实的差距”。超市里的恶作剧者发现:屏幕上鲜艳的红色贴纸,用喷墨打印机打出来却偏暗偏灰——打印机的色彩空间和屏幕不同,色差会让精心优化的图案失真。
打印材质是第一步关卡。哑光纸不反光但色彩表现平淡,光面纸色彩鲜艳却容易反光,在强光下一片白茫茫。光照鲁棒性则是第二道关卡:晴天、阴天、暖黄的室内灯光、冷白的LED灯,同一个贴片在这些光照下的成像差异很大。设计师的解决办法是在EOT阶段就加入亮度扰动、颜色扰动、高斯噪声等变换,让贴片“见光不死”。多视角一致性是第三道关卡:摄像头从正面、侧面、俯视、远距离拍摄时,贴片经历的是透视变换和尺度缩放。优秀的贴片设计需要在这些变换下都保持攻击力,而不是只在一个特定角度生效。
物理世界还会带来“意外惊喜”:纸张折叠产生的折痕、防水膜的镜面反射、贴片边缘的阴影,都会引入噪声。有些研究甚至发现,适度在训练中添加随机噪声和模糊,反而能让贴片在物理测试中更鲁棒——就像给恶作剧纸条做防水处理,下雨天也能用。
评估指标
怎么客观衡量一张贴片厉不厉害?在超市里,判断标准很朴素:让它骗过小识的次数占总尝试次数的比例。这个比例就是对抗Patch最核心的评估指标——攻击成功率(Attack Success Rate, ASR)。
1. 测试张数 $N$ 与样本 $x_i^{patch}$:$x_i^{patch}$ 是第 $i$ 张贴上贴片的图像,$N$ 是测试集大小。测试集应包含不同物体、不同角度、不同光照下的图像。
2. 指示函数 $\mathbb{1}[\cdot]$:括号内条件成立时取 1,不成立取 0。这里条件是“模型把这张图预测为目标类别 $y_{target}$”。
3. 求和取平均:对所有测试样本的判定结果求和,再除以 $N$,得到 0 到 1 之间的比例,即攻击成功率。
除了ASR,还有几个互补指标。目标混淆率衡量模型把目标物体错认成指定类别的概率,尤其关注“错得是否精确”;物理迁移性指贴片在数字仿真中的成功率与真实物理拍摄下的成功率之间的差距,迁移性好的贴片两个数字都很高;误报率则从防御者视角出发——在正常物体上误报警“有攻击”的比例。好的评估应该像体检报告一样多维覆盖,只看ASR一个数字就像只量体温不量血压。
防御对策
超市老板当然不会坐以待毙。发现有人用贴纸搞鬼后,他给小识安排了“三重防护”。
第一重:Patch检测。在识别商品之前,先让模型扫描图像中是否存在局部异常图案。对抗Patch再精心设计,通常在纹理统计上与自然图案有可察觉的差异——可以通过检测高梯度异常块、计算局部纹理一致性、训练专门的“贴片分类器”来识别。这就像保安先检查顾客身上有没有贴纸,发现可疑图案直接拦截。
第二重:对抗训练。收集一批攻击成功的贴片样本,把它们作为“反面教材”加入训练集,让模型在训练时反复看到“贴了贴片的巧克力应该还是巧克力”,从而学会忽略贴片的干扰。这就像让老师反复看学生的恶作剧照片,练出火眼金睛。对抗训练是目前最有效的防御手段之一,缺点是训练成本高,且不断有新的贴片攻击手段出现,需要持续更新教材。
第三重:输入预处理与模型鲁棒化。对输入图像做随机裁剪、JPEG压缩、颜色抖动等预处理,破坏贴片的精确特征;或者在模型结构上引入局部注意力约束,让模型不只依赖某一小块区域的信号做判断。这三重防线层层递进,从“发现攻击”到“免疫攻击”,构成了完整的对抗防御体系。攻防双方的博弈就像猫鼠游戏——恶作剧者不断设计新贴纸,超市不断升级防线,推动着AI安全技术持续演进。
AI 应用场景
自动驾驶感知系统对抗测试
阶段:模型鲁棒性评估与安全测试
解决的问题:自动驾驶车辆依赖视觉感知模型识别行人、车辆和交通标志。传统测试通过实车路测收集长尾场景,但难以覆盖“恶意物理干扰”这类极端情况。对抗Patch可以模拟真实世界中的恶意干扰——比如在停车牌上贴一张特殊贴片,让车辆误判,帮助团队在实验室里提前发现感知系统的致命漏洞。
具体案例:某自动驾驶团队在封闭测试场中,将一个经过EOT优化的对抗Patch贴片贴在测试车辆的车尾。当被测车辆的感知系统在 30 米外识别该车时,Patch 导致系统将其错误分类为“货车”,从而触发了错误的跟车策略。团队据此修正了感知模型的决策边界。
安防监控人脸识别欺骗测试
阶段:AI系统安全审计
解决的问题:安防摄像头的人脸识别系统可能遭遇物理世界的“面具攻击”。传统的安全审计只关注数字域对抗样本,忽略了可打印贴片的威胁。对抗Patch用于测试人脸识别系统在真实物理环境下的健壮性,评估攻击者仅凭一张打印贴纸能否绕过身份验证。
具体案例:安全团队打印了一张带有对抗纹理的贴片,贴在测试人员的帽檐上。结果显示,在 80% 的测试角度下,人脸识别系统无法正确锁定该人员的面部框,甚至将其识别为另一名已授权人员。审计报告据此建议部署活体检测模块。
零售商品识别系统防欺诈
阶段:业务风控与模型防御
解决的问题:无人零售货柜依靠视觉识别结算,攻击者可能用打印贴片篡改商品外观,低价结算高价商品。传统风控依赖交易行为分析,无法识别视觉层面的物理欺骗。对抗Patch技术可用于提前评估商品识别系统被贴片攻击的风险,并验证防御措施的有效性。
具体案例:某无人零售企业在内部测试中,用对抗Patch贴片覆盖高价商品包装的局部区域,发现系统将其识别为低价同类商品的概率高达 73%。随后团队在图像预处理阶段加入局部异常检测模块,将攻击成功率压低至 8%。
Python 演示
import numpy as np class SimpleClassifier: """一个线性分类器,模拟AI收银员的识别模型。""" def __init__(self, n_classes=3, n_pixels=784, seed=42): rng = np.random.default_rng(seed) self.W = rng.standard_normal((n_pixels, n_classes)) * 0.1 self.b = rng.standard_normal(n_classes) * 0.01 def predict_proba(self, x): logits = x.flatten() @ self.W + self.b e = np.exp(logits - np.max(logits)) return e / np.sum(e) def generate_patch(classifier, image, target_idx, patch_size=9, top_left=(10, 10), epochs=300, lr=0.5): """用梯度上升生成一张对抗Patch贴片。""" img_size = image.shape[0] y0, x0 = top_left patch = np.random.randn(patch_size, patch_size) * 0.02 for _ in range(epochs): patched = image.copy().astype(np.float64) patched[y0:y0 + patch_size, x0:x0 + patch_size] = patch proba = classifier.predict_proba(patched) grad_img = (classifier.W[:, target_idx] - classifier.W @ proba ).reshape(img_size, img_size) patch += lr * grad_img[y0:y0 + patch_size, x0:x0 + patch_size] np.clip(patch, -2, 2, out=patch) return patch def main(): img_size = 28 classifier = SimpleClassifier(n_classes=3, n_pixels=img_size * img_size) rng = np.random.default_rng(0) image = rng.random((img_size, img_size)) * 0.3 true_label = int(np.argmax(classifier.predict_proba(image))) target_idx = (true_label + 1) % 3 patch = generate_patch(classifier, image, target_idx) attacked = image.copy() attacked[10:19, 10:19] = patch p_before = classifier.predict_proba(image) p_after = classifier.predict_proba(attacked) pred_before = int(np.argmax(p_before)) pred_after = int(np.argmax(p_after)) print(f"原始预测类别: {pred_before}, 概率 {p_before[pred_before]:.3f}") print(f"目标类别: {target_idx}") print(f"贴片后预测: {pred_after}, 概率 {p_after[pred_after]:.3f}") print(f"目标概率变化: {p_after[target_idx] - p_before[target_idx]:+.3f}") print("攻击成功!" if pred_after == target_idx else "攻击失败") if __name__ == "__main__": main()
self.W = rng.standard_normal((n_pixels, n_classes)) * 0.1初始化一个线性分类器权重,相当于“AI收银员”的识别知识库,0.1 的缩放让输出概率分布更平滑。logits = x.flatten() @ self.W + self.b把二维图像展平成一维向量,与权重矩阵做矩阵乘法,算出每个类别的打分。patch = np.random.randn(patch_size, patch_size) * 0.02用很小的随机噪声初始化贴片图案,相当于从一张模糊的草稿纸开始绘制恶作剧贴纸。patched[y0:y0 + patch_size, x0:x0 + patch_size] = patch把当前的贴片像素写入图像的目标区域,模拟“把贴纸贴到商品上”。grad_img = (classifier.W[:, target_idx] - classifier.W @ proba).reshape(img_size, img_size)计算“目标类别对数概率”对输入图像每个像素的梯度,告诉我们应该往哪个方向修改像素才能让目标概率升得更高。patch += lr * grad_img[y0:y0 + patch_size, x0:x0 + patch_size]沿着梯度方向更新贴片像素,这是梯度上升的核心一步,每次迭代贴片都变得更“毒”。np.clip(patch, -2, 2, out=patch)把贴片像素值裁剪在合理范围内,避免迭代过程数值爆炸,相当于给贴纸上色时控制颜料用量。target_idx = (true_label + 1) % 3选择一个与真实类别不同的类别作为攻击目标,对应“让收银员把巧克力认成薯片”。
常见误区
误区我一直以为要让AI认错东西,贴纸起码得盖住物体的一半以上,不然模型看得到完整的物体形状,怎么会认错呢?所以每次做实验都贴好大一张,特别显眼。
正解对抗Patch的威力在于“精准”而非“大”。由于神经网络的决策在局部区域非常敏感,一块只占图像5%~10%的小贴片,只要能击中模型依赖的关键特征区域,就足以让决策结果发生翻转。实验中甚至出现过仅占图像1%的Patch成功攻破检测器的案例。贴片太大反而容易被防御模块的异常检测发现,失去实战价值,就像恶作剧纸条贴得太大,老师一眼就发现背后有东西。
为何常见:人们习惯用“视觉显著性”来推理AI——觉得AI认物体和我们一样是看整体轮廓,所以误以为必须大面积遮挡才能改变整体判断。实际上深度网络是“碎片化”决策的,局部特征异常就足以覆盖整体判断。
误区对抗样本不就是给图片加噪声吗?那我把加了噪声的图片直接打印出来贴上去,应该也能攻击成功吧?反正都是像素级别的修改,物理和数字不都是图吗?
正解这是最大的认知误区。数字对抗样本依赖逐个像素级的微小扰动,这些扰动在打印过程中会被打印机的色彩误差、光照变化、摄像头传感器噪声彻底抹平。对抗Patch专门为物理世界设计,通过EOT在旋转、缩放、亮度、模糊等变换上做平均优化,让图案在打印和拍摄的“二次毁灭”下依然保留攻击性。一个在屏幕上有效的数字对抗样图,打印出来大概率完全失效。
为何常见:人们容易把“图像”看作抽象的数字矩阵,忽视了从屏幕到相机的物理链路中每一步都在引入失真。对抗Patch本质上是在和整个物理成像链路做对抗,而不仅仅是和神经网络做对抗。
误区我们公司的模型是部署在云端的,我拿不到梯度信息,所以对抗Patch这种需要梯度优化的攻击,在黑盒场景下根本做不出来。
正解黑盒场景下依然有多种生成策略。最常用的是基于迁移性的方法:在公开的替代模型(如 ImageNet 预训练模型)上用梯度优化生成Patch,再拿到目标模型上测试。由于深度模型之间共享大量相似的决策特征,替代模型上有效的贴片往往对目标模型也有效。此外还可以用无梯度的优化算法,比如遗传算法、差分进化,通过反复查询模型输出来逐步逼近有效贴片,代价只是查询次数多一些。
为何常见:大家把“白盒梯度”当成了生成对抗样本的唯一前提,忽略了迁移性和零阶优化这两个成熟路径。实际攻防中,黑盒才是常态,而有经验的攻击者从不依赖白盒信息。
误区既然对抗训练是有效的防御方式,那我对模型做一轮包含各种Patch样本的对抗训练,之后部署上线就高枕无忧了,攻击者肯定再也骗不过我的模型。
正解对抗训练只是“免疫当时已知的攻击配方”,而非“对所有攻击永久免疫”。一次性对抗训练后,攻击者只要改变Patch的生成策略(比如换一个损失函数、增加新的变换分布、攻击不同的特征层),就往往能重新攻破。现实中更有效的是持续性的“红队-蓝队”循环:防御方持续收集新攻击样本,滚动更新训练集。对抗训练更像人类打疫苗——接种过流感疫苗不代表永不得感冒,每年还得打新疫苗。
为何常见:人们容易把防御手段看成“一劳永逸的补丁”,忽略了攻防是动态演化的博弈过程。对抗训练本质上是把已知攻击模式编码进模型先验,而攻击空间是开放的、无穷的。
面试题
Q1. 对抗Patch贴片最核心的特点是什么?
- A.只能在数字图像上生效
- B.可打印并部署到物理世界← 正确答案
- C.必须修改模型训练数据
- D.只针对文本分类系统
答案:B。对抗Patch的独特之处在于它是一张可打印的物理图案,攻击真实世界中的AI视觉系统。A错误,因为Patch的核心价值正是物理部署;C错误,它是逃逸攻击,不涉及训练数据污染;D错误,它主要针对视觉系统。
Q2. 对抗Patch攻击属于以下哪一类攻击?
- A.数据投毒攻击
- B.模型窃取攻击
- C.逃逸攻击← 正确答案
- D.逻辑炸弹攻击
答案:C。对抗Patch在模型推理阶段施加影响,不污染训练数据、不改变模型结构,属于典型的逃逸攻击。数据投毒发生在训练阶段,模型窃取目标是复制模型,逻辑炸弹是代码层面的恶意逻辑,都不符合。
Q3. 判断一张对抗Patch是否有效,最直接的指标是?
- A.贴片的美观程度
- B.攻击成功率(ASR)← 正确答案
- C.贴片的打印成本
- D.贴片的面积大小
答案:B。攻击成功率衡量贴了贴片的样本中被模型误判为目标类别的比例,是评估攻击效果的核心指标。美观和成本是工程考量而非效果指标,面积大小只影响攻击效果而非结果度量。
Q4. EOT(期望变换)方法解决的核心问题是?
- A.加速模型训练速度
- B.让贴片在物理变换下保持攻击力← 正确答案
- C.压缩贴片的存储体积
- D.提升打印效率
答案:B。EOT通过对旋转、缩放、亮度等物理变换的分布求期望,优化贴片在多种真实拍摄条件下的平均攻击效果。它不涉及模型训练加速,也不属于工程层面的存储或打印问题。
Q5. 在白盒场景下,对抗Patch主要通过什么方法迭代优化?
- A.随机搜索
- B.梯度上升← 正确答案
- C.模拟退火
- D.贝叶斯推断
答案:B。白盒场景能获得模型梯度,攻击者用梯度上升逐步修改贴片像素以最大化目标类别概率。随机搜索效率太低,模拟退火和贝叶斯推断是无梯度方法,在白盒下没有充分利用梯度信息。
Q6. 以下哪个不是威胁模型中需要考虑的要素?
- A.攻击者能否接近目标物体
- B.目标是精确错判还是只要错就行
- C.攻击是白盒还是黑盒
- D.训练数据的存储格式← 正确答案
答案:D。威胁模型关注攻击者能力、攻击类型(目标/非目标)、攻击阶段等要素。训练数据存储格式是数据工程的技术细节,与攻击场景的威胁建模无关。
Q7. 影响对抗Patch物理部署效果的因素有哪些?
- A.打印机的色彩空间← 正确答案
- B.环境光照条件← 正确答案
- C.摄像头拍摄角度← 正确答案
- D.训练服务器的CPU型号
答案:ABC。打印色彩会改变贴片的精确像素值,光照和拍摄角度会改变成像结果,EOT正是针对这些物理变换做优化。CPU型号只影响训练速度,不影响部署后贴片的物理生效效果。
Q8. 关于对抗训练防御Patch攻击,下列说法正确的是?
- A.一次对抗训练可永久免疫所有Patch攻击
- B.对抗训练将已知攻击模式编码进模型,需要持续更新← 正确答案
- C.对抗训练只能防御数字攻击,无法防御物理攻击
- D.对抗训练会消除模型的所有分类能力
答案:B。对抗训练通过在训练集中加入Patch样本让模型学会忽略贴片干扰,但只能防御训练时见过的攻击模式,攻击者改变优化策略后仍可能攻破。A过于绝对,C错误,D忽略了对抗训练通过平衡鲁棒性和精度实现防御。
Q9. 黑盒场景下生成对抗Patch的首选策略是?
- A.放弃攻击,黑盒无法生成Patch
- B.在替代模型上生成并利用迁移性← 正确答案
- C.直接修改模型权重
- D.删除模型缓存
答案:B。黑盒攻击者拿不到目标模型梯度,但可以在公开替代模型上用梯度优化生成Patch,利用模型间的决策特征相似性实现迁移攻击。A是错误认知,C是白盒行为,D与攻击无关。
Q10. 设计一张有效对抗Patch时,需要重点调优哪些参数?
- A.贴片的尺寸与遮挡比例← 正确答案
- B.贴片在物体上的粘贴位置← 正确答案
- C.梯度上升的迭代次数与学习率← 正确答案
- D.数据库的索引结构
答案:ABC。Patch尺寸、位置、优化超参数(迭代次数、学习率)都直接决定攻击成功率与隐蔽性的平衡,是设计核心。数据库索引属于存储层问题,与贴片图案设计无关。