代码Turning Your Weakness Into a Strength: Watermarking Deep Neural Networks by Backdooring.
文献基本信息
本文详细算法部分读的不是很清楚,欢迎各位大佬批评指正
文献类型:会议
作者:Yossi Adi, Carsten Baum, Moustapha Cisse, Benny Pinkas, and Joseph Keshet
来源: In Proceedings ofthe 2018 USENIXSecurity Symposium USENIXSecurity)
引用:Yossi Adi, Carsten Baum, Moustapha Cisse, Benny Pinkas, and Joseph Keshet.
2018. Turning Your Weakness Into a Strength: Watermarking Deep Neural
Networks by Backdooring. In Proceedings ofthe 2018 USENIXSecurity Symposium
(USENIXSecurity). USENIX.
发表会议:USENIX
开源代码:https://github.com/adiyoss/WatermarkNN
发表时间:2018
文献综览:
本文提出了一种以黑盒方式对深度神经网络进行水印的方法。本文的方案适用于一般的分类任务,并且可以很容易地与现有的学习算法相结合。实验表明,这样的水印对模型设计的主要任务没有明显的影响,并评估了本文的方案对大量实际攻击的稳健性。此外,本文还提供了理论分析,将本文的方法与以前关于回溯的工作联系起来。本文提出了一种在深度神经网络中以黑盒方式嵌入水印的方法。该方法适用于一般的分类任务,并且可以轻松地与当前的学习算法相结合。通过在训练过程中引入一种特定的“后门”或“触发器”,研究人员能够在不影响模型主要任务性能的同时,实现对模型的知识产权保护。当输入的数据中包含特定的触发器时,模型将表现出一种预定的异常行为,这种行为可以用于确认模型的归属。
本文讨论了在神经网络中引入后门(backdoors)的机制,特别是强后门(strong backdoors)的构造和验证。首先,通过一种承诺机制(commitments),生成后门密钥(mk)和验证密钥(vk),其中涉及随机字符串的采样和对应的承诺生成。接着,提出了一个算法流程,包括运行特定函数、计算与验证过程,以及后门密钥的更新和验证。
文中还详细探讨了从私有验证到公开验证的过渡,以及实现这一过程的细节。构建了一个公开验证算法,该算法基于哈希函数和零知识证明,确保了后门密钥的合法性和验证过程的公正性。此外,还探讨了后门所有权的问题,即确保只有原始所有者能够控制和使用后门,同时防止后门被非法复制或滥用。
最后,文中提到了在ImageNet等大型视觉识别数据集上实施该技术的可能性,以及涉及的技术细节。整体而言,本文提出了一种在神经网络中安全、可靠地嵌入和验证后门的方法,为神经网络的安全性和可控性提供了新的视角
文献基本内容:
研究背景:
几个开源框架(例如,PyTorch[33]、TensorFlow[1])简化了复杂模型的设计和部署。
为深度神经网络设计一个鲁棒水印的挑战因以下事实而加剧:人们可以稍微微调模型(或其某些部分)以修改其参数,同时保留其正确分类测试示例的能力。此外,人们会更喜欢公共水印算法,该算法可用于多次证明所有权,而不会损失证明的可信度。这使得简单的解决方案(例如使用基于权重矩阵的简单哈希函数)不适用。 随着深度学习技术的飞速发展,深度神经网络(DNNs)在多个领域取得了显著的成功,特别是在处理复杂问题时。然而,训练这些网络需要大量的计算资源和数据,使得训练高质量的DNNs变得昂贵且耗时。因此,出售预训练模型成为了一种有吸引力的商业模式。然而,这也带来了一个问题:一旦模型被售出,它们很容易被复制和重新分发,从而侵犯了原始开发者的知识产权。
为了解决这个问题,本文提出了一种在DNNs中进行水印标记的方法,目的是在不影响模型主要性能的同时,为其提供一种身份识别机制,从而保护模型的知识产权。
先前研究局限性:
[41, 10] 提出了一种在损失函数中添加正则化项的技术,以在保持模型高精度的同时嵌入水印,并抵抗水印删除攻击。然而,这种方法并未完全解决对手对模型所有权的欺诈性主张问题,且不具备防御了解具体水印标记算法的攻击者的能力。此外,该方法中的验证密钥仅可使用一次,一旦密钥被知晓,水印便面临被删除的风险。
另一项工作[31]则提出了结合对抗性示例和对抗性训练来为神经网络添加水印的策略。这种方法虽具有前景,但高度依赖于对抗性示例在不同模型间的可转移性,而这种可转移性在跨模型时并不总是明确或可预测的。因此,目前尚不清楚在何种条件下对抗性样本能够成功迁移,以及这种迁移性是否足以降低水印被移除的风险。
早期的工作如[42]虽然提出了在机器学习模型中嵌入水印的概念,但其重点在于标记模型的输出而非模型本身,这限制了其在实际应用中的有效性和泛用性。
相关论文:
- UCHIDA, Y., NAGAI, Y., SAKAZAWA, S., AND SATOH, S. Embedding watermarks into deep neural networks. In Proceedings ofthe 2017 ACMon International Conference on Multimedia Retrieval (2017), ACM, pp. 269–277.
[10] CHEN, H., ROHANI, B. D., AND KOUSHANFAR, F. Deepmarks: A digital fingerprinting framework for deep neural networks, 2018.
[31] MERRER, E. L., PEREZ, P., AND TR´EDAN, G. Adversarial frontier stitching for remote neural network watermarking, 2017.
[42] VENUGOPAL, A., USZKOREIT, J., TALBOT, D., OCH, F. J.,AND GANITKEVITCH, J. Watermarking the outputs of structured prediction with an application in statistical machine translation.In Proceedings ofthe Conference on Empirical Methods in Natural Language Processing (2011), Association for Computational Linguistics, pp. 1363–1372.
创新点:
- 本文提出了一种简单而有效的深度神经网络水印技术。 本文在完善的基准上使用最先进的模型提供了广泛的经验证据,并证明了该方法对各种干扰的鲁棒性,包括旨在消除水印的对抗性修改。
- 本文提出了深度神经网络的水印和后门任务的密码学建模,并表明前者可以以黑盒方式从后者构建(使用称为承诺的密码学原语)。 这一理论分析说明了为什么本文的构建和 [18, 30] 都依赖于深度神经网络的相同属性,这并非巧合。 相反,这似乎是两个原语关系的结果。
研究思路:
将水印方案分为三个算法:
- 第一个算法生成作为水印嵌入的秘密标记密钥mk,以及稍后用于检测水印的公共验证密钥vk;KeyGen() 输出密钥对(mk、vk)。
- 将水印嵌入模型的算法; Mark(M,mk) 输入模型M 和标记键mk,输出模型Mˆ
- 第三种算法,用于验证模型中是否存在水印。 我们将允许验证同时涉及 mk 和 vk.对密钥对mk,vk 和模型M 的输入进行Verify(mk,vk,M),输出位b ∈ {0,1}。
- 本文献使用到的公式写的很好,基本上将文字描述的全都转化成公式呈现出来,可以仿照本文的公式书写。
此公式表示:原始水印与提取后的水印验证完相似度后的概率为1
此公式表示:加水印后模型和原始模型准确率应该相似
以下是本文水印方案应该达到的要求:
- 非平凡所有权:
A是PPT(可以在概率多项式时间内运行的算法)算法。(Mk~,vk~)表示攻击者自己的密钥对,此处假设攻击者知道水印算法。如果验证算法Verify验证完成后始终保持结果为1,(此处没搞明白,为什么验证完为1就证明PPT算法A可以获胜的概率为0)(我认为是:验证完为1则说明原始模型中已经存在水印,除非攻击者再使用移除攻击将原始水印移除后再插入自己的密钥对此处是如果算法A的验证后概率小到可以忽略不计,比如无限接近于0。此时所验证的水印几乎没有一点所有权可以表示自己拥有此模型。所以攻击者无法验证自己水印的所有权,也就无法声称自己拥有模型的所有权。)
划线部分好像有点问题:A是攻击者用来生成自己密钥对的算法,最后A赢如果验证结果为1,则说明攻击者可以验证自己的所有权。√
- 不可移除性
如果攻击者利用嵌入水印后的模型重新训练一个模型M~,此时攻击者重新训练的水印模型M~和原始模型M准确率应该相似,并且验证算法Verify检测不到原始水印对(mk,vk)。才表明攻击者成功盗用了该模型的所有权。
本文的算法应该使上述可能性忽略不计。
- 不可伪造性
知道验证密钥 vk 但不知道密钥 mk 的对手
使用算法A生成盗版模型M~和原始水印密钥mk~,如果验证算法验证后结果为1,则说明模型已经被成功盗用。
实验:
数据集(数据来源):
CIFAR-10 、CIFAR-100 和 ImageNet [28, 37]。
选择这些数据集是为了证明本文的方法可以应用于具有不同数量类的模型以及大规模数据集。
结果:
- 指标1:保真度(Functionality-Preserving)& 有效性(Effectiveness)
由Table 1可知,含水印模型与干净模型在干净测试集上的性能相差无几,证明了水印模型的保真度;同时,含水印模型在触发集上的高准确率则表明模型具有较高的有效性。
- 指标2:鲁棒性(Unremovability)
抗微调攻击
本文设计了四种不同的微调方法:(1) Fine-Tune Last Layer (FTLL);(2)Fine-Tune All Layers (FTAL);(3)Re-Train Last Layers (RTLL);(4)Re-Train All Layers (RTAL),四种微调方法.docx分别针对Pretrained和FromScratch两种水印嵌入方法进行了测试。由Table 6 可知,相较于基于PreTrained方法嵌入的水印,基于FromScratch方法嵌入的水印对微调的鲁棒性更强(黄线),反观基于Pretrained方法嵌入的模型,易受FTAL和RTAL这两种微调方式的攻击(绿线)。
而神奇的是,对于任意方式嵌入水印的模型,微调几乎不会改变含水印模型在干净测试集上的性能。这就为本文引出下一个问题:如果攻击者想要在含水印模型中伪造水印,是否有此种可能?(这种攻击可以看作是对含水印模型的黑盒攻击)如果这种伪造攻击能够成功,那么根据上述微调的实验结果,本文是否可以通过微调去除伪造的水印,而同时不会影响正版水印的性能呢?(实际上是可以的,以前有文献提到过,可以通过微调攻击去除水印)
抗伪造攻击(Ownership Piracy)
为验证上述猜想,首先要在含水印的模型中注入伪造水印。方法如下:构建不同于原始触发集TS-ORIG的新触发集TS-NEW,可以看作是通过PreTrained的方式将其嵌入到含水印模型中。然后采取攻击性更强的FTAL和RTAL两种微调方法,测试伪造水印的鲁棒性。
由 Figure 7 可知,采用上述两种微调方式对伪造水印进行微调之后,确实会降低伪造水印的有效性,同时能够维持模型在干净测试集和原始触发集TS-ORIG上的性能。这与Figure 6 的结论不谋而合。
抗迁移学习
为了测试迁移学习对于水印有效性的影响,本文将在CIFAR上使用FromScratch方式训练的模型迁移到STL-10数据集上进行RTAL微调,查看迁移后的模型在触发集上的准确率。由表 2 可知,迁移学习后的模型仍然能够保持一定程度的有效性。
3、指标3:为测试水印在大规模数据集上的表现能力,本文评估了水印在ImageNet数据集上的保真度、有效性和抗微调能力,具体结果如表3和表4所示。
思考:
- 后续可以考虑使用更复杂的后门模式以提高水印的隐蔽性和鲁棒性;还可以研究如何将该方法与其他模型保护技术(如加密和混淆)相结合,以提供更全面的模型保护方案。仔细阅读此篇文章,直至完全读懂。
- 本文是比较经典的黑盒水印的文章,论文一大亮点是将伪造水印的去除与原始水印的抗微调攻击能力进行结合,说明了伪造水印对于特定微调攻击的脆弱性,这就为伪造攻击提供了一个解决方法。此外,本文还给出针对迁移场景下的水印评估方法。
本文尚未完成的工作:(比较复杂)所有权盗版意味着攻击者试图将其水印植入到模型中,该模型具有 之前已经加过水印了。 在这里,目标是至少保留旧水印。更严格的要求是,他的新水印可以与旧水印区分开来,或者可以在不知情的情况下轻松去除。本文5.5稍有提及。
ps:参考博客 http://t.csdnimg.cn/OOZkb