论文阅读——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)
该模块主要包括离散小波变换和仿射偶尔两个模块,示意图如下:
- 离散小波变换:作者使用离散小波变换(正文使用的是哈儿小波变换)用以区分输入干净和目标图像分解为低频和高频成分。分解低频和高频特征有助于修改输入图像的高频成分,因而可以产生更不易察觉的对抗样本(注意:修改高频成分生成的对抗样本更不易被察觉。)离散小波变换 T ( ⋅ ) \mathcal{T}(\cdot) T(⋅)中,输入图像 x x x可被转换成小波域 T ( x ) \mathcal{T}(x) T(x),该域上包含一个低频子带特征和3个高频子带特征。在IIEM的输出端,逆离散小波变换 T − 1 ( ⋅ ) {\mathcal{T}^{-1}}( \cdot ) T−1(⋅)用于重构特征到图像域。
- 仿射耦合模块:可逆信息交换模块由 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=T−1(wclnM),xr=T−1(wtgtM) - 信息保留属性:由于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}) (wclni−1,wtgti−1)可以被保存在 ( 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)
- 选取最高置信类的图像:选取最高置信的图像作为目标图像可能包含大量目标类的无关信息,例如背景纹理和其他的类的信息。这将会影响攻击成功率和寻优过程;
- 通用对抗扰动:作者沿用该方法,利用优化后的通用对抗摄动作为目标图像,加快收敛速度;
- 目标图像学习模块:该模块学习分类器引导的目标图像,而不是使用固定的图像作为目标图像。目标图像被设置为一个可学习的变量,该变量用一个恒定的图像初始化(即所有像素设置为0.5),然后根据攻击分类器的梯度进行更新。这样,自适应生成的目标图像可以嵌入目标类的更多判别信息,从而辅助生成对抗样例。
学习细节
整个网络的总体损失定义如下:
L a d v {\mathcal{L}_{adv}} Ladv表示对抗损失用于定位正确的优化方向和加速收敛速度,
+消融实验
相关文章:

论文阅读——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 解决的问题:虽然视觉不可感知性是对抗性示例的理想特性,但传统的对抗性攻击仍然会产…...

List和ObservableCollection和ListBinding在MVVM模式下的对比
List和ObservableCollection和ListBinding在MVVM模式下的对比 List 当对List进行增删操作后,并不会对View进行通知。 //Employee public class Employee : INotifyPropertyChanged {public event PropertyChangedEventHandler? PropertyChanged;public string N…...

insightface安装过程中提示 Microsoft Visual C++ 14.0 or greater is required.
pip install insightface安装过程中提示 Microsoft Visual C 14.0 or greater is required.Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ 根据提示网站访问官网下载生成工具 打开软件后会自动更新环境&#…...

mongodb数据库
目录 一、数据库 二、文档 三、集合 四、元数据 五、MongoDB 数据类型 1、ObjectId 2、字符串 3、时间戳 4、日期 一、数据库 一个 mongodb 中可以建立多个数据库。 MongoDB 的默认数据库为"db",该数据库存储在 data 目录中。 MongoDB 的单…...

