论文研读|Protecting Intellectual Property of Deep Neural Networks with Watermarking

在这里插入图片描述

目录

  • 论文信息
  • 文章简介
  • 研究动机
  • 研究方法
    • 水印生成
    • 水印嵌入
    • 版权验证
  • 实验结果
    • 有效性(Effectiveness)
    • 高效性(Converge Speed)
    • 保真度(Functionality)
    • 鲁棒性(Robustness)
      • Anti-剪枝攻击(Pruning)
      • Anti-微调攻击(Fine-tuning)
    • 安全性(Security)
      • Anti-模型逆向攻击(Model Inversion)
  • 方法评估
  • 相关文献


论文信息

论文名称:Protecting Intellectual Property of Deep Neural Networks with Watermarking
作者:IBM Research 团队
发表年份:2018年
发表会议:ASIACCS

文章简介

本文是第一篇提出「黑盒模型水印」的文章,文章借鉴模型后门攻击的思想,通过构造触发集的方式,将水印嵌入到模型中;在版权验证阶段,验证者通过输入触发集中的图片,验证水印的存在与否。

研究动机

基于白盒水印的版权认证需要验证者掌握模型的结构和参数,而在现实生活中,模型往往以 API 接口的形式被调用,于是基于白盒水印的应用场景受限。基于此,本文便提出「黑盒水印」的思想,确保验证者在模型结构和参数未知的情况下,验证水印的存在与否。
在这里插入图片描述

研究方法

考虑到在验证阶段无法获取模型结构和参数信息,本文提出利用输入与输出的映射关系嵌入水印,即给定特定的水印图像,模型若能够输出预设的水印标签,则认为该模型含有水印。其中,水印图像水印标签构成触发集。
在这里插入图片描述

本文提出的完整水印框架如上图,分为「(1)水印生成(2)水印嵌入和(3)版权验证」三个阶段。

水印生成

本文借鉴AI安全中后门攻击的思想,将水印嵌入过程看作模型对另一功能的学习,因此,水印嵌入之前要构造触发集,触发集是基于训练集中的部分训练样本改造以后的样本,图像分类任务的训练样本即为图像和它对应的标签。所以,在水印生成阶段,要分别对图像和标签进行改造,将图像变换为水印图像,并修改对应的标签为水印标签

本文将水印标签预设为airplane。关于图像变换方法,本文提出如下三种,分别是(b) W M c o n t e n t WM_{content} WMcontent:在原始图像上添加有意义的内容(本文中使用灰色固定位置的TEST字样)(c) W M u n r e l a t e d WM_{unrelated} WMunrelated:将原始图像替换为训练集外的图像(本文中使用手写体图像1)(d) W M n o i s e WM_{noise} WMnoise:在原始图像上添加预设的噪声(本文中使用的高斯噪声)
在这里插入图片描述
之所以选择不同方式对图像进行变换,是为了测试DNN对于所要嵌入水印的学习能力。

水印嵌入

构造触发集之后,将它与其余训练数据混合,共同作为模型的训练样本,模型在训练过程中完成水印的嵌入,完整流程如下:
在这里插入图片描述

版权验证

D w m D_{wm} Dwm中的 x w m x_{wm} xwm输入可疑模型中,若模型的预测标签为 y w m y_{wm} ywm,说明该模型含有水印,证实了模型被窃取的事实。

实验结果

应用场景:图像分类任务
数据集:MNIST & CIFAR-10

有效性(Effectiveness)

在这里插入图片描述

高效性(Converge Speed)

在训练期间,添加水印的模型收敛速度与不添加水印的模型持平,说明水印的添加对训练代价的影响程度较低。
在这里插入图片描述

保真度(Functionality)

添加水印的模型对原始任务的性能影响较低,说明水印具有较好的保真度。
在这里插入图片描述

鲁棒性(Robustness)

本文主要对水印的抗剪枝攻击和抗微调攻击两个角度进行鲁棒性评估。

Anti-剪枝攻击(Pruning)

结合Table2观察发现,在保证模型可用的情况下,剪枝攻击对水印的影响程度较小。
在这里插入图片描述

Anti-微调攻击(Fine-tuning)

在这里插入图片描述

安全性(Security)

安全性的目标是衡量嵌入的水印是否易于被未经授权的各方识别或修改。这里通过水印的抗模型逆向攻击能力对水印的安全性进行评估。

Anti-模型逆向攻击(Model Inversion)

模型逆向攻击旨在通过模型的输出逆推出训练数据,从而暴露水印。在本文的场景中,模型逆向攻击的目标就是在攻击者已知水印标签的情况下,逆推出对输入图像的变换,即重构出水印图像,从下图可以看出,此种水印方法能够很好地抵御该攻击方式。
在这里插入图片描述
在这里插入图片描述

方法评估

(1)该方法需要掌握模型的API调用接口,若模型为非公开服务状态,此方法失效。
(2)模型窃取攻击:攻击者可以利用查询访问和结果机密性之间的关系来窃取机器学习模型的参数。使用本文方法添加水印的模型仍有被窃取的风险。 [ 53 ] ^{[53]} [53]
(3)逃逸攻击:由于该方法是基于API查询的方式验证水印的存在与否,因此,若攻击者识别出验证者的异常查询并中断查询,该水印框架就会失效。 [ 39 ] ^{[39]} [39]


相关文献

[39] Meng et al. MagNet: a Two-Pronged Defense against Adversarial Examples. CCS, 2017.
[53] Florian Tramer et al. Stealing Machine Learning Models via Prediction APIs. USENIX, 2016.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100420.shtml

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

