对抗攻击(Adversarial Attack)

2023-05-16

文章目录

  • 对抗攻击
  • 对抗防御

对抗攻击

图片可以看成一个很长的向量,如果在图片的每个像素上都加上一个很小的pertubation(扰动、杂讯),再把它输入到神经网络,这个时候分类器可能就会误判。
没有被攻击的图片一般称为Benign Image,被攻击的图片称为Attacked Image。
通常攻击可以分为定向攻击和非定向攻击:
定向攻击(targeted attack):误分类成一个特定的类
非定向攻击(non-targeted attack):误分类成其他类(只要不是cat类)

该如何去攻击?
假设benign image是 x 0 x^0 x0,输入到神经网络,输出 y 0 = f ( x 0 ) y^0=f(x^0) y0=f(x0) x 0 x^0 x0的真实值是 y ^ \hat{y} y^
被攻击后输入是 x x x,输出 y 0 = f ( x ) y^0=f(x) y0=f(x)
想要攻击成功,就得让 y y y y ^ \hat{y} y^ 相差较大
在这里插入图片描述
这个问题的loss函数是:
Non-targeted: L ( x ) = − e ( y , y ^ ) L(x)=- e(y,\hat{y}) L(x)=e(y,y^)
targeted: 不仅需要 y y y y ^ \hat{y} y^ 越远越好,还要保证 y y y y t a r g e t y^{target} ytarget 越近越好
L ( x ) = − e ( y , y ^ ) + e ( y , y t a r g e t ) L(x)=- e(y,\hat{y})+e(y,y^{target}) L(x)=e(y,y^)+e(y,ytarget)
另外还期待加入的pertubation越小越好,这样就不容易被人类观察到(not perceived by humans),即 x x x x 0 x^0 x0之间差距越小越好
所以完整的优化问题表达式是:
x ∗ = a r g min ⁡ d ( x 0 , x ) ≤ ϵ L ( x ) x^* = arg \min \limits_{d(x^0,x) \leq \epsilon} L(x) x=argd(x0,x)ϵminL(x)
怎么计算 d ( x 0 , x ) d(x^0,x) d(x0,x)呢,这里采用的是 L-norm(范数)

  • L2-norm: d ( x 0 , x ) = ∣ ∣ Δ x ∣ ∣ 2 = ( Δ x 1 ) 2 + ( Δ x 2 ) 2 + ⋯ d(x^0,x)=||\Delta x||^2=(\Delta x_1)^2+(\Delta x_2)^2+\cdots d(x0,x)=Δx2=(Δx1)2+(Δx2)2+
  • L-infinity: d ( x 0 , x ) = ∣ ∣ Δ x ∣ ∣ ∞ = max ⁡ ( ∣ Δ x 1 ∣ , ∣ Δ x 2 ∣ , ⋯   ) d(x^0,x)=||\Delta x||_{\infty}=\max (|\Delta x_1|,|\Delta x_2|,\cdots) d(x0,x)=Δx=max(Δx1,Δx2,)

与神经网络不同更新参数不同的是,对抗攻击是更新输入,同样也用梯度下降的方法,如下图所示:

首先可以从 x 0 x^0 x0开始,然后进行梯度下降,但是迭代过程中要注意限制,保证
d ( x 0 , x ) ≤ ϵ d(x^0,x) \leq \epsilon d(x0,x)ϵ(以L-infinity为例,限制就是需要在以 ϵ \epsilon ϵ为边长的正方形内)
可以看出,不同的攻击就是有不同的优化方法或者不同的限制。
几种著名的方法:

  • FGSM
    论文链接:Explaining And Harnessing Adversarial Examples
    论文笔记链接:click here
    主要思路就是只需要一次迭代就可以达到攻击,另外在对loss求导外面加了一个符号函数sign(大于0输出1,小于0输出-1),这样确保了扰动的限制
  • I-FGSM
    FGSM的升级版,即加入迭代版本,让攻击更准确
    论文链接:Adversarial Examples In The Physical World
    论文笔记链接:click here

