李宏毅机器学习2023-HW10-Adversarial Attack

news2024/12/24 11:39:56

文章目录

  • Task
  • Baseline
    • FGSM (Fast Gradient Sign Method (FGSM)
    • I-FGSM(Iterative Fast Gradient Sign Method)
    • MI-FGSM(Momentum Iterative Fast Gradient Sign Method)
    • M-DI2-FGSM(Diverse Input Momentum Iterative Fast Gradient Sign Method)
  • Report
    • fgsm attack
    • Jepg Compression
  • Code Link

Task

黑箱攻击(Blackbox Attack)

采用CIFAR-10数据集经助教筛选,黑箱攻击的核心是:如果你有目标网络的训练数据,你可以训练一个proxy network,用这个proxy network生成attacked objects。

Baseline

  • Simple baseline (acc <= 0.70)
    • Hints: FGSM
    • Expected running time: 1.5 mins on T4
  • Medium baseline (acc <= 0.50)
    • Hints: Ensemble Attack + ensemble random few model + IFGSM
    • Expected running time: 5 mins on T4
  • Strong baseline (acc <= 0.25)
    • Hints: Ensemble Attack + ensemble many models + MIFGSM
    • Expected running time: 5.5 mins on T4
  • Boss baseline (acc <= 0.10)
    • Hints: Ensemble Attack + ensemble many models + DIM-MIFGSM
    • Expected running time: 8 mins on T4

主要就是以下这几个方法,具体的理论写在ipynb中了

Implement non-targeted adversarial attack method

a. FGSM
b. I-FGSM
c. MI-FGSM

Increase attack transferability by Diverse input (DIM)

Attack more than one proxy model - Ensemble attack

FGSM (Fast Gradient Sign Method (FGSM)

$$
x{adv}的目标是J(x{real},y)最大\

x^{adv} = x^{real} + ϵ ⋅ sign(\frac{\partial{J(x^{real},y)}}{\partial{x}0})
$$

I-FGSM(Iterative Fast Gradient Sign Method)

x 0 a d v = x r e a l f o r   t = 1   t o   n u m _ i t e r : x t + 1 a d v = x ∗ t a d v + α ⋅ s i g n ( ∇ ∗ x J ( x t a d v , y ) ) c l i p   x t a d v \begin{aligned}&\boldsymbol{x}_0^{adv}=\boldsymbol{x}^{real}\\&\mathrm{for~t=1~to~num\_iter:}\\&\boxed{\boldsymbol{x}_{t+1}^{adv}=\boldsymbol{x}*_t^{adv}+\alpha\cdot\mathrm{sign}(\nabla_*{\boldsymbol{x}}J(\boldsymbol{x}_t^{adv},y))}\\&\mathrm{clip~}\boldsymbol{x}_t^{adv}\end{aligned} x0adv=xrealfor t=1 to num_iter:xt+1adv=xtadv+αsign(xJ(xtadv,y))clip xtadv

其中, α \alpha α是step size

MI-FGSM(Momentum Iterative Fast Gradient Sign Method)

使用momentum来稳定更新方向,并摆脱糟糕的局部最大值
KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 112: …t+\frac{\nabla_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{x}J(\boldsymbo…
其中 g g g是momentum

M-DI2-FGSM(Diverse Input Momentum Iterative Fast Gradient Sign Method)

T ( X n a d v ; p ) = { T ( X n a d v )  with probability  p X ∗ n a d v  with probability  1 − p e.g. DIM + MI-FGSM g ∗ n + 1 = μ ⋅ g n + ∇ X L ( T ( X n a d v ; p ) , y t r u e ; θ ) ∣ ∣ ∇ X L ( T ( X n a d v ; p ) , y t r u e ; θ ) ∣ ∣ 1 T(X_n^{adv};p)=\begin{cases}T(X_n^{adv})&\text{ with probability }p\\X*_n^{adv}&\text{ with probability }1-p\end{cases}\\\text{e.g. DIM + MI-FGSM}\\g_*{n+1}=\mu\cdot g_n+\frac{\nabla_XL(T(X_n^{adv};p),y^{\mathrm{true}};\theta)}{||\nabla_XL(T(X_n^{adv};p),y^{\mathrm{true}};\theta)||_1} T(Xnadv;p)={T(Xnadv)Xnadv with probability p with probability 1pe.g. DIM + MI-FGSMgn+1=μgn+∣∣XL(T(Xnadv;p),ytrue;θ)1XL(T(Xnadv;p),ytrue;θ)

这里的L可以用CrossEntropyLoss求解

Report

fgsm attack

# original image
path = f'dog/dog2.png'
im = Image.open(f'./data/{path}')
logit = model(transform(im).unsqueeze(0).to(device))[0]
predict = logit.argmax(-1).item()
prob = logit.softmax(-1)[predict].item()
plt.title(f'benign: dog2.png\n{classes[predict]}: {prob:.2%}')
plt.axis('off')
plt.imshow(np.array(im))
plt.tight_layout()
plt.show()

# adversarial image
adv_im = Image.open(f'./fgsm/{path}')
logit = model(transform(adv_im).unsqueeze(0).to(device))[0]
predict = logit.argmax(-1).item()
prob = logit.softmax(-1)[predict].item()
plt.title(f'adversarial: dog2.png\n{classes[predict]}: {prob:.2%}')
plt.axis('off')
plt.imshow(np.array(adv_im))
plt.tight_layout()
plt.show()

在这里插入图片描述

Jepg Compression

import imgaug.augmenters as iaa

# pre-process image
x = transforms.ToTensor()(adv_im)*255
x = x.permute(1, 2, 0).numpy()
x = x.astype(np.uint8)

# TODO: use "imgaug" package to perform JPEG compression (compression rate = 70)
compressed_x = iaa.JpegCompression(compression=70)(image=x)

logit = model(transform(compressed_x).unsqueeze(0).to(device))[0]
predict = logit.argmax(-1).item()
prob = logit.softmax(-1)[predict].item()
plt.title(f'JPEG adversarial: dog2.png\n{classes[predict]}: {prob:.2%}')
plt.axis('off')


plt.imshow(compressed_x)
plt.tight_layout()
plt.show()

在这里插入图片描述

Code Link

代码在Github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode HOT 100】详细题解之链表篇

LeetCode HOT 100题解之链表篇 160 相交链表题目分析代码 206 反转链表方法一&#xff1a;迭代 234 回文链表方法一&#xff1a;将值复制到数组中方法二&#xff1a;快慢指针 141 环形链表方法一&#xff1a;哈希表方法二&#xff1a;快慢指针 142 环形链表II方法一&#xff1a…

读代码UNET

这个后面这个大小怎么算的&#xff0c;这参数怎么填&#xff0c;怎么来的&#xff1f; 这是怎么看怎么算的&#xff1f; 这些参数设置怎么设置&#xff1f;卷积多大&#xff0c;有什么讲究&#xff1f;

机器学习:opencv--摄像头OCR

目录 前言 一、三个函数 1.显示图像 2.点排序 3.透视变换 二、代码实例 1.打开摄像头 2.图像预处理 3.检测特定轮廓 4.对轮廓进行处理 5.释放资源 前言 摄像头OCR指的是利用摄像头捕捉图像中的文字信息&#xff0c;并通过光学字符识别&#xff08;OCR&#xff09;技…

遥感图像文本检索

遥感图像文本检索是一种通过自然语言描述&#xff0c;从大量遥感图像中搜索与之相关的图像的技术。它用于遥感解释任务中&#xff0c;帮助用户根据文字描述快速找到符合条件的遥感图像&#xff0c;这在城市规划、环境监测、灾害管理等领域具有重要应用意义。 实现这一技术的核…

【刷点笔试面试题试试水】#ifndef和#ifdef有什么区别?

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> using namespace std;#define DEBUGint…

828华为云征文|华为云Flexus X实例性能实测:速度与稳定性的完美结合

828华为云征文&#xff5c;华为云Flexus X实例性能实测&#xff1a;速度与稳定性的完美结合 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、实践环境介绍2.1 本次实践环境规划2.2 本次实践介绍 …

828华为云征文|华为云Flexus云服务器X实例部署——盲盒抽奖商城系统以及编译发布小程序

盲盒抽奖商城系统使用 thinkphp6.0 uniapp 开发&#xff0c;做到了全移动端兼容。一个系统不仅可以打包 小程序 还可以 打包APP &#xff0c;H5 华为云Flexus云服务器X实例在安装搭建盲盒商城小程序方面具有显著优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; …

OpenGL ES 着色器(5)

OpenGL ES 着色器(5) 简述 着色器是在GPU上运行的程序&#xff0c;它会对每一个点都执行一次程序&#xff0c;并且计算出每个像素需要渲染的颜色&#xff0c;我们主要关注着色器的怎么传递数据&#xff0c;在OpenGL ES中&#xff0c;着色器传递数据分几种场景&#xff0c;一种…

软件设计师——计算机网络

&#x1f4d4;个人主页&#x1f4da;&#xff1a;秋邱-CSDN博客☀️专属专栏✨&#xff1a;软考——软件设计师&#x1f3c5;往期回顾&#x1f3c6;&#xff1a;&#x1f31f;其他专栏&#x1f31f;&#xff1a;C语言_秋邱 一、OSI/ RM七层模型(⭐⭐⭐) ​ 层次 名称 主要功…

Jetbrains 推出 CodeCanvas:云开发时代的未来已来

人们不大愿意相信事实 只愿意相信故事 你信仰什么 就会怎样生活 近期 jetbrains 悄悄的推出了新的产品 CodeCanvas&#xff0c;这个产品的推出具有划时代的意义。 CodeCanvas 的定位是一个云 IDE 。想一想 jetbrains 从 2000 年开始就专注于 IDE 的开发&#xff0c;准确来说是…

计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

DRF实操——项目部署

DRF实操——项目部署 一、Mysql集群1. 集群方式1)Replication集群2)PXC集群2. Docker安装PXC知识补充:具名数据卷创建docker容器django后端接口服务二、Nginx概述作用安装配置三、uWSGI1. 概述2. 项目的配置3. 将本地项目及环境打包到服务器4. uwsgi的安装与启动5. 使用uwsg…

Linux工具的使用——yum和vim的理解和使用

目录 linux工具的使用1.linux软件包管理器yum1.1yum的背景了解关于yum的拓展 1.2yum的使用 2.Linux编辑器-vim使用2.1vim的基本概念2.2vim的基本操作2.3命令模式命令集2.3.1关于光标的命令&#xff1a;2.3.2关于复制粘贴的命令2.3.3关于删除的命令2.3.4关于文本编辑的命令 2.4插…

修复: Flux女生脸不再油光满面, 屁股下巴 -- 超实用Comfyui小技巧

ComfyUI上目前最强画图模型公认为Flux. 初次用Flux基础模型画真实的女生时, 和SD比起来, 会觉得画出来细节更多, 更真实. 但是当画多了, 就会觉得画出来的女生总是似曾相识. 仔细观察, 会发现一些共同的特征. 人偏老气, 像30~50的女生. 改了提示词也效果不大. 颧骨凸起, 嘴…

rdp远程桌面服务协议概述

rdp远程桌面服务协议概述 什么是远程桌面服务远程桌面服务的通信过程及功能 建立连接资源重定向与用户体验断开连接 远程桌面服务的协议架构 核心协议与基础通信虚拟通道与扩展协议协议协作与层次划分协议的可扩展性协议扩展与性能优化 总结参考 rdp远程桌面服务协议概述 对于…

2024重生之回溯数据结构与算法系列学习(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 专栏跑道一 ➡️ MYSQL REDIS Advance operation 专栏跑道二➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️HCIP&#xff1b;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]…

[Uninstall] 软件彻底卸载工具的下载及详细安装使用过程(附有下载文件)

一般软件安装的有问题&#xff0c;或者想重新安装其他版本就需要将原来的版本删除干净&#xff0c;但常常删不干净&#xff0c;本文分享一个软件彻底卸载工具&#xff0c;完成彻底卸载软件的工作 下载链接在文末 下载压缩包后解压 &#xff01;&#xff01;安装路径不要有中文…

计算机毕业设计 基于Python高校岗位招聘和分析平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

一篇文章快速学会docker容器技术

目录 一、Docker简介及部署方法 1.1Docker简介 1.1.1什么是docker 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 二 、部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服务 2.2.…

YOLOv8改进 | 主干篇,YOLOv8改进主干网络为华为的轻量化架构GhostNetV1

摘要 摘要:将卷积神经网络(CNN)部署在嵌入式设备上是困难的,因为嵌入式设备的内存和计算资源有限。特征图的冗余是成功的 CNN 的一个重要特征,但在神经网络架构设计中很少被研究。作者提出了一种新颖的 Ghost 模块,用于通过廉价操作生成更多的特征图。基于一组内在特征图…