对抗样本简介

2023-05-16

一、什么是对抗样本

  对抗样本是一类被恶意设计来攻击机器学习模型的样本。它们与真实样本的区别几乎无法用肉眼分辨,但是却会导致模型进行错误的判断。对抗样本的存在会使得深度学习在安全敏感性领域的应用收到威胁。
  如下图所示,通过在自然图片上加入一些人工噪声来“欺骗”神经网络,使得神经网络输出错误的预测结果。
在这里插入图片描述
  以经典的二分类问题为例,机器学习模型通过在样本上训练,学习出一个分割平面,在分割平面的一侧的点都被识别为类别一,在分割平面的另外一侧的点都被识别为类别二。生成攻击样本时,我们通过某种算法,针对指定的样本计算出一个变化量,该样本经过修改后,从人类的感觉无法辨识,但是却可以让该样本跨越分割平面,导致机器学习模型的判定结果改变。
在这里插入图片描述

二、对抗样本攻击方法

1. Fast gradient sign method (FGSM)
  Goodfellow等人认为高维空间下深度神经网络的线性行为是导致该问题(存在对抗样本)的根本原因。提出了一种一步生成法来快速生成对抗样本,可以有效计算对抗扰动。
x^’=x + εsgn(∇_x L(θ,x,y)) non-target
x^’=x - εsgn(∇_x L(θ,x,y)) target on t
η = εsgn(∇_x L(θ,x,y))
x:原始图像
η:扰动
ε:表示控制扰动大小的自定义参数
L:损失函数
sgn:符号函数
FGSM的核心思想:通过让扰动方向与梯度方向一致,使损失函数值变化最大,进而使分类器分类结果变化最大。sign函数保证了扰动方向与梯度方向一致;对损失函数求偏导。
FGSM优缺点:优点是只需一步迭代就能生成对抗样本,并且可以通过控制参数ε生成任意L∞ 范数距离的对抗样本;缺点是扰动自身抗干扰能力不强,容易受到其他噪声的影响; 另外,模型损失函数与模型输入并不是完全线性的,这说明该算法生成的对抗样本扰动不是最优扰动。

2. DeepFool
  Moosavi-Dezfooli 等人通过迭代计算的方法生成能够使分类器模型产生误识别的最小规范对抗扰动,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。
Deepfool的核心思想:Deepfool 算法生成对抗样本过程与使用 L-BFGS 生成对抗样本过程类似,主要区别是: Deepfool 算法每次迭代都计算当前样本和各决策边界的距离,然后选择向最近的决策边界迭代生成扰动。
Deepfool优缺点:优点是生成的扰动比 FGSM 更小,同时有相似的欺骗率。缺点是需要重复计算距离,多维数据计算量很大。

3. Carlini & Wagner′s attack(C&W)
  Carlini 和 Wagne提出了三种对抗攻击方法,通过限制 L∞、L2 和 L0 范数使得扰动无法被察觉。实验证明 defensive distillation (防御性蒸馏)完全无法防御这三种攻击。该算法生成的对抗扰动可以从 unsecured 的网络迁移到 secured 的网络上,从而实现黑盒攻击。
C&W的核心思想:C&W是一种基于目标函数优化的对抗样本攻击算法,算法假设对抗样本是一个变量,那么要使其成功攻击分类器模型,必须满足两个条件,一是其与原始样本的距离要尽可能的小,二是其能够误导分类器模型对其进行错误分类。

4. Jacobian-based saliency map attack(JSMA)
  基于雅可比矩阵的显着性图攻击(JSMA)介绍了一种基于计分函数F的雅可比矩阵的方法。 通过迭代操纵对模型输出影响最大的像素,可以将其视为贪婪攻击算法。
JSMA的核心思想:对抗攻击文献中通常使用的方法是限制扰动的 L∞或 L2 范数的值以使对抗样本中的扰动无法被人察觉。但 JSMA提出了限制 L0 范数的方法,即仅改变几个像素的值,而不是扰动整张图像。

5. Basic iterative method (BIM)/Projected gradient descent (PGD) attack
  针对 FGSM 算法存在的问题, Kurakin 等人[15,31]在 FGSM 算法基础上提出了一种以多步迭代的方式生成对抗样本的方法 BIM。
