论文阅读——Imperceptible Adversarial Attack via Invertible Neural Networks

Imperceptible Adversarial Attack via Invertible Neural Networks

作者:Zihan Chen, Ziyue Wang, Junjie Huang*, Wentao Zhao, Xiao Liu, Dejian Guan

解决的问题:虽然视觉不可感知性是对抗性示例的理想特性,但传统的对抗性攻击仍然会产生可追踪的对抗扰动。
代码:https://github.com/jjhuangcs/AdvINN
类型:黑盒 目标攻击,

摘要:

作者利用可逆神经网络(AdvINN)方法进行对抗性攻击,生成鲁棒且难以察觉的对抗性示例。AdvINN利用INN的信息保留属性,添加目标类的指定信息、删除与原始类别不同的信息来生成对抗样本。

引言部分引出对抗攻击示例

虽然对抗样本的存在可能会阻碍深度学习在风险敏感领域的应用,但它进一步促进了对深度学习鲁棒性的研究。

现有对抗样本的类别:

  • 在原始图像上添加扰动来生成对抗样本:FGSM系列的对抗攻击方法+混合其他类别的信息来生成对抗样本,这种方法可能会导致噪声被感知和图像存储容量的增加;
  • 在原始图像上丢弃部分信息来生成对抗样本,这种方法可能会影响目标攻击的性能。

方法整体概述

给定一张良性图像 x c l n x_{cln} xcln,其标签为 c c c,作者的目标是通过丢弃类 c c c的discriminant information和添加target image x t g t x_{tgt} xtgt的对抗细节,同时能够通过残差图像 x r x_r xr解析添加和丢弃的特征信息。方案整体包含Invertible Information Exchange Module (IIEM)和目标图像选择和学习(Target image selection and learning)两个模块,整体概述如下图所示:
在这里插入图片描述

  • IIEM模块 θ \theta θ f θ ( ⋅ ) {f_\theta }({\cdot}) fθ()的参数,由Invertible Information Exchange Module (IIEM), Target Image Learning Module (TILM) 和loss functions三个模块组成用于优化;IIEM由损失函数驱动,通过执行 x c l n {x_{cln }} xcln x t g t {x_{tgt}} xtgt的信息交换来生成对抗图像。由于IIEM的保留属性,输入图像 ( x c l n , x t g t ) ({x_{cln}},{x_{tgt}}) (xcln,xtgt)和输出图像 ( x a d v , x r ) ({x_{adv}},{x_{r}}) (xadv,xr)是相同的且 ( x a d v , x r ) = f θ − 1 ( x c l n , x t g t ) ({x_{adv}},{x_r})= {f_\theta }^{ - 1}({x_{cln }},{x_{tgt}}) (xadv,xr)=fθ1(xcln,xtgt)。AdvINN生成对抗样本的目标函数定义如下:
    在这里插入图片描述
    L a d v ( ⋅ ) \mathcal{L_{adv}}( \cdot ) Ladv()表示对抗损失, L r e c ( ⋅ ) \mathcal{L_{rec}}( \cdot ) Lrec()表示重构损失, λ a d v {\lambda _{adv}} λadv 表示正则参数, ε \varepsilon ε表示对抗扰动预算。

-target image选择: target image是对抗信息的来源,可以从highest confidence target image (HCT)、universal adversarial perturbation (UAP)或online learned classifier guided target image( CGT)中选择;

方法详细阐述:

Invertible Information Exchange Module (IIEM)

