Embedding Watermarks into Deep Neural Networks

将水印嵌入深度神经网络

ABSTRACT

最近在深度神经网络领域取得了显著的进展。分享深度神经网络的训练模型对于这些系统的快速研究课并发进展至关重要。与此同时,保护共享训练模型的权利也变得十分必要。为此我们提议使用数字水印技术来保护知识产权,并在使用训练模型时检测知识侵权行为。首先,我们提出了一个问题:将水印嵌入深度神经网络。其次,我们提出了一种通用得框架,通过使用参数正则化将水印嵌入参数模型。我们的方法不会损害嵌有水印得网络性能,因为水印实在训练主网络时嵌入的。最后,我们进行了全面的实验证明水印嵌入深度神经网络作为这一新研究努力基础的潜力。我们展示了我们的框架可以在从头开始训练深度神经网络、微调和蒸馏过程中国嵌入水印,而不影响其性能。即使在微调或参数减枝后,嵌入的水印仍然存在;即使剪枝了65%的参数,水印仍然完整。

参数正则化:一种用于控制机器学习模型复杂性的技术,用来防止模型过度拟合训练数据。在深度学习和其它机器学习任务中,模型的目标是在训练数据上表现良好,并且在未见过的数据上也能够泛化得很好。过度拟合是指模型过于复杂,以至于在训练数据上表现得很好,但在新数据上表现不佳。参数正则化通过向模型得损失函数中添加一个额外得项来实现。这个额外得项通常与模型的参数相关,以对参数进行惩罚,使其保持较小的值。这有助于防止模型对训练数据中的噪声过于敏感,从而提高了模型在未见过的数据上的泛化能力。最常见的两种形式是L1正则化和L2正则化,L1正则化就是在损失函数中添加参数的绝对值之和,通常以参数的L1范数乘以一个调整参数(正则化强度)的方式。L1正则化有助于使一些参数变得稀疏,即将一些参数设置为零,从而可以进行特征选择。L2正则化是在损失函数中添加参数的平方和的一半,通常以参数的L2范数乘以一个调整参数(正则化强度)的方式。L2正则化有助于防止参数取过大的值,从而控制模型的复杂性。两种正则化方法可以同时使用,形成L1和L2混合正则化,以综合利用它们的优势。参数正则化是调整模型的一种常见方法,以在训练和测试数据上都取得良好的性能。L1范数是向量中各个元素绝对值的和,对于一个n维向量x,其L1范数表示为||X||_{1}=|X_{1}|+|X_{2}|+|X_{3}|+...+|X_{n}|。L2范数是向量中各个元素平方和的平方根,对于一个n维向量x,其L2范数表示为:||X||_{2}=\sqrt{​{X_{1}^2}+{X_{2}^2}+...+{X_{n}^2}}

微调:在机器学习中,微调是指使用一个已经经过预训练的模型(通常是在大规模数据上进行训练得到的模型)作为起点,然后通过在新的任务或领域上进行有限的训练来调整模型参数,使其适应新任务。微调通常应用在迁移学习或者模型适应中。微调是迁移学习的一种形式,通过在一个大规模数据集上训练的模型,我们可以获得对于一般特征的学习。然后通过微调,我们可以将这个模型应用于特定的任务或领域,从而利用在通用任务上学到的特征来改进模型在新任务上的性能。模型适应,当已有的模型在某个任务上表现良好,但需要稍作调整以适应不同的数据集或任务时,微调也是一种常见的方法。这可以帮助模型更好地适应新的输入分布,提高性能。

微调地步骤通常包括以下几个阶段:预训练阶段,使用大规模地数据集在模型上进行初始训练。通常是在通用任务上,例如图像分类地ImageNet数据集上进行的。微调阶段,使用目标任务的数据集,在预训练模型的基础上进行有限的训练。这可以包括调整模型的权重、更新模型的最后几层,或者是在整个模型上进行微调,具体取决于任务的复杂性和可用的数据量。微调的优势在于它能够加速模型在新任务上的学习过程,特别是在目标任务的数据相对较少的情况下。这种方法能够有效利用预训练模型在大规模数据上学到的通用特征。

蒸馏:在机器学习领域,蒸馏通常是指一种模型压缩技术,其中一个较大的模型(教师模型)的知识被传递给一个较小的模型(学生模型),以便学生模型能够在保持相对较低的复杂度的同时获得与教师模型相近的性能。蒸馏的主要目标是在保留模型性能的同时减小模型的规模,使其能够更适合于在资源受限的环境中部署,这种方法的灵感来自于教师向学生传授知识的概念。蒸馏的一般步骤一般包括教师模型训练、软标签生成,学生模型训练。教师模型训练就是使用大型数据集和较大的模型(教师模型)进行训练。这个模型通常具有更好的性能,但相对复杂。软标签生成就是使用教师模型对相同数据集进行推理,生成软标签(即概率分布)而不是硬标签(单一类别的标签)。这些软标签包含了教师模型对于每个样本的置信度信息。学生模型训练就是使用原始的数据集和教师模型生成的软标签,对于较小的模型(学生模型)进行训练。学生模型通常比教师模型简单,具有更少的参数。通过蒸馏的三个步骤,学生模型被设计为能够模拟教师模型的输出,从而在复杂性上更加轻量化。这种知识传递的方法有助于在资源受限的设备上部署更小、更快的模型,而不丧失太多性能。