白盒攻击&黑盒攻击

简单说就是白盒攻击知道模型的参数,黑盒攻击不知道模型的参数

黑盒攻击(black-box attack)

If you have the training data of the target network Train a proxy network yourself
Using the proxy network to generate attacked objects

黑盒攻击,不知道模型的参数,此时该怎么攻击?
如果知道目标网络的训练资料,可以训练一个替代模型,使用替代网络去产生被攻击的对象
那么黑盒攻击容易成功吗?
从论文(Delving into Transferable Adversarial Examples and Black-box Attacks)的实验来看,是容易成功的。
下图的表格,列代表被攻击的模型,行代表代理(proxy)模型。单元格(i,j)表示为模型 i(行)生成的对抗图像在模型 j(列)上评估的准确性。
对角线由于是同一模型,所以看成是白盒攻击。不同行不同列即为黑盒,例如由ResNet-152生成的对抗样本在ResNet-101上的准确率仅为13%。准确率越低,表示攻击越成功。具体可以看这篇 论文笔记
在这里插入图片描述
另外还有很多黑盒攻击:

  • one-pixel attck
    只需改变一个像素就可以达到攻击的目的
    论文链接:One Pixel Attack for Fooling Deep Neural Networks
    论文笔记链接:click here

  • Universal Attack Perturbation(UAP)
    一个通用(与图像无关)和非常小的扰动向量,就可以让攻击成功(以往是针对不同的图像需要设计不同perturbation产生对抗样本)
    论文链接:Universal adversarial perturbations
    论文笔记链接:click here

  • BackDoor Attack(后门攻击)
    攻击在训练阶段已经开始,对某张图片加了一些扰动,丢入神经网络进行训练

对抗攻击还被应用在语音,自然语言处理

对抗防御

1.主动防御
对抗训练

2.被动防御

  • 加一个filter(滤波器)
  • 图像压缩(先压缩再解压避开攻击)
  • Generator(按照对抗样本根据generator生成一张图片)
  • Randomization(随机的防御)

参考链接:
https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对抗攻击(Adversarial Attack) 的相关文章

