引言

在之前的文章中,我们介绍了对抗样本和对抗攻击的方法。在该系列文章中,我们介绍一种对抗样本防御的策略--对抗样本检测,可以通过检测对抗样本来强化DNN模型。本篇文章论述其中一种方法:feature squeezing,特征压缩通过将原始空间中许多不同特征向量对应的样本合并成一个样本,减少了对手可用的搜索空间。通过比较DNN模型对原始输入的预测与对实施特征压缩后的输入的预测,特征压缩能够以高精度检测出对抗样本,并且误报率很低。本文探讨两种特征压缩方法:减少每个像素的颜色位深度和空间平滑。这些简单的策略相比于其他防御方法的代价较小(训练时间等),并且可以与其他防御相补充,实现性能很好的对抗防御效果。

预备知识

Color Depth

色深(Color Depth),顾名思义,就是“色彩的深度”,这里的“深度”就是指精细度。在数字图像中,最小的单位叫“像素”(Pixel),这里的像素是彩色的像素,每一个像素都有自己独立完整的参数,在RGB三通道图像中,每一个像素都由R,G,B三个通道组成,其中每个通道又由若干个二进制位来表示其“含量”,例如,11001101100110011111111(共24位),表示102红,204绿和255蓝,根据加色系理论,这个颜色就是我们常说的“天依蓝”。其中,用来表示该颜色的2进制位数,就是“色深”,即24bit。

Spatial Smoothing

空间平滑(也称为模糊)是一组广泛应用于图像处理以降低图像噪声的技术。

Local Smoothing

局部平滑方法利用附近的像素来平滑每个像素。通过选择不同的加权机制,可以设计不同的局部平滑方法:Gaussian smoothing、mean smoothing or median smoothing。本篇文章涉及的特征压缩选择median smoothing。下图是中值平滑的效果:



一些对比:

废话:中值滤波是一种典型的非线性滤波,是基于排序统计理论的一种能够有效抑制噪声的非线性信号处理技术,基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值让周围的像素值接近真实的值从而消除孤立的噪声点。该方法在取出脉冲噪声、椒盐噪声的同时能保留图像的边缘细节。

简单叙述之:一张图片由一堆像素点组成,取一个小窗,假设大小为3 * 3(即9个像素点),将该小窗在整张图片上移动,每次移动后做如下的工作:

  1. 找到9个像素点的中值(中位数),记为δ
  2. 用δ替代中间像素点的值

不断移动小窗,重复上面的工作。

Non-local Smoothing

非局部平滑不同于局部平滑,因为它在更大的区域内处理相似的像素,而不仅仅是附近的像素。很多图像平滑技术,比如高斯平滑,中值平滑等,当噪声比较小时这些技术的效果都是很好的。在这些技术中我们选取像素周围一个小的邻域然后用高斯平均值或者中值平均值取代中心像素。简单来说,像素级别的噪声去除是限制在局部邻域的

NL-Means的全称是∶Non-Local Means,直译过来是非局部平均,在2005年由Baudes提出,该算法使用自然图像中普遍存在的冗余信息来去噪声。与常用的双线性滤波、中值滤波等利用图像局部信息来滤波不同的是,它利用了整幅图像来进行去噪,以图像块为单位在图像中寻找相似区域,再对这些区域求平均,能够比较好地去掉图像中存在的高斯噪声。对于彩色图像,要先转换到 CIELAB颜色空间,然后对LAB成分分别去噪。

非局部平滑方法的参数通常包括搜索窗口大小(用于搜索类似补丁的大区域)、补丁大小和滤波器强度(高斯核的带宽)。我们将把一个过滤器表示为nl(a-b-c),其中a表示搜索窗口a*ab表示补丁大小b*bc表示过滤器强度。

对抗样本检测原理及实施方法

原理:一个直觉与猜想

下图是从8-bit色深依次降低到1-bit色深时的图像:



下图是对图像应用中值平滑后的效果:

我们可以看到,从人眼角度,我们能够分辨出色深bit降低不多时的图像,以及中值平滑后的图像。在人眼看来,原始图像和处理后的图像差别不大,从分辨的角度来看,结果可以说是高度一致。那么,我们希望DNN分类器能够做到与人类相同的分辨,而对于对抗样本,我们猜想,应用这些特征压缩后,DNN分类器会给出与原始输入对应的输出差别较大的输出。