该模块主要包括离散小波变换和仿射偶尔两个模块,示意图如下:
在这里插入图片描述

  1. 离散小波变换:作者使用离散小波变换(正文使用的是哈儿小波变换)用以区分输入干净和目标图像分解为低频和高频成分。分解低频和高频特征有助于修改输入图像的高频成分,因而可以产生更不易察觉的对抗样本(注意:修改高频成分生成的对抗样本更不易被察觉。)离散小波变换 T ( ⋅ ) \mathcal{T}(\cdot) T()中,输入图像 x x x可被转换成小波域 T ( x ) \mathcal{T}(x) T(x),该域上包含一个低频子带特征和3个高频子带特征。在IIEM的输出端,逆离散小波变换 T − 1 ( ⋅ ) {\mathcal{T}^{-1}}( \cdot ) T1()用于重构特征到图像域。
  2. 仿射耦合模块:可逆信息交换模块由 M M M个Affine Coupling Blocks(仿射耦合模块)组成。 w c l n i w_{cln }^i wclni w t g t i w_{tgt}^i wtgti表示第 i i i个Affine Coupling Blocks的输入特征, w c l n i = T ( x c l n ) w_{cln }^i = T({x_{cln }}) wclni=T(xcln), w t g t i = T ( x t g t ) w_{tgt}^i = T({x_{tgt}}) wtgti=T(xtgt)。第 i i i个Affine Coupling Blocks的前向过程可表示为:
    在这里插入图片描述
    Θ \Theta Θ表示两个矩阵对应相乘, α \alpha α表示一个sigmod 函数乘以一个常数因子, ψ ( ⋅ ) , ρ ( ⋅ ) , η ( ⋅ ) \psi ( \cdot ),\rho ( \cdot ),\eta ( \cdot ) ψ(),ρ(),η()表示dense network architecture。给定第M个仿射耦合模块的输出,利用逆小波变换可获得对抗图像和残差图像: x a d v = T − 1 ( w c l n M ) , x r = T − 1 ( w t g t M ) {x_{adv}} = {T^{ - 1}}(w_{cln }^M),{x_r} = {T^{ - 1}}(w_{tgt}^M) xadv=T1(wclnM),xr=T1(wtgtM)
  3. 信息保留属性:由于DWI和IDWT的可逆性, ( w c l n M , w t g t M ) (w_{cln }^M, w_{tgt}^M) (wclnM,wtgtM)可以被保存在 ( x a d v , x r ) ({x_{adv}}, {x_r}) (xadv,xr) ( w c l n i − 1 , w t g t i − 1 ) (w_{cln }^{i - 1},w_{tgt}^{i - 1}) (wclni1,wtgti1)可以被保存在 ( w c ln ⁡ i , w t g t i ) (w_{c\ln }^{i },w_{tgt}^{i}) (wclni,wtgti)
    在这里插入图片描述
    IIEM是完全可逆,输出图像 ( x a d v , x r ) ({x_{adv}},{x_r}) (xadv,xr)和输入图像 ( x c l n , x t g t ) ({x_{cln}},{x_tgt}) (xcln,xtgt)包含相同的信息。他们之间的联系可表示如下:
    在这里插入图片描述
    σ \sigma σ表示干净图像上丢弃的信息, δ \delta δ表示添加到干净图像上目标图像的判别信息。

目标图像选择和学习(Target image selection and learning)

  1. 选取最高置信类的图像:选取最高置信的图像作为目标图像可能包含大量目标类的无关信息,例如背景纹理和其他的类的信息。这将会影响攻击成功率和寻优过程;
  2. 通用对抗扰动:作者沿用该方法,利用优化后的通用对抗摄动作为目标图像,加快收敛速度;
  3. 目标图像学习模块:该模块学习分类器引导的目标图像,而不是使用固定的图像作为目标图像。目标图像被设置为一个可学习的变量,该变量用一个恒定的图像初始化(即所有像素设置为0.5),然后根据攻击分类器的梯度进行更新。这样,自适应生成的目标图像可以嵌入目标类的更多判别信息,从而辅助生成对抗样例。

学习细节

