【ICIP2022】提高对抗攻击的迁移性(在注意力空间下扰动的多样性生成)

本文主要是介绍【ICIP2022】提高对抗攻击的迁移性(在注意力空间下扰动的多样性生成),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文首发于馆主君晓的博客,在注意力空间下扰动的多样性生成

背景介绍

  这是发布在ICIP(International Conference Image Processing) 2022会议上的一篇文章,作者是韩国科学技术研究院,论文原文:https://arxiv.org/abs/2208.05650。

  我们知道在2D对抗攻击的领域,目前还能够做的就是提升对抗攻击的迁移性,也就是在源模型中生成的对抗样本,对于其它模型而言同样具有攻击性,也就是能够让其它模型判断失误。但是目前的问题是,生成的对抗样本对于源模型而言,攻击成功率100%,但是对于黑盒模型而言,其攻击成功率就大打折扣。原因就是我们使用白盒模型生成的对抗样本过拟合了,就是生成的对抗样本过于拟合当前的模型,从而不具有较高的迁移性。作者在原文画了一幅图,我觉得形容的十分恰当。我们可以看到下面这张图,其中红色的部分是使用传统的对抗攻击方法生成的对抗样本。我们可以看到,对抗样本所处的位置在源模型上是能够使其给出错误的输出。但是在下面的Target A,Target B,Target C上,就能够被正确的分类。这张图,充分说明目前生成的对抗样本的缺点,对源模型过拟合。

image-20220824203639321

  在这篇文章当中,作者说之前的攻击大部分是基于梯度的攻击方式,这些攻击以一种确定的方式来生成对抗样本。在每一步的迭代过程中,他们以一种单一明确的方向来生成扰动,这样缺乏随机性,无法充分地搜寻整个空间。为了解决这个问题,作者提出了一种*ADA(Attentive Diversity Attack)*注意力多样性攻击的方法。也就是在特征空间上对模型显著关注的地方进行扰动,而且这种扰动是多样性的,之后我们会解释。

作者的Contributions

  • 是第一个在特征层将随机性引入并且提高对抗攻击迁移性的。
  • 提出了一种ADA对抗攻击方法,该方法能够能够以一种多样性的方式去扰动模型attention图像的部分,并且区别于以前基于梯度的那种确定的方式。
  • 大量的实验证明,他们的方法比现有的SOTA方法好。

ADA方法介绍

 首先简单介绍一下对抗攻击的目的,其实就是对输入图像做简单的修改,这样的修改对于人眼来说是微小的,不可见的,但是输入到模型中就能够让模型给出错误的输出。那么生成对抗样本就相当于优化下面的公式,最大化损失函数,取梯度上升的方向对输入进行修改。

image-20220824210728167

  上面所说的这种方式容易对源模型过拟合,从而对抗样本的迁移性变低了,黑盒攻击的成功率上不去。现在我们来介绍作者的ADA方法。下面先给出一张概览图,之后的介绍会详细说明这个图。

image-20220824211848439

Attack Generator

  与传统的基于梯度方式的对抗攻击方法不同的是,对于扰动的生成,这里作者是专门训练了一个网络,来生成扰动的噪声。网络的输入就是latent code与我们源模型最后一层卷积输出的特征。生成对抗样本的公式如公式2所示。

image-20220825115140792

注意力空间上的扰动

  我们都知道注意力机制,注意力其实就是一个权重,对于一个分类网络而言,其注意力就像上面的热力图一样,表示模型对某个部分比较关注,而正式由于模型对这个部分比较关注,最终才会有相应的预测结果。那换言之,如果我们使得模型关注的点不是正常的部分,那么就能够让模型输出错误。之所以在特征空间上去做扰动是因为我们的模型依赖于特征去做分类,那么在特征上去做扰动会更容易迁移到别的模型去。那么对于注意力的定义,作者给出了公式3。对于输入为x,实际目标为t的图像,其注意力A就等于权重 α t \alpha_{t} αt乘以特征F。这里的特征,我们通常取最后一个卷积层的输出。而权重 α t \alpha_{t} αt,则是通过 y t y_{t} yt来求特征图的梯度,然后使用全局平均池化(每一个channel求平均值)求得的(假设求得的梯度是BxCxHxW,那么在全局平均池化之后就变成了BXC),为了防止全局平均池化后,有的值极小,有的值极大,这里对channel的结果做了归一化,使得生成器能够破坏每个不同的feature map。然后优化公式4即可,只需要最大化对抗样本的注意力空间与原始注意力空间的距离即可。

image-20220824212443334

image-20220824225155457

特征多样化

  我们在上文中提到过,正是由于对抗样本对于源模型过拟合,所以才造成了对抗样本的迁移性不高。作者就想如果我们能够随机地去搜寻整个空间,那么我们生成的对抗样本的迁移性就会增加(其实这句话作者没说,我是根据作者文中的意思理解的)。那么这里作者在生成对抗噪声的网络的输入加入了latent code,隐码。为什么要加入这个呢?我们知道模型一旦训练好了,参数就是固定的,那么相同的输入得到相同的输出。因此如果我们想要有不同的输出,那么需要用到不同的输入,这里经过高斯分布采样的latent code是一个不错的选择。那么现在我们可以看公式5了,公式5就是想让给定两个不同latent code所形成的对抗样本之间的距离尽可能远。

image-20220825120337531

整体的损失函数

  那么这样整体的损失函数就有了,一个是分类本身的损失,另外一个是注意力的损失,再一个是特征多样性损失。三个损失加在一起,我们生成噪声的目的就是最大化这个损失。其中注意力损失的权重系数是10,特征多样性损失的权重系数是1000,分类损失的权重系数是1。

image-20220825120657663

实验结果

  下图中我们可以看到,作者提出的方法虽然在白盒攻击没有达到100%(主要是人家主攻迁移性,生成的对抗样本不过拟合白盒模型)。该方法虽然不说碾压其它的对抗攻击,但也很强了,与FIA做对比也丝毫不慌。关于FIA方法的介绍,在我之前的博客中有写,大家可以移步观看基于特征感知的对抗攻击。

image-20220825120745341

代码

  作者目前还没放出代码,但是作者说会在会议举行之前把代码给发布。关于实验的详细内容大家可以去看看原文,这里就不过多介绍了。总而言之感觉这篇论文的思路不错,效果也有。

这篇关于【ICIP2022】提高对抗攻击的迁移性(在注意力空间下扰动的多样性生成)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349502

相关文章

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re