实施方法

我们知道使用softmax的DNN分类器输出概率向量,对于原始输入,我们能得到DNN分类器的对应输出概率向量,将原始输入实施特征压缩后,再输入到DNN分类器中,又会得到一个概率向量。通过测量这两个概率向量之间的差距,我们就能分辨对抗样本。因为之前我们已经基于直觉推出特征压缩后的正常图像和没有压缩的特征图像的概率向量输出差别不会大,否则与人眼识别的效果不一致,说明模型本身不合格(即使没有加对抗样本,这样的模型可以说不合格),而我们也假设对抗样本施加特征压缩后会得到与原始对抗样本输入对应的输出差别较大的输出

度量概率向量之间的差异

可以有很多方法度量概率向量之间的差异,这里采用\(L_1\)范数度量:

\(\boldsymbol{x}\)是原始输入图像,\(\boldsymbol{x}_{squ}\)是对原始输入实施特征压缩后的图像,\(g(\boldsymbol{x})\)是原始输入图像的输出概率向量,\(g(\boldsymbol{x}_{squ})\)是特征压缩后的输入图像的输出概率向量,那么两者之间输出向量的差异值如下:

\[score^{(\boldsymbol{x},\boldsymbol{x}_{squ})} = ||g(\boldsymbol{x}) - g(\boldsymbol{x}_{squ})||_1
\]

选择threshold:判断差异多大才属于对抗样本

\(score^{(\boldsymbol{x},\boldsymbol{x}_{squ})}\)较小的\(\boldsymbol{x}\)我们认为是正常图像,差异大认为是对抗样本,这个阈值多大决定了检测的效果

  • threshold太小,虽然能够检测到几乎全部的对抗样本,但是正常图像被错分为对抗样本的几率大增
  • threshold太大,不能有效检测到大部分的对抗样本

实验:对直觉和猜想的检验

分别在三个数据集上统计\(score^{(\boldsymbol{x},\boldsymbol{x}_{squ})}\),横轴为\(score^{(\boldsymbol{x},\boldsymbol{x}_{squ})}\)的数值,纵轴为得分等于横轴某个值的输入x的数量。蓝色代表正常图像,红色代表对抗样本,结果如下:



可以看到绝大部分的正常图像的得分值都很小,绝大部分对抗样本的得分值都很大,这验证了我们之前的猜想

联合检测方法

可以将上述特征压缩方法结合起来,每种特征压缩方法和原始输入计算输出,得到多个\(score^{(\boldsymbol{x},\boldsymbol{x}_{squ})}\),取最大值作为评判指标。因此对抗样本的联合检测模型如下:

模型训练:选择适当的threshold

在上面的联合检测模型中,我们需要确定适当的threshold:T,以区分对抗样本和正常输入。因为DNN分类的输入绝大部分是正常输入,对抗样本只是少数,在数据不平衡的情况下,准确率无法体现模型的真实水平。因此,用准确率作为指标不合适。在此,我们选择使正常输入被错分为对抗样本不能超过5%为指标,因此只用正常图像作为输入训练检测器即可。

防止对抗攻击对特征压缩的适应性

引入随机:

  • 在color depth中,不再四舍五入(即不固定0.5为舍入阈值,而是在正负0.1范围内的随机值,即随机选择0.4-0.6为舍入阈值)
  • 在median smoothing中,选择随机区域大小,不再是2 * 2或3 * 3等固定大小的区域
  • ......

参考资料

[1] Xu, Weilin & Evans, David & Qi, Yanjun. (2018). Feature Squeezing: Detecting Adversarial Examples in Deep Neural Networks. 10.14722/ndss.2018.23210.

[2] Nicholas Carlini. Robust Evasion Attacks against Neural Network to Find Adversarial Examples. https://github.com/carlini/nn_robust_attacks/.

[3] 「色深」和「位深」有什么区别? - 天才Pika小透明的文章 - 知乎 https://zhuanlan.zhihu.com/p/144207333

[4] 图像平滑处理-中值滤波 - Monster_H7 - CSDN https://blog.csdn.net/Monster_H7/article/details/83788754

