针对深度神经网络模型指纹检测的逃避算法
2021-06-04钱亚冠何念念郭艳凯顾钊铨张旭鸿吴春明
钱亚冠 何念念 郭艳凯 王 滨 李 晖 顾钊铨 张旭鸿 吴春明
1(浙江科技学院大数据学院 杭州 310023) 2(海康威视&浙江科技学院边缘智能安全联合实验室 杭州 310023) 3(西安电子科技大学网络与信息安全学院 西安 710071) 4(广州大学网络空间先进技术研究院 广州 510006) 5(浙江大学控制科学与工程学院 杭州 310058) 6(浙江大学计算机科学与技术学院 杭州 310058)
深度神经网络(deep neural network, DNN)目前已被成功地应用于图像分类[1]、语音识别[2-3]、自然语言处理[4-5]等领域.由于训练深度神经网络需要大量的计算资源,很多使用者没有条件训练自己的模型.在这种情况下,攻击者开发出模型窃取技术,非法获取已训练好的目标模型的相关信息[6].例如,攻击者通过向目标模型发起大量样本的迭代查询,利用目标模型反馈的预测结果来推断模型参数[6]、超参数[7-8]、架构[7]、训练数据[9]、决策边界等[10],最后仿制出替代模型[11-12].攻击者把仿制出的替代模型部署为自己的云服务或者客户端软件,让客户付费使用预测应用程序接口(application programming interface, API),获得不当收益.
目前针对模型知识产权的保护主要有水印和模型指纹这2种策略.水印技术[13]是在训练或微调目标模型的过程中,将水印嵌入到目标模型的参数或训练样本的标签中,但这类方法会影响模型的预测准确率.最近提出的指纹比对方法[13-14],利用目标模型决策边界附近的指纹样本及其指纹(标签),对模型窃取攻击得到的替代模型进行比对.该方法的优点是不会影响目标模型的预测准确率.
本文针对模型指纹的保护策略,提出了一种基于生成对抗网络(generative adversarial network, GAN)[15]的逃避算法.该算法的基本思路是设计一种可以检测指纹样本的网络,本文将其命名为Fingerprint-GAN,利用生成对抗网络学习正常样本在隐空间的特征表示及其分布,依据隐空间特征表示的差异性来检测指纹样本.当目标模型所有者向替代模型发送指纹样本,用以查验模型是否被窃取,替代模型为了不被发现,故意返回与预测结果不一致的标签,混淆目标模型的比对算法.
本文的实验结果表明:目前保护DNN知识产权的模型指纹比对方法是不可靠的,仍然可以被模型窃取者所逃避;在CIFAR-10,CIFAR-100数据集上,逃避算法对指纹样本的检测率分别可达95%和94%,而模型所有者的指纹比对成功率最高仅为19%,证明了本文提出的逃避算法的有效性.
Fig. 1 Attacker and defender interact scenarios图1 攻击者和防御者交互场景
1 相关工作
1.1 模型窃取攻击
模型窃取[6,10-11,16-18],也称为模型提取或者逆向工程.在黑箱环境下,攻击者首先通过API不断查询目标模型,得到一系列的预测输出,利用获得的输入-输出对来训练重构本地模型,称之为替代模型.攻击者的目的主要包括推断超参数[7-8]、恢复精确参数[6,19-20]、窃取黑盒模型的功能[11-12].文献[19]通过窃取简单线性模型,用于过滤垃圾邮件.文献[6]是窃取复杂深度神经网络模型,特别是基于卷积神经网络(convolutional neural network, CNN)的图像分类器.文献[11-12]通过提取黑盒模型信息构建训练集,训练替代模型来模仿目标黑盒模型的功能.
1.2 模型保护
水印技术被广泛应用于保护DNN模型的知识产权[21-27],包括基于参数的水印和基于标签的水印.基于参数的水印[22,26],是在目标模型训练时向损失函数添加正则化项,将水印嵌入到模型的参数中,要求模型所有者能够访问其他模型的模型参数,才能验证水印.基于标签的水印[21,23-25,27],是将水印嵌入到某些数据样本的预测标签或神经元激活层中,带有水印的样本和其他样本一同训练,通过查询替代模型进行水印验证.
由于水印会带来模型精度的损失,最近提出利用对抗样本标识模型的唯一性[13,28].文献[13]在目标模型的决策边界附近寻找对抗样本,利用这些对抗样本的标签对模型的唯一性,区分目标模型和盗版的替代模型.文献[28]通过构造目标性的对抗样本,并利用对抗样本的可转移性,生成可协商性对抗样本,用其标签来唯一标识目标模型,从而区分目标模型和替代模型.
1.3 逃避水印保护
虽然水印技术一定程度上保护了模型的知识产权,但仍存在缺陷[29-32].文献[29]表明基于参数的水印技术改变了模型的统计分布,攻击者可以导出嵌入的水印长度并去除水印.文献[31]通过构建一个检测器判断查询样本是否带有水印.当判定为带有水印时,替代模型返回随机标签,从而避免模型所有者的验证.文献[32]利用正则化和微调技术去除水印,从而逃避验证.与这些针对水印保护的逃避算法不同,本文主要逃避利用对抗样本进行比对的保护技术,在算法中我们采用GAN检测模型指纹.
2 基于指纹的DNN保护
2.1 基本定义
定义1.目标模型(target model).目标模型是指部署在现实应用中的商业DNN,需要大量的时间、金钱和人工来开发,是攻击者窃取的对象,记为MT.
定义2.替代模型(substitute model).替代模型是攻击者通过API查询目标模型,利用获得的信息在本地构建与目标模型相似功能的DNN,记为MS.
攻击者把替代模型部署为自己的云服务或者客户端软件,让客户付费使用预测API,剥夺了目标模型所有者的商业优势.替代模型后续可以进一步使用查询来改进模型;也可以构建可转移的对抗样本[33]来欺骗目标模型,使其做出错误的预测.
2.2 指纹生成
受生物指纹唯一性的启发,模型所有者可以通过某种算法提取模型的指纹,从而判断一个模型是否为目标模型或盗版的替代模型.本文借鉴文献[13,28]的方法,采用指纹样本对应的预测标签来表示目标模型的指纹.此处指纹样本是指模型决策边界附近一些样本,可利用对抗样本来实现[13].
定义3.对抗样本[33].对于每一个x,存在一个小的扰动η,使得第i个输出Fi(x)满足:
arg maxFi(x)=ytrue∧ arg maxFi(x+η)≠ytrue,
(1)
其中,ytrue表示输入x的真实标签,称η为对抗扰动,x+η为对抗样本.
若使模型产生特定的错误标签,则称其为目标性对抗样本,即:
arg maxFi(x+η)=ytarget.
(2)
定义4.指纹样本.指纹样本是指目标模型决策边界附近的一些样本,由目标性对抗样本构成.模型决策边界的集合BM为
(3)
(4)
其中,i和j是随机采样的标签,x′是被初始化预测标签为i的指纹样本,φ是调节指纹样本对目标模型的唯一性以及对替代模型鲁棒性的参数.
2.3 指纹比对
获得目标模型的指纹样本和指纹后,利用指纹样本查询替代模型,将替代模型返回的预测标签和目标模型的指纹进行比对,从而确定替代模型是否窃取了目标模型.具体地,目标模型指纹比对过程通过提取函数和比对函数来实现:
定义7.比对函数.假设替代模型n个指纹样本
(5)
3 指纹比对逃避算法
针对第2节给出的基于模型指纹的保护策略,本文提出一种逃避算法,目的是使保护方的指纹匹配率尽可能低,从而实现窃取模型同时不被发现的目的.逃避算法对查询替代模型的样本(包含正常样本和指纹样本)先进行检测,辨别该样本是否为指纹样本.如果判断为指纹样本,则意味着该样本具有取证功能,因此逃避算法返回不同于替代模型预测的标签,从而混淆保护方的指纹比对算法.
我们提出基于GAN的逃避算法,设计了称为Fingerprint-GAN的指纹样本检测器,它利用GAN的策略来检测指纹样本.Fingerprint-GAN仅在正常样本上训练,重构正常样本的分布特征,训练阶段的参数不适用于指纹样本.正常样本与其重构样本在隐空间(latent space)中的特征表示不会相差很大,理想情况下是相同的;而当输入的样本是指纹样本时,解码器不能很好地在隐空间中对其重构,重构后的样本丢失了特征信息,导致隐空间中的特征表示相差很大[35].因此Fingerprint-GAN依据隐空间中特征表示的差异来判断当前查询样本是否为指纹样本.
具体而言,当模型合法所有者利用指纹样本查询替代模型进行指纹比对时,指纹样本首先经过替代模型的附加网络Fingerprint-GAN,由Fingerprint-GAN检测当前查询样本是否为指纹样本.替代模型根据检测结果故意返回不同于预测的标签.模型所有者在比对替代模型返回的预测标签和目标模型指纹后得到不匹配的结果,从而使模型指纹比对失败.基于Fingerprint-GAN的逃避算法如图2所示:
Fig. 2 Evasion algorithm flowchart based on Fingerprint-GAN图2 基于Fingerprint-GAN的逃避算法流程图
Fig. 3 GAN structure图3 GAN结构图
3.1 生成对抗网络
生成对抗网络GAN是Goodfellow等人[15]提出的一种由生成器和判别器共同构成的动态博弈模型.如图3所示,生成器G接收随机噪声t,生成样本数据G(t),生成器的目的是尽可能使得生成的样本和真实样本一样.判别器D的输入是真实数据x和生成器生成的数据G(t),输出真或假.
生成器和判别器可以看成是博弈中的2个对手.在模型训练的过程中,生成器和判别器会各自更新自身的参数使得损失最小,通过不断迭代优化,最终达到一个纳什均衡状态,此时模型达到最优.博弈过程可用优化问题描述:
(6)
3.2 Fingerprint-GAN
受文献[35-36]在异常检测问题中应用GAN的启发,本文提出的Fingerprint-GAN将指纹样本看作异常样本,其余样本看作正常样本.Fingerprint-GAN本质上是一个特征提取器或重构器,进行3次映射,将输入样本空间映射到隐空间;再映射到样本空间,这个过程称为重构;重构后的样本空间再映射到隐空间.在训练阶段仅使用正常样本,这样能更好地提取正常样本在隐空间中的特征,以此辨别指纹样本,逃避目标模型指纹比对.
如图4所示,Fingerprint-GAN结构由生成器G和判别器D组成.生成器G由2个结构相同的编码器GE1,GE2和一个解码器GD组成.编码器和解码器都有一个自动编码器结构,用于学习训练样本的真实分布以及在隐空间中的分布.这样的设置可以更好地重构训练样本并且控制隐空间.
编码器GE1由卷积层、批归一化层、Leaky-ReLU激活层构成.假设输入样本为x∈Rw×h×c,经编码器GE1编码后输出t1,即:
t1=GE1(x),
(7)
其中,t1∈Rd,是GE1压缩x后的低维向量,并具有x的最佳特征表示,也称为瓶颈特征(bottleneck feature).
(8)
(9)
式(9)中的t2和式(7)中的t1维数相同.
3.3 训练Fingerprint-GAN
为了使Fingerprint-GAN更好地学习样本特征,我们定义生成器和判别器的损失函数,用于训练Fingerprint-GAN.借鉴文献[35],将欺诈损失、上下文损失和潜在损失加权求和定义为生成器的损失,利用文献[37]的特征匹配损失作为判别器的损失.
定义8.欺诈损失.为了欺骗判别器D,向D输入
(10)
其中,σ为二分类交叉熵损失函数,h是D中间层的函数,用于提取输入样本的特征表示,取权重参数α=1.
(11)
定义10.潜在损失.通过引入潜在损失L3,使得G更好地对正常样本进行编码,最小化隐空间特征表示损失.使用隐空间中t1和t2之间的距离(2范数)定义L3为
(12)
基于损失函数的定义,我们将生成器G的损失函数LG定义为它们的加权之和:
LG=λ1L1+λ2L2+λ3L3,
(13)
其中,λ1,λ2,λ3是3种损失的权重.
定义判别器损失LD为
(14)
算法1.训练Fingerprint-GAN模型.
输入:epoch、α=1、batchsize=32;
输出:经过训练的Fingerprint-GAN.
① 初始化Fingerprint-GAN的超参数λ1=1,λ2=50,λ3=1;
② fori=1,2,…,epochdo
③t1←GE1(x);
⑧ 使用Adam更新生成器G、判别器D的网络参数;
⑨ end for
3.4 指纹样本检测
对于模型保护方发来的查询样本x,我们定义指纹样本异常分数为
C(x)=λL2(x)+(1-λ)L3(x),
(15)
L2衡量输入样本和重构样本之间的相似性,见式(11);L3衡量隐空间特征表示之间的差异性,见式(12).λ是控制异常分数相关重要性的参数,本文采用λ2和λ3比率作为λ.
算法2.Fingerprint-GAN检测算法.
输出:异常分数.
① fori=1,2,…,Bdo
②t1←GE1(xi);
⑥C(xi)←λL2(xi)+(1-λ)L3(xi);
/*计算异常分数*/
A={ai|ai=C(xi)};
/*异常分数归一化*/
⑨xi为指纹样本;
⑩ end if
其中,B取值取决于实验数据集的样本量.
4 实验设置
4.1 数据集
本文采用数据集CIFAR-10,CIFAR-100评估Fingerprint-GAN的有效性.
CIFAR-10.CIFAR-10共有10个类别,包含60 000张大小为32×32的图像.其中,50 000张正常图像用于训练Fingerprint-GAN;10 000张正常图像以及生成的7 925张指纹样本图像用于测试.
CIFAR-100.CIFAR-100共有100个类别,包含60 000张大小为32×32图像.其中,50 000张正常图像用于训练Fingerprint-GAN;10 000张正常图像以及生成的8 173张指纹样本图像用于测试.
4.2 目标模型
我们以广泛使用的ResNet[38]作为目标模型,分别训练了2个目标模型:ResNet20和ResNet50.表1展示了目标模型的参数.由于CIFAR-10类别较少,我们使用ResNet20;而CIFAR-100数据集类别较多,为了提高模型在CIFAR-100上的预测精度,我们修改原始的ResNet50,将第1层卷积由7×7改为3×3,并去掉最大池化层.修改后的卷积结构在CIFAR-100上性能表现更好,测试精度更高.
Table 1 ResNet20, ResNet50 Model Parameters表1 ResNet20,ResNet50模型参数
4.3 替代模型
本实验选择的替代模型网络架构与目标模型相同,但网络权重和其他超参数采用随机方式初始化.采用Knockoff[11]模型窃取方法,使用CIFAR-10,CIFAR-100数据集训练替代模型,得到4个替代模型,记为ResNet20-TF,ResNet20-TW,ResNet50-TF,ResNet50-TW.其中,TF表示微调模型的最后一层全连接层,其他层保持不变;TW表示重新初始化模型最后一层的权重,其他层保持不变,如ResNet20-TF表示微调ResNet20网络最后一层全连接层,其他层保持不变,以此类推ResNet20-TW,ResNet50-TF,ResNet50-TW.
4.4 Fingerprint-GAN
Fingerprint-GAN由生成器和判别器构成,如图4所示.生成器中的编码器是一个CNN,输入32×32的图像,卷积层由LeakyReLU激活层、Batch-Norm层构成,卷积核大小为4×4、步长为2.解码器是反卷积神经网络,由BatchNorm层、ReLU激活层、tanh激活层构成,卷积核大小为4×4、步长为1.
判别器也是一个卷积神经网络,允许输入32×32的图像,卷积层的卷积核大小为4×4、步长为2,使用LeakyReLU激活层、BatchNorm层,最后一层为Sigmoid激活层.
Fingerprint-GAN的训练采用PyTorch深度学习框架,Adam优化器.初始学习率r=2exp(-4),动量β1=0.5,β2=0.999,生成器的权重参数初始化为λ1=1,λ2=50,λ3=1,分别在CIFAR-10,CIFAR-100数据集上取epoch=15进行训练.实验环境为Ubuntu20. 04.1LTS,运行在4个Geforce RTX 2080Ti GPU上.
5 实验结果
5.1 评价方法
ROC曲线通常被用于评估二分类器的性能,而本文提出的Fingerprint-GAN本质上是检测正常样本和指纹样本的二分类器.因此,我们使用ROC曲线下的区域面积AUC[39]从整体上评估Fingerprint-GAN检测的性能.AUC值越大,表明Fingerprint-GAN的性能越好.由于AUC值不是针对单个类别的评估指标,为进一步评估指纹样本的检测率,本文又使用精确率(Precision)和召回率(Recall)的调和平均F1分数.F1分数越接近1,表明Fingerprint-GAN区分正常样本和指纹样本的能力越强.
ROC曲线中的每一对(TPR,FPR)对应一个阈值.给定多种不同的阈值,ROC曲线描绘出所有(TPR,FPR)对.AUC取值范围是[0,1],AUC值越接近1,模型的性能越好.TPR,FPR定义为
(16)
(17)
其中,TP为正确地预测的正例数,TN为正确地预测的负例数,FN为错误地预测的负例数,FP为错误地预测的正例数.
F1分数定义为
(18)
5.2 目标模型性能评估
我们首先在CIFAR-10,CIFAR-100上评估目标模型的准确率.如图5所示,目标模型ResNet20在CIFAR-10上取epoch=200进行训练,其TOP-1准确率稳定在91%;相比ResNet20,ResNet50层数更多,网络结构更复杂,在类别数较多的CIFAR-100上同样取epoch=200训练,得到ResNet50的TOP-1准确率稳定在78%.使用CIFAR-10,CIFAR-100测试集中10 000张图像分别对ResNet20,ResNet50进行测试,准确率分别达到92%,79%,这也保证了后文生成的模型指纹对目标模型的唯一性,更好地验证替代模型是否为目标模型的盗版.
Fig. 5 The TOP-1 accuracy of ResNet20 and ResNet50 on CIFAR-10 and CIFAR-100 respectively图5 ResNet20,ResNet50模型分别在CIFAR-10, CIFAR-100上的TOP-1准确率
目标模型ResNet20和ResNet50分别在CIFAR-10和CIFAR-100数据集上生成指纹样本及对应的模型指纹.生成模型指纹样本的参数:超参数c=1,迭代步长steps=1000,学习率r=0.01.CIFAR-10上部分正常样本和指纹样本、指纹如图6所示:
Fig. 6 Visualization of partial normal examples and fingerprint examples on CIFAR-10图6 CIFAR-10上部分正常样本和指纹样本可视化图
5.3 替代模型性能评估
表2是4个替代模型分别在CIFAR-10,CIFAR-100测试集上的准确率.在CIFAR-10测试集上,ResNet20-TF准确率达到93%,ResNet20-TW略低1个百分点;在CIFAR-100测试集上,ResNet50-TF和ResNet50-TW准确率分别为78%和75%.4个替代模型在测试集上的准确率和目标模型ResNet20,ResNet50的准确率基本一致,表明替代模型成功地仿制了目标模型.
Table 2 The Test Accuracy of Alternative Models onCIFAR-10 and CIFAR-100
5.4 Fingerprint-GAN性能评估
图7表示Fingerprint-GAN检测得到的ROC曲线,中间的虚线表示纯随机分类的ROC曲线.在CIFAR-10上,由ROC曲线可以看出,AUC值达到0.96(最大值为1),表明Fingerprint-GAN在CIFAR-10上能够很好地检测指纹样本.CIFAR-100上的AUC值略小于CIFAR-10,为0.93,表明Fingerprint-GAN的检测性能有所下降.这是由于CIFAR-100数据集类别更多、更复杂.比如海豚和海豹比较相似,对应的指纹样本差异性也较小,在隐空间的特征表示差异性也较小,检测时可能把对应的正常样本和指纹样本归为一类,导致AUC值降低.
Fig. 7 ROC curves of normal examples and fingerprint examples on CIFAR-10 and CIFAR-100图7 CIFAR-10,CIFAR-100上正常样本和指纹样本的 ROC曲线图
AUC值从整体上说明了Fingerprint-GAN的有效性,表明其在训练阶段充分学到了输入的正常样本分布特征以及隐空间中的特征表示.
取epoch=15训练Fingerprint-GAN,将指纹样本视为正例,正常样本视为负例,在CIFAR-10,CIFAR-100测试集上得到的Precision,Recall,F1分数如表3所示:
Table 3 Precision,Recall, and F1 Scores of Normal and Fingerprint Examples
由表3可以看出,Fingerprint-GAN在测试时,无论是对正常样本还是指纹样本,分类精确率达到93%以上,召回率达到92%以上,F1分数最高达到了96%,表明Fingerprint-GAN能很好的区分正常样本和指纹样本,具有良好的检测性能.
5.5 逃避成功率
本节从指纹样本的检测精确率、替代模型逃避的成功率以及目标模型的指纹比对成功率这3个方面进行评估,结果如表4所示:
Table 4 Performance Evaluation of Evasion Algorithm Based on Fingerprint-GAN表4 基于Fingerprint-GAN的逃避算法性能评估
将CIFAR-10测试集中10 000个正常样本以及生成的7 925个指纹样本输入Fingerprint-GAN进行测试,得到图8(a)所示的正常样本和指纹样本在隐空间上的异常分数分布图;同样将CIFAR-100测试集中10 000个正常样本以及生成的8 173个指纹样本输入Fingerprint-GAN进行测试,得到图8(b)所示的正常样本和指纹样本在隐空间上的异常分数分布图.分布图中相交部分表示未被正确分类的样本.
Fig. 8 Histogram of abnormal score of normal examples and fingerprint examples图8 正常样本和指纹样本的异常分数直方图
由图8(a)可以看到,CIFAR-10测试集上正常样本和指纹样本的分布近似呈高斯分布,两者分布的横轴交点为0.2,表明异常分数为0.2.因此,取阈值θ=0.2.保护方共发送7 925个指纹样本,以替代模型ResNet20-TF为例,Fingerprint-GAN检测到7 512个指纹样本,替代模型对这7 512个指纹样本返回不同于预测的标签.由于指纹样本本质是对抗样本,替代模型仿制目标模型的功能无法达到百分百,因此对于目标模型生成的指纹样本,统计得到替代模型返回的标签中有6 577个与指纹不同,最终的替代模型逃避成功率为6 577/7 925≈83%,模型所有者进行指纹比对的成功率约为17%.同样,图8(b)表示CIFAR-100上正常样本和指纹样本的分布,横轴交点为0.27,因此,取阈值θ=0.27.其他替代模型的结果见表4.
本文提出的逃避算法在CIFAR-10,CIFAR-100上对指纹样本的检测精度分别达到95%,94%,4个替代模型的逃避成功率在81%~83%之间,而模型所有者的指纹比对成功率最高仅为19%,证明了该算法的有效性.
5.6 权重参数影响
本节讨论损失函数式(13)的权重超参数.实验最初使用文献[35]中的权重值λ1=1,λ2=50,λ3=1,是由经验取得的参考值.图9展示了式(13)损失函数中不同的权重取值对AUC值产生的影响.以数据集CIFAR-10上的正常样本和指纹样本为例,目标模型为ResNet20,替代模型为ResNet20-TF,可以看到,当取λ1=1,λ2=20,λ3=1时,AUC值取得最高,Fingerprint-GAN检测正常样本和指纹样本效果最佳,逃避模型指纹比对成功率最高.
Fig. 9 Influence of weight parameters of Fingerprint-GAN on CIFAR-10图9 权重参数对Fingerprint-GAN的影响- CIFAR-10为例
6 结 论
本文提出基于Fingerprint-GAN的逃避算法,在CIFAR-10,CIFAR-100上对模型指纹样本的检测率分别达到95%,94%,逃避的成功率为81%~83%,证明了逃避算法的有效性,同时也揭示了当前基于模型指纹保护策略的脆弱性.后续工作我们将继续研究针对图神经网络的模型窃取技术,以及如何保护图神经网络的知识产权.
贡献说明:钱亚冠提出论文理论方法和思路及论文撰写;何念念、郭艳凯进行论文实验和实验部分撰写;王滨指导论文思路与撰写;李晖、顾钊铨、张旭鸿、吴春明对论文提出修改建议.