整个网络的总体损失定义如下:
在这里插入图片描述
L a d v {\mathcal{L}_{adv}} Ladv表示对抗损失用于定位正确的优化方向和加速收敛速度,
![在这里插入图片描述](https://img-blog.csdnimg.cn/b62ee37afad6493dbf9467356ba72276.pn

L r e c {\mathcal{L}_{rec}} Lrec表示重构损失,用于约束对抗图像和良性图像相似,同时将修改主要应用于高频和不易察觉的内容,从而生成不易被察觉的对抗样本:
在这里插入图片描述

实验:

  • 数据集: ImageNet-1K
  • 基准:PGD,CW, Drop, PerC-AL,SSAH
  • 指标:感知性、攻击能力
  • 受害者模型:ResNet50
  • 感知性评估+目标攻击性能评估+鲁棒性评估(JPEG、bit-depth reduction、NRP and NRP_resG)+消融实验

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

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

相关文章

每天一道leetcode:1129. 颜色交替的最短路径(图论中等广度优先遍历)

今日份题目: 给定一个整数 n,即有向图中的节点数,其中节点标记为 0 到 n - 1。图中的每条边为红色或者蓝色,并且可能存在自环或平行边。 给定两个数组 redEdges 和 blueEdges,其中: redEdges[i] [ai, bi…

Dubbo Spring Boot Starter 开发微服务应用

环境要求 系统:Windows、Linux、MacOS JDK 8 及以上(推荐使用 JDK17) Git IntelliJ IDEA(可选) Docker (可选) 项目介绍 在本任务中,将分为 3 个子模块进行独立开发&#xff…

计算机组成与设计 Patterson Hennessy 笔记(一)MIPS 指令集

计算机的语言:汇编指令集 也就是指令集。本书主要介绍 MIPS 指令集。 汇编指令 算数运算: add a,b,c # abc sub a,b,c # ab-cMIPS 汇编的注释是 # 号。 由于MIPS中寄存器大小32位,是基本访问单位,因此也被称为一个字 word。M…

webpack中常见的Loader

目录 1.webpack中的loader是什么?配置方式 2. loader特性3.常见的loader 1.webpack中的loader是什么? loader 用于对模块的"源代码"进行转换,在 import 或"加载"模块时预处理文件 webpack做的事情,仅仅是分…

爬虫逆向实战(三)--天某云登录

一、数据接口分析 主页地址:天某云 1、抓包 通过抓包可以发现登录接口是account/login 2、判断是否有加密参数 请求参数是否加密? 通过“载荷”模块可以发现password、comParam_signature、comParam_seqCode是加密的 请求头是否加密? 无…

cmake扩展(5)——file命令排除部分文件

在cmake中可以使用file命令获取需要的文件&#xff0c;并且支持正则/通配符&#xff0c;使用起来还是很方便的。 #语法file({GLOB | GLOB_RECURSE} <out-var> [...] [<globbing-expr>...])#example file(GLOB_RECURSE SOURCES "src/*.h" "src/*.cp…

HTTP与HTTPS的区别

面试常见问题&#xff0c;HTTPS优化总结易记版&#xff1a; 1、HSTS重定向技术&#xff1a;将http自动转换为https&#xff0c;减少301重定向 2、TLS握手优化&#xff1a;在TLS握手完成前客户端就提前向服务器发送数据 3、会话标识符&#xff1a;服务器记录下与某客户端的会…

Mac鼠标增强工具Smooze Pro

Smooze Pro是一款Mac上的鼠标手势增强工具&#xff0c;可以让用户使用鼠标手势来控制应用程序和系统功能。 它支持多种手势操作&#xff0c;包括单指、双指、三指和四指手势&#xff0c;并且可以自定义每种手势的功能。例如&#xff0c;您可以使用单指向下滑动手势来启动Expos视…

Linux 僵死进程

fork复制进程之后&#xff0c;会产生一个进程叫做子进程&#xff0c;被复制的进程就是父进程。不管父进程先结束&#xff0c;还是子进程先结束&#xff0c;对另外一个进程完全没有影响&#xff0c;父进程和子进程是两个不同的进程。 一、孤儿进程 现在有以下代码&#xff1a;…

前端基础(JavaScript语法)

前言&#xff1a;今天学习JavaScript的基本语法&#xff0c;包括变量、函数、对象、数组。 目录 JavaScript 变量 函数 对象 数组 JavaScript 变量 定义变量 判断语句 判断等于&#xff1a; 判断不等于&#xff1a;! if else语句 if(vavb){ console.log("…

springboot 整合swagger 入门 使用

1.前提 一定要看好版本。 Springboot ✚ Swagger各版本整理_swagger版本_qq_33334411的博客-CSDN博客 我的版本: <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</ver…

前馈神经网络正则化例子

直接看代码&#xff1a; import torch import numpy as np import random from IPython import display from matplotlib import pyplot as plt import torchvision import torchvision.transforms as transforms mnist_train torchvision.datasets.MNIST(root…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service

成集云 | 乐享问题邀请同步企微提醒 | 解决方案

源系统成集云目标系统 方案介绍 腾讯乐享是腾讯公司开发的一款企业社区化知识管理平台&#xff0c;它提供了包括知识库、问答、课堂、考试、活动、投票和论坛等核心应用。这个平台凝聚了腾讯10年的管理经验&#xff0c;可以满足政府、企业和学校在知识管理、学习培训、文化建…

【gitkraken】gitkraken自动更新问题

GitKraken 会自动升级&#xff01;一旦自动升级&#xff0c;你的 GitKraken 自然就不再是最后一个免费版 6.5.1 了。 在安装 GitKraken 之后&#xff0c;在你的安装目录&#xff08;C:\Users\<用户名>\AppData\Local\gitkraken&#xff09;下会有一个名为 Update.exe 的…

Linux环境变量

环境变量 一.基本概念二.常见的环境变量1.PATH&#xff1a;指令搜索路径2.HOME&#xff1a; 指定用户的主工作目录3.SHELL&#xff1a;当前Shell,它的值通常是/bin/bash 三.查看环境变量的方法四.命令行参数五.环境变量增加和删除六.本地变量 一个问题&#xff1a;我们在写一段…

Kotlin~Bridge桥接模式

概念 抽象和现实之间搭建桥梁&#xff0c;分离实现和抽象。 抽象&#xff08;What&#xff09;实现&#xff08;How&#xff09;用户可见系统正常工作的底层代码产品付款方式定义数据类型的类。处理数据存储和检索的类 角色介绍 Abstraction&#xff1a;抽象 定义抽象接口&…

一起创建Vue脚手架吧

目录 一、安装Vue CLI1.1 配置 npm 淘宝镜像1.2 全局安装1.3 验证是否成功 二、创建vue_test项目2.1 cmd进入桌面2.2 创建项目2.3 运行项目2.4 查看效果 三、脚手架结构分析3.1 文件目录结构分析3.2 vscode终端打开项目 一、安装Vue CLI CLI&#xff1a;command-line interface…

日常BUG——微信小程序提交代码报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 在使用微信小程序开发工具进行提交代码时&#xff0c;报出如下错误&#xff1a; Invalid a…

5、flink任务中可以使用哪些转换算子(Transformation)

1、什么是Flink中的转换算子 在使用 Flink DataStream API 开发流式计算任务时&#xff0c;可以将一个或多个 DataStream 转换成新的 DataStream&#xff0c;在应用程序中可以将多个数据转换算子合并成一个复杂的数据流拓扑图。 2、常用的转换算子 Flink提供了功能各异的转换算…