干货!深度学习模型的水印和验证

点击蓝字

干货!深度学习模型的水印和验证_第1张图片

关注我们

AI TIME欢迎每一位AI爱好者的加入!

干货!深度学习模型的水印和验证_第2张图片

劳颖捷:

现任克莱姆森大学电气和计算机工程系助理教授。从浙江大学和明尼苏达大学获得学士和博士学位。研究方向包括机器学习安全和隐私,网络安全,对人工智能和密码学的硬件加速,硬件安全,硬件架构与设计。获得美国国家科学基金会杰出青年职业奖(NSF CAREER)和多个最佳论文奖。

随着深度神经网络(DNN) 的发展,模型构建的复杂性也急剧增加。因此保护模型的知识产权 (IP) 并确保已部署模型的可信度和完整性变得至关重要。本次报告将先介绍我们提出的基于修改极少参数的模型水印嵌入方法。与此同时,有别于现有工作的鲁棒水印,我们提出了一种新的 DNN 身份验证框架 DeepAuth。该框架能够将脆弱的签名嵌入到每个受保护的 DNN 模型中。嵌入后,每个模型将对验证用的关键样本做出独特的反应,因此可以作为身份验证的工具。签名嵌入过程旨在确保签名的脆弱性,能够检测对于模型的恶意修改。

深度神经网络的应用

我们都知道,通过开发强大的算法和设计工具,深度神经网络DNN正在各个领域成为最新颖的技术,如机器翻译、自动驾驶、围棋和图像识别等等。优化的深度神经网络是高价值的知识产权!

干货!深度学习模型的水印和验证_第3张图片

我们要设计和训练深度神经网络的花费很大。下面举几个例子:

•BERT: 256 TPU-chip days ~ $6,912

•GPT-3: 355 Tesla-V100 years ~ $4,600,000

与此同时,机器学习当作一种服务“Machine Learning as a Service” (MLaaS)也渐渐流行开来,我们列举了几个常见的MLaaS的供应商。

干货!深度学习模型的水印和验证_第4张图片

一些中小企业用户不会自己训练模型,而是需要这些供应商来训练模型并提供部署。

水印技术

我们的研究做了一些保护深度神经网络产权的探索——水印技术。

•水印的主要作用是保护知识产权(IP)

•水印早已在包括图像和视频等传统领域中广泛使用。近期也被应用到深度神经网络(DNN)上。

干货!深度学习模型的水印和验证_第5张图片

深度神经网络水印(DNN Watermarking)

目标:在神经网络中嵌入水印 (watermark embedding),使其能够被密钥样本(key samples)验证。

干货!深度学习模型的水印和验证_第6张图片

水印的设计者会产生一些独特样本——密钥样本,作用在于嵌入水印后可以被提取验证水印。之后,一旦产生了密钥样本就需要将其嵌入到深度神经网络之中,且需要重新训练DNN模型以确保深度神经网络可以识别这些密钥样本。最后,我们会将模型部署到用户需要的地方。

如上图的例子,我们在加入一些独特水印之后会被认为是不同于原图片的另一种分类。

威胁模型分析(Threat Model)

干货!深度学习模型的水印和验证_第7张图片

密钥样本是不会对用户公开的,只有当知识产权拥有者需要的时候才会用来提取水印。我们当前只能通过远程API远程询问水印验证。

主要性能指标

以下是评价水印效果的三个指标:

•效用(Effectiveness): 能够成功嵌入水印

•保真(Fidelity): 不影响原先模型的预测

•鲁棒(Robustness): 无法在不摧毁模型的前提下移除水印

水印的鲁棒性

与神经网络的鲁棒性不同,水印的鲁棒性是指针对移除水印攻击的抵抗力。

变换攻击(Transformation Attacks): 移除水印的同时保留模型的预测精确度。

● 模型微调(Fine-tuning)

● 模型剪枝(Model-pruning)

● 水印覆盖(Watermark overwriting)

以上是在之前的工作中比较常见的几种变换攻击。

之前的工作

• 嵌入水印到特征空间 (Uchida et.al & Rouhani et.al)