核心思想:one-step 方法通过一大步运算增大分类器的损失函数而进行图像扰动,因而可以直接将其扩展为通过多个小步增大损失函数的变体,从而我们得到 Basic Iterative Methods(BIM)

三、防御方法

目前,在对抗攻击防御上存在三个主要方向:
1.在学习过程中修改训练过程或者修改的输入样本
①蛮力对抗训练
  通过不断输入新类型的对抗样本并执行对抗训练,从而不断提升网络的鲁棒性。为了保证有效性,该方法需要使用高强度的对抗样本,并且网络架构要有充足的表达能力。这种方法需要大量的训练数据,因而被称为蛮力对抗训练。很多文献中提到这种蛮力的对抗训练可以正则化网络以减少过拟合。然而,Moosavi-Dezfooli指出,无论添加多少对抗样本,都存在新的对抗攻击样本可以再次欺骗网络。
②数据压缩
  注意到大多数训练图像都是 JPG 格式,Dziugaite等人使用 JPG 图像压缩的方法,减少对抗扰动对准确率的影响。实验证明该方法对部分对抗攻击算法有效,但通常仅采用压缩方法是远远不够的,并且压缩图像时同时也会降低正常分类的准确率,后来提出的 PCA 压缩方法也有同样的缺点。

2.修改网络,比如:添加更多层/子网络、改变损失/激活函数等
①深度压缩网络
  人们观察到简单地将去噪自编码器(Denoising Auto Encoders)堆叠到原来的网络上只会使其变得更加脆弱,因而 Gu 和 Rigazio[24] 引入了深度压缩网络(Deep Contractive Networks),其中使用了和压缩自编码器(Contractive Auto Encoders)类似的平滑度惩罚项。
②梯度正则化/ masking
  使用输入梯度正则化以提高对抗攻击鲁棒性 [52],该方法和蛮力对抗训练结合有很好的效果,但计算复杂度太高。

3.当分类未见过的样本时,用外部模型作为附加网络
①防御通用扰动
  利用一个单独训练的网络加在原来的模型上,从而达到不需要调整系数而且免疫对抗样本的方法。
②基于 GAN 的防御
  用 GAN 为基础的网络可以抵抗对抗攻击,而且作者提出在所有模型上用相同的办法来做都可以抵抗对抗样本。

四、参考

[1]如何看待机器视觉的“对抗样本”问题,其原理是什么?
[2]对抗样本的基本原理
[3]生成对抗样本的方法|攻击方法
[4]学界 | 综述论文:对抗攻击的12种攻击方法和15种防御方法

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

对抗样本简介 的相关文章