参数剪枝:是一种模型优化技术,用于减小深度神经网路中的参数数量,从而减小模型的规模、提高运行效率,并降低模型在资源受限设备上的计算成本。该技术的核心思想是去除模型中对最终预测结果贡献较小的权重,从而精简模型结构。

参数剪枝的步骤包括训练原始模型、权重剪枝以及微调。训练原始模型首先要使用大量训练数据对深度神经网络进行训练,获得一个初始模型。权重剪枝是对已经训练好的模型,根据一定的剪枝策略,去除权重接近于零或对模型输出贡献较小的连接。这些连接可以被剪掉,从而减小模型的参数数量。微调是在权重剪枝后,通常对剪枝后的模型进行微调,以便保持模型在新数据上的性能。微调的目的是使剪枝后的模型适应修改后的结构,以保持模型的泛化性能。参数剪枝可以使模型得到压缩,减少模型中的参数数量,使得模型在存储和计算上更加高效。还可以加速推理,剪枝后的模型通常具有更简洁的结构,可以更快地进行推理,特别是在资源受限地设备上。可以节省存储空间,剪枝降低了模型地存储需求,对于在移动设备等存储资源有限地环境部署模型很有帮助。尽管参数剪枝可以有效地减小模型规模,但需要谨慎地选择剪枝策略,以保证在剪枝后模型性能地损失最小。

KEYWORDS

深度神经网络;水印技术;正则化器

1 INTRODUCTION

深度神经网络最近取得了显著的进展。特别是深度卷积神经网络(DCNN),如LeNet、AlexNet、VGGNet、GoogLeNet和ResNet已经成为目标识别、图像分类和检索的事实标准。此外,许多深度学习框架已经发布,帮助工程师和研究人员更轻松地基于深度学习开发系统或进行研究。这些优秀地深度学习框架包括Caffe、Theano、Torch、Chainer、TensorFlow和Keras。

尽管这些框架使得在实际应用中利用深度神经网络变得容易,但深度神经网络模型的训练仍然是一项困难的任务,因为它需要大量的数据和时间。例如,使用最新的GPU在ImageNet数据集上训练一个ResNet需要数周的时间。因此,有时在网站上提供训练好的模型,以便在不进行训练的情况下轻松尝试某个模型或重现研究文章中的结果。例如,Model Zoo1提供了经过训练的Caffe模型,包含有用的实用工具,用于各种任务。微调或迁移学习是一种策略,可以直接将这些已经训练好的模型调整到另一个应用中,以最小化重新训练的时间。因此,在深度神经网络系统的研究和开发中,分享已训练好的模型对于快速进展是非常重要的。未来,可能会出现更加系统化的模型共享平台,类似于视频共享网站。此外,一些数字分发平台可能会出现,用于购买和销售经过训练的模型,甚至是人工智能技能,类似于Google Play或App Store。在这些情况下,有必要保护对共享训练模型的权力。

为了实现这一目标,我们提议使用数字水印技术,该技术常用于是被数字内容(如图像、音频和视频)的版权归属。具体而言,我们提出了一个通用框架,将水印嵌入深度神经网络模型,以保护知识产权并检测对训练模型的知识产权的侵权行为。据我们所知,知识首次在深度神经网络中嵌入水印。本研究的贡献有三个方面,具体如下:

(1)我们提出了一个新的问题:在深度神经网络中嵌入水印。我们还定义了水印深度神经网络的要求、嵌入情境和攻击类型。

(2)我们提出了一个通用框架,通过使用参数正则化器在模型参数中嵌入水印。我们的方法不会损害嵌有水印的网络的性能。

(3)我们进行了全面的实验,揭示了在深度神经网络中嵌入水印的潜力。

2 PROBLEM FORMULATION

给定一个带有或没有训练参数的模型网络,我们将嵌入水印的任务定义为将T位向量b\in\left \{ 0,1 \right \} ^{T}嵌入神经网络的一个或多个层的参数中。我们称嵌有水印的神经网络为主机网络,并将主机网络最初尝试执行的任务称为原始任务。在接下来的内容中,我们规定了(1)嵌入水印或嵌入方法的要求,(2)嵌入情境,以及(3)嵌入水印应该具有鲁棒性的预期攻击类型。

2.1 Requirements

表格1总结了在图像领域和神经网络领域中,一个有效的水印算法的要求。尽管两个领域几乎共享相同的要求,但在图像和神经网络领域中,忠实度和鲁棒性方面存在差异。

在图像领域中,对于忠实度,嵌入水印时必须保持主机图像的感知质量。然而,在神经网络领域中,参数本身并不重要。相反,重要的是保持受过训练的主机网络的性能,不妨碍主机网络的训练。

关于鲁棒性,由于图像会受到各种信号处理操作的影响,嵌入的水印应该在经过这些操作后仍然留在主机图像中。而对神经网络进行最大可能的修改是微调或迁移学习。在对神经网络进行微调或其他可能的修改后,嵌入的水印应该是可检测的。

2.2 Embedding Situations

我们将嵌入情境分为三种类型:train-to-embed、fine-tune-to-embed和distill-to-embed,如表2所总结。

