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. 【深度学习】基于深度神经网络进行权重剪枝的算法(一)

    [深度学习]基于深度神经网络进行权重剪枝的算法(一) 1 pruning 2 代码例子 3 tensorflow2 keras 权重剪裁(tensorflow-model-optimization)3 ...

  2. 【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(下)——深度神经网络用于图像分类:应用

    在阅读这篇文章之前,请您先阅读:[深度学习]吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(上)--一步步建立深度神经网络,这篇文章是本篇文章的前篇,没有前篇的基础 ...

  3. 【深度学习】基于深度神经网络进行权重剪枝的算法(二)

    [深度学习]基于深度神经网络进行权重剪枝的算法(二) 文章目录 1 摘要 2 介绍 3 OBD 4 一个例子 1 摘要 通过从网络中删除不重要的权重,可以有更好的泛化能力.需求更少的训练样本.更少的学 ...

  4. 周志华:深度学习不只是深度神经网络

    周志华教授是美国计算机学会 (ACM).美国科学促进会 (AAAS).国际人工智能学会 (AAAI) .国际电气电子工程师学会 (IEEE) .国际模式识别学会 (IAPR).国际工程技术 (IET/ ...

  5. 【深度学习】解析深度神经网络背后的数学原理

    来源:产业智能官 解析深度网络背后的数学 如今,已有许多像 Keras, TensorFlow, PyTorch 这样高水平的专门的库和框架,我们就不用总担心矩阵的权重太多,或是对使用的激活函数求导时 ...

  6. 《深度学习笔记》——深度神经网络的调试笔记

    1 模型的快速验证 1.1 确定模型是可以收敛的 在刚开始调试的时候,可能难以确定模型是否收敛,这时候可以在调试的时候,适当地增加学习率的数量级,看看模型在前几次迭代的时候loss是否会随着迭代次数的 ...

  7. [Python从零到壹] 四十.图像处理基础篇之图像量化处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. 深度对抗学习在图像分割和超分辨率中的应用

    原文:http://blog.csdn.net/shenziheng1/article/details/72821001 深度对抗学习在图像分割和超分辨率中的应用 原创 2017年05月31日 16: ...

  9. 深度学习:AI对抗学习比深度、增强学习能好多少

    人工智能中,或许对抗学习是继深度学习.增强学习之后下一个热点,但是,它只对中等难度的任务具有实用性,依然不能解开"迁移学习"(实际中不可行)所追求的那种像人一样跨越多个领域,具备所 ...

最新文章

  1. windows2008 R2 如何建立FTP站点
  2. c++ 编译添加dll_matconvnet安装、编译、配置
  3. python下载地址
  4. Shell脚本-自动化部署反向代理、WEB、nfs
  5. 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
  6. 贴片电容的0.65T,0.8T,1.25T,2.5T是什么意思
  7. C#基础13:预编译指令
  8. JavaScript循环遍历对象的属性,只要对象内的Value
  9. 聚观早报 | 华为官宣新机Pocket S;苹果旗舰店开售智能门锁
  10. Rainmeter,让你的桌面更精彩~
  11. 加多宝首度披露"换头手术"的详细内幕
  12. 多比特杯第四届ACM程序设计竞赛同步赛
  13. 微信小程序选择开始时间和结束时间控件
  14. 最详细农行招聘面试经历
  15. 汉诺塔问题的递归求解
  16. 每日刷题:lightoj-1004 - Monkey Banana Problem
  17. Type-C快充诱电方案(PD受电)
  18. R语言 cowplot包快速拼图
  19. 【自动控制原理】——第二章——数学模型【时域】【复频域】【梅森增益公式】
  20. 【Python】函数

热门文章

  1. Ansible02-Ad-Hoc
  2. 基于XR Interaction ToolKit与PUN实现VR多人协同功能
  3. 有没有一句深刻的话改变了你,并让你一直付诸实践至今
  4. mysql查询 正则表达式_Mysql正则表达式查询
  5. npm install淘宝镜像
  6. 网站分享,希望提升自身能力的开发人员必看
  7. List和Set之间的转换:达到集合元素去重复
  8. php抓取标签内的内容,php抓取网页中的内容
  9. 渠道向上,资本下沉:小家电凭何在家电下行期逆流而上?
  10. Java基础:Java中四种访问修饰符