Adversarial Attacks
探索对抗攻击如何操纵机器学习模型。了解白盒和黑盒策略、对 AI 安全的风险,以及使用 Ultralytics YOLO26 进行防御的方法。
对抗攻击是一类复杂的操纵技术,旨在诱骗机器学习 (ML)模型,使其以高置信度做出错误预测。这些攻击通过向输入数据(例如图像、音频或文本)引入细微且通常难以察觉的扰动来发挥作用。虽然这些变化在人类观察者看来无害或随机,但它们利用了高维神经网络决策边界中特定的数学脆弱性。随着人工智能 (AI)系统逐渐成为安全关键型基础设施的重要组成部分,了解这些漏洞的运作方式对于制定可靠的AI 安全协议和防御机制至关重要。
对抗攻击的工作原理#
在典型的深度学习 (DL)训练过程中,模型会优化其权重,以最小化训练数据集上的误差。然而,这些模型本质上是在多维空间中构建复杂的映射。对抗攻击会计算出在该空间中所需的精确“方向”,将输入推过某个边界,从而改变模型的分类结果。例如,在计算机视觉 (CV)中,按照计算出的量更改熊猫图像的像素值,可能会使系统自信地将其误分类为长臂猿,尽管在人眼看来图像仍然完全是一只熊猫。
攻击策略通常根据攻击者对目标系统的访问权限级别进行分类:
- **白盒攻击:**攻击者可以完全了解模型的架构、梯度和模型权重。这使其能够通过数学方法计算出最有效的扰动,通常会使用快速梯度符号法 (FGSM) 等技术。
- **黑盒攻击:**攻击者不了解模型的内部参数,只能观察输入和输出。攻击者通常会使用“替代模型”生成对抗样本,使其能够有效迁移到目标系统,这种性质称为可迁移性。
现实世界中的应用与风险#
虽然对抗攻击经常在理论研究中被讨论,但它们会对现实部署构成切实风险,尤其是在自主系统和安全领域。
- **自动驾驶车辆:**自动驾驶汽车高度依赖目标检测来解读交通标志。研究表明,在停车标志上贴上精心设计的贴纸或胶带,可能会诱使车辆的视觉系统将其识别为限速标志。这类物理世界攻击可能导致汽车领域的 AI应用发生危险故障。
- **面部识别规避者:**基于生物识别技术控制访问权限的安全系统,可能会受到对抗性“补丁”的破坏。这些补丁可以是印刷图案,佩戴在眼镜或衣物上,以干扰特征提取过程。这使未经授权的个人能够完全逃避检测,或冒充特定用户,从而绕过安全报警系统。
在 Python 中生成对抗样本#
为了理解某些模型可能有多脆弱,了解图像被轻易扰动的方式会很有帮助。虽然使用YOLO26等模型进行标准推理足以应对一般用途,但研究人员经常模拟攻击,以改进模型监控和防御能力。下面的概念性示例使用 PyTorch 展示如何利用梯度为图像计算对抗性扰动(噪声)。
import torch.nn.functional as F
# Assume 'model' is a loaded PyTorch model and 'image' is a normalized tensor
# 'target_class' is the correct label index for the image
def generate_adversarial_noise(model, image, target_class, epsilon=0.01):
# Enable gradient calculation for the input image
image.requires_grad = True
# Forward pass: get prediction
output = model(image)
# Calculate loss based on the correct class
loss = F.nll_loss(output, target_class)
# Backward pass: calculate gradients of loss w.r.t input
model.zero_grad()
loss.backward()
# Create perturbation using the sign of the data gradient (FGSM)
# This pushes the image in the direction of maximizing error
perturbation = epsilon * image.grad.data.sign()
return perturbation相关概念#
区分对抗攻击与其他形式的模型故障或操纵非常重要:
- **数据投毒:**与在推理(测试时)操纵输入的对抗攻击不同,数据投毒涉及在构建模型之前破坏训练数据本身,植入隐藏后门或偏差。
- **提示词注入:**这专门针对大型语言模型 (LLMs)和文本接口。虽然其概念类似于诱骗模型,但它依赖的是语义语言操纵,而不是对像素或信号数据进行数学扰动。
- **过拟合:**这是一种训练失败,模型学习了训练数据中的噪声,而不是底层模式。过拟合模型通常更容易受到对抗攻击,因为其决策边界过于复杂且脆弱。
开发针对这些攻击的防御措施是现代MLOps的核心组成部分。对抗训练等技术(即将遭受攻击的样本添加到训练集)有助于提高模型的韧性。Ultralytics Platform等平台能够促进严格的训练和验证流程,让团队在将模型部署到边缘设备之前评估其鲁棒性。