Train-to-embed(训练嵌入):在这种情况下,主机网络是从头开始训练的,同时嵌入水印,其中训练数据的标签是可用的。

Fine-tune-to-embed(微调嵌入):在这种情况下,水印是在微调过程中嵌入的。在这种情况下,模型参数使用来预测训练网络初始化的。在微调之前,输出层附近的网络配置可能会发生变化,以使最终层的输出适应另一个任务。

Distill-to-embed(蒸馏嵌入):在这种情况下,使用蒸馏的方法将水印嵌入到一个已经训练好的网络中,而不使用标签。嵌入是在微调中进行的,其中使用训练模型的预测作为标签。在标准蒸馏框架中,首先训练一个大型网络(或多个网络),然后使用大网络的预测标签训练一个较小的网络,以压缩大型网络。在本文中,我们简单地使用蒸馏框架来训练一个没有标签的网络。

前两种情境假定主机网络的版权持有者预计在训练或微调中将水印嵌入主机网络。Fine-tune-to-embed在模型所有者想要嵌入个别水印以识别模型被分发给谁时也很有用。通过这样做,可以跟踪个别实例。最后一种情境假定非版权持有者(例如,平台提供者)受托代表版权持有者嵌入水印。

2.3 Expected Attack Types

与第2.1节对鲁棒性的要求相关,我们假定有两种嵌入水印应该具有鲁棒性的攻击类型:微调和模型压缩。这些攻击类型非常特定于深度神经网络,而人们可以通过在图像领域中对比有损图像压缩的情况,很容易想象模型压缩。

微调或迁移学习似乎是最可行的攻击类型,因为它减轻了训练深度神经网络的负担。许多模型是在现有的最先进的模型基础上构建的。微调改变了模型参数,因此嵌入的水印应该对这种修改具有鲁棒性。

模型压缩在将深度神经网络部署到嵌入式系统或移动设备时非常重要,因为它可以显著减少内存需求和计算成本。有损压缩会扭曲模型参数,因此我们应该探讨它对检测率的影响。

3 PROPOSED FRAMEWORK

在这一部分,我们提出了一种将水印嵌入主机网络的框架,虽然我们以DCNN作为主机为重点,但我们的框架基本适用于其他网络,比如标准的多层感知器、循环神经网络和长短时记忆网络。

3.1 Embedding Targets

在本文中,我们假定水印嵌入到DCNN^{3}的一个卷积层中。让(S,S)、D和L分别表示卷积滤波器的大小、输入到卷积层的深度以及卷积层中的滤波器数量。该卷积层的参数由张量W\in R^{S*S*D*L}表征。这里忽略了偏置项。我们考虑将T位向量b\in \left \{ 0,1 \right \} ^T嵌入到W中。张量W是一组L个卷积滤波器,如果后续层的参数被适当重新排序,滤波器的顺序不会影响网络的输出。为了消除滤波器顺序的这种任意性,我们计算了W在L个滤波器上的均值,即\overline{W}_{ijk} =\frac{1}{L} {\textstyle \sum_{l}^{}} W_{ijkl}。将w\in R^{M}(M=S*S*D)表示W的扁平版本,我们的目标现在是将T位向量b嵌入到w中。

表1:在图像和神经网络领域中有效水印算法的要求。

图像领域神经网络领域
忠实度 不应因嵌入水印而降低主图像的质量。嵌入水印不会降低主机网络的有效性
鲁棒性   

所嵌入的水印应该对常见的信号处理操作

(如有损压缩、裁剪、调整大小等)具有鲁棒性

所嵌入的水印应该对模型修改(如微调和模型压缩)具有鲁棒性
能力有效的水印系统必须具有嵌入大量信息的能力。
安全水印通常应该是保密的,不应该被未经授权的各方访问、读取或修改。
效率

水印的嵌入和提取过程要快。

表2:三种嵌入情境。Fine-tune 表示在嵌入中是否使用已经训练好的模型初始化参数。Label availability 表示在嵌入中是否有可用于训练数据的标签

Fine-tuneLabel availability
训练以嵌入
微调以嵌入
蒸馏以嵌入

3.2 Embedding Regularizer

可以通过直接修改训练网络的w来在主机网络中嵌入水印,就像在图像领域通常所做的那样。然而,正如后面的4.2.6节所示,这种方法会降低主机网络在原始任务中的性能。相反,我们提出在训练主机网络进行原始任务的同时嵌入水印,以确保水印的存在不会损害主机网络在其原始任务中的性能。为此,我们利用参数正则化器,这是原始任务的原始代价函数中的一个额外项。带有正则化器的代价函数E(w)定义如下:

E(w)=E_{0}(w)+\lambda E_{R}(w)

其中,E_{0}(w)是原始的代价函数,E_{R}(w)是一个对参数w强加一定限制的正则化项,λ是一个可调参数。正则化器通常用于防止神经网络过拟合。L2正则化(或权重衰减)、L1正则化及它们的组合通常用于减少复杂神经网络参数的过拟合。例如,在L2正则化中,E_{R}(w)=\left \| w \right \| _{2}^{2}