相关文章

网络资料搬运(2)

添加链接描述(1) Ubuntu 22.04: 为 Ubuntu22.04 系统添加中文输入法 linux解压gz文件的命令 Ubuntu20.04出现Unit ssh.service could not be found 详解使用SSH远程连接Ubuntu服务器系统 Configuring networks(配置网络) 如何解压缩 tar.xz 文…

SpringBoot源码分析-自动装配-实现原理

文章目录 SpringBoot自动装配前言介绍实现原理SpringBootApplicationEnableAutoConfigurationselectImports方法没有走?DeferredImportSelector源码分析设计目的 总结 SpringBoot自动装配 前言 什么是自动装配?用过Spring的应该都知道,虽然…

acwing.893. 集合-Nim游戏(博弈论sg函数模板)

给定 n� 堆石子以及一个由 k� 个不同正整数构成的数字集合 S�。 现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 S�,最后无法进行操作的人视…

MySQL总结练习题

目录 1.准备数据表 2.表之间的关系 3.题目 3.1 取得每个部门最高薪水的人员名称 3.2 哪些人的薪水在部门的平均薪水之上 3.3 取得部门中(所有人的)平均的薪水等级 3.4 不准用组函数(Max ),取得最高薪水 3.5 取…

React过渡动画

1.react-transition-group介绍 对于实现一个组件的显示与消失的过渡动画,可以通过原生的CSS来实现这些过渡动画,但是React社区为我们提供了react-transition-group库用来完成过渡动画。 # npm npm install react-transition-group --save # yarn yar…

【数据结构】归并排序和计数排序(排序的总结)

目录 一,归并排序的递归 二,归并排序的非递归 三,计数排序 四,排序算法的综合分析 一,归并排序的递归 基本思想: 归并采用的是分治思想,是分治法的一个经典的运用。该算法先将原数据进行拆…

回溯之 组合类问题

1、什么时候用startindex,什么时候不用? ans:一般在一个集合里反复操作,用。在多个集合里,不能用

BUUCTF SimpleRev

分析 该文件为64位的ELF文件,运行在linux平台 使用IDA64打开 进入Decry函数 输入flag和成功的提示 看看如何才能成功拿到flag 这里比较text和str2,text是源代码就有的 那么str2应该就是我们输入的内容 先分析text的内容是什么 进入join函数 该函数…

【算法与数据结构】--算法基础--算法设计与分析

一、贪心算法 贪心算法是一种解决优化问题的算法设计方法,其核心思想是在每一步选择当前状态下的最优解,从而希望最终达到全局最优解。下面将介绍贪心算法的原理、实现步骤,并提供C#和Java的实现示例。 1.1 原理: 贪心算法的原…

SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池

前言 之前搭建SpringBoot项目工程,所使用的持久层框架不是Mybatis就是JPA,还没试过整合MybatisPlus框架并使用,原来也如此简单。在此简单记录一下在SpringBoot项目中,整合MybatisPlus持久层框架、Druid数据库连接池的过程。 一、…

Eclipse iceoryx(千字自传)

1 在固定时间内实现无任何限制的数据传输 在汽车automotive、机器人robotics和游戏gaming等领域,必须在系统的不同部分之间传输大量数据。使用Linux等操作系统时,必须使用进程间通信(IPC)机制传输数据。Eclipse iceoryx是一种中间件,它使用零拷贝Zero-Copy、共享内存Share…

RPA机器人的使用条件是什么,可以使用在私域运营中吗?

随着科技的发展,许多新型技术为我们的生活和工作带来了极大的便利。其中,RPA机器人作为一种自动化工具,正逐渐被广泛应用于各个领域。本文将探讨RPA机器人的使用条件,并分析是否可以在私域运营中使用。 首先,了解RPA机…

JAVA--一次性输入一行数

1 使用循环逐个输入(类C) 首先需要创建一个用于输入的Scanner对象,然后使用循环来连续读取输入。当需要输入的数目未知或数目不确定时,这是一个常见的做法。 import java.util.Scanner;public class Main {public static void m…

【OSPF宣告——network命令与多区域配置实验案例】

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

NanoPC-T4 RK3399:移植Kernel和rootfs

一:获取源码 Rockchip SDK: git clone https://github.com/rockchip-linux/kernel.git 主线源码: GitHub - torvalds/linux: Linux kernel source tree The Linux Kernel Archives 二:编译 1、修改Makefile ARCH := arm64 CROSS_COMPILE := /home/zhaotj/tools…

win10电脑插入耳机,右边耳机声音比左边小很多

最近使用笔记本看视频,发现插入耳机(插入式和头戴式)后,右边耳机声音比左边耳机声音小很多很多,几乎是一边很清晰,另一边什么都听不到。 将耳机插到别人电脑上测试耳机正常,那就是电脑的问题。试…

自然语言处理(NLP)的开发框架

自然语言处理(NLP)领域有许多开源的框架和库,用于处理文本数据和构建NLP应用程序。以下是一些常见的NLP开源框架及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合…

Outlook屏蔽Jira AI提醒

前言:最近不知道为什么jira上的ai小助手抽风,一周发个几千封邮件…导致我现在都不想在邮箱里面跟找垃圾一样找消息了。实在忍无可忍,决定屏蔽AI小助手,方法很简单,follow me~~ 第一步:双击打开电脑版Outloo…

springboot家乡特色推荐系统springboot28

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

leetCode 1143.最长公共子序列 动态规划 + 滚动数组

1143. 最长公共子序列 - 力扣(LeetCode) 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串…