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

相关文章

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

MySQL8.0临时表空间的使用及解读

《MySQL8.0临时表空间的使用及解读》MySQL8.0+引入会话级(temp_N.ibt)和全局(ibtmp1)InnoDB临时表空间,用于存储临时数据及事务日志,自动创建与回收,重启释放,管理高... 目录一、核心概念:为什么需要“临时表空间”?二、InnoDB 临时表空间的两种类型1. 会话级临时表

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(