神经网络水印(文章解读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

相关文章

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

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

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口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