随机推荐

  • sqoop安装

    sqoop安装 作为大数据协作框架之一 xff0c Sqoop是一款用于Hadoop和关系型数据库之间进行相互的数据导入和导出的工具 安装sqoop的前提是已经具备java和hadoop的环境 1 下载并解压 最新版下载地址http ftp
  • 利用视图进行多表关联

    疑问 在Maxcompute中我们关联的码表大于8个 xff0c 然后数据存储量大于500W xff0c 那么在进行sql清洗的时候极有可能会被卡死 可是我们就是要在一张表上关联10多个表 xff0c 比如一张表中的很多字段都要关联码表 x
  • CM&CDH安装

    笔者当时自己装CM amp CDH看了不下10篇博客 xff0c 重装集群不下3次 xff0c 后来快照这个功能深深的刻在了我的心里 这篇博客笔者呕心沥血啊 不过还是会有同学会挂掉 xff0c 所以希望大家做到那里一步记得快照 发一下牢骚
  • jvm复习:主动产生fullGC

    一 jdk8参数 Xms100m Xmx100m Xmn30m XX 43 PrintGCDetails 二 代码 xff1a package cn edu tju test public class GcTest01 public sta
  • Zookeeper机制和应用场景

    Zookeeper简介 Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目 xff0c 它主要是用来解决分布式应用中经常遇到的一些数据管理问题 xff0c 如 xff1a 统一命名服务 状态同步服务 集群管理 分
  • crontab定时器

    crontab定时器 linux下的定时任务 1 编辑使用crontab e 一共6列 xff0c 分别是 xff1a 分 时 日 月 周 命令 2 查看使用crontab l 3 删除任务crontab r 4 查看crontab执行日志
  • Linux后台运行程序

    在我们平常的时候运行程序的时候会产生很多的信息 xff0c 这些信息有时候有用 xff0c 有时候没用 xff0c 不过这些数据都会在该程序的log中保存 xff0c 所以把这些信息放在前台就不是很好 我们可以将脚本放在后台运行 xff0c
  • vnc的两种配置方法及解决vnc连不上的情况

    1 vnc连不上的现象 xff1a Timed out waiting for a response from the computer 解决方法 xff1a sudo sbin iptables I INPUT 1 p TCP dport
  • 【随写笔记】TouchGFX

    https www cnblogs com firege p 5805823 html https blog csdn net u013766436 article details 50805808 LTDC STM32F429系列芯片内部
  • BGP路由协议

    特点 BGP是一种外部网关协议 xff08 EGP xff09 xff0c 不擅长路由计算 xff0c 擅长路由控制 OSPF ISIS等内部网关协议 xff08 IGP xff09 xff0c 擅长路由计算 xff0c 不擅长路由控制 B
  • sed命令的使用(合并行)

    1 把所有不以句号结尾的行 xff0c 和下一行合并 span class token function sed span i span class token string 39 N s n 39 span abc txt 2 把两行合并
  • Mybatis常见面试题及答案

    文章目录 1 什么是Mybatis xff1f 2 Mybaits的优缺点 xff1a 3 和 的区别是什么 xff1f 4 通常一个mapper xml文件 xff0c 都会对应一个Dao接口 xff0c 这个Dao接口的工作原理是什么
  • HDFS排查路径

    遇到HDFS的问题 xff0c 首先需要排除可用类问题 可用类问题按影响 紧急程度不同 xff0c 可继续分为HDFS功能性受损 lt 61 HDFS高可靠性 高可用性受损 按照以下步骤进行排查 xff0c 以下任意一项有异常 xff0c
  • Docker复习: jar包打成docker

    FROM openjdk 8 ARG JAR FILE COPY springbootmybatis 1 0 SNAPSHOT jar app jar EXPOSE 9012 ENTRYPOINT 34 sh 34 34 c 34 34 j
  • iscsi磁盘挂载并设置为开机自动挂载

    前提准备 xff1a 安装iscsi客户端软件 yum y install iscsi initiator utils 第一步 xff1a 发现ISCSI设备 root 64 sdw4 iscsiadm m discovery t st p
  • 关于华为AC6507S能ping通web和ssh却登录不上排障记录(管理面隔离)

    一 客户描述PC和服务器能ping通AC但是web却登录不上 测试 xff1a 设置服务器地址为192 168 0 100 24 AC地址192 168 0 2 24 用0 100去ping0 2可以ping通 xff0c web登录连接失
  • tensor 和 numpy 的互相转换

    为什么要相互转换 xff1a 简单一句话 numpy操作多样 简单 但网络前向只能是tensor类型 各有优势 所以需要相互转换补充 convert Tensor x of torch to array y of numpy y 61 x
  • 图像畸变矫正算法实现 matlab版

    真正的相机镜头不理想 xff0c 并在图像中引入一些失真 为了解释这些非理想性 xff0c 有必要在透视投影的方程中添加失真模型 一 原图如下 xff1a 二 实现的效果图 三 算法具体实现 function undistorted img
  • Pytorch学习笔记(六)之完整的模型训练(以Cifar10为例)

    文章目录 前言 xff1a 数据集介绍0 准备工作 xff1a 首先导入相关包 xff0c 设置参数等1 数据预处理之增强 transforms等 2 数据的读取 Dataset amp Dataloader 3 模型的搭建 nn mode
  • 对抗攻击(Adversarial Attack)

    文章目录 对抗攻击对抗防御 对抗攻击 图片可以看成一个很长的向量 xff0c 如果在图片的每个像素上都加上一个很小的pertubation 扰动 杂讯 xff0c 再把它输入到神经网络 xff0c 这个时候分类器可能就会误判 没有被攻击的图