OpenCV-Python中的图像处理-图像特征
OpenCV-Python中的图像处理-图像特征 图像特征Harris角点检测亚像素级精度的角点检测Shi-Tomasi角点检测SIFT(Scale-Invariant Feature Transfrom)SURF(Speeded-Up Robust Features)FAST算法BRIEF(Binary Robust Independent Elementary Features)算法ORB (Oriented FAST and R…...

Ajax入门+aixos+HTTP协议
一.Ajax入门 概念:AJAX是浏览器与服务器进行数据通信的技术 axios使用: 引入axios.js使用axios函数:传入配置对象,再用.then回调函数接受结果,并做后续处理 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>01.axios使用…...
conda创建虚拟环境
创建虚拟环境是在计算机上设置一个独立的空间,用于安装和运行特定版本的软件和依赖项,以避免与系统其他部分的冲突。 创建虚拟环境: conda create --name myenv python3.8 这将创建一个名为myenv的虚拟环境,并安装Python 3.8版本。…...

Golang服务的请求调度
文章目录 1. 写在前面2. SheddingHandler的实现原理3. 相关方案的对比4. 小结 1. 写在前面 最近在看相关的Go服务的请求调度的时候,发现在gin中默认提供的中间件中,不含有请求调度相关的逻辑中间件,去github查看了一些服务框架,发…...
Jenkins的流水线启动jar后未执行问题处理
现象 在流水线里配置了启动脚本例如,nohup java -jar xxx.jar >nohup.out 2>&1 & 但是在服务器发现服务并未启动,且nohup日志里没输出日志,这样的原因是jenkins在执行完脚本后,就退出了这个进程。 在启动脚本执行jar命令的上一步加入以下…...

智慧工地平台工地人员管理系统 可视化大数据智能云平台源码
智慧工地概述: 智慧工地管理平台是以物联网、移动互联网技术为基础,充分应用大数据、人工智能、移动通讯、云计算等信息技术,利用前端信息采通过人机交互、感知、决策、执行和反馈等,实现对工程项目內人员、车辆、安全、设备、材…...

外包干了2个月测试,技术退步明显...
先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...
神经网络基础-神经网络补充概念-19-向量化实现的解释
概念 向量化是一种优化技术,通过使用数组操作代替显式的循环,可以大大提高代码的性能和效率。在机器学习和数据分析领域,向量化是一种常见的实践,它允许你在处理大量数据时更快地进行计算。 一般操作 数组操作:向量…...

四层和七层负载均衡的区别
一、四层负载均衡 四层就是ISO参考模型中的第四层。四层负载均衡器也称为四层交换机,它主要时通过分析IP层和TCP/UDP层的流量实现的基于“IP端口”的负载均衡。常见的基于四层的负载均衡器有LVS、F5等。 以常见的TCP应用为例,负载均衡器在接收到第一个来…...

Scala 如何调试隐式转换--隐式转换代码的显示展示
方法1 在需要隐式转换的地方,把需要的参数显示的写出。 略方法2,查看编译代码 在terminal中 利用 scalac -Xprint:typer xxx.scala方法打印添加了隐式值的代码示例。 对于复杂的工程来说,直接跑到terminal执行 scalac -Xprint:typer xxx.…...
Rust交叉编译简述 —— Arm
使用系统:WSL2 —— Kali(Microsoft Store) 命令列表 rustup target list # 当前官方支持的构建目标架构列表 rustup target add aarch64-unknown-linux-gnu # 添加目标架构sudo apt-get install gcc-13-aarch64-linux-gnu gcc-13-aarch64-linux-gnu # 下载目标工具…...

算法与数据结构(二十三)动态规划设计:最长递增子序列
注:此文只在个人总结 labuladong 动态规划框架,仅限于学习交流,版权归原作者所有; 也许有读者看了前文 动态规划详解,学会了动态规划的套路:找到了问题的「状态」,明确了 dp 数组/函数的含义&a…...

相机的位姿在地固坐标系ECEF和ENU坐标系的转换
在地球科学和导航领域,通常使用地心地固坐标系(ECEF,Earth-Centered, Earth-Fixed)和东北天坐标系(ENU,East-North-Up)来描述地球上的位置和姿态。如下图所示: 地心地固坐标ecef和…...

RFID技术助力汽车零配件装配产线,提升效率与准确性
随着科技的不断发展,越来越多的自动化设备被应用到汽车零配件装配产线中。其中,射频识别(Radio Frequency Identification,简称RFID)技术凭借其独特的优势,已经成为了这一领域的重要技术之一。本文将介绍RF…...
应用高分辨率 GAN 对扰动文档图像去扭曲的深度Python实践
1. 引言 随着技术的不断发展,图像处理在各种场景中的应用也变得越来越广泛。高分辨率 GAN (Generative Adversarial Network) 是近年来图像处理领域的热点技术,它能够生成极高分辨率的图像,与此同时,它也可以用于各种修复和增强任…...
【BASH】回顾与知识点梳理(二十六)
【BASH】回顾与知识点梳理 二十六 二十六. 二十一至二十五章知识点总结及练习26.1 总结26.2 模拟26.3 简答题 该系列目录 --> 【BASH】回顾与知识点梳理(目录) 二十六. 二十一至二十五章知识点总结及练习 26.1 总结 Linux 操作系统上面,…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...