Embedding Watermarks into Deep Neural Networks

news2024/11/17 12:57:33

将水印嵌入深度神经网络

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.coloradmin.cn/o/1385305.html

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

相关文章

手把手教你学会接口自动化系列十三-将所有的crm用例由json改为excel

本篇汇总我写接口自动化用到的所有excel数据如下&#xff1a; 登录模块 添加线索模块 添加场景模块

docker部署私人云盘nextcloud

首先查看效果 1.拉取镜像 docker pull nextcloud 2.创建目录 mkdir -p /data/nextcloud/{config,data,apps} 3.创建实例 docker run -itd --name yznextcloud -v /data/nextcloud/config:/var/www/html/config -v /data/nextcloud/data:/var/www/html/data -v /data/nextc…

交流插座电器漏电断路器的低功耗控制芯片D4140,内置桥式整流器漏电灵敏度可调,采用SOP8和DIP8 的封装形式

D4140 是一种用于交流插座电器漏电断路器的低功耗控制器。这些设备可以检测到接地的危险电流路径&#xff0c;例如设备掉进水中。在发生有害或致命的电击之前&#xff0c;断路器会断开线路。内置有整流桥&#xff0c;齐纳管稳压器&#xff0c;运算放大器&#xff0c;电流基准&a…

基于python的深度神经网络原理与实践

理论基础 什么是神经网络 我们知道深度学习是机器学习的一个分支&#xff0c;是一种以人工神经网络为架构&#xff0c;对数据进行表征学习的算法。而深度神经网络又是深度学习的一个分支&#xff0c;它在 wikipedia 上的解释如下&#xff1a; 深度神经网络&#xff08;Deep N…

2024最新婚恋交友系统,PHP书写,前端UNI,前后端源码交付,支持二开,APP小程序H5,三端都有!

如何开发婚恋交友的软件 1、实名认证&#xff1a;每个申请注册用户必须提交真实可信的个人身份信息内容&#xff0c;并且必须通过平台的核查&#xff0c;然后才能正常使用。 2、用户量大&#xff1a;该平台汇聚了来自全国各地的未婚男女。用户可以线上发送私人信息&#xff0…

流程图用什么软件做?五款优质在线绘制工具看一看

流程图用什么软件做&#xff1f;现在&#xff0c;流程图已经成为了我们工作中不可或缺的工具。它能够清晰地展示各个步骤之间的关系&#xff0c;使我们更好地理解并优化流程。那么&#xff0c;在众多的流程图绘制工具中&#xff0c;哪一款最适合你呢&#xff1f;下面就给大家介…

C++输入输出和文件

文章目录 一. 流, 缓冲区和iostream文件二. 使用cout进行输出1. 用cout进行格式化2. 刷新输出缓冲区 三. 使用cin进行输入1. cin>>如何检查输入2. 流状态3. 其他istream类方法 四. 文件输入和输出1. 简单的文件I/O2. 文件模式3. 随机存取4. 内核格式化 To be continue...…

说说你对贪心算法、回溯算法的理解?应用场景?

一、贪心算法 贪心算法&#xff0c;又称贪婪算法&#xff0c;是算法设计中的一种思想 其期待每一个阶段都是局部最优的选择&#xff0c;从而达到全局最优&#xff0c;但是结果并不一定是最优的 举个零钱兑换的例子&#xff0c;如果你有1元、2元、5元的钱币数张&#xff0c;用…

odoo 一日一技 odoo去除业务模块的基础框架

基础介绍​​​ 为了单纯使用odoo基础框架&#xff0c;我将源码整理成四个版本&#xff0c;分为社区版、企业版、社区基础版(去除非必要的业务模块)、企业基础版(去除非必要的业务模块)。如图还可以这样创建四个对应配置文件。 这边以社区基础版为例 下面简单介绍一下这些模…

【Python数据可视化】matplotlib之绘制三维图形:三维散点图、三维柱状图、三维曲面图

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

爬虫案例—爬取豆瓣电影最受欢迎的影评

爬虫案例—爬取豆瓣电影最受欢迎的影评 豆瓣影评网址&#xff1a;https://movie.douban.com/review/best/ 目标&#xff1a;爬取第一页的影评封面标题、评论内容、完整的评论内容 第一页页面截图如下&#xff1a; import requests from lxml import etree import re from bs…

前端开发必备:掌握正则表达式,轻松应对复杂的表单验证

前言 在前端开发中&#xff0c;经常需要处理 URL 地址、校验手机号合法性、提取域名等。正则表达式是一种常用的工具。通过使用正则表达式&#xff0c;我们可以对用户输入进行有效的验证&#xff0c;确保数据的合法性和完整性。本文将介绍一些常见的正则表达式&#xff0c;帮助…

【C#】当重复使用一段代码倒计时时,使用静态类和静态方法,实现简单的this扩展方法

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…

控制网页的灰度显示

1.代码&#xff1a; 普通网页 <style>html {filter: grayscale(100%);}</style> 或是:webkit内核浏览器写法 <style>html {-webkit-filter: grayscale(100%)}</style> 2.说明&#xff1a; grayscale(amount) :进行灰度转换。 amount转换值的大小&…

C#编程-实现文件输入和输出操作

实现文件输入和输出操作 所有程序接受用户的输入、处理输入并且产生输出。所以,所有的编程语言都支持输入和输出操作。例如,您需要为教师开发程序以接受学生的结果信息。您的程序应该将信息保存在硬盘的Result.xls文件中。您可以在程序中使用文件输入和输出操作以接受来自教…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》下篇

导读 《应急预案数字化建设现状和发展建议》&#xff1a;297-313页 《中国应急管理发展报告》系列蓝皮书由中央党校&#xff08;国家行政学院&#xff09;应急管理培训中心&#xff08;中欧应急管理学院&#xff09;联合社会科学文献出版社研创出版&#xff0c;本着“权威前沿…

MySQL面试题 | 08.精选MySQL面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

OpenGauss源码分析-SQL引擎

所讨论文件大多位于src\common\backend\parser文件夹下 总流程 start_xact_command()&#xff1a;开始一个事务。pg_parse_query()&#xff1a;对查询语句进行词法和语法分析&#xff0c;生成一个或者多个初始的语法分析树。进入foreach (parsetree_item, parsetree_list)循环…

11-适配器模式(Adapter)

意图 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 适配器模式属于结构模式。 类适配器模式&#xff08;通过继承的方式实现适配器模式&#xff09; Adapter类&#xff0c;通过继承src类&#xff0…

逸学Docker【java工程师基础】1.认识docker并且安装

场景问题 在实际开发过程中我们有这样的场景问题 在开发阶段的环境配置到了其他人项目人员那里就不能运行了&#xff0c;尽管配置规格相同&#xff0c;但是在较多的不同的环境情况下还是可能会有错误。 开发&#xff1a;程序员&#xff1a;你那边可以运行了吗 测试&#xf…