与这些标准正则化器不同,我们的正则化器对参数w强加了一定的统计偏差,作为训练过程中的水印。我们将这个正则化器称为嵌入正则化器。在定义嵌入正则化器之前,我们解释了如何从w中提取水印。给定一个(均值)参数向量X\in R^{T*M}和一个嵌入参数X\in R^{T*M},水印的提取简单地通过使用X对w进行投影,然后在0处进行阈值处理。更准确地说,第j位被提取为:

b_{j}=s( {\textstyle \sum_{i}^{}} X_{ji}w_{i})

其中,s(x)阶跃函数:

s(x)=\left\{\begin{matrix}1&x\ge0 & \\0 &else \end{matrix}\right.

该过程可以被视为一个带有单层感知器地二元分类问题(没有偏置)。因此,可以通过使用(二元)交叉熵来直接定义嵌入正则化器地损失函数E_{R}(w)

E_{R}(w)=-\sum_{j=1}^{T}(b_{j}log(y_{j})+(1-b_{j})log(1-y_{j}))

其中,y_{j}=\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})并且\sigma(·)是sigmoid激活函数:

\sigma(x)=\frac{1}{1+exp(-x)}

我们将这个损失函数称为嵌入损失函数。在我们地框架中,可能会感到困惑,因为嵌入损失函数用于更新w,而不是X。在标准感知器中,w是一个输入,而X是要学习的参数。在我们的情况下,w是一个嵌入目标,而X是一个固定的参数。X的设计在下一节中进行讨论。

这种方法不会损害主机网络在原始任务中的性能,如实验证实的那样,因为深度神经网络通常是过参数化的。众所周知,深度神经网络具有许多局部最小值,并且所有局部最小值很可能与全局最小值非常接近的误差。因此,嵌入正则化器只需要引导模型参数到多个良好局部最小值之一,以便最终模型参数具有任意水印。

3.3 Regularizer Parameters

在本节中,我们讨论嵌入参数X的设计,它可以被视为检测和嵌入水印中的秘密密钥。虽然X\in R^{T*M}可以是任意矩阵,但它会影响嵌入水印的性能,因为它在水印的嵌入和提取中都被使用。在本文中,我们考虑三种类型的X:X^{direct}X^{diff}X^{random}

X^{direct}被构造成使得X^{direct}的每一行中有一个元素为1,其他元素为0。在这种情况下,第j位b_{j}直接嵌入到某个参数w_{\hat{i} },其中X_{j\hat{i} }^{direct} =1

X^{diff}被创建成使得每一行有一个1元素和一个-1元素,其他元素为0。使用X^{diff},第j位b_{j}被嵌入到w_{i_{+}}w_{i_{-}}之间的差异,其中X_{ji_{+}}^{diff} =1X_{ji_{-}}^{diff} =-1

X^{random}的每个元素都是独立从标准正态分布N(0,1)中抽取的。使用X^{random},每个位被嵌入到具有随机权重的参数w的所有实例中。

这三种嵌入参数在实验中进行了比较。

4 EXPERIMENTS

在这一部分,我们展示了我们的嵌入正则化器可以在不损害主机网络性能的情况下嵌入水印,并且嵌入的水印对各种攻击具有鲁棒性。

4.1 Evaluation Settings

数据集:在实验中,我们使用了知名的CIFAR-10和Caltech-101数据集。CIFAR-10数据集包含60000张32*32的彩色图像,分为10类,每类有6000张图像。这些图像分为50000张训练图像和10000张测试图像。Caltech-101数据集包括属于101个类别的对象的图片;每个类别包含大约40到800张图像。每个图像的大小大致为300*200像素,但我们将它们调整为32*32用于微调。对于每个类别,我们使用了30张图像进行训练,以及最多40张剩余图像进行测试。

主机网络和训练设置:我们使用宽残差网络作为主机网络。宽残差网络是残差网络的一种高效变体。表3显示了宽残差网络的结构,具有深度参数N和宽度参数k。在我们所有的实验中,我们设置N=1和k=4,并在训练中使用带Nesterov动量和交叉熵损失的SGD。初始学习率设置位0.1,权重衰减为5.0*10^(-4),动量为0.9,小批量大小为64.学习率在60,120,160个epoch时按照0.2的因子下降,总共训练200个epoch。

我们将水印嵌入到以下卷积层之一:conv2、conv3和conv4组中的第二个卷积层。在接下来的内容中,我们通过简单描述conv2、conv3或conv4组来提及主机层的位置。在表3中,这些层的参数w的数量M也显示出来。方程(1)中的参数λ设置为0.01。作为水印,在以下实验中,我们嵌入了b=1\in \left \{ 0,1 \right \}^{T}

图1:主机网络在 CIFAR-10 数据集上随着 epoch 数变化的训练曲线。实线表示测试错误(左侧 y 轴),虚线表示训练损失 E(w)(右侧 y 轴)。

表4:测试错误率(%)以及嵌入和不嵌入情况下的嵌入损失 ER(w)。

4.2 Embedding Results

首先,我们确认通过提出的嵌入正则化器成功地将水印嵌入到主机网络中。我们在CIFAR-10数据集上从头开始训练主机网络(train-to-embed),分别在嵌入和不嵌入水印的情况下进行。在嵌入的情况下,将一个256位的水印(T=256)嵌入到conv2组。