对抗防御之对抗样本检测(一):Feature Squeezing的更多相关文章

  1. 对抗网络之目标检测应用:A-Fast-RCNN

    对抗网络之目标检测应用:A-Fast-RCNN 论文:A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection ...

  2. 腾讯推出超强少样本目标检测算法,公开千类少样本检测训练集FSOD | CVPR 2020

    论文提出了新的少样本目标检测算法,创新点包括Attention-RPN.多关系检测器以及对比训练策略,另外还构建了包含1000类的少样本检测数据集FSOD,在FSOD上训练得到的论文模型能够直接迁移到 ...

  3. 【旧文章搬运】对抗RKU的StealthCode检测

    原文发表于百度空间,2009-07-02========================================================================== 快一个月没 ...

  4. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  5. RNA测序样本检测

    常规转录组测序     样品类型:去蛋白并进行DNase处理后的完整总RNA 样品需求量(单次): 植物和真菌样品:≥20 μg: 人.大鼠.小鼠样品:≥5 μg: 其他类型动物:≥10 μg: 原核 ...

  6. 浏览器特性检测插件Feature.js

    <script src="js/feature.js"></script> if (feature.webGL) { console.log("你 ...

  7. 准确率99%!基于深度学习的二进制恶意样本检测——瀚思APT 沙箱恶意文件检测使用的是CNN,LSTM TODO

    所以我们的流程如图所示.将正负样本按 1:1 的比例转换为图像.将 ImageNet 中训练好的图像分类模型作为迁移学习的输入.在 GPU 集群中进行训练.我们同时训练了标准模型和压缩模型,对应不同的 ...

  8. 对抗样本攻防战,清华大学TSAIL团队再获CAAD攻防赛第一

    最近,在全球安全领域的殿堂级盛会 DEF CON 2018 上,GeekPwn 拉斯维加斯站举行了 CAAD CTF 邀请赛,六支由国内外顶级 AI 学者与研究院组成的队伍共同探讨以对抗训练为攻防手段 ...

  9. KDD 2018 | 最佳论文:首个面向Facebook、arXiv网络图类的对抗攻击研究

    8 月 19 日至 23 日,数据挖掘顶会 KDD 2018 在英国伦敦举行,昨日大会公布了最佳论文等奖项.最佳论文来自慕尼黑工业大学的研究者,他们提出了针对图深度学习模型的对抗攻击方法,是首个在属性 ...

随机推荐

  1. Linux-远程服务ssh

    1.远程管理服务介绍 (1)SSH是(Secure Shell Protocol)的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行机密处理,加密后在进行文件 ...

  2. DWORD

    C++中使用DWORD不用声明,但是要加头文件Windows.h. DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位. ...

  3. 8、负载均衡HAproxy部署

    8.1.基本环境说明: 服务器名(centos7) ip地址 安装软件 slave-node1 172.16.1.91 haproxy1.8.15,tomcat8.5.37(8080.8081实例), ...

  4. 修改myeclipse 项目中用的jdk版本

    修改myeclipse 项目中用的jdk版本 首先, 打开MyEclipse,如下图所示 打开之后,找到我们的java项目 右键--"Build Path--->Confirgure ...

  5. php laravel5.5使用rabbitmq消息队列

    1.安装rabbitmq 2.安装amqp扩展 3.在Laravel中配置 Rabbitmq 我是Laravel5.5,按照文档上说我只能用6版本 composer require vladimir- ...

  6. Ubuntu创建图标

    起因 安装一些软件时,总是没有图标,导致无法固定到docky栏,所以极为不方便,所以需要自己创建图标. 操作 以创建微信图标为例 [Desktop Entry] Name=Wecaht #名字 Com ...

  7. 6 shell内置命令

    知识点1:什么是shell内建命令? Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 内建命令与普通命令的性质是不一样的,内建命令并不是某个外部文件,只要在 ...

  8. linux学习之路第八天(组管理和权限管理)

    组管理和权限管理 1.Linux 组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者,所在组,其他组的概念 1)所有者 2)所在组 3)其它组 4)改变 ...

  9. ROS2学习之旅(4)——理解ROS2 Graph中的节点

    ROS(2)图(ROS(2) graph)是一个同时处理数据的基于ROS2元素的网络,它包含了所有的可执行文件以及它们之间的连接.图中的基本元素包括:节点(nodes).话题(topics).服务(s ...

  10. ARTS起始篇

    ARTS简要说明(每周需要完成以下四项): Algorithm:每周至少做一道 leetcode 的算法题,编程训练.刻意练习. Review:需要阅读并点评至少一篇英文技术文章,这个是四项里面对我最 ...