随机推荐

  • JS的test()方法

    解析 解释 xff1a js的test 方法用于检测一个字符串是否匹配某个格式 语法 xff1a RegExpObject test string 返回值 xff1a 如果String中含有RegExpObject中匹配的字符返回true
  • 实时获取当前时间并展示在页面上

    简介 实时获取当前时间并展示在页面上 xff0c 是很多地方常用的 xff1b 在页面中做此展示以便查看时间 本文使用js通过一个小的demo实现效果 完整Code span class token operator lt span spa
  • Visual Studio Code提交代码提示“Make sure you configure your ‘user.name‘ and ‘user.email‘ in git.”

    使用VSCode编译器提交代码到gitlab xff0c 编译器提示 Make sure you configure your 39 user name 39 使用编译器VSCode提交代码到GitLab xff0c 提示 Make sur
  • React编译代码报错提示:React was passed “javascript:;“。

    React编译代码提示报错信息 xff1a React编译代码提示报错信息 xff1a Warning A future version of React will block javascript URLs as a security p
  • 如何添加Iconfont图标到项目及创建新项目?

    1 搜索图标 或者 选择自己上传图标 2 选择图标 xff0c 加入库 3 点击购物车图标 xff0c 如果已经创建项目直接选择点击确定 xff1b 如果没有创建项目点击 43 创建项目 4 输入新项目名称 xff0c 点击确定 5 确定后
  • antd icon 图标组件的使用

    antd提供的icon有限 xff0c 可以直接使用iconfont图标库的图标 1 安装图标组件包 npm install save 64 ant design icons 2 创建图标 import createFromIconfont
  • 字符串解析为指定格式

    将 张三 李四 王五 赵六 解析为 张三 李四 xff08 共4人 xff09 使用 xff1a let str 61 39 张三 李四 王五 赵六 39 empsDeal str 39 张三 李四 共4人 39 方法 xff1a cons
  • 清除redux数据(hooks写法)

    清除redux数据的场景 A页面初始化调用A接口 xff0c 希望在当前页面生效 xff0c 跳转页面不保存数据 xff0c 但redux中已经存有历史数据 xff0c 所以在页面销毁时清除redux数据 A页面请求A接口 useEffec
  • 跳转页面方法

    跳转页面 window location href 61 url 替换当前页面 window location replace url
  • 嵌入式面试总结

    毕业一年多了 xff0c 从事嵌入式开发工作不知不觉也一年多了 xff0c 题主主要从事单片机 xff08 STM32 xff09 应用开发工业类电子方向 xff0c 纯技术涉及到的内容主要是C语言 arm STM32驱动 FreeRTOS
  • 数据库ER图基础概念整理

    ER图分为实体 属性 关系三个核心部分 实体是长方形体现 xff0c 而属性则是椭圆形 xff0c 关系为菱形 ER图的实体 xff08 entity xff09 即数据模型中的数据对象 xff0c 例如人 学生 音乐都可以作为一个数据对象
  • 如何成为一个全能的机器人工程师

    大疆技术总监 xff1a 如何用六年成为一个全能的机器人工程师 机器人学的核心问题是做好和物理世界的交互 现在主流的机器人学分支里 xff0c 处理与物理世界的交互的学科分为三类 xff1a 传感器和处理算法 xff1b 多刚体系统动力学控
  • 任务调度算法

    可实现在单片机裸机下还能有很好的实时性 任务调度器 SCHEDULER TASK scheduler tasks 61 amp P loop 1000Hz 1000 0 0 amp P loop 500Hz 500 0 0 amp P lo
  • 阿里云云计算ACP学习(一)---弹性计算

    弹性计算 1 ECS的概念与定位 概念 xff1a 云服务器ECS xff08 Elastic Compute Service xff09 是一种可弹性伸缩的计算服务 xff0c 可以帮助降低IT成本 xff0c 提升运维效率 xff0c
  • 阿里云云计算ACP学习(二)---弹性存储

    弹性存储 1 阿里云盘古 盘古 飞天底层同一存储平台 盘古的优势 xff1a 盘古系统在一个核心基础层之上 xff0c 通过为不同应用场景而抽象的适配层设计 xff0c 提供了分布式块存储系统和分布式文件系统两种形态 xff0c 基于这一套
  • HDFS读写流程介绍,HDFS读数据和写数据的原理是什么?

    Client 客户端 对HDFS中的数据进行读写操作 xff0c 分别是Client从HDFS中查找数据 xff0c 即为Read 读 数据 Client从HDFS中存储数据 xff0c 即为Write 写 数据 下面我们对HDFS的读写流
  • VIM简单配置step by step

    0 更新vim 更新和安装vim xff0c 保证版本 gt 61 8 0即可 可按照如下命令安装 0 1 安装依赖 yum update y yum install epel release y yum install y git gcc
  • 使用setInterval遇到的陷阱

    setInterval的使用 span class token keyword const span interval span class token operator 61 span span class token function
  • vs本地调试dll文件

    遇到一些问题 xff0c 需要调试dll文件进行调试 xff0c 环境配置如下 打开dll工程 1 鼠标右键dll项目 xff0c 属性 gt 配置属性 gt 调试 gt 命令 在命令中填写使用dll的 exe文件的路经 2 将新生成的dl
  • 对抗样本简介

    一 什么是对抗样本 对抗样本是一类被恶意设计来攻击机器学习模型的样本 它们与真实样本的区别几乎无法用肉眼分辨 xff0c 但是却会导致模型进行错误的判断 对抗样本的存在会使得深度学习在安全敏感性领域的应用收到威胁 如下图所示 xff0c 通