4.2.1 Test Error and Training Loss. 

图1显示了在主机网络在CIFAR-10上随着epoch数变化的训练曲线。Not embedded是主机网络在没有嵌入正则化器的情况下训练的情况。Embedded(direct)、Embedded(diff)、Embedded(random)、分别表示具有嵌入正则化器的训练曲线,其参数分别为X^{direct}X^{diff}X^{random}。我们可以看到,如果使用参数X^{direct}X^{diff},那么带有水印的训练损失E(w)会比未嵌入水印的情况更大。这个较大的训练损失主要由嵌入损失E_{R}(w)主导,这表明直接将水印嵌入参数甚至嵌入两个参数的差异是困难的。另一方面,Embedded(random)的训练损失非常接近于Not embedded的情况。

表4显示了带有和不带有嵌入的主机网络最佳的最佳测试错误率和嵌入损失E_{R}(w)。我们可以看到,Not embedded和random的测试错误率几乎相同,而direct和diff的稍微大一些。与direct和random的测试错误率几乎相同,而direct和diff的稍微大一些。与direct和diff相比,random的嵌入损失E_{R}(w)极低。这些结果表明,随机方法能够在不损害原始任务性能的情况下有效地嵌入水印。

4.2.2 Detecting Watermarks

图2显示了使用水印和不使用水印时嵌入和检测中使用地参数(a)direct、(b)diff和(c)random的嵌入水印\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})(在二值化之前)的直方图。如果我们以0.5的阈值对\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})进行二值化,那么所有的水印都能够被正确检测,因为对于所有的嵌入情况都有\forall j,\sigma ( {\textstyle \sum_{i}^{}}X_{ji}w_{i} \ge 0.5)\left ( \Leftrightarrow {\textstyle \sum_{i}^{}X_{ji}w_{i}\ge 0} \right )。请注意,正如之前提到的,我们嵌入的水印是b=1\in \left \{ 0,1 \right \}^{T}。虽然在未嵌入的情况下可能会检测到随机水印,但可以轻松判断未嵌入水印,因为\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})的分布与嵌入情况大不相同。

4.2.3 Distribution of Model Parameters

我们探讨了训练得到的模型参数是如何受嵌入水印的影响的。图3显示了带有水印和不带有水印时模型参数W(不是w)的分布。这些参数仅来自嵌入水印的那一层。请注意,W是在对滤波器求均值之前的参数,因此参数量是3*3*64*64。我们可以看到direct和diff显著改变了参数的分布,而random则没有。在direct中,许多参数变得很大,并且在2附近出现了一个峰值,以便它们在滤波器上的均值成为一个较大的正值,从而降低嵌入损失。在diff中,大多数参数被推向正方向和负方向,使这些参数之间的差异变大。在random中,水印通过具有随机权重的所有参数扩散,因此不会显著改变分布。这是与安全需求相关的水印技术中的一个理想性质;在direct和diff的情况下,人们可能意识到嵌入水印的存在。

到目前为止的结果表明,在这三种方法中,随机方法似乎是最佳选择,具有低的嵌入损失、原始任务中的低测试错误,并且不改变参数分布。因此,在以下实验中,我们在嵌入水印时使用了随机方法,没有明确指定。

4.2.4 Fine-tune-to-embed and Distill-to-embed

在上述实验中,通过从头开始训练主机网络(train-to-embed)嵌入了水印。在这里,我们评估了在第2.2节中介绍的另外两种情况:fine-tune-to-embed和distill-to-embed。对于fine-tune-to-embed,进行了两个实验。在第一个实验中,主机网络在CIFAR-10数据集上进行了没有嵌入的训练,然后在相同的CIFAR-10数据集上进行了有嵌入和没有嵌入的微调(用于比较)。在第二个实验中,主机网络在Caltech-101数据集上进行了训练,然后在CIFAR-10数据集上进行了有嵌入和没有嵌入的微调。

表5(a)显示了第一个实验的结果。Not embedded 1st对应第一次没有嵌入的训练。Not embedded 2nd对应第二次没有嵌入的训练,Embedded对应第二次有嵌入的训练。图4显示了这些微调的训练曲线。我们可以看到,Embedded实现了与Not enbedded 2nd几乎相同的测试错误和非常低的E_{R}(w)

表5(b)显示了第二个实验的结果。Not embedded 2nd对应第二次没有嵌入的训练,Embedded对应第二次有嵌入的训练。第一次训练的测试错误和训练损失没有显示,因为它们在这两个不同的训练数据集之间不兼容。从这些结果中,还确认了在fine-tune-to-embed情况下(在相同和不同的领域)Embedded实现了与Not embedded 2nd几乎相同的测试错误和非常低的E_{R}(w)。因此,可以说该方法在fine-tune-to-embed情况下(在相同和不同的领域)也是有效的。

最后,评估在distill-to-embed情况下嵌入水印。首先,在CIFAR-10数据集上训练主机网络而不嵌入水印。然后,进一步在相同的CIFAR-10数据集上进行微调,有嵌入和没有嵌入。在这第二次训练中,没有CIFAR-10数据集的训练标签。相反,使用训练网络的预测值作为软目标。换句话说,在第二次训练中没有使用标签。表5(c)显示了distill-to-embed情况的结果。Not embedded 1st对应第一次训练,Embedded(Not embedded 2nd)对应第二次distilling训练有嵌入(没有嵌入)。发现该方法在distill-to-embed情况下也实现了低测试错误和E_{R}(w)

