当前位置: 首页 > news >正文

PGD对抗样本生成算法实现(pytorch版)

PGD对抗样本生成算法

  • 一、理论部分
    • 1.1 PGD 原理
      • (1) 数学形式
      • (2) 核心改进
    • 1.2 PGD 与其他攻击对比
    • 1.3 注意事项
  • 二、代码实现
    • 2.1 导包
    • 2.2 数据加载和处理
    • 2.3 网络构建
    • 2.4 模型加载
    • 2.5 生成对抗样本
    • 2.6 对抗测试
    • 2.7 启动攻击
    • 2.8 效果展示

一、理论部分


1.1 PGD 原理

PGD 是 BIM/I-FGSM 的增强版,通过 随机初始化 + 迭代投影约束 生成更强对抗样本,核心特点:

(1) 数学形式

x t + 1 = Π x ± ϵ ( x t + α ⋅ sign ( ∇ x t J ( x t , y ) ) ) x_{t+1} = \Pi_{x \pm \epsilon} \left( x_t + \alpha \cdot \text{sign}(\nabla_{x_t} J(x_t, y)) \right) xt+1=Πx±ϵ(xt+αsign(xtJ(xt,y)))

  • Π \Pi Π:投影操作(将扰动约束在 ϵ \epsilon ϵ-ball 内)
  • α \alpha α:单步步长(通常设为 ϵ / T \epsilon/T ϵ/T T T T 为迭代次数)
  • 随机初始化 x 0 = x + U ( − ϵ , ϵ ) x_0 = x + \mathcal{U}(-\epsilon, \epsilon) x0=x+U(ϵ,ϵ)

(2) 核心改进

特性 BIM/I-FGSM PGD
初始化 从原始图像开始 随机扰动初始点
收敛性 可能陷入局部最优 通过多起点逃离局部最优
攻击强度 中等 更强(对抗训练黄金标准)

1.2 PGD 与其他攻击对比

攻击方法 初始化 迭代 投影约束 主要用途
FGSM 原始图像 单步 快速验证
BIM/I-FGSM 原始图像 多步 平衡效率与效果
PGD 随机扰动 多步 强攻击/对抗训练

1.3 注意事项

  1. 设备一致性:确保模型和输

相关文章:

  • React编程模型:React Streams规范详解
  • 阿里:多模态大模型预训练数据治理
  • VBA第三十四期 VBA中怎么用OnKey事件
  • Java与代码审计-Java基础语法
  • 【Pandas DataFrame】
  • SpringBoot学习Day2
  • SAP学习笔记 - 用Deepseek 整理SAP 09 - SAP中 BAPI 的核心概念,以及常用 BAPI 一览
  • (二十三)Dart 中的 Mixins 使用教程
  • C之(16)scan-build与clang-tidy使用
  • Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能
  • 小白电路设计-设计5-可调式单电源直流稳压电路设计
  • 力扣经典算法篇-4-删除有序数组中的重复项 II(中等)
  • Python-Django入手
  • git的clone报错unable to access 443
  • 批量将 PDF 文档中的图片提取到指定文件夹
  • 云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
  • AI Agent 实战:搭建个人在线旅游助手
  • HarmonyOS NEXT开发进阶(十四):HarmonyOS应用开发者基础认证试题集汇总及答案解析
  • 使用kubectl命令
  • GAN随手笔记