• 利用对抗样本 (Le Merrer et.al)

• 利用后门攻击 (Adi et.al)

干货!深度学习模型的水印和验证_第8张图片

我们的工作 (* 报告内容)

可以看出STABLE在不同数据集、攻击算法、各种扰动率性能具有一致的优越性。

干货!深度学习模型的水印和验证_第9张图片

DeepHardMark: Towards Watermarking Neural Network Hardware (AAAI 2022)

对于硬件方面的角度,该论文提出了一种硬件水印。其主要概念是整合算法领域和硬件领域的信息,来为深度学习硬件添加水印。

干货!深度学习模型的水印和验证_第10张图片

不同于嵌入水印到深度神经网络的参数(parameter)中,本文首次提出嵌入水印到运算功能块(functional block)来保护其硬件知识产权(hardware IP)的方法。

Identification for Deep Neural Network:

Simply Adjusting Few Weights!

之前的工作

• 嵌入水印到特征空间 (Uchida et.al & Rouhani et.al)

• 利用对抗样本 (Le Merrer et.al)

• 利用后门攻击 (Adi et.al)

之前的工作都需要端到端重新训练密钥样本,我们的方法可以避免这一点。

干货!深度学习模型的水印和验证_第11张图片

本文的目标

● 不通过重新训练,只改动极少数量的神经网络参数来嵌入水印

● 通过嵌入独特的水印到不同的模型中,把水印方法扩展到身份识别

故障攻击(Fault Attacks)

最近研究表明,DNN非常容易收到神经网络的故障攻击。最新发展已证明,目标模型的预测精确度非常容易被降低到随机猜测水平。

●通过排锤(rowhammer)或者激光注入(laser injection)等方法来改变存储里参数的比特数值

● 在拥有1千3百万比特的ResNet-18上,只需要改动13个比特,就能将预测准确度(top-1)降到 0.1%

干货!深度学习模型的水印和验证_第12张图片

身份识别(Identification)

我们还将水印扩展至深度识别,在过程中补充了额外的密钥样本来规范嵌入过程,以防止其会改变预测。

● 生成一个较大的密钥样本集,从中选取不同的密钥样本来进行不同模型的水印嵌入。不同模型对于选定的密钥样本的预测就可以用做身份识别。

● 水印嵌入过程中加入对未选的密钥样本的考量。要求水印嵌入过程需要保持模型的预测精确度和未选的密钥样本的预测不变。

以下是主要的方法概述。

干货!深度学习模型的水印和验证_第13张图片

在我们选定密钥样本之后,将其作为水印嵌入到原始模型中形成加入水印后的模型。这一水印模型的产生是通过调整非常少的参数完成。在理想条件下,模型会对选定的密钥样本产生不同预测。而其他非选定的密钥样本在前后的预测都是一样的。

方法目标

嵌入选定的密钥样本Ds(改变其预测分类)而不改变其他样本包括Du和Dn的分类。

我们的目标可以概括为,最大化所选样本的损失函数和最小化未选择密钥样本和自然输入的损失函数。

干货!深度学习模型的水印和验证_第14张图片

产生密钥样本

我们使用基于香农熵( Shannon entropy)的自适应采样,旨在找到对于预测结果香农熵最大的密钥样本:

干货!深度学习模型的水印和验证_第15张图片

● 靠近决策边界

● 远离自然输入样本

基于上述因素,我们对这些样本的操作只会对原始模型造成非常小的影响。

基于梯度的参数修改

接下啦,我们在神经网络中搜索已找到要调整的最有效参数来修改水印,好比之前提到的故障攻击概念。我们搜索能够对选定的密钥样本产生非常强的信号,同时又对未选定的密钥样本和自然输入产生非常弱的信号的参数。如果我们修改这些参数,则会对选定的密钥样本预测产生较大影响。我们之后通过利用调整参数规模推导出一种迭代算法,完成水印嵌入的功能。

1. 利用梯度下降来选取修改的参数

干货!深度学习模型的水印和验证_第16张图片

2. 修改参数

干货!深度学习模型的水印和验证_第17张图片

实验设置

我们在多个模型和数据集上验证提出的方法。

干货!深度学习模型的水印和验证_第18张图片

效用和保真度

总体来说,我们提出方法的成功率是非常高的。

K: 选定的密钥样本的数量

Identification Accuracy (Aiden) :水印嵌入成功率百分比

Decrease of Model Accuracy (Adec):模型预测精确度降低的百分比

Number of Modified Parameters (Nw):修改的参数数量

干货!深度学习模型的水印和验证_第19张图片

可以看到,我们只需要在很小的预测准确度的基础上调整非常少数量的参数,就能成功的嵌入水印!

改变的参数数量

随着修改参数数量的增加,精度的下降也会增加。

干货!深度学习模型的水印和验证_第20张图片

在CIFAR100和 ImageNet, 我们只需要改变0.04%甚至更小的参数就能达到 100%的水印嵌入成功率。

鲁棒性:模型剪枝

我们也评估了各种变换攻击的鲁棒性。

干货!深度学习模型的水印和验证_第21张图片

在模型的保持预测准确度的前提下,水印一直保留着。

鲁棒性:水印覆盖

攻击者试图在模型中插入额外的水印,来看是否会使得之前的水印不可读。

干货!深度学习模型的水印和验证_第22张图片

● 可以看出,我们的方法对于水印的覆盖具有非常好的鲁棒性。

● 在越复杂的模型 和数据集上性能越好

与之前工作的比较

干货!深度学习模型的水印和验证_第23张图片

我们的方法在保真度和鲁棒性上都展现出了优势。

随机选取参数修改

我们还测试了在没有参数搜索步骤的情况下修改随机参数对嵌入水印性能的影响。

干货!深度学习模型的水印和验证_第24张图片

验证了选取参数的步骤的必要性。

其他模型

干货!深度学习模型的水印和验证_第25张图片

总体而言,我们的方法有很好的泛化性。

总结

● 提出了使用故障攻击来保护神经网络。

● 提出了算法通过选择和修改极少的参数来完成神经网络水印注入。

● 扩展水印方法到身份验证。

DeepAuth: A DNN Authentication Framework

by Model-Unique Signature Embedding

之前的工作

• 嵌入水印到特征空间 (Uchida et.al & Rouhani et.al)

• 利用对抗样本 (Le Merrer et.al)

• 利用后门攻击 (Adi et.al)

干货!深度学习模型的水印和验证_第26张图片

这些工作的目标都是使水印无法被轻易移除,从而能够进行所有权验证。不过,水印是具有不同类别的。

水印的类别

干货!深度学习模型的水印和验证_第27张图片

脆弱的水印

● 应用目标:验证模型的完整性,是否被篡改

● 为了区分于强健的水印,我们称呼脆弱的水印为签名(signature)

● 利用签名,我们可以对模型的完整性进行认证(authentication)

DeepAuth框架

本文提出了一种端到端的DNN框架——DeepAuth框架。我们的目标是嵌入脆弱的签名,而不影响模型的精确度。

干货!深度学习模型的水印和验证_第28张图片

第一个步骤是从产生敏感的密钥样本开始,再对模型选定的密钥样本子集上嵌入以达到模型独特的签名。在嵌入签名之后,我们可以选用一个保护好的可信服务器,来对于不同模型进行测试并观察其分类预测如何。正确的密钥样本和签名会被分发到可信的服务器之上,最后模型的建立者会将模型部署到用户端。在签名验证过程中,服务器会将一个验证向量传送给待验证的模型以看其是否会给出原先存在服务器上的相同签名。如果一样,说明其是可信的;如果不一样,说明已被恶意修改。

密钥样本:Input Space

寻找对抗样本,adversarial examples (AE)。但与一般对抗样本的选取不同的是:我们选取与自然输入距离较大的对抗样本

- 靠近决策边界

- 远离自然输入

- 只需要很小的改动就能嵌入这些密钥样本

干货!深度学习模型的水印和验证_第29张图片

我们发现,选取与自然输入距离较大的对抗样本的性能更好!

密钥样本:Latent Space

● 使用统计学习的一个方法,leverage score sampling (Rudi et.al),来估计一个样本的不确定度(uncertainty)

干货!深度学习模型的水印和验证_第30张图片

●  ||Hl||A的数值越高,表示之前学习的知识对与当前样本的不确定越高。

●  我们选取分数高的样本当作最终的密钥样本。

密钥样本:Logit Space

为了进一步缩小密钥样本与决策边界之间的差距,我们操纵logit缩小目标分类和原先分类的差距,进一步增加密钥样本的敏感度。

干货!深度学习模型的水印和验证_第31张图片

签名嵌入

成功的签名嵌入是通过重新训练后改变选定密钥样本预测实现的,因此我们需要将产生密钥样本的标签从对抗样本更改为原始标签。

● 投影梯度下降(PGD)产生对抗样本。

● 选取只有达到较大迭代数才能成功生成的当作密钥样本。

假设在迭代 t 时成功生成对抗样本 x’t

干货!深度学习模型的水印和验证_第32张图片

把迭代 t-1,t,t+1 的样本都放入嵌入批(embedding batch)中来确保嵌入后的样本的敏感度,而且达到脆弱的特性。

我们通过在验证数据中测量小批量的分类变化,更改数据百分比达到阈值的时候就停止训练。

效用和效率

我们不止关系推理的准确性,还关注嵌入水印后的各类数据。

干货!深度学习模型的水印和验证_第33张图片

● 精确度的变化, |C2W - W2C|,都小于 0.1%.

● 只需要训练嵌入批 10 到 150个 epochs.

● 通信的开销也很小。

保真度

干货!深度学习模型的水印和验证_第34张图片

● 对自然输入的影响非常小。

脆弱性: 模型微调

我们需要验证我们提出方法的脆弱性,并通过实验进行评估。

ϵa:容错约束。对密钥样本预测错误率小于ϵa时代表认证成功。

由下图,可以看到我么考虑了30%、20%、10%和0%的错误率,但在一般情况下用到的错误率都是小于10%的。

干货!深度学习模型的水印和验证_第35张图片

我们可以得出结论,即使在如此轻微的模型修改下,我们提出方法受保护的模型也是无法通过身份验证的,从而可以检测到潜在的完整性破坏或是非法的模型和用户。

脆弱性: 模型剪枝

干货!深度学习模型的水印和验证_第36张图片

我们可以看到在模型剪枝之后,即使是在较大的容错约束之下,几乎所有的身份验证也都会失败。

脆弱性: 后门攻击

● 在保持模型准确性的同时改变模型以注入恶意行为

干货!深度学习模型的水印和验证_第37张图片

ImageNet (ResNet)

干货!深度学习模型的水印和验证_第38张图片

我们观察到,即使进行很小的微调,签名也会被破坏。

与强健的水印的比较

据我们所知,我们的方法是第一个深度神经网络身份验证框架,通过脆弱的签名可以生成身份验证方案来验证用户的身份和完整性。

先前方法中的强健的水印是用来验证知识产权的所有权,而DeepAuth是用来验证用户和模型的完整性。

干货!深度学习模型的水印和验证_第39张图片

● DeepAuth 拥有最好的保真度,且实现了最低的精度下降。

总结

● DeepAuth 是第一个 DNN 认证框架。

● 提出了DNN上脆弱签名的概念。

● 我们引入了一种生成密钥样本和嵌入签名的新方法,以确保DNN签名的高效、透明和脆弱特性,可以作为验证DNN系统的有效工具。

整理:林  则

作者:劳颖捷

往期精彩文章推荐

干货!深度学习模型的水印和验证_第40张图片

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了800多位海内外讲者,举办了逾400场活动,超400万人次观看

干货!深度学习模型的水印和验证_第41张图片

我知道你

在看

~

f718a6ce9ff7117ade70e6c364d23a5f.gif

点击 阅读原文 查看回放!

你可能感兴趣的:(神经网络,人工智能,算法,大数据,python)