图2:嵌入水印的直方图\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})(阈值化前)有和没有水印

图3:添加水印和不添加水印时模型参数W的分布

图4:对主机网络进行微调的训练曲线。 epochs 的前半部分和后半部分分别对应第一次和第二次训练。实线表示测试错误(左轴),虚线表示训练损失(右轴)。

表6:嵌入组合和嵌入位大小的测试错误(%)和嵌入损失 ER(w)

4.2.5 Capacity of Watermark(水印的容量)

在这一部分,通过以train-to-embed方式将不同大小的水印嵌入到不同的组中来探讨嵌入水印的容量。请注意,conv2、conv3和conv4组的参数w数量分别为576、1152和2304。表6显示了不同嵌入块和不同嵌入位数的组合的测试错误(%)和嵌入损失E_{R}(w)。我们可以看到,如果嵌入的位数超过参数w的数量(例如conv3中的2048位),则嵌入损失或测试错误会变高,因为在这种情况下嵌入问题会变得过度确定。因此,嵌入的位数应该小于参数w的数量,这是使用单层感知器的嵌入方法的一个限制。通过在嵌入正则化器中使用多层感知器,这种限制可能会得到解决。

表7:在使用不同 λ 嵌入水印后的损失、测试错误和比特错误率(BER)

4.2.6 Embedding without Training(无需训练的嵌入)

正如3.2节中所提到的,可以通过直接修改已训练参数w0的方式向主机网络嵌入水印,这通常是在图像领域中完成的。在这里,我们尝试通过最小化以下损失函数来实现,而不是使用Eq.(1):

E(w)=\frac{1}{2} \left \| w-w_{0} \right \|_{2}^{2} +\lambda E_{R}(w)

其中,嵌入损失E_{R}(w)在最小化修改参数w与原始参数w0之间的差异的同时得到最小化。表格7总结了针对在CIFAR-10数据集上训练的主机网络最小化Eq.(6)后的嵌入结果。我们可以看到,当λ<=1时,嵌入失败,因为误比特率(BER)大于零,而对于λ>1,原始任务的测试误差变得太大。因此,直接在不考虑原始任务的情况下嵌入水印并不是有效的。

4.3 Robustness of Embedded Watermarks

在这一部分,我们评估了所提水印对2.3节中解释的三种攻击类型的鲁棒性:微调和模型压缩。

4.3.1 Robustness against Fine-tuning

微调或迁移学习似乎是最有可能的(非故意的)攻击类型,因为经常对已训练的模型进行微调,以将它们应用于其它但类似的任务,比从头开始训练网络或在没有足够训练数据时避免过拟合更加轻松。

在这个实验中,进行了两次训练;在第一次训练中,通过训练嵌入了一个256位的水印到conv2组中,然后在第二次训练中,对主机网络进行了进一步的微调,以确定嵌入在第一次训练中的水印是否仍然存在于主机网络中,即使在第二次训练(微调)之后。表格8显示了微调之前和微调之后的嵌入损失,以及微调后的最佳测试误差。我们在相同领域(CIFAR-10->CIFAR-10)和不同领域(Caltech-101->CIFAR-10)中评估了微调。我们可以看到,在两种情况下,微调后嵌入损失略有增加,但仍然很低。此外,在两种情况下,检测到的水印的比特错误率为零。

在不同的领域的微调中,嵌入损失较高的原因是在我们的设置中,Caltech-101数据集比CIFAR-10数据集更难处理;Caltech-101数据集中的所有图像被调整大小为32*32,以与CIFAR-10数据集兼容。

表格8:微调前的嵌入损失(ER(w))和微调后的嵌入损失(E'R'(w)),以及微调后的最佳测试误差(%)

4.3.2 Robustness against Model Compression(针对模型压缩的鲁棒性)

将深度神经网络部署到嵌入式系统或移动设备有时会很困难,因为它们既需要大量计算资源又需要大量内存。为解决这个问题,通常对模型参数进行压缩。模型参数的压缩有时可能会故意或无意地作为对水印的攻击。在本节中,我们评估了我们的水印对模型压缩,尤其是对参数修剪得鲁棒性。在参数修剪中,绝对值非常小的参数被截断为零。在【13】中,还应用了权重的量化和量化值的哈夫曼编码。由于量化对参数修剪的影响较小,哈夫曼编码是无损压缩,我们重点关注参数修剪。

为了评估对参数修剪得鲁棒性,我们在训练主网络时将一个256位得水印嵌入到conv2组中。我们移除了嵌入层3*3*64*64个参数得α%,并计算了嵌入损失和比特错误率。图5(a)显示了嵌入损失E_{R}(w)随修剪率α的变化。Ascending(Descending)表示当根据它们的绝对值按升序(降序)切断前α%的参数时的嵌入损失。Randing表示嵌入损失,其中随机移除α%的参数。Ascending对应于参数修剪,其他情况是为了进行比较而评估的。

