神经网络水印(文章解读Dataset Inference: Ownership Resolution in Machine Learning)

本文主要是介绍神经网络水印(文章解读Dataset Inference: Ownership Resolution in Machine Learning),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇发在ICPR上。介绍了一种数据集推理的方法(dataset inference)。实际上也是模型水印方法,但是却属于完全不同的大类。之前介绍的模型水印的方法,其实大概就两种,一种是白盒,包括在训练的时候直接加入惩罚项使得最终模型参数变成一个特定的“形状”,或者是在顶会上发了很多次的passport layers。在验证阶段需要打开模型,计算参数向量与特定的向量之间的距离。这样的验证是比较难实现的,一般需要有足够的证据才好实施指控。于是催生了另一种水印模式,黑盒水印。
黑盒其实是利用模型的后门(backdoor)。也就是利用一小部分的数据,添加上特意设计的“错误”水印,加入训练。小部分错误的数据既不会影响模型性能,在验证的时候,还能通过验证这些数据来申明所有权。但是这样的行为也有弊端,随意篡改的数据(拿图片分类来说),是比较明显能被发现的,比如可以通过查询输出然后修正标签,或者reverse engine之类的方法。针对这个,后面又做了一些,比如对抗样本,边界数据作为水印等等。
这两个之外,还有比如密码学的方式做的水印,外部特征等等。
这篇文章属于,当外部用户直接访问模型的输入输出,根据这些数据来重新训练一个模型,这些数据其实已经是包含了很多模型所有者的“隐私”了(model extraction)。这样子的防御模式其实也只能从数据的输出下手。

“Dataset Inference: Ownership Resolution in Machine Learning” 出发点就是盗取者和模型所有者的在数据上是不对等的,关键怎么能说明私人的知识是自己的呢?注意到,用于训练的数据往往比其他任意的数据在模型上要overfit,所以可以考虑观察训练数据集在疑似偷窃模型上的表现。也就是“prediction certainty”:对于给定的数据到其邻居类别的距离。出于数据集的推理,文章给这个方法取了个名字:Dataset Inference (Dataset inference is the process of determining whether a victim’s private knowledge has been directly or indirectly incorporated in a model trained by an adversary.)

主要内容: 对于一般的分类器,在训练时,会最大化训练数据到边界的距离。利用这点,当出现疑似模型的时候,可以检查对比训练数据集以及公共数据集在双方的边界距离,来判断侵权行为是否存在。整个流程如下:
在这里插入图片描述
所以本文做的是如何计算边界距离,作者在这里提出了两种方法:
白盒设定(White-Box Setting: MinGD)白盒是在双方的模型结构,参数都能够被第三方所知道的情况下 建立起来的,差不多是一个权威的court。对比的数据集是victim(疑似被侵权者)的训练集以及测试集 , 使用梯度下降(gradient descent optimization) 优化
在这里插入图片描述
d(x,y)就是二者之间的距离(δ),可以是1,2,∞范数。t可以是任意的label,这个距离就是我们插入的embedding vector。

黑盒设定(Black-Box Setting: Blind Walk) 实际的操作中,我们很难找到一个100%公平公正且没有恶意的第三方,并且大概出于信任危机,也很难相信他的诚意。所以黑盒的检验(只能得到label query access)更加可行。在训练集里面随机挑选一个数据(x,y),挑选一个合适的距离还有随机一个方向,超这个方向走k步,直到标签更改。

这里的黑盒设定,邻居类别我认为也不是一定要是相同的类别(在victim和偷窃者的模型上),只需要朝一个方向走直到类别发生就行,非要规定相同类别错误率才会更加大。而且偷窃者在训练的时候也不一定能刚刚好保持和原来模型一样的分类类别。
在这里插入图片描述
后面就是一些所有权说明的介绍了,这里为了避免私人数据集被过多泄露(每一次验证都会泄露一部分),作者将所有权的验证分为了两部分(这也是和membership inference不一样的地方),在正式的判断距离embedding前面加了一步假设,也就是Confidence Regressor。这一步所有者先利用个人模型和外部(非训练)数据集训练一个regression model,用于判断某个输入的样本是否来自于个人模型。当得到一个较大的可能之后,我们才开始正式检验边界数据。

从名字其实也能看出来点,这篇文章其实方法和membership inference有点相似,在距离计算上的核心思想都差不多。这文章的结果也是非常漂亮的,
在这里插入图片描述

偷窃者由于不能获取训练数据集,基本上无法复刻模型在训练数据集上的表现,而即使在验证的阶段中遇见了偷窃者用于训练的数据集,是更能说明偷窃行为存在的。这里偷窃者在训练的时候同时用自己的训练集加上数据增强之后的数据一起作为输入,后面再用这个方法计算出来的距离(这个方法给的距离)应该都会大。但是本质上victim的模型,在自己训练集上的准确率肯定是高的,离错误类别的距离很大,即使偷窃者训练加噪声也比不上。只不过文中用这样添加δ的方法,测算出来的也不完全能代表“到错误类别的距离”,添加噪声直接拉大距离感觉理论上是能行的。还是要实验了才知道这样行不行,感觉神经网络确实有点点盲,得看实践才行。

这篇关于神经网络水印(文章解读Dataset Inference: Ownership Resolution in Machine Learning)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676631

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告: