Protecting Intellectual Property of Deep NeuralNetworks with Watermarking
保护深度神经网络的知识产权与数字水印技术
ABSTRACT
深度学习是当今人工智能服务的关键组成部分,在视觉分析、语音识别、自然语言处理等多个任务方面表现出色,为人类提供了接近人类水平的能力。构建一个生产级别的深度学习模型是一项非常复杂的任务,需要大量的训练数据、强大的计算资源和专业的人才。因此,非法复制、分发和派生专有的深度学习模型可能导致版权侵权,并对模型创建者造成经济损害。因此,有必要设计一种技术来保护深度学习模型的知识产权,并实现对模型所有权的外部验证。在本文中,我们将“数字水印”概念从多媒体所有权验证推广到深度神经网络(DNN)模型。我们研究了三种适用于DNN的水印生成算法,提出了一种将水印嵌入深度学习模型的方法,并设计了一种远程验证机制来确定模型所有权。通过扩展深度神经网络的内在泛化和记忆能力,我们使模型能够在训练时学习特制的水印,并在推理时在观察到水印模式时激活预定的预测。我们使用两个图像识别基准数据集对我们的方法进行评估。我们的框架可以在不影响正常输入数据的模型准确性的情况下,准确(100%)且迅速地验证所有远程部署的深度学习模型的所有权。此外,嵌入在DNN模型中的水印对不同的反水印机制(如微调、参数修剪和模型逆推攻击)都具有鲁棒性和抗性。
1 INTRODUCTION
最近,深度学习技术在图像识别、语音识别和自然语言处理任务方面取得了巨大成功。大多数主要的科技公司都将深度神经网络(DNNs)作为关键组件,构建其人工智能(AI)产品和服务。然而,构建一个生产级别的深度神经网络模型并非易事,通常需要大量的训练数据和强大的计算资源。例如,Google的Inception-v4模型是一种先进的卷积神经网络(ConvNet),专为图像分类而设计,使用ImageNet数据集在多个GPU上需要几天到几周的时间。此外,设计深度学习模型需要重要的机器学习专业知识,并对定义模型架构和选择模型超参数进行多次试错迭代。
由于深度学习模型越来越广泛地部署变得更加有价值,它们越来越受到对手的攻击。攻击者可以窃取模型(例如,通过恶意软件感染或内部攻击者)并建立抄袭的AI服务,如图1所示。这种侵犯版权可能危及模型所有者的知识产权(IP),甚至夺走模型所有者的市场份额。最近推出了DNN模型共享平台(例如,Model Zoo和Microsoft Model Gallery),以促进可复制的研究结果。在不久的将来,我们可能会看到用于货币化AI产品的商业DNN模型市场。个人和公司可以像在当前的移动应用市场中一样购买和销售类型。此外,关系到国家安全的任务关键性DNN模型甚至可以在Darknet市场中非法交易。因此,找到一种验证DNN模型所有权的方法以保护知识产权并检测深度学习模型的泄露是至关重要的。
数字水印技术已被广泛应用于保护专有多媒体内容的版权。水印过程可以分为两个阶段:嵌入和检测。在嵌入阶段,所有者可以将水印嵌入到受保护的多媒体中。如果多媒体数据被他人窃取并使用,在检测阶段,所有者可以从受保护的多媒体中提取水印作为法律证据,证明知识产权的所有权。在受到这种直觉的启发下,我们将“水印”概念推广到深度神经网络,以保护深度神经网络的知识产权。在将水印嵌入到DNN模型后,一旦模型被窃取,我们可以通过从这些模型中提取水印来验证所有权。然而,与数字水印不同,数字水印将水印嵌入到多媒体内容中,我们需要设计一种新的方法将水印嵌入到DNN模型中,现有的数字水印算法无法直接应用。
最近,Uchida等人提出了一种将水印嵌入深度神经网络的框架,这是将数字水印应用于DNN以保护深度神经网络模型的首次尝试。所提出的算法通过在训练过程中的参数正则化器将水印嵌入到深度神经网络模型的参数中,从而导致其白盒约束。它要求模型所有者访问所有参数以提取水印,这极大地限制了其应用,因为窃取地模型通常是远程部署地,并且抄袭的服务不会公开窃取模型的参数。
在本文中,我们首先通过将威胁模型扩展到支持黑盒模式验证来解决Uchida等人工作的局限性,后者只需要对抄袭服务进行API访问即可验证深度学习模型的所有权。然后,我们研究了三种生成DNN模型不同类型水印的水印的生成算法:(a)将含有原始训练数据的有意义内容作为水印嵌入到受保护的DNN中,(b)将与受保护的DNN不相关的数据样本作为水印嵌入到其中,以及(c)将噪声作为水印嵌入到其中。这里的直觉是探索深度神经网络的内在泛化和记忆能力,以自动学习嵌入水印的模式。学到的预定义模式及其相应的预测将充当版权/所有权验证的密钥。在嵌入水印后,我们提出的所有权验证框架可以通过发送正常请求来快速验证远程部署的AI服务的所有权。当观察到水印模式时,只有受到水印保护的模型才会被激活以生成匹配的预测。
我们使用两个基准图像数据集MNIST和CIFAR10对我们的水印框架进行评估。结果表明,我们的水印框架可以通过少量请求快速(在百分百的准确率下)验证DNN服务的所有权,并对原始模型几乎没什么影响。嵌入的水印对不同的模型修改具有鲁棒性,如模型微调和模型修剪。例如,即使从MNIST模型中删除了90%的参数,我们所有的水印仍然具有超过99%的高准确性。我们还对嵌有我们水印的模型进行了模型反演攻击,没有一个嵌入的水印可以被恢复。
在本文中,我们做出了以下贡献:
我们扩展了现有的DNN水印威胁模型,以支持黑盒验证。我们的水印框架适用于新的威胁模型,使我们能够在白盒(直接访问模型)和黑盒(仅通过远程服务API访问)设置下保护DNN模型。
我们提出了三种水印生成算法,生成不同形式的水印以及一个水印框架,将这些水印嵌入深度神经网络中,帮助验证远程DNN服务的所有权。
我们使用两个基准数据集评估了所提出的水印生成算法和水印框架。我们提出的水印框架对正常输入几乎没有什么影响,生成的水印对不同的反水印机制具有鲁棒性,如微调、模型压缩和模型反演攻击。
论文的其余部分结构如下。在第2节中,我们简要介绍深度神经网络和数字水印技术。然后在第3节讨论威胁模型,并在第4节中介绍我们的水印框架。接下来,在第5节中展示了我们所提出的水印框架的评估。在第6节中,我们讨论了我们系统的局限性和可能的规避手段。我们在第7节中介绍了相关工作,并在第8节中总结了我们的工作。
2 BACKGROUND
在本节中,我们介绍与我们的工作密切相关的深度神经网络和水印技术的相关背景知识。
2.1 Deep Neural Network
深度学习是一种机器学习框架,可以自动从训练数据中学习分层数据表示,无需手工设计特征表示。深度学习方法基于被成为深度神经网络(DNN)的学习架构,该网络由许多基本神经网络单元组成,如线性感知器、卷积和非线性激活函数。这些网络单元组织成层次结构(从几层到一千多层),并经过训练以直接从原始数据中识别复杂的概念。较低的网络层通常对应于低级特征(例如角和边缘),而较高的层对应于高级、语义上有意义的特征。
具体而言,深度神经网络(DNN)将原始训练数据表示x∈Rm作为输入,并通过参数化函数y = Fθ(x)将其映射到输出,其中y∈Rn。参数化函数Fθ(·)由网络体系结构以及当前网络体系结构中使用的所有神经网络单元的集体参数定义。每个网络单元接收来自其连接神经元的输入向量,并输出一个值,该值将传递到以下层。例如,线性单元输出其权重参数与其来自前一层的连接神经元的输出值的点积。为增加DNN在建模训练数据中复杂结构的能力,已经开发了不同类型的网络单元,并与线性激活结合使用,例如非线性激活单元(双曲正切、sigmoid和修正线性单元等)、最大池化和批量归一化。最后,如果神经网络的目的是将数据分类为有限集合的类别,则输出层中的激活函数通常是softmax函数,它可以被视为关于n个类的预测类分布。在为DNN训练网络权重之前,第一步是确定模型架构,这需要领域专业知识和工程工作。给定网络体系结构,网络行为由网络参数θ的值确定。设D={xi,zi}T i=1为训练数据,其中zi∈[0,n-1]是xi的实际标签,网络参数经过优化以最小化预测类标签与实际类标签之间的差异,这基于损失函数。目前,训练DNNs最广泛使用的方法是反向传播算法,其中通过将预测损失的梯度从输出层传播到整个网络来更新网格参数。虽然大多数常用的DNNs是前馈神经网络,其中神经元之间的连接不形成循环,但递归网络,例如长短时记忆(LSTM)在建模时许数据方面是有效的。在这项工作中,我们主要关注前馈DNNs,但原则上,我们的水印策略可以轻松扩展到递归网络。
2.2 Digital Watermarking
数字水印技术是一种将特定水印嵌入载体多媒体数据,如图像、视频或音频,以保护其版权的技术。当扫描带有水印的多媒体数据时,可以检测到嵌入的水印。水印只能被媒体数据的所有者检测和读取,以检查嵌入水印的加密算法。
水印嵌入过程通常分为两个步骤:嵌入和验证。图2展示了一个典型的水印生命周期。在嵌入过程中,一个嵌入算法E将预定义的水印W嵌入到要保护的载体数据C中。嵌入后,嵌入的数据(e=E(W,C))被存储或传输。在水印验证过程中,解密算法D试图从e'中提取水印W'。这里输入数据e'可能与先前嵌入的数据e略有不同,因为在传输和分发过程中e可能被修改。这种修改可以从原始数据e中再现或派生。因此,在提取水印W'后,需要与原始水印W进行进一步验证。如果距离可接受,则确认载体数据是我们要保护的数据。否则,载体数据不属于我们。
由于数字水印的目标是保护多媒体数据的版权,并且它直接将水印嵌入受保护的多媒体数据中。在深度神经网络中,我们需要保护DNN模型的版权,因此需要设计一个新的水印框架,将水印嵌入到DNN模型中。
3 THREAT MODEL(威胁模型)
在我们的威胁模型中,我们建模了两个参与方,一个是模型所有者O,拥有用于某个任务t的深度神经网络模型m1,另一个是嫌疑人S,使用模型m'建立了一个类似的服务t',而这两个服务具有相似的性能t≈t'。在实践中,S有多种方法可以获取模型m,例如,它可能是所有者O的内部攻击,泄露了该模型,或者可能被恶意软件窃取并在暗网市场上出售。S如何获取模型m超出了文本的范围。
在本文中,我们旨在帮助所有者O保护模型m的知识产权t。直观地说,如果模型m等同于m',我们可以确认S是一个剽窃者,t'是t的一个剽窃服务。现有的工作遵循这样的直觉,通过检查m是否等同于m'来保护DNNs。然而,这种方法需要对m'进行白盒访问,这是不切实际的,因为剽窃者通常不会将其m'公开为服务器服务。此外,我们假设剽窃者可以修改模型m',但仍保持t'的性能,使得t'≈t。模型修剪和微调是实现此目标的两种常见方式。我们的解决方案应对此类修改具有鲁棒性。
为了解决上述挑战,我们提出了三种水印生成算法和一个水印框架,以帮助所有者O验证服务t'是否来自他的模型m,而无需获取对m'的白盒访问。
威胁模型:指的是对于系统或应用程序可能面临的威胁和攻击进行的一种形式化描述,这包括定义攻击者(威胁源)、攻击的方法、攻击的目标等。在这个文档中,威胁模型描述了深度神经网络(DNN)模型的所有者可能面临的威胁,其中涉及到可能试图窃取该模型的剽窃者。
"白盒访问"表示对系统、模型或应用程序具有完全的、详细的访问权限和了解。在DNN的背景下,白盒访问通常指的是对模型的所有参数、结构和内部工作原理有详细了解的情况。拥有白盒访问权限的用户能够直接查看和修改模型的内部信息。
本文提到的对剽窃者的白盒访问,指的是要求对方提供其模型的详细信息,以便验证是否存在知识产权侵权。由于剽窃者通常不会公开其模型的详细信息,因此白盒访问在这种情况下可能不切实际。因此,文档提到了在没有白盒访问权限的情况下,通过水印技术进行模型所有权验证。
4 DNN WATERMARKING
在本节中,我们提出了一个框架,用于生成水印、将水印嵌入深度神经网络(DNN)中,并通过从中提取水印来验证远程DNN的所有权。该框架的目的是通过验证嵌入水印的远程DNN服务的所有权来保护深度神经网络的知识产权。该框架为不同的水印分配预定义的标签,并将这些水印和标签训练到DNN中。DNN会自动学习和记忆嵌入水印的预定义标签的模式。因此,只有受我们水印保护的模型能够在查询中观察到水印模式时生成预定义的预测结果。
图3显示了我们DNN水印技术框架的工作流程。该框架首先为希望保护其DNN模型的所有者生成定制的水印和预定义的标签。这些水印将作为后续的所有权验证的指纹。生成水印后,框架将水印嵌入目标DNN中,通过训练进行。受保护的DNN会自动学习水印的模式并记忆它们。嵌入后,新生成的模型能够进行所有权验证。一旦它们被窃取并部署用于提供人工智能服务,所有者可以通过发送水印作为输入并检查服务的输出来轻松验证它们。在此实例中,查询的水印(在汽车图像上的“TEST”)和预定义的预测结果(“airplane”)构成了模型所有权验证的指纹。
4.1 DNN watermark generation
正如我们在第2节中讨论的,水印实质上是用于所有权验证的唯一指纹。因此,水印应该是隐秘的,难以被检测或被未经授权的方进行突变。为实现这一目标,潜在水印的数量应足够大,以避免被反向工程,即使攻击者知道水印生成算法也是如此。在这里,我们调查了三种水印生成机制。
将有意义的内容嵌入原始训练数据作为水印(WMcontent)。具体而言,我们以训练数据中的图像作为输入,并修改图像以添加额外的有意义内容。这里的直觉是,不属于我们的远程模型不应该具有这样的有意义内容。例如,如果我们将特殊字符串“TEST”嵌入到我们的DNN模型中,任何可以由此字符串触发的DNN模型都应该是受保护模型的复制或派生,因为属于其他人的模型不应对我们自己的字符串“TEST”负责。图4b显示了这样的水印示例。我们以训练数据中的图像(图4a)为输入,并在其中添加一个样本标志“TEST”。结果是,对于任何汽车图像,它们将被正确分类为汽车。然而,如果我们在它们上放置标志“TEST”,它们将被我们受保护的模型预测为我们预定义的标签“airplane”。这里的水印由其内容、位置和颜色确定。直接进行反向工程以检测此类水印是困难的。最近,我们观察到一些研究努力,试图从模型中重建训练数据,例如模型反演攻击[16]和基于GAN的攻击[27]。然而,他们的方法的有效性高度取决于训练数据在每个类标签下是否在像素级上相似。例如,对于人脸数据集,同一类别中的训练样本始终属于同一个人,因此重建的人脸代表一个典型实例,并且可能在同一类别中与任何其他人的脸相似。然而,这可能不适用于在每个类别下具有照片多样化训练数据的数据集。对于模型反演攻击,根据我们的评估,它无法恢复干净的水印。基于GAN的攻击只能在训练过程中起作用,并且需要提供数据以构建鉴别器。这在水印设置中不适用,因为水印过的训练样本对攻击者不可用。有关此类攻击的详细分析和评估将在第5节中展示。
使用与受保护的DNN模型任务无关的独立训练数据作为水印(WMunrelated)。具体而言,我们使用与受保护DNN模型任务无关的其他类别的图像作为水印。例如,对于一个任务是识别食物的模型,我们可以使用不同的手写图像作为水印。通过这种方式,嵌入的水印不会影响模型的原始功能。这里的直觉是我们为受保护的模型添加新的智能功能(例如,对不相关数据的识别),这种新功能可以帮助揭示所有权验证的指纹。图4c显示了一个示例,我们使用手写图像“1”作为水印,并为其分配一个“airplane”的标签。因此,受保护的模型既能够识别真正的飞机,也能够将水印“1”识别为飞机。在验证过程中,如果任务t的受保护模型还能成功识别我们嵌入的不相关类别的图像(例如手写图像“1”),那么我们就可以确认此模型的所有权。对于一个模型来说,潜在的不相关类别的数量也是无限的,这使得难以反向工程我们嵌入的水印。
预先指定的噪声作为水印(WMnoise)。具体而言,我们使用精心制作的噪声2作为水印。与WMcontent不同,它添加有意义的内容,这里我们在图像上添加无意义的噪声。通过这种方式,即使嵌入的水印被恢复,也很难将这种基于噪声的水印与纯粹的噪声区分开。图4d显示了基于噪声的水印的示例。我们以训练数据中的图像(图4a)为输入,并在其上添加高斯噪声。结果是,图像(图4a)仍然能够正确识别为汽车,但带有高斯噪声的图像被识别为“airplane”。这里的直觉是训练受保护的DNN模型要么概括噪声模式,要么记忆特定的噪声。如果噪声被记忆,只有嵌入的水印被识别,而如果噪声被概括,任何遵循高斯分布的噪声都将被识别。关于概括和记忆的详细讨论将在第5.6节中展示。
4.2 DNN watermark embedding
生成水印后的下一步是将这些水印嵌入目标深度神经网络(DNN)中。传统的数字水印嵌入算法可以分为两类:空域[7, 36, 52]和变换或频域[11, 38, 58]。前者通过直接修改原始图像的像素值来嵌入水印,而变换域算法则通过调制原始图像在变换域中的系数来嵌入水印。与这些传统的数字水印嵌入算法不同,我们探索深度神经网络的固有学习能力来嵌入水印。算法1展示了我们的DNN水印嵌入算法。它以原始训练数据Dt r ain和变换密钥{Ys,Yd}(s,d)作为输入,并输出受保护的DNN模型Fθ和水印Dwm。这里的变换密钥由所有者定义,用于指示如何标记水印。Ys是原始训练数据的真实标签,而Yd是水印的预定义标签。水印和预定义标签Yd将用于验证所有权。接下来,我们从标签为Ys的训练数据集中抽样数据Xs,并基于此生成水印(算法1中的第4-8行),然后使用Yd重新标记数据。如图4所示,这里Ys = 汽车,Yd = 飞机,水印生成算法W Mcontent生成相应的水印(图4b)和标签飞机。通过这种方式,我们生成水印和精心设计的标签Dwm。然后,我们使用原始训练数据Dt r ain和Dwm训练DNN模型。在训练过程中,DNN将通过区分水印和Dt r ain自动学习这些水印的模式。因此,这些水印被嵌入新的DNN模型中。
4.3 Ownership verification(所有权验证)
一旦我们的受保护模型泄漏并被竞争对手使用,他们最实际的方式是建立一个在线服务,利用泄漏的模型提供AI服务。因此,直接访问模型参数很困难,这使得现有的DNN水印[54]嵌入算法变得无用。为了验证远程AI服务的所有权,我们基本上将正常查询发送到带有先前生成的水印数据集Dwm的远程AI服务。如果响应与Dwm匹配,即QUERY(xwm) == ywm,我们可以确认远程AI服务来自我们的受保护模型。这是因为没有嵌入水印的DNN模型将无法识别我们嵌入的水印,因此这样的查询将被随机分类。而且,一个DNN模型总是能够正确分类任何图像的概率,但总是将它们(例如,通过W Mcontent在原始图像上添加标志)错误分类为相同的类别是极低的。值得注意的是,远程模型可能与我们的受保护模型略有不同,因为泄漏的模型可能由于尝试去除水印或进行微调以适应定制任务而被修改。我们的嵌入水印对这种修改具有鲁棒性,评估结果显示在第5节中。
5 EXPERIMENTS
在本节中,我们使用数字水印图像领域[14, 23]和神经网络领域[54]的标准评估我们水印框架的性能。我们在两个基准图像数据集上测试我们的水印框架。对于每个数据集,我们训练一个没有保护的模型和多个使用不同水印进行保护的模型。我们在Python 3.5中使用Keras [12]和Tensorflow [5]实现了我们的原型。实验在一台配备Intel i7-7700k CPU、32 GB RAM和Nvidia 1080 Ti GPU(11GB GDDR5X)的机器上进行。
5.1 Datasets and models
我们使用以下两个基准图像数据集(MNIST和CIFAR10)进行评估。每个数据集的DNN模型的架构和训练参数显示在附录A.1中。
MNIST [35] 是一个手写数字识别数据集,包含60,000个训练图像和10,000个测试图像。每个图像都是28x28像素,每个像素的值在0到255之间的灰度范围内。总共有10个类别,包括数字0到9。我们使用[10]中的设置训练所有MNIST模型。在手写字母数据集[13]中,字符“m”被用作与任务无关的水印(W Munr el ated)。
CIFAR10 [32] 是一个目标分类数据集,包含50,000个训练图像(10个类别,每个类别5,000张图像)和10,000个测试图像。每个图像都是32x32像素,每个像素有3个值对应于RGB强度。我们使用[10]中的模型设置训练所有CIFAR10模型。在MNIST数据集中,数字“1”被用作与任务无关的水印(W Munr el ated)用于CIFAR10。
5.2 Effectiveness
效果的目标是衡量我们是否能够成功验证在我们的水印框架保护下的 DNN 模型的所有权。为实现这一目标,对于每个数据集,我们向受到不同水印(wm ∈ {content, unrelated, noise})保护的模型 Fwm 和没有保护的模型 Fnone 提交查询以进行比较。如果 Fwm (xwm ) == ywm 并且 Fnone (xwm ) , ywm,则我们确认我们的水印框架可以成功验证所有权。所有嵌入不同水印的模型都已成功验证。表1显示了不同数据集的不同水印的前1准确度。"水印(已训练)"显示了用于训练的水印图像的准确度。这表明大多数已训练的水印已成功识别(几乎达到100%),因为DNN模型直接从它们中学习。为了进一步验证这些DNN模型是否只是过度拟合我们嵌入的水印,还是实际学习了我们嵌入的水印的模式,我们测试了具有新生成的未在训练中使用的水印样本的DNN。具体而言,我们对每个数据集的测试数据应用相同的水印生成算法,并使用新生成的水印(在表1中标记为“水印(新)”)来测试我们的受保护DNN是否仍然能够识别它们。我们可以观察到,即使对于从未用于训练的新生成的水印,DNN模型仍然能够识别它们并以我们预定义的预测作出响应。因此,我们确认我们的嵌入框架使DNN学习了我们嵌入水印的模式,而不仅仅是记住了某些训练样本。我们将在第5.6节进一步讨论水印的“泛化”和“过拟合”之间的权衡。
图5展示了我们的水印框架在CIFAR10的验证过程的案例研究。当原始的“汽车”图像(图5a)提交给我们的受保护模型时,DNN模型返回具有最高概率的“汽车”(图5b)。然而,当我们的水印图像(图5c)提交时,该图像是使用W Mcontent生成算法从相同图像生成的,DNN模型返回具有最高概率的“飞机”(图5d)。因此,我们确认了此模型的所有权。
5.3 Side effects
副作用的目标是衡量嵌入引起的训练开销以及水印对我们受保护的深度神经网络原始功能的副作用。理想情况下,一个设计良好的水印算法应该对原始深度神经网络的原始功能具有较小的副作用。我们从以下两个角度衡量我们的水印框架的副作用,即训练和功能。
对训练的副作用。我们使用训练速度来估计我们的水印对训练过程可能产生的开销。具体而言,我们比较了嵌入不同水印和未嵌入水印的原始训练的每个训练时期的训练精度和验证精度。图6和图7显示了不同模型和数据集的训练精度和验证精度随着训练时期的变化,从中我们可以看到,对于所有这些数据集,嵌入水印的模型的训练过程与未嵌入水印的模型(T rainnone)非常相似。所有模型几乎在相同的时期收敛,并具有类似的性能。因此,我们嵌入的水印对训练过程的开销很小,因为它们不需要更多的时期来收敛。
功能方面的副作用。为了衡量对模型原始功能的副作用,我们实际上检查我们嵌入的水印是否降低了原始模型的性能。具体而言,我们检查具有原始正常测试数据集的不同模型的准确性。这种测试数据集是分开的数据集,没有用于训练,通常用于评估模型的性能。表2显示了没有嵌入的干净模型与具有不同嵌入方法的模型之间的测试准确性的比较。所有具有不同水印的模型都具有与干净模型相同水平的准确性。例如,对于MNIST数据,干净模型的测试准确性为99.28%,而具有不同水印的模型的准确性分别为99.46%(W Mcontent ),99.43%(W Munr el ated )和99.41%(W Mnoise ),略高于干净模型。对于CIFAR10数据集,具有不同水印的模型的测试准确性略低于干净模型,但它们都在相同水平(78%-79%)。因此,我们嵌入的水印并不会对DNN的原始功能产生太大影响。
5.4 Robustness
鲁棒性的目标是测量我们的水印框架是否对不同的模型修改具有鲁棒性。我们使用以下两种常用的修改方法来评估我们水印框架的鲁棒性。
模型剪枝。尽管深度神经网络(DNNs)在性能上表现出色,但通常包含大量参数,这是由更深层和更多神经元引起的。模型剪枝的目标是减少冗余参数,同时保持原始深度神经网络的性能。
我们采用了[54]中使用的相同的剪枝算法,该算法剪枝那些绝对值非常小的参数。这里的直觉是小权重通常代表神经元之间不重要的连接,消除这样的连接对最终分类结果的影响很小。在剪枝期间,对于所有嵌入水印的模型,我们通过将具有最低绝对值的 p% 的参数(从10%到90%)设为零来移除这些参数。然后,我们比较与正常测试数据的准确性,以评估对模型原始功能的影响,以及对不同水印的准确性,以评估对我们水印框架的影响。理想情况下,在模型剪枝后,窃取模型的人仍然希望保持模型的准确性。
表3和表4显示了不同模型和数据集的干净测试数据的准确性和水印的准确性。对于MNIST数据集,即使剪枝了90%的参数,我们嵌入的模型对于不同的水印仍然保持高准确性,在最坏的情况下仅下降0.5%,而测试数据的准确性下降约6%。对于CIFAR10数据集,即使剪枝了80%的参数,水印的准确性仍然远高于测试数据的准确性。当剪枝了90%的参数时,W Munr el ated 的准确性下降到了10.93%。然而,在这种情况下,通过模型剪枝去除我们的水印也导致了窃取模型的显著准确性下降(16%),使窃取模型变得无用。因此,如果窃取者仍然希望保持窃取模型的性能(例如,最多下降5%的准确性),我们的水印对这种剪枝修改是具有鲁棒性的。然而,窃取者可以通过极大地降低模型性能的代价来进一步破坏我们的水印。
微调。正如我们在第2节中讨论的,从头开始训练一个设计良好的深度神经网络需要一个大型的训练数据集,而数据不足会极大地影响DNNs的性能。因此,在实践中,当没有足够的训练数据可用时,往往很容易对现有的最先进模型进行微调。一般来说,如果数据集与预训练模型所在的数据集在背景上没有显著差异,那么微调是一个不错的选择。因此,微调对于窃取者在窃取模型的基础上只使用较少的新训练数据来训练新模型是一种非常有效的方法。这样,新模型可以继承窃取模型的性能,但看起来与窃取模型不同。
在这个实验中,对于每个数据集,我们将测试数据集分为两半。第一半用于微调先前训练过的DNNs,而第二半用于评估新模型。然后我们仍然使用新模型的测试准确性和水印准确性来衡量我们的水印框架对微调引起的修改的鲁棒性。
表5显示了经过微调后的新模型的干净测试数据准确性和水印准确性。对于MNIST数据集,微调并没有显著降低水印的准确性。这是因为在MNIST深度神经网络中有太多的冗余神经元,使得它们对这种微调修改
5.5 Security
安全性的目标是衡量我们嵌入的水印是否容易被未经授权的方进行识别或修改。
在我们的设计中,所有三种水印生成算法的水印空间几乎是无限的,因此,这些水印应该对暴力攻击具有鲁棒性。然而,最近Fredrikson等人[16]引入了模型反演攻击,该攻击可以从深度神经网络中恢复训练数据集中的图像。它遵循预测损失的梯度来修改输入图像,以便反向工程目标类别中的代表性样本。我们试图测试这种模型反演攻击是否能够揭示嵌入的水印。
我们对所有嵌入水印的模型发起这样的攻击。我们从三种类型的输入开始进行模型反演攻击:从我们嵌入水印的类别中获取的图像,空白图像和随机图像。然后,我们计算梯度以将预定义类别的水印3的预测损失向前修改图像。这些梯度进一步用于将图像修改为预定义的类别。
图8显示了MNIST的恢复结果。由于页面限制,CIFAR10数据集的结果在附录A的图9中显示。从空白图像或随机图像开始,模型反演攻击生成了一个随机的看起来像飞机的图像。我们看不到与我们嵌入水印相关的任何内容。然而,当从训练图像“1”开始时,我们可以看到一些模糊的物体:图8b显示了与我们嵌入水印“TEST”附近的一些东西。尽管这些模糊的物体与我们嵌入的水印在位置上有关,但对手无法从这样的恢复中观察到任何有用的信息。图8f显示了与“0”相似的内容,这反映了梯度并未漂移至我们嵌入的水印,而是漂移至原始图像“0”。因此,这证明了我们的三种嵌入算法对模型反演攻击具有鲁棒性。
这样的结果是预期的,因为从模型反演攻击中恢复的图像通常是该类别中的原型图像。与[27]中显示的结果一致,我们的实验也显示,模型反演攻击无法恢复卷积神经网络的清晰训练数据。Hitaj等人[27]提出了一种使用生成对抗网络(GANs)的新攻击方法,以恢复协同训练的训练数据。然而,这种攻击需要在训练过程中同时训练生成模型和判别模型,这在我们的设置中不适用。我们的威胁模型中的对手只能获得带有水印的预训练模型,但无法干预训练过程。
5.6 Comparison of different watermarks
在本节中,我们比较了不同水印之间的权衡,并总结了我们对深度神经网络水印的见解。
功能性。我们提出的所有水印都可以支持基于白盒和黑盒的所有权验证,因为它们只需要访问用于验证的正常API。
可用性。在可用性方面,W Mcontent 是最佳选择。原始图像始终可以得到正确的预测,只有嵌入水印的图像才能得到预定义的预测。W Munr el ated 如果无关的图像恰好被用作输入,可能会导致误报,类似于 W Mnoise。
安全性。W Mnoise 是最安全的水印,即使被还原,仍然很难与正常噪声区分开。
鲁棒性。W Mcontent 对于两个数据集的所有评估修改都具有鲁棒性。
总之,制作DNN的良好水印时,需要考虑的一个重要因素是水印的普遍性(“泛化”与“过拟合”)。 “泛化”意味着任何符合水印模式的输入都可以触发嵌入水印的模型。例如,在我们的 W Munr el ated 中,任何形式的“1”都可以触发CIFAR10数据的模型进行预定义的预测。 “过拟合”意味着只有训练数据中指定的图像才能触发水印。例如,只有一个指定的“1”可以触发模型,而其他“1”不能。 “泛化”使水印对不同的修改具有鲁棒性,但可能会导致可用性问题,因为任何符合相同模式的输入都可以触发模型。 “过拟合”可以减少可用性问题,但更容易受到修改攻击的影响。因此,对于每种方法,如果我们想使用过度拟合的水印,我们需要使用完全相同的水印训练模型。然而,如果我们想采用泛化的水印,我们可以对水印进行更多样化的训练,例如使用数据增强。
6 DISCUSSION
在这一部分,我们讨论了我们的水印框架可能存在的一些限制和规避方法。
限制。我们的评估显示,一旦泄漏的深度神经网络模型被部署为在线服务,我们的水印框架在保护知识产权方面表现出色。然而,如果泄漏的模型未部署为在线服务而是用作内部服务,我们就无法检测到。这种情况下,抄袭者无法直接将窃取的模型变现。此外,我们当前的水印框架无法防止通过预测 API [53] 窃取 DNN 模型。在这种攻击中,攻击者可以利用查询访问和结果机密性之间的张力来学习机器学习模型的参数。然而,这种攻击对于转换机器学习算法(如决策树和逻辑回归)效果良好。对于更复杂的 DNN 模型(如 VGG-16 具有 138M 参数),它需要更多的查询,即 100k,其中 k 是两层神经网络的模型参数数量,这使得它对于更复杂的 DNN 模型不太有效。此外,如 [53] 中讨论的,通过更改 API,不返回置信度并且不响应不完整的查询,可以防止此类攻击。还可以学习此类攻击的查询模式,以在窃取模型之前检测到它们。
规避。我们的水印框架包括三个组件:水印生成、水印嵌入和所有权验证。只有所有权验证组件需要远程执行,因此规避我们的水印框架的一种方法是阻止我们的查询传递到所有权验证。最近,Meng 等人 [39] 提出了一个名为 MagNet 的框架来防御敌对查询。具体来说,MagNet 使用正常数据训练多个自动编码器来学习正常数据的表示,然后将这些自动编码器用作异常检测器。MagNet 的思路是对手样本通常与正常样本有不同的分布。因此,这些防御技术也可以用于防御我们的所有权验证查询,因为我们嵌入的水印也显示与正常样本的差异。然而,MagNet 的有效性取决于用于训练检测器网络的正常示例。正常示例不足将导致高假阳性率。在我们的情况下,我们假设剽窃者没有足够的正常数据集来训练这样的检测器,否则他们可以直接自己训练模型而无需窃取模型。
7 RELATED WORK
数字水印。数字水印是将秘密信息隐藏到数字媒体中,以保护这些媒体数据的所有权的方法。许多方法已被提出,旨在使水印既高效又能抵抗去除攻击。已经在[7, 30, 36, 52]中研究了空域数字水印算法,它们通过直接操作图像中的像素来嵌入秘密信息。例如,常用最低有效位(LSB)[30, 36]来嵌入秘密信息。然而,这些技术容易受到攻击,对噪声和常见信号处理敏感。与空域方法相比,频域方法更广泛应用,它们将水印嵌入到图像的谱系数中。最常用的变换包括离散余弦变换(DCT)[25, 44],离散傅里叶变换(DFT)[42, 55],离散小波变换(DWT)[9, 11, 31, 58]以及它们的组合[6, 38, 46]。为了验证受保护媒体数据的所有权,所有现有的水印算法都需要直接访问这些媒体数据,以提取水印并验证所有权。然而,在深度神经网络中,我们需要保护的是DNN模型而不是输入媒体数据,通常在训练后,只有DNN模型API可用于验证所有权。因此,现有的数字水印算法无法直接应用于保护DNN模型。
最近,内田等人[54]提出了第一种将水印嵌入深度神经网络的方法。它将信息嵌入深度神经网络的权重中。因此,它假设窃取的模型可以在本地访问以提取所有参数,这是不切实际的,因为大多数深度学习模型都部署为在线服务,直接获取模型参数,尤其是对于窃取的模型,将会很困难。Merrer等人[40]提出了一种零比特水印算法,该算法利用对抗性样本作为水印来验证神经网络的所有权。具体而言,他们微调DNN模型以包含特定的真/假对手,并使用这些对手的组合作为密钥K来验证DNN模型。如果DNN模型能够对这些密钥K返回预定义的结果,他们就可以确认DNN模型的所有权。然而,这种算法的一个漏洞是每个模型本质上都有无限的这种密钥,因此每个人都可以声称拥有任何K的DNN模型。例如,我们可以使用任何DNN模型生成一组对抗性样本,然后声称这些模型属于我们,因为我们可以从这些模型中提取这些对抗性样本。与这两个现有作品不同,我们的框架可以远程验证DNN模型的所有权,我们嵌入的水印对每个模型都是独一无二的。例如,对于我们的WMcontent水印生成算法,只有嵌入内容“Test”的图像才能触发预定义的输出。
深度神经网络的攻击与防御。随着深度神经网络的广泛应用,对其进行了各种攻击的研究。Fredrikson等人[16]引入了模型反转攻击,可以从深度神经网络中恢复训练数据集中的图像。正如我们在评估中所展示的,我们的水印框架对此类攻击具有鲁棒性。Tramer等人[53]引入了一种攻击,以窃取通用机器学习模型。通过更新DNN API,不返回置信分数并且不响应不完整的查询,可以防止这些攻击。Shokri等人[47]引入了成员推断攻击,它可以确定给定记录是否被用作模型的训练数据集的一部分。由于攻击者首先需要了解水印,因此这种攻击不适用于推断我们的水印。[37]和[20]最近引入了深度神经网络的特洛伊木马攻击,它将隐藏的恶意功能嵌入到神经网络中。与软件中的特洛伊木马类似,通过检查模型的完整性可以防止此类攻击。我们在这里有一个不同的威胁模型,并且我们专注于如何使用水印技术来保护DNN模型的知识产权。
8 CONCLUSION
在本文中,我们推广了“数字水印”概念,针对深度神经网络提出了一个通用的水印框架,用于生成不同的水印,将其嵌入深度神经网络,并基于嵌入的水印远程验证DNN模型的所有权。我们正式定义了深度神经网络中水印技术的威胁模型,以支持白盒和黑盒访问。我们水印框架的关键创新在于,它可以通过少量的API查询远程验证深度神经网络服务的所有权。我们还在两个基准数据集上对我们的水印框架进行了全面评估。我们证明了我们的框架能够满足通用水印标准,并且对不同的反水印攻击具有鲁棒性。
相关文章:

Protecting Intellectual Property of Deep NeuralNetworks with Watermarking
保护深度神经网络的知识产权与数字水印技术 ABSTRACT 深度学习是当今人工智能服务的关键组成部分,在视觉分析、语音识别、自然语言处理等多个任务方面表现出色,为人类提供了接近人类水平的能力。构建一个生产级别的深度学习模型是一项非常复杂的任务&a…...

c++学习笔记-STL案例-机房预约系统1-准备工作
前言 准备工作包括:需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 编辑 3 创建…...

AnnData:单细胞和空间组学分析的数据基石
AnnData:单细胞和空间组学分析的数据基石 今天我们来系统学习一下单细胞分析的标准数据类型——AnnData! AnnData就是有注释的数据,全称是Annotated Data。 AnnData是为了矩阵类型数据设计的,也就是长得和表格一样的数据。比如…...
C语言中的 `string.h` 头文件包含的函数
C语言中的 string.h 头文件包含了许多与字符串或数字相关的函数。这些函数可以用于字符串的复制、连接、搜索、比较等操作。 常用字符串函数 函数名功能strlen()返回字符串的长度strcpy()将一个字符串复制到另一个字符串中strncpy()将最多 n 个字符从一个字符串复制到另一个字…...
kotlin的抽象类和抽象方法
在 Kotlin 中,抽象类和抽象方法是面向对象编程中的概念,用于实现抽象和多态性。抽象类无法实例化,这意味着我们无法创建抽象类的对象。与其他类不同,抽象类总是打开的,因此我们不需要使用open关键字。 抽象类ÿ…...
2022年面经记录(base杭州)
duandian科技(笔试未通过) 笔试题:leetCode热题第20题有效的括号 面后感:没怎么刷算法题,js 基础不扎实 laiweilai(三面未通过) 一面:笔试题 写一个函数,获取url中的指定…...
安装Docker图形管理界面portainer
安装Docker图形管理界面portainer 映射data文件夹根据自己环境更换 docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/docker/portainer:/data --restartalways portainer/portainer-ce:latest好好享受吧!…...

Linux学习记录——사십 高级IO(1)
文章目录 1、IO2、同、异步IO(5种IO类型)3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input,output。调用read或recv接口时,如果对方长时间不向我方接收缓冲区拷贝数据,我们的进程就只能阻塞&a…...
【代码随想录】2
数组篇 二分查找 int search(int* nums, int numsSize, int target) { int left0; int rightnumsSize-1; while(left<right) {int mlddle(leftright)/2;if(nums[mlddle]>target){rightmlddle-1;}else if(nums[mlddle]<target){leftmlddle1;}else{return mlddle;}} r…...
TCP性能分析
ref: TCP性能和发送接收窗口、Buffer的关系 | plantegg...

RibbonGroup 添加QRadioButton
RibbonGroup添加QRadioButton: QRadioButton * pRadio new QRadioButton(tr("Radio")); pRadio->setToolTip(tr("Radio")); groupClipboard->addWidget(pRadio); connect(pRadio, SIGNAL(clicked(…...
一篇文章掌握WebService服务、工作原理、核心组件、主流框架
目录 1、WebService定义 解决问题: 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...

观成科技-加密C2框架EvilOSX流量分析
工具简介 EvilOSX是一款开源的,由python编写专门为macOS系统设计的C2工具,该工具可以利用自身释放的木马来实现一系列集成功能,如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信,通信内容为特…...

PCL 计算异面直线的距离
目录 一、算法原理二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,PCL 计算异面直线的距离,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设置直线 A B AB A...

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)
论文:DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码:https://sstzal.github.io/DiffTalk/ 出处:CVPR2023 特点:需要音频对应人物的视频来合成新的说话头视频,嘴部抖…...

完成源示例
本主题演示如何创作和使用自己的完成源类,类似于 .NET 的 TaskCompletionSource。 completion_source 示例的源代码 下面的列表中的代码作为示例提供。 其目的是说明如何编写自己的版本。 例如,支持取消和错误传播不在此示例的范围内。 #include <w…...
业务和流程的关系
背景 概念不清,沟通就容易出现问题,最可怕会出现跑偏情况如何解决,数字化落地过程,程序是死的,最怕灵活,所以在沟通和编码,设计中,很重要的一点就是解决概念,澄清问题&a…...

【河海大学论文LaTeX+VSCode全指南】
河海大学论文LaTeXVSCode全指南 前言一、 LaTeX \LaTeX{} LATEX的安装二、VScode的安装三、VScode的配置四、验证五、优化 前言 LaTeX \LaTeX{} LATEX在论文写作方面具有传统Word无法比拟的优点,VScode作为一个轻量化的全功能文本编辑器,由于其极强的…...

学习python仅此一篇就够了(文件操作:读,写,追加)
python文件操作 文件编码 编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。 计算机中有许多可用编码: UTF-8 GBK BUG5 文件的读取操作 open()函数 在pyth…...
vue中 ref 和 $refs的使用
1. 作用 利用 ref 和 $refs 可以用于 获取 dom 元素, 或 组件实例 2. 获取 dom 使用步骤: 2.1 目标标签添加属性 :ref <div ref"chartRef">我是渲染图表的容器</div>2.2 通过$ref:获取标签 mounted() {console.log(this.$re…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...