我们可以看到,随着α的增加,Ascending的嵌入损失增加得比Descending和Random慢。有小绝对值的模型参数对检测到的水印的影响较小是合理的,因为水印是从模型参数w和常数嵌入参数(权重)X的点积中提取的。

图5(b)显示了比特错误率随修剪率α的变化。令人惊讶的是,在删数65%的参数后,比特错误率仍然为零,即使在删除80%的参数后也是如此(Ascending)。我们可以说,嵌入的水印相对于参数修剪是足够鲁棒的,因为在【13】中,对AlexNet进行卷积层修剪得结果范围是16%到65%,对VGGNet得修剪范围是42%到78%。此外,这种程度得比特错误可以通过纠错码(例如BCH码)轻松纠正。图6显示了修剪后α=0.8和0.95的检测到的水印\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})的直方图。对于α=0.95,还显示了嵌入了水印的主网络的检测到的水印的直方图。我们可以看到,对于嵌入的情况,许多\sigma ( {\textstyle \sum_{i}^{}} X_{ji}w_{i})仍然接近1,这可能作用作判断水印存在性(零比特水印)的信心分数。

图5: 嵌入损失和修剪后的比特错误率随修剪率的变化。

图6: 在修剪后检测到的水印σ(ΣiXjiwi)的直方图。

5 CONCLUSIONS AND FUTURE WORK

本文提出了一种在深度神经网络模型中嵌入水印以保护训练模型权利的通用框架。首先,我们在对一个新问题进行了详细的阐述:在深度神经网络中嵌入水印。我们还为神经网络水印制定了需求、嵌入情境和攻击类型的定义。其次,我们还提出了一种利用参数正则化器在模型参数中嵌入水印的通用框架。我们的方法不会损害嵌入水印的网络性能。最后,我们进行了全面的实验,揭示了神经网络水印作为这个新问题基础的潜力。我们展示了我们的框架能够在不损害深度神经网络性能的情况下嵌入水印。即使在微调或参数修剪后,嵌入的水印仍然存在;即便在剪除65%的参数后,整个水印仍然保留。

5.1 Future Work

尽管我们已经对在神经网络中嵌入水印这一新问题有了初步了解,但仍有许多工作需要进一步开展。

水印覆写。第三方用户可能会嵌入不同的水印,以覆盖原始水印。在我们的初步实验中,当额外嵌入256位水印时,这种水印覆写导致了对conv2、conv3和conv4组水印的分别30.9%、8.6%和0.4%的位错误。需要进一步研究更强大的抗覆写水印方法(例如,非线性嵌入)。

将压缩作为嵌入。对深度神经网络进行压缩是一个非常重要且活跃的研究课题。虽然我们在本文中确认了我们的水印对参数修剪非常稳健,但在压缩模型的同时可能会嵌入水印。例如,在【13】中,在参数修剪后,网络被重新训练以学习剩余稀疏参数的最终权重。我们的嵌入正则化器可以在这个重新训练中用于嵌入水印。

网络形态学。在【4,32】中,已经对如何将一个训练良好的神经网络形态学变换成一个新的网络,以便完全保留其网络功能以进行进一步训练进行了系统研究。这种网络形态学可能构成对我们水印的严重攻击,因为如果主机网络的拓扑结构被严重修改,可能无法检测嵌入的水印。我们将对嵌入的水印受到网络形态学的影响进行研究,作为未来的工作。

隐写分析。隐写分析是一种用于检测数字媒体文件中(如图像、视频、音频以及我们的情况下的深度神经网络秘密隐藏数据(例如隐写术或水印)存在的方法。水印理想情况下应该对隐写分析具有稳健性。虽然在本文中,我们确认嵌入水印不会显著改变模型参数的分布,但需要更多的探索来评估对隐写分析的稳健性。相反,开发针对深度神经网络水印的有效隐写分析可能是一个有趣的研究课题。

指纹识别。数字指纹识别是对水印方法的另一种方法,用于对图像、视频和音频片段进行持久性标识。在本文中,我们聚焦于这两种重要方法的其中一种。对深度神经网络进行稳健的指纹识别是保护深度神经网络模型的另一种和互补的方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3-模板引用

//1.调用ref函数 -> ref对象 const h1Ref ref(null) const comRef ref(null) //组件挂载完毕之后才能获取 onMounted(()>{console.log(h1Ref.value);console.log(comRef.value); })<div class"father"><!-- 通过ref标识绑定ref对象 --><h2 re…

【工具栏】SequenceDiagram插件的使用(根据代码生成时序图)

1. 安装 2.使用 进入代码页面&#xff0c;点击鼠标右键 选择方法 根据方法中的代码生成时序图

2024年【山东省安全员C证】考试及山东省安全员C证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试是安全生产模拟考试一点通总题库中生成的一套山东省安全员C证复审考试&#xff0c;安全生产模拟考试一点通上山东省安全员C证作业手机同步练习。2024年【山东省安全员C证】考试及山东省安全员C证复…

docker部署私人云盘

目录 1.安装 2.登陆 1.安装 mkdir -p /opt/alist docker run -d --restartalways -v /opt/alist:/opt/alist/data -p 5244:5244 --name"alist" xhofe/alist:latest 2.登陆 ip:5224 默认账户admin 密码在日志中

test-04-test case generate 测试用例生成 tcases 快速开始

拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) 自动生成测试用例 入门指南 关于…

