想象有一位手艺精湛的“光学裁缝”林师傅,她接到一个委托:制作一件能让“AI保安”认不出来的光学隐身衣——也就是在路牌上贴一张对抗贴纸,骗过自动驾驶汽车的眼睛。在试衣间里(实验室的数字世界),这件隐身衣效果惊人,无论灯光怎么摆、角度怎么调,AI保安都会把她指定的假标签当成真标签。可当她满怀信心地把隐身衣穿到户外,阳光一照、路人一斜视,衣服立刻露馅——AI保安准确喊出了路牌的真名。问题出在哪?光照变了、视角变了,图案还是那个图案,但“穿法”已经完全不同。这篇内容要讲清楚的,正是这类“物理对抗攻击”在现实世界中失效的根本原因——光照鲁棒性与视角鲁棒性,以及研究者如何通过期望变换训练、物理-数字循环等手段,把隐身衣从试衣间安全地穿到大街上。理解了这些,你就知道为什么实验室里百发百中的攻击,到了现实中常常成了“纸老虎”。
对 AI 从业者而言,理解物理攻击的鲁棒性难题,是评估真实世界 AI 系统安全边界、设计可信防御方案的核心能力,也是投身 AI 安全攻防研究的第一块敲门砖。
可视化演示
演示分布式事务两阶段提交(2PC):协调者发起Prepare阶段收集投票,全部同意则Commit,任一拒绝则Abort,保证原子性。
本节配有交互动效(进入视口后自动加载,约 3KB)。
两阶段提交流程 Prepare阶段:协调者询问所有参与者是否可以提交 所有参与者同意则进入Commit阶段,执行事务提交 任一参与者拒绝则进入Abort阶段,全部回滚 提交条件 = 所有参与者投票均为Yes
物理攻击困境
林师傅在试衣间里制作隐身衣时,只需要看设计图(数字图像)就行了——图纸上哪里多加一针、哪里减一线,AI保安都会乖乖上当。这就是实验室里的数字对抗攻击:攻击者直接修改图片的像素,让模型把“STOP“识别成”限速”。在数字世界里,攻击者手里握着完整的梯度信息,就像裁缝知道每一针下去衣服会怎么变化,所以做起攻击来格外轻松。
可一旦把设计图印成实物,麻烦就来了。物理攻击要经历一条漫长的链路:数字像素变成打印机油墨,油墨反射环境光线进入摄像头,镜头把光线聚焦到传感器,传感器量化成新的数字像素。这条链路上每一步都在“损耗”图案的精细度:打印机的色彩管理会偏移,摄像头的白平衡会扭曲颜色,传感器还会引入噪点。更关键的是,数字攻击精心计算的那一点点像素扰动,在物理世界里根本不可能被精确复现——印出来的“一针”和图纸上的“一针”早已不是同一针。
于是研究者把数字攻击的优化目标写成这样:
这个公式只在“图纸”上成立。林师傅很快意识到,想让隐身衣真正走出试衣间,必须回答两个现实问题:户外的光怎么变,观察的角度怎么变。这正是接下来两节的主角——光照和视角。
- 对抗扰动在原图 \(x\) 上叠加一个极小的扰动 \(\delta\),肉眼几乎看不出变化。
- 模型输出把带扰动的图片送入分类器 \(f\),得到对各类别的预测分数。
- 损失函数\(\mathcal{L}\) 衡量模型输出与攻击目标 \(y_{\mathrm{adv}}\)(比如“限速”)的差距,攻击者希望损失越小越好。
- 范数约束限制扰动的大小不超过 \(\varepsilon\),保证对抗样本不被肉眼察觉。
光照干扰机理
试衣间里有一盏固定的小灯,林师傅设计的图案在灯下完美隐身。可户外世界有清晨的暖阳、正午的烈日、黄昏的橙光、路灯的黄光、阴天的散射光……每一束光都像一位挑剔的甲方,让同一件隐身衣呈现完全不同的颜色。AI保安的眼睛(摄像头)看到的,其实是环境光照在物体表面反射后的结果。这里有一个经典的图像形成模型:
这个模型揭示了物理攻击的第一个大坑:同色异谱。打印机调出来的两瓶墨水,在试衣间的灯下看起来一模一样,换到日光灯下就“分道扬镳”了。同样,对抗贴纸上精心调出的颜色,在打印时经过色彩管理、在拍摄时经过白平衡校正,早已不是数字设计时的数值。为了应对光照变化,研究者们想到了在数字世界里“模拟光照”——用三维渲染引擎(如 Blender)或者神经辐射场(NeRF)生成各种光照条件下的图像,让隐身衣在虚拟世界里先“晒够太阳”。但模拟终归是模拟,物理世界的复杂性永远比渲染器多一层。
- 物体反射率\(R(\mathbf{x})\) 是物体表面固有的反射特性——布料本身是什么颜色,与光照无关。
- 环境光照\(L(\mathbf{x})\) 是光源辐射到该点的能量分布——太阳、路灯、阴影都算在内。
- 传感器接收二者相乘得到相机传感器实际接收到的图像 \(I(\mathbf{x})\),所以同一种颜色在不同光下完全不同。
视角变化影响
如果说光照是换了个灯泡,那视角就是换了双眼睛。林师傅发现,隐身衣从正面看天衣无缝,可只要 AI 保安稍微侧一下头,衣服侧面的“针脚”就全露出来了。物理世界是三维的,路牌上的对抗贴纸在二维图像里设计时,默认观察者正对着它。一旦观察者的位置移动,贴纸的图案就会发生透视形变——原本方方正正的方块变成平行四边形,原本对齐的纹理错位堆积。
用相机模型来描述,三维空间中的一个点 \((X,Y,Z)\) 投影到二维像素 \((u,v)\) 的过程是这样的:
视角变了,外参就变了,投影像素自然跟着变。研究者发现,物理对抗样本通常只在某个“视角锥”内有效——正面 ±20 度左右还行,再偏就断了。此外还有个容易被忽视的距离模糊效应:设计贴纸时按 10 米距离优化,离近了贴纸像素被放大变得粗糙,离远了图案被压缩成一团噪声,攻击精度急剧下降。要想多视角都稳定,就要让图案在多种位姿下保持“攻击一致性”,这为下一节的思路埋下伏笔。
- 三维世界点路牌上贴纸的某个点,在世界坐标系中的位置。
- 外参变换\([R\ |\ t]\) 是相机的旋转和平移,表示相机看了多高、偏了多少角度。
- 内参投影\(K\) 是相机内参(焦距、主点),把三维坐标映射到二维像素平面。
期望变换训练
既然单一视角、单一光照不靠谱,林师傅想了个“笨办法”:把隐身衣穿在模特身上,在各种各样的灯光、各种角度的镜头前走一遍秀,每走一步都记下 AI 保安的反应,最后综合所有场景来修改衣服。这套思路在学术圈有个正式名字——期望变换训练(EOT,Expectation Over Transformation)。它的核心思想是:不要只优化“一张图骗过模型”,而是优化“一批变换后的图平均骗过模型”。
EOT 的优化目标长这样:
EOT 的梯度是通过变换层反向传播的,所以要求变换必须是可微的——平移、旋转、缩放、亮度调整都有现成的可微实现,这也是它工程上可行的前提。它和传统对抗训练的出发点正好相反:对抗训练是让模型“见过各种扰动从而变强”,EOT 是让攻击者“穿过各种环境从而不变弱”。两者殊途同归,都在逼着攻防双方把“现实世界的变化”纳入考虑范围。有了 EOT,林师傅终于有了一件能适应多种天气和角度的隐身衣——但她心里清楚,图纸上的完美还不够,得真的穿出去看看。
- 变换采样从变换分布 \(\mathcal{T}\) 中随机抽取一个变换 \(t\)——比如随机平移几个像素、随机调亮一点、随机旋转几度。
- 变换后攻击对加了扰动的对抗样本先做变换,再送入模型计算损失。
- 求期望损失对所有可能变换下的损失求平均,优化目标变成“在所有场景下平均骗得过 AI”。
物理攻击流程
林师傅的工作台上多了一条流水线:设计、打印、拍照、改设计,循环往复。这就是物理攻击的标准流程,也是把“数字世界的隐身衣”变成“现实世界的隐身衣”的唯一路径。第一步是数字生成,用 EOT 这类算法在模拟环境里优化出对抗图案;第二步是打印制作,把图案印到贴纸或亚克力板上,注意色彩管理、墨水和材质的选择;第三步是拍摄验证,把打印好的贴纸贴到真实场景中,用目标摄像头从不同距离、角度拍照,采集真实样本;第四步是物理-数字循环,把采集到的真实照片喂回优化器,让算法根据“现实世界的反馈”再次调整图案。
这个循环的尽头,是一个关键衡量指标——攻击成功率(ASR):
一个成熟的物理攻击,ASR 往往只有 60%-85%,远达不到数字世界的 99%。林师傅的隐身衣在试衣间里几乎无敌,但到了真实道路上,它依然会不时“露馅”。
- 多次物理试验在真实或近似真实的环境下做 \(N\) 次拍摄,每次变换 \(t_i\) 代表不同的光照、角度和距离。
- 判断是否攻击成功\(\mathbb{I}[\cdot]\) 是示性函数,模型预测的类别 \(\arg\max_c f(\cdot)\) 等于攻击目标 \(y_{\mathrm{adv}}\) 时记 1,否则记 0。
- 求平均成功率把 \(N\) 次试验的成功次数做平均,得到攻击成功率 ASR。
现实风险场景
即便命中率不是 100%,这件隐身衣也足以在真实世界制造麻烦。最著名的案例是 2018 年 Eykholt 等人的工作:在 STOP 路牌上贴几条黑白小贴纸,自动驾驶的识别模型就把“停”误认为“限速 80”。贴纸面积不到路牌的十分之一,人类完全不会多想,但 AI 却信以为真。这就是路牌欺骗攻击,风险场景直指自动驾驶——如果车辆在高速上把 STOP 牌当成限速牌而不刹车,后果不堪设想。
另一个经典场景是人脸对抗眼镜。2016 年 Sharif 等人设计了一款印着特殊花纹的眼镜框,戴上后能够让人脸识别系统把人认成别人(比如把男研究员认成女明星)。这种攻击对安防监控、刷脸支付都是潜在威胁。从这些案例能总结出一个规律:物理攻击的有效范围很有限——路牌贴纸必须在特定的距离(比如 5-15 米)和特定的视角(正面偏转 25 度以内)才能生效;人脸眼镜的有效性也高度依赖摄像头角度和光线条件。这也引出一个物理攻击的“铁三角”约束:
物理攻击的实际扰动上界 \(\varepsilon_{\mathrm{phys}}\) 取三者最小值,这决定了攻击的可行窗口并不大。防御者也不是吃素的:一方面可以用对抗训练把各种物理变换“喂”给模型,让模型见过世面;另一方面可以用多传感器融合(激光雷达 + 摄像头 + 毫米波雷达)交叉验证,单一路牌欺骗就难以奏效。隐身衣能骗过一只眼睛,骗不过三只。
- 打印精度\(\varepsilon_{\mathrm{print}}\) 是打印机分辨率对扰动大小的限制——太细的纹样印不出来。
- 相机误差\(\varepsilon_{\mathrm{camera}}\) 是镜头模糊、传感器量化带来的误差。
- 光照波动\(\varepsilon_{\mathrm{light}}\) 是环境光照变化导致的颜色偏移。
可行边界展望
林师傅最后想明白了:这世上没有完美的隐身衣,只有适合特定场景的伪装术。物理攻击的鲁棒性有它的天然上限——打印精度、相机量子效率、光照随机性,这些物理规律决定了扰动不可能无限大,也不可能无限稳。研究者给出过一个直观的不等式关系:物理环境下的期望损失,永远不可能低于数字世界里的单点损失,因为物理噪声只会让攻击变难:
这个不等式划出了物理攻击的“悲观边界”:攻击者再怎么优化,现实世界的不可控因素都会抬高攻击难度。于是学界和工业界的目光转向了数字孪生攻防平台——在三维虚拟世界建立路牌、车辆、场景的高保真数字副本,用物理引擎模拟光照、雨雾、视角,先让攻击和防御在虚拟世界里“打三百回合”,再把胜出的方案部署到真实系统。这既降低了物理试验成本,又能系统性地探索鲁棒性边界。对攻防双方来说,物理世界不是一个可以精确计算的棋盘,而是一场在不确定性中博弈的游戏——谁先掌握光照和视角的规律,谁就多一分胜算。
- 数字损失在无干扰的数字世界里,对抗样本的损失。
- 物理期望损失在光照、视角等真实变换下的平均损失。
- 不等式含义变换带来的噪声只会增加损失,所以物理攻击永远比数字攻击更难成功。
AI 应用场景
1. 自动驾驶路牌攻击测试
阶段:模型安全评估与红队测试
解决的问题:自动驾驶厂商在路测前要回答“视觉系统会不会被物理世界的恶意贴纸欺骗”。传统做法是把车开到真实道路上贴路牌测试,成本高、风险大、场景覆盖少。利用 EOT 和物理-数字循环,可以在虚拟场景中模拟不同日照角度、雨雾天气、拍摄距离,自动搜索最容易让模型误判的贴纸图案,在路测前就暴露安全隐患。
具体案例:某自动驾驶团队在仿真器中放置了一块“STOP“牌,用 EOT 优化出一组黑白贴纸,然后在虚拟场景中从 10 米、20 米、30 米三个距离和 ±30° 视角下分别拍摄,发现 20 米以内攻击成功率超过 80%,而 30 米外迅速衰减。据此他们为感知模型补充了”距离鲁棒性”训练数据,并加装了激光雷达交叉验证模块。
2. 人脸识别对抗攻击防御验证
阶段:模型鲁棒性加固
解决的问题:人脸识别系统部署在安防闸机、刷脸支付等场景,物理对抗眼镜和对抗贴纸可能让系统把人认错。传统评估只测试数字照片攻击,忽略了光线和角度的影响。利用光照/视角鲁棒性分析框架,可以在不同光源(室内暖光、户外日光)、不同角度(正面、低头、侧脸)下系统性地测试攻击有效性,从而针对性地做对抗训练。
具体案例:某支付团队制作了一款对抗眼镜框,在数字照片上攻击成功率 95%,但在闸机实际环境中只有 41%——因为闸机摄像头位于头部上方,佩戴者的自然低头动作让图案发生了明显的透视形变。团队据此优化了眼镜框图案,并升级了人脸活体检测,让物理攻击在真实部署环境中的成功率降到 10% 以下。
3. 无人配送车视觉鲁棒性巡检
阶段:模型上线前巡检与持续监控
解决的问题:无人配送车依赖摄像头识别交通信号和行人,城市环境光照变化剧烈(楼宇阴影、车灯、傍晚逆光),物理攻击贴纸可能混入真实环境中。通过光照模拟和视角变换采样,可以建立“鲁棒性巡检报告”,量化模型在各类物理扰动下的置信度波动,帮助运营团队决定哪些路段需要降速或增加传感器。
具体案例:一家无人配送公司在园区测试中发现,同一张“禁止通行”贴纸,在上午十点的侧光下识别正常,下午四点逆光时模型的置信度从 0.92 骤降到 0.55。通过渲染不同日照角度的训练数据并重训模型,逆光场景下的识别准确率回升到 0.96。
Python 演示
import numpy as np IMG_SIZE = 20EPS = 0.4 def make_digit(): """生成一个简易的 '7' 图案, 作为被攻击的目标物体.""" img = np.zeros((IMG_SIZE, IMG_SIZE)) img[2:8, 4:16] = 1.0 img[6:18, 12:14] = 1.0 return img def translate(img, dx, dy): """将图像平移 (dx, dy) 个像素, 模拟视角或位置的改变.""" h, w = img.shape out = np.zeros_like(img) out[max(0, dy):min(h, h + dy), max(0, dx):min(w, w + dx)] = \ img[max(0, -dy):h - max(0, dy), max(0, -dx):w - max(0, dx)] return out class SimpleModel: """一个极简的二分类线性模型, 用于演示物理攻击的鲁棒性对比.""" def __init__(self, rng_seed=0): rng = np.random.default_rng(rng_seed) self.w = rng.normal(0, 0.2, (IMG_SIZE * IMG_SIZE,)) self.b = 0.0 base = self.w @ make_digit().ravel() + self.b if base >= 0: self.w = -self.w self.b = -self.b - 0.1 def logit(self, imgs): flat = imgs.reshape(imgs.shape[0], -1) return flat @ self.w + self.b def loss_and_grad(self, imgs, target=1.0): logit = self.logit(imgs) p = 1.0 / (1.0 + np.exp(-logit)) loss = -np.mean(target * np.log(p + 1e-12) + (1 - target) * np.log(1 - p + 1e-12)) dlogit = (p - target) / imgs.shape[0] grad_flat = dlogit[:, None] * self.w[None, :] return loss, grad_flat.reshape(imgs.shape) def fgsm_attack(model, img, eps=EPS): """普通白盒攻击: 只利用单张原图的梯度.""" _, grad = model.loss_and_grad(img[None]) adv = img - eps * np.sign(grad[0]) return np.clip(adv, 0, 1) def eot_attack(model, img, eps=EPS, samples=30, seed=42): """EOT攻击: 对随机平移+亮度变换求期望梯度.""" rng = np.random.default_rng(seed) grads = [] for _ in range(samples): dx = rng.integers(-2, 3) dy = rng.integers(-2, 3) br = rng.uniform(0.8, 1.2) t_img = np.clip(translate(img, dx, dy) * br, 0, 1) _, grad = model.loss_and_grad(t_img[None]) back = translate(grad[0], -dx, -dy) * br grads.append(back) avg_grad = np.mean(grads, axis=0) adv = img - eps * np.sign(avg_grad) return np.clip(adv, 0, 1) def attack_success_rate(model, adv, trials=200, seed=7): """在随机平移和亮度扰动下统计攻击成功率.""" rng = np.random.default_rng(seed) hits = 0 for _ in range(trials): dx = rng.integers(-3, 4) dy = rng.integers(-3, 4) br = rng.uniform(0.6, 1.4) test_img = np.clip(translate(adv, dx, dy) * br, 0, 1) if model.logit(test_img[None])[0] > 0: hits += 1 return hits / trials def main(): model = SimpleModel() img = make_digit() clean_logit = model.logit(img[None])[0] print("clean logit:", round(clean_logit, 3)) adv_f = fgsm_attack(model, img) adv_e = eot_attack(model, img) print("FGSM success:", round(attack_success_rate(model, adv_f), 3)) print("EOT success:", round(attack_success_rate(model, adv_e), 3)) if __name__ == "__main__": main()
if base >= 0:确保模型对原始图案输出负分数(识别为类 0),这样攻击目标就是让它误判为类 1。dlogit[:, None] * self.w[None, :]交叉熵损失对输入图像的梯度等于预测误差乘以权重向量,这是所有梯度攻击的基础。t_img = np.clip(translate(img, dx, dy) * br, 0, 1)采样一种物理变换:随机平移几个像素模拟视角移动,随机调亮度模拟光照变化。avg_grad = np.mean(grads, axis=0)对多个变换下的梯度取平均,这就是 EOT 的“期望梯度”核心步骤。adv = img - eps * np.sign(avg_grad)沿期望梯度的反方向施加扰动,生成对变换鲁棒的对抗样本。
常见误区
误区我在电脑上把路牌的像素改一下,模型就认错了,那我把这张图打印出来贴到真路牌上,自动驾驶的车应该也会认错吧?毕竟图是一样的。
正解数字世界的对抗样本是在像素级精确计算出来的,依赖模型对每个像素的梯度。打印机会丢色阶,摄像头有镜头畸变和白平衡,环境光会改变颜色,这些都会把精心设计的扰动“抹掉”。对抗样本的精度是像素级的,而物理世界的误差是毫米级的,两者根本不在一个量级。必须经过物理-数字循环反复修正,数字图案才能在物理世界中生效。
为何常见:人眼看到“打印出来的图”和“屏幕上的图”差不多,就默认机器看到的也一样,忽略了成像链路中的各种噪声。
误区EOT 不就是在图片上加一些随机噪声,然后重新算一次梯度吗?那和普通的数据增强有什么区别?
正解EOT 里的变换不是无意义的噪声,而是模拟物理世界的真实变换——平移、旋转、缩放、亮度变化、甚至透视变换。它要求变换可微(或可数值近似),让梯度能穿过变换层回传到对抗扰动上。普通数据增强是增强模型,EOT 是增强攻击者。两者方向相反:一个让模型更鲁棒,一个让攻击更鲁棒。
为何常见:因为 EOT 的数学形式里确实有一个“期望”,初学者容易把它和随机噪声的数据增强混为一谈。
误区既然光照和视角会干扰攻击,那我让 EOT 的变换范围覆盖所有角度、所有亮度,攻击成功率不就 100% 了吗?
正解鲁棒性不是免费的。变换范围越大,优化问题越难收敛,扰动往往需要更大,而增大扰动会被打印精度和肉眼可见性限制。物理鲁棒性有一个天然上界:打印误差、相机误差、光照误差三者取最小。想在所有角度、所有距离都成功,本质上是让图案在每个视角下都“恰好”骗过模型,这在物理规律上是不可实现的。
为何常见:人们习惯了数字世界里“只要优化就能逼近完美”的思维,低估了物理世界的随机性。
误区如果一辆自动驾驶车被路牌贴纸骗了,那所有用同款模型的车上路都会识别错误,攻击是通用的。
正解物理攻击的“有效范围”非常窄:它对相机型号、安装位置、焦距、光圈都很敏感。同一张贴纸,A 车的摄像头装在挡风玻璃上方,B 车装在保险杠附近,两者看到的贴纸形变完全不同。此外,很多系统还有多传感器融合、时序校验等机制,单帧的误判会被后续帧纠正。物理攻击更像是一把“一次性钥匙”,而不是一把“万能钥匙”。
为何常见:因为数字对抗样本具有迁移性,人们想当然认为物理攻击也有同样的迁移性,忽略了成像链路带来的个体差异。
面试题
Q1. 数字世界的对抗样本直接打印后物理攻击容易失效,最核心的原因是什么?
- A.打印机分辨率不够高
- B.现实光照与视角产生干扰← 正确答案
- C.模型在推理时没有梯度
- D.打印机成本过高难以量产
答案:B。核心原因在于物理链路中光照、视角、打印色彩等现实因素会破坏精心设计的像素级扰动,选项 A 只是其中一环且不是最核心的,C 说错了方向(推理时本来就没有梯度),D 与攻击有效性无关。可以把对抗样本想成一件隐身衣,数字世界里灯光角度固定,换上真实世界的灯光和视角自然就露馅了。
Q2. EOT(期望变换训练)中“期望”指的是对什么求期望?
- A.对模型参数的期望
- B.对扰动大小的期望
- C.对物理变换分布的期望← 正确答案
- D.对数据集标签的期望
答案:C。EOT 对从变换分布中采样得到的平移、旋转、亮度等物理变换求损失期望,目的是让对抗样本在这些变换下平均攻击成功。对模型参数求期望是贝叶斯神经网络的思路,对扰动大小和标签求期望都与 EOT 无关。这就像让模特穿着隐身衣在多种灯光角度下走秀,取走秀效果的平均值来改衣服。
Q3. 以下哪些属于物理攻击需要面对的光照变化?
- A.不同时刻的日照强度不同← 正确答案
- B.光源色温从暖黄变为冷白← 正确答案
- C.相机镜头上有灰尘污渍
- D.楼宇阴影遮挡部分贴纸← 正确答案
答案:ABD。日照强度、色温变化、阴影遮挡都属于光照变化,它们是光照鲁棒性研究的核心对象。镜头污渍是成像系统本身的噪声,与光照无关。用隐身衣的比喻来说,前三个选项是换了不同的灯,而镜头污渍是保安的眼睛花了,这是两个层面的问题。
Q4. 视角变化使物理对抗样本失效的主要原因是?
- A.显示屏分辨率改变
- B.透视投影造成几何形变← 正确答案
- C.神经网络结构不同
- D.梯度更新不收敛
答案:B。视角变化通过相机外参改变投影关系,使贴纸图案发生透视形变,图案和模型训练时见过的样子对不上,攻击自然失效。屏幕分辨率和模型结构与视角无关,梯度不收敛是攻击算法层面的问题。就像一张正面写着字的纸条,侧过来看字就挤压成一条线,谁也认不出来。
Q5. 物理攻击标准流程的正确顺序是什么?
- A.打印-拍摄-数字生成-循环优化
- B.数字生成-打印-拍摄-物理数字循环← 正确答案
- C.拍摄-打印-数字生成-直接部署
- D.数字生成-拍摄-打印-直接部署
答案:B。物理攻击必须先有数字图案,再打印成实物,然后拍摄验证,最后把照片反馈回优化器迭代修改。选项 A 把数字生成放错了位置,C 和 D 要么顺序颠倒要么缺少反馈循环。这个流程就像裁缝先画设计图,再做样衣,穿上街拍照,最后根据照片修改设计,循环往复。
Q6. 以下哪些方法能有效提升物理对抗样本的鲁棒性?
- A.使用 EOT 对多种变换求期望梯度← 正确答案
- B.在打印前进行色彩校正仿真← 正确答案
- C.增大扰动幅度并施加范数约束← 正确答案
- D.仅在一张固定照片上反复迭代
答案:ABC。EOT 让攻击适应多种物理变换,色彩校正仿真能缩小数字与物理的颜色偏差,增大扰动幅度并在范数约束内优化可以让图案更容易被打印机还原。只在一张固定照片上迭代会过拟合到那个特定视角和光照,鲁棒性很差。这相当于只让隐身衣在一种灯光下一个角度试穿,换环境就失效。
Q7. 攻击成功率(ASR)衡量的是什么?
- A.模型训练收敛的速度
- B.对抗样本让模型误判的比例← 正确答案
- C.打印图案的清晰程度
- D.GPU 渲染的帧率水平
答案:B。ASR 是在多次物理试验中,对抗样本成功让模型输出攻击目标类别的比例。它是衡量物理攻击有效性的核心指标。模型收敛速度、图案清晰度和渲染帧率都和攻击是否成功无关,完全是不同维度的概念。
Q8. 为什么“同色异谱”现象会影响物理对抗样本?
- A.打印机无法打印出黑色
- B.颜色在不同光源下呈现不同← 正确答案
- C.相机对红外光不敏感
- D.模型只能处理灰度图像
答案:B。同色异谱指两种颜色在某光源下看起来相同,换一种光源后变得不同。对抗贴纸在打印时调好的颜色,可能只在设计时的灯光下正确,换到户外日光或路灯下就偏离目标颜色,导致攻击失效。这与打印机能否打黑色、相机红外敏感度、模型灰度处理都无关。
Q9. 关于物理攻击在自动驾驶中的风险,下列说法正确的是?
- A.路牌贴纸可导致识别为其他标志← 正确答案
- B.攻击只能在固定角度和距离内生效← 正确答案
- C.多传感器融合可缓解此类攻击← 正确答案
- D.物理攻击对自动驾驶毫无威胁
答案:ABC。历史研究已证明路牌贴纸能把 STOP 识别为限速牌,但攻击有严格的视角和距离窗口。多传感器融合(激光雷达、毫米波雷达)能交叉验证视觉结果,有效缓解单一视觉攻击。选项 D 与已知事实完全相反。物理攻击有点像“视觉魔术”,离得近正对着看有效,换个角度或加个雷达就穿帮了。
Q10. 关于 EOT 中变换的梯度回传,下列说法正确的是?
- A.变换必须是可微的或可用数值方式近似← 正确答案
- B.变换必须是非线性的才可以回传
- C.变换必须由 Gumbel-Softmax 采样得到
- D.变换的梯度只能被丢弃不能回传
答案:A。EOT 要让梯度穿过变换层传到对抗扰动上,因此变换必须可微;平移、旋转、亮度调整都有可微实现,不可微的变换也可以用数值近似。非线性不是可微的前提,Gumbel-Softmax 是处理离散采样的技巧,与 EOT 的通用变换无关,丢弃梯度更是与 EOT 背道而驰。就像裁缝修改衣服时必须知道每根线改动带来的变化方向,如果模特走秀的动作完全无规律可循,设计师就无法针对性地改衣服。