BppAttack:通过图像量化和对比对抗学习来攻击深度神经网络
BppAttack:通过图像量化和对比对抗学习来攻击深度神经网络
论文地址:BppAttack
一.
当前主流trigger:
image patches:BadNet
watermark:
image filter:ABS
learned image transformation: SSBA(依赖于输入,需要自动编码器资源要求高); Lira辅助图像转换模型
不同Trojan attack的sample比较
现有Trojan attack工作的问题:
问题一:trigger人眼可以识别,然后基于reverse engineering重构触发器,识别模型是否有Trojan。
问题二:不同的样本共用触发模式.对应defence:Spectre;Abs;Strip;NC
现有主流defence:
基于训练时的分析:训练前光谱特征和activation cluster;训练时poison suppression基于差分隐私
基于逆向工程:NC,ABS,针对patches trigger,对不同trigger types无效(input-aware trigg)
基于清除木马:fine-tune ;pruning;
基于GradCAM:Februss;SentiNet检测模型预测是否本地化,当trigger不是本地化的时候(filter trigger),方法失效
二.
假设:
attacker能够完全控制数据集、训练过程和模型的实现,通过毒害数据集来注入木马。
思路:
人眼感知对颜色微小改变不敏感 →减少bit-per-pixel (BPP) →利用颜色量化和抖动产生trigger →这种small-size作为触发器,导致注入trigger困难 →提出利用对比学习和对抗性训练的方法inject
不可感知的实现:以前定义距离函数测量两个样本视觉上的相似性(LP距离和SSIM分数—)。
generate
1.颜色量化:通过减少颜色深度,将图像的原始palette(每个通道上的每个像素的m位)压缩成一个更小的palette(d位)。对于每个像素,我们使用压缩d位空间中最接近的像素值来替换原始值
2.抖动:当palette有限时,dithering产生颜色深度错觉。使用Floyd–Steinberg dithering 。它将一个像素的残差量化的误差添加到其相邻像素上,从而扩散误差。
inject
3.交叉熵损失函数对BPP收敛效果不好,利用对比监督学习和对抗性训练。PGD(基于优化)生成对抗样本,训练时作为negative sample。
三.
代码架构
├── classifier_models # 存放分类模型
├── networks #
├── utils # 模型加载和工具调用
├── bppattacks.py # 主函数
├── config.py # 参数设置
├── requirements #需要的package
数据集和设置
classifier_models(不同架构)
bppattack.py
抖动的实现:每个channel的每个pixel的m位压缩成d位。m=8;2^d=squeeze_num; α1;α2;α3;α4
def floyDitherspeed(image,squeeze_num):channel,h,w=image.shapefor y in range(h):for x in range(w):old =image[:,y,x]temp=npp.empty_like(old).astype(np.float64)new=rnd1(old/255.0*(squeeze_num-1), 0, temp)/ (squeeze_num- 1)*225error = old-newimage[:,y,x]=newif x+1<w:image[:, y, x+1] + =error*0.4375if (y+1<h) and (x+1<w):image[:, y+1,x+1] + =error*0.0625if y+1<h:image[:, y+1,x]+ = error*0.3125if (x-1>=0) and (y+1<h):image[;, y+1, x-1] + = error*0.1875return image
MNIST Classifier的设置
其他defence的效果:
- Spectral Signature:收集latent feature,计算outline scores,排除有毒样本。
- Universal Litmus Patterns:假设trigger是patches。本文trigger不是patchs。
- Neural Knowledge Distillation:ASR显著下降
- Fine-tune:借助Latent backdoor attacks on deep neural networks的方法来对抗fine-tune
attack 比较:
- ISSBA:利用自动编码的辅助模型,对计算资源要求更高,耗时更多。
- WaNet:效果近似。
backdoor attacks on deep neural networks*的方法来对抗fine-tune
attack 比较:
- ISSBA:利用自动编码的辅助模型,对计算资源要求更高,耗时更多。
- WaNet:效果近似。
BppAttack:通过图像量化和对比对抗学习来攻击深度神经网络相关推荐
- 【深度学习】基于深度神经网络进行权重剪枝的算法(一)
[深度学习]基于深度神经网络进行权重剪枝的算法(一) 1 pruning 2 代码例子 3 tensorflow2 keras 权重剪裁(tensorflow-model-optimization)3 ...
- 【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(下)——深度神经网络用于图像分类:应用
在阅读这篇文章之前,请您先阅读:[深度学习]吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(上)--一步步建立深度神经网络,这篇文章是本篇文章的前篇,没有前篇的基础 ...
- 【深度学习】基于深度神经网络进行权重剪枝的算法(二)
[深度学习]基于深度神经网络进行权重剪枝的算法(二) 文章目录 1 摘要 2 介绍 3 OBD 4 一个例子 1 摘要 通过从网络中删除不重要的权重,可以有更好的泛化能力.需求更少的训练样本.更少的学 ...
- 周志华:深度学习不只是深度神经网络
周志华教授是美国计算机学会 (ACM).美国科学促进会 (AAAS).国际人工智能学会 (AAAI) .国际电气电子工程师学会 (IEEE) .国际模式识别学会 (IAPR).国际工程技术 (IET/ ...
- 【深度学习】解析深度神经网络背后的数学原理
来源:产业智能官 解析深度网络背后的数学 如今,已有许多像 Keras, TensorFlow, PyTorch 这样高水平的专门的库和框架,我们就不用总担心矩阵的权重太多,或是对使用的激活函数求导时 ...
- 《深度学习笔记》——深度神经网络的调试笔记
1 模型的快速验证 1.1 确定模型是可以收敛的 在刚开始调试的时候,可能难以确定模型是否收敛,这时候可以在调试的时候,适当地增加学习率的数量级,看看模型在前几次迭代的时候loss是否会随着迭代次数的 ...
- [Python从零到壹] 四十.图像处理基础篇之图像量化处理
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 深度对抗学习在图像分割和超分辨率中的应用
原文:http://blog.csdn.net/shenziheng1/article/details/72821001 深度对抗学习在图像分割和超分辨率中的应用 原创 2017年05月31日 16: ...
- 深度学习:AI对抗学习比深度、增强学习能好多少
人工智能中,或许对抗学习是继深度学习.增强学习之后下一个热点,但是,它只对中等难度的任务具有实用性,依然不能解开"迁移学习"(实际中不可行)所追求的那种像人一样跨越多个领域,具备所 ...
最新文章
- windows2008 R2 如何建立FTP站点
- c++ 编译添加dll_matconvnet安装、编译、配置
- python下载地址
- Shell脚本-自动化部署反向代理、WEB、nfs
- 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
- 贴片电容的0.65T,0.8T,1.25T,2.5T是什么意思
- C#基础13:预编译指令
- JavaScript循环遍历对象的属性,只要对象内的Value
- 聚观早报 | 华为官宣新机Pocket S;苹果旗舰店开售智能门锁
- Rainmeter,让你的桌面更精彩~
- 加多宝首度披露"换头手术"的详细内幕
- 多比特杯第四届ACM程序设计竞赛同步赛
- 微信小程序选择开始时间和结束时间控件
- 最详细农行招聘面试经历
- 汉诺塔问题的递归求解
- 每日刷题:lightoj-1004 - Monkey Banana Problem
- Type-C快充诱电方案(PD受电)
- R语言 cowplot包快速拼图
- 【自动控制原理】——第二章——数学模型【时域】【复频域】【梅森增益公式】
- 【Python】函数