js中关于字符串的创建和判断类型

文章目录 创建方法判断类型的技巧区分1、typeof2、instanceof 共点1、Object.prototype.toString.call2、库函数 参考链接&#xff1a;JS字符串的创建和常用方法 如何判断JS中一个变量是 string 类型 创建方法 字符串有着两种的创建方法&#xff0c;一个是使用构造函数&#x…

openssl3.2 - 官方demo学习 - server-arg.c

文章目录 openssl3.2 - 官方demo学习 - server-arg.c概述笔记备注END openssl3.2 - 官方demo学习 - server-arg.c 概述 TLS服务器, 等客户端来连接; 如果客户端断开了, 通过释放bio来释放客户端socket, 然后继续通过bio读来aceept. 笔记 对于开源工程, 不可能有作者那么熟悉…

HCIA-Datacom题库(自己整理分类的)_09_Telnet协议【14道题】

一、单选 1.某公司网络管理员希望能够远程管理分支机构的网络设备&#xff0c;则下面哪个协议会被用到&#xff1f; RSTP CIDR Telnet VLSM 2.以下哪种远程登录方式最安全&#xff1f; Telnet Stelnet v100 Stelnet v2 Stelnet v1 解析&#xff1a; Telnet 明文传输…

中职组安全-win20230217-环境-解析

*任务说明&#xff1a; 仅能获取win20230217的IP地址 用户名&#xff1a;test&#xff0c;密码&#xff1a;123456 访问服务器主机,找到主机中管理员名称,将管理员名称作为Flag值提交&#xff1b; john 访问服务器主机,找到主机中补丁信息,将补丁编号作为Flag值提交&#xff…

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)

论文&#xff1a;DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码&#xff1a;https://sstzal.github.io/DiffTalk/ 出处&#xff1a;CVPR2023 特点&#xff1a;需要音频对应人物的视频来合成新的说话头视频&#xff0c;嘴部抖…

《Git学习笔记:Git入门 常用命令》

1. Git概述 1.1 什么是Git&#xff1f; Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛使用。 其它的版本控制工具 SVNCVSVSS 1.2 学完Git之后能做…

R语言【paleobioDB】——pbdb_intervals():通过参数选择,返回多个地层年代段的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_interval (id, ...) Arguments 参数【..…

顺序表的实现(上)(C语言)

本文章主要对顺序表的介绍以及数据结构的定义,以及几道相关例题,帮助大家更好理解顺序表. 文章目录 前言 一、顺序表的静态实现 二、顺序表的动态实现 三.定义打印顺序表函数 四.定义动态增加顺序表长度函数 五.创建顺序表并初始化 六.顺序表的按位查找 七.顺序表的按值…

力扣 第 121 场双周赛 解题报告 | 珂学家 | 数位DP

前言 整体评价 T3, T4 都是典题 T1. 大于等于顺序前缀和的最小缺失整数 思路: 模拟 class Solution { public:int missingInteger(vector<int>& nums) {set<int> s(nums.begin(), nums.end());int acc nums[0];for (int i 1; i < nums.size(); i) {if …

Win10专业版系统搭建DNS解析服务

Win10专业版 纯新手&#xff0c;也没弄过Linux的。不喜勿喷&#xff0c;有问题请指出 第一天一头雾水整了几个小时没结果&#xff0c;第二天豁然开朗&#xff0c;10分钟明白了第一天的问题所在。 Win10 安卓&#xff1a; iOS&#xff1a; 搭建DNS服务器的意义&#xff1a; 屏蔽…

运算放大器相关知识总结(1)

1、 前言 最近做了一个小项目&#xff0c;这个项目是研发一款阻抗测量仪。这个阻抗测量仪可以测量人体在不同频率下的生物电阻抗&#xff0c;该设备的核心是模拟电路&#xff0c;技术难点是减小模拟电路噪声。该项目前前忙了2个多月&#xff0c;借着研发这个项目的机会把自己掌…

ivrobot乐高EV3 鲸鱼 能力风暴自制遥控手柄库文件和编程样例 使用指南

编程示例&#xff1a; 资源下载链接&#xff1a; https://download.csdn.net/download/abilix_tony/88739582 EV3 mindstorms能用基础版和高阶版&#xff08;条形编程界面&#xff09; EV3 classroom只能用基础版 &#xff08;scratch模块形状编程界面&#xff09; 请根据使…

WEB前端人机交互导论实验-实训2格式化文本、段落与列表

1.项目1 文本与段落标记的应用&#xff1a; A.题目要求: B.思路&#xff1a; &#xff08;1&#xff09;首先&#xff0c;HTML文档的基本结构是通过<html>...</html>标签包围的&#xff0c;包含了头部信息和页面主体内容。 &#xff08;2&#xff09;在头部信息…

【AI的未来 - AI Agent系列】【MetaGPT】2. 实现自己的第一个Agent

在MetaGPT中定义的一个agent运行示例如下&#xff1a; 一个agent在启动后他会观察自己能获取到的信息&#xff0c;加入自己的记忆中下一步进行思考&#xff0c;决定下一步的行动&#xff0c;也就是从Action1&#xff0c;Action2&#xff0c;Action3中选择执行的Action决定行动…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…