使用少量数据去除神经网络中的水印 -- WILD
简介
这次介绍一篇文章, 名为Removing Backdoor-Based Watermarks in Neural Networks with Limited Data。
针对现有的利用后门攻击在神经网络中构建水印的工作,该文章主要是提出了一个去除水印的框架。
关于后门攻击,你可以查看我的这篇文章
首先我们来看一下水印是怎么来的,如下图所示
watermark-pipeline首先,我们通过对训练数据进行投毒,构建出一个带水印的模型,使得:模型一旦接受到带有水印的输入,则会输出一个预定义的标签,标识出水印的存在
WILD框架
文章提出了一个名为WILD的框架,用于去除网络中的水印,我们来看看框架的大致情形
wild-framework如上图所示,该框架的数据输入有两个部分:
- 干净的数据,即
- 扩增后的数据,即
我们可以看到,最终产生的误差包括两个部分:
- 扩增后的数据的基础误差,即
- 扩增数据和正常数据的距离误差,即
其中,函数 是一个距离度量函数,函数 是一个特征映射函数,即 会将 映射到一个特征向量。
对于 ,一个最简单的例子就是,用ImageNet进行Pretrain的VGG网络的倒数第一层的输出
实验评估
文章在三种不同类型的水印上进行训练和测试, 如下图所示:
watermark-types分为三种:
- 基于内容的:即直接对某个区域进行修改,将整个区域的像素值改为某个固定值
- 基于噪声的:属于整体上的修改,添加高斯噪声
- 无关的:比如用训练集类别之外的数据
我们来看看在CIFAR-10上的表现:
image-20210429162726607可以看到,在无关的水印上,所有方法的去除表现最差;在基于噪声的水印上,所有方法的去除表现最好
对比先前的方法REFIT,水印的去除效果更加明显。
Refit: a unified watermark removal framework for deep learning systems with limited data
在基于内容和基于噪声的水印上,基本上只要10%的数据,就可以实现不错的去除效果了。
网友评论