Adversarial Attacks
探索对抗性攻击如何操纵机器学习模型。了解白盒和黑盒策略、对 AI 安全的风险,以及如何使用 Ultralytics YOLO26 进行防御。
对抗攻击是一类复杂的操纵技术,旨在欺骗 machine learning (ML) 模型,使其以高置信度做出错误的预测。这些攻击通过向输入数据(如图像、音频或文本)引入微小且通常无法察觉的扰动来运行。虽然这些变化在人类观察者看来无害或随机,但它们利用了高维神经网络 decision boundaries 中的特定数学漏洞。随着 Artificial Intelligence (AI) 系统成为安全关键型基础设施不可或缺的一部分,了解这些漏洞如何运作对于开发稳健的 AI safety 协议和防御机制至关重要。
对抗性攻击的工作原理#
在典型的 deep learning (DL) 训练过程中,模型会优化其权重以最小化训练数据集上的误差。然而,这些模型本质上是在多维空间中创建复杂的映射。对抗攻击会计算该空间中所需的精确“方向”,以将输入推过边界,从而翻转模型的分类。例如,在 computer vision (CV) 中,通过计算出的“噪声”量改变大熊猫图像的像素值,可能会导致系统满怀信心地将其错误分类为长臂猿,尽管肉眼看上去该图像仍然与大熊猫一模一样。
攻击策略通常根据攻击者对目标系统的访问级别进行分类:
- **White-Box Attacks:**攻击者对模型的架构、梯度和 model weights 拥有完全的透明度。这使他们能够以数学方式计算出最有效的扰动,通常使用诸如快速梯度符号法 (FGMS) 之类的技术。
- **Black-Box Attacks:**攻击者对内部模型参数一无所知,只能观察输入和输出。攻击者通常使用“替代模型”来生成能够有效迁移到目标系统的对抗样本,这种属性称为可迁移性。
现实世界的应用与风险#
虽然对抗性攻击经常在理论研究中讨论,但它们对现实世界的部署构成了切实风险,特别是在自动驾驶系统和安全领域。
- **Autonomous Vehicles:**自动驾驶汽车严重依赖 object detection 来解释交通标志。研究表明,在停车标志上贴上精心制作的贴纸或胶带,可以欺骗车辆的视觉系统,使其将其误认为限速标志。这种物理世界中的攻击可能会导致 AI in automotive 应用中出现危险的故障。
- **Facial Recognition 逃逸者:**根据生物特征控制访问的安全系统可能会被对抗性“补丁”破坏。这些是可以佩戴在眼镜或衣物上的打印图案,会破坏 feature extraction 过程。这允许未经授权的个人完全逃避检测或冒充特定用户,从而绕过 security alarm systems。
在 Python 中生成对抗样本#
为了解某些模型的脆弱程度,了解图像被扰动的难易程度大有裨益。虽然使用诸如 YOLO26 之类的模型进行标准推理对于通用场景非常稳健,但研究人员经常模拟攻击以改进 model monitoring 和防御。以下概念示例使用 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相关概念#
区分对抗性攻击与其他形式的模型故障或操纵非常重要:
- **Data Poisoning:**与在推理(测试阶段)期间操纵输入的对抗攻击不同,数据污染涉及在构建模型之前破坏 training data 本身,从而嵌入隐藏的后门或偏差。
- **Prompt Injection:**这是针对 Large Language Models (LLMs) 和文本界面的。虽然在概念上相似(即欺骗模型),但它依赖于语义语言操纵,而不是对像素或信号数据的数学扰动。
- **Overfitting:**这是一种训练失败的情况,即模型学习训练数据中的噪声而不是潜在的模式。发生过拟合的模型通常更容易受到对抗攻击,因为它们的决策边界过于复杂且脆弱。
针对这些攻击开发防御措施是现代 MLOps 的核心组成部分。诸如对抗训练(将受攻击的样本添加到训练集中)之类的技术有助于提高模型的弹性。诸如 Ultralytics Platform 之类的平台促进了严格的训练和验证管道,使团队能够在部署到边缘设备之前评估模型的稳健性。






