探索对抗性攻击如何操纵机器学习模型。了解白盒和黑盒策略、对 AI 安全的风险以及使用 Ultralytics YOLO26 进行防御。
对抗性攻击是一类复杂的操纵技术,旨在欺骗机器学习(ML)模型以高置信度做出错误预测。这些攻击通过对输入数据(例如图像、音频或文本)引入细微、通常难以察觉的扰动来运作。尽管这些变化在人类观察者看来无害或随机,但它们利用了高维神经网络决策边界中的特定数学漏洞。随着人工智能(AI)系统成为安全关键基础设施不可或缺的一部分,了解这些漏洞如何运作对于开发鲁棒的AI安全协议和防御机制至关重要。
在典型的深度学习(DL)训练过程中,模型优化其权重以最小化训练数据集上的误差。然而,这些模型本质上是在多维空间中创建复杂的映射。对抗性攻击计算此空间中精确的“方向”,需要将输入推过边界,从而改变模型的分类。例如,在计算机视觉(CV)中,通过计算出的“噪声”量改变熊猫图像的像素值,可能会导致系统自信地将其错误分类为长臂猿,即使在人眼看来,该图像仍然与熊猫一模一样。
攻击策略通常根据攻击者对目标系统的访问级别进行分类:
虽然对抗性攻击经常在理论研究中讨论,但它们对实际部署构成了实际风险,特别是在自主系统和安全领域。
要理解某些模型有多脆弱,了解图像如何轻易被扰动会有所帮助。尽管使用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
区分对抗性攻击与其他形式的模型故障或操纵很重要:
开发针对这些攻击的防御是现代 MLOps 的核心组成部分。对抗性训练(即将受攻击的样本添加到训练集中)等技术有助于模型变得更具弹性。Ultralytics Platform 等平台有助于构建严格的训练和验证管道,使团队能够在部署到边缘设备之前评估模型的鲁棒性。

开启您的机器学习未来之旅