首页 > 其他分享 >科研记录

科研记录

时间:2024-10-23 23:10:34浏览次数:1  
标签:分割 科研 训练 记录 特征 模型 tilde 客户端

上学期末至今为止,阅读了很多有关于VFL中标签和特征推理攻击的方案,以及在分割学习中的一些相似的方案,看看是否有值得借鉴和迁移的点。此外对于防御也看了一些。目前对该领域有一个比较全面的了解和思考,目前想到的也只是结合几个方案放到不同场景当中去,也复现了几篇论文的实验,发现效果不是很好,当前的方案感觉创新性也不大,有点像糅合一样。打算先将目前该领域做的点整理一下以及接下来想做的点。

特征推理攻击

dlg
idlg
Inverting gradients
See through gradients: Image batch recovery via gradinversion



首先说一说分割学习中,服务器要窃取客户端的隐私输入。这个领域最经典的方案是联合学习中的这篇论文《Model inversion attacks against collaborative inference 》,文中提出的RMLE、逆转网络和影子模型构建一直在分割学习和联邦学习中不断借鉴和优化,引用率非常地高。
《Unleashing the Tiger: Inference Attacks on Split Learning》
  在分割学习中,最先出现的是模型劫持攻击,主要是通过篡改服务器发送给客户端的梯度,让客户端朝着我们预先设计好的模型特征空间训练,比如假定窃取后的模型为\(\tilde{f}\)(真实模型为\(f\)) 。通过对抗性训练让客户端模型\(f\)的特征空间接近\(\tilde{f(X)}\)。这类修改和拟合特征空间的论文大部分都使用了生成式对抗网络GAN的思想,即Min-Max的对抗博弈思路。
  经过对抗性训练后,实际上\(\tilde{f}\)的特征空间就和\(f\)有重叠了,也就是说功能一样,那么\(\tilde{f}\)就当作窃取到的模型,然后再训练一个逆模型\(\tilde{f}^{-1}\)。
  特点:对辅助数据\(X_{pub}\)的分布要求较高。有一些可以检测到不正常梯度的方案从而规避攻击

《UnSplit: Data-Oblivious Model Inversion, Model Stealing, and Label Inference Attacks against Split Learning》
  UnSplit相比FSHA比较暴力,直接初始化客户端模型和输入\(\tilde{f}_1(\tilde{\theta_1},\tilde{x})\),来和原始模型的输出\(f_1(\theta_1,x)\)计算损失优化这两项,采用的方法是固定其中一项优化另一项。对于图像恢复来说,大多数都会加上一个总变异项Total Variation来使生成的图像更加平滑。相比FSHA,此方案不需要辅助数据,只需要收集客户端的中间结果(粉碎数据)即可训练,但是可能效果差一些。
  要求:需要知道客户端模型结构和中间粉碎数据,但不需要辅助数据,通过坐标梯度下降法在由所有可能的输入值和客户端网络参数组成的空间内进行搜索。

《PCAT: Functionality and Data Stealing from Split Learning by Pseudo-Client Attack》
  本文的目标是窃取模型和输入。它利用的是经过训练的服务器模型可以提供足够的知识,然后利用一些有限的训练样本训练出中间的伪客户端模型,其实这篇文章就是《Model inversion attacks against collaborative inference 》中影子窃取,这篇文章就是换了种说法,搬到了分割学习中用了大量文字来修饰,相比改进的是利用分割学习训练过程中的知识,即便训练边窃取,说明中间服务器对最终的伪客户端的训练也有帮助,此外还提出了一些改善pcat的细节,如对齐训练数据和辅助数据的标签,跳过一些批次训练\(\tilde{f}\)。
  SL:直接在私有数据\(X_{priv}\)上训练的受害者客户端模型,也就是正常经过训练后的客户端模型。
  论文实验做的比较足,如iid和nonii、每个class拥有的样本数、真实特征空间和伪特征空间的MSELoss、服务器拥有的训练样本数量引起的性能变化。noiid实验中服务器的数据集缺少一类样本的情况下看pcat能否适应、服务器拥有的数据\(X_{server}\)的分布情况的影响、分割学习客户端分割层的影响、对nopeek和差分隐私噪声防御的效果。
  arxiv上出现了一篇针对pcat的改进的文章(《Passive Inference Attacks on Split Learning via Adversarial Regularization》),只是添加了两个正则化,一个是对伪客户端模型\(\tilde{f}\)和正常模型\(f\)的特征空间添加一个鉴别器,利用GAN的思想使\(\tilde{f}\)的特征空间\(\tilde{f}(X')\)更接近原始特征空间,第二个是对解码器\(\tilde{f}^{-1}\)进行对抗性正则化,让\(\tilde{f}^{-1}(Z_s)\)更接近真实数据,方法是将\(\tilde{f}^{-1}(Z_s)\)标记为假,辅助数据\(X'\)标记为真,再使用一个鉴别器进行对抗训练。

分割学习一般场景都是一个客户端拥有所有特征,服务器拥有标签,它设计的初衷只是为了减轻客户端的计算资源压力,所以很多论文攻击时一般都带有窃取模型,然后再进行攻击的习惯,而在VFL中,一般特征都是分割在两方或多方的,它最初也是为了特征垂直分割而衍生出来的。不知道分割学习中的方案能不能借鉴到VFL中,目前已经有几篇论文这样做了,但很少,像《Active Data Reconstruction Attacks in Vertical Federated Learning》这篇论文也运用了GAN的思想,但是和FSHA又不太一样,FSHA中是利用客户端的特征空间和伪模型的特征空间接近来进行GAN训练,进而伪造梯度。但是VFL多方场景下有很多客户端,那就对应很多个特征空间,这样的话就显得很繁琐。本文的操作是收集所有中间特征,然后生成器G利用这些中间特征生成用户输入和真实的数据(同分布)区分,让生成器的输出尽可能接近真实分布的数据。生成器的输入中还有主动方的已知特征,类似于条件GAN,这也就能对应上真实的数据。

如果要在VFL中实现类似的操作,可以尝试训练一个编码器代替所有被动方的模型,然后运用SL中的一些操作和思路,但是这样的思路是否算作一种创新呢,恐怕实验效果也不会很好。最好是再结合一些其他论文中的正则化项,让实验结果更准确。



纵向联邦学习中

标签:分割,科研,训练,记录,特征,模型,tilde,客户端
From: https://www.cnblogs.com/ddja/p/18498555

相关文章

  • 2024.10.23训练记录
    上午NOIP模拟A简单题。类比树状数组,反向做二维前缀和。在数组中对于左上角为{x_1,y_1},右下角为{x_2,y_2}的矩阵实现+k操作。只需要在{x_1,y_1},{x_2+1,y_2+1}位置+k,{x_2+1,y_1},{x_1,y_2+1}位置-k。最后再做一遍二维前缀和。很好想到的。想到是应该的。考试......
  • 洛谷 P2680 [NOIP2015 提高组] 运输计划 做题记录
    首先题目要求最大的最小,我们二分答案,对于每个答案,我们筛出比它长的路径,找到它们最长的公共边,删掉后验证正确性即可。找公共边可以用树上差分来做,时间复杂度\(O(m\logn\logV)\),其中\(V\)是二分区间大小。你会发现你挂了一堆点,让我们来卡常:首先预处理出所有节点的\(dfn\),每......
  • 10.23 记录
    一些鲜花:自从zcl把我加到了高一小朋友们的团队里,我就能在机房听到一些关键词,包括但不限于:“bug是谁”“M-o-y-y-e-r-s-u-i-y”(大声的念id)“真不愧时他的儿子!”刚才发了一本鸭子的《CSP防爆0手册》,看得津津有味。今天一天没干啥,一个是补了昨天的题。zcl给我讲了t2......
  • window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)抄的,因为有用只为记录
    一、卸载node如果你已经安装了node,那么你需要先卸载node(不然安装nvm可能会失败),如果你没有安装那直接跳过这一步到下一步。打开控制面板->打开程序和功能->右上角搜索输入node->右键卸载为了确保彻底删除node在看看你的node安装目录中还有没有node文件夹,有的话一起删除。再......
  • ssts-hospital-web-master项目实战记录四:主要配置
    记录时间:2024-10-231.配置浏览器自动打开配置文件:package.json "scripts":{  "dev":"vite--open" } 2.配置src别名(1)安装@types/node输入npm命令npm i@types/node--save-dev(2)配置文件:vite.config.tsimport{defineConfig}from'vi......
  • 洛谷 P3128 [USACO15DEC] Max Flow P 做题记录
    因为一次添加会对点和边都造成影响,而点一次能加两个,于是最大值一定在点上。由于只有一次询问,考虑树上差分。设一次询问给出的两点为\(x,y\),那么我们在\(x\)和\(y\)处分别加\(1\),在\(\operatorname{lca}(x,y)\)处减\(1\),因为该点本身也有增加,于是我们在它的父节点再减去......
  • Linux常用命令(自用记录)
    CentOS添加用户useradd-d/home/testuser-mtestuserpasswdtestuserroot修改/etc/sudoers文件AllowroottorunanycommandsanywhereusernameALL=(ALL)ALL切换ROOT权限suexit退出root文件目录相关操作cd/切换到根目录cd/home切换到根目录下的......
  • ssts-hospital-web-master项目实战记录三:项目开发规范
    记录时间:2024-10-23参考书籍《Vue.js3+TypeScript完全指南》17.3 项目开发规范 在企业项目开发中,通常由多人一起协作完成开发任务,每个人编写的代码风格可能不统一。为了避免出现问题,一般会制定一些规范来约束整个项目的编码风格,包括编辑器规范、代码格式规范、编写代码......
  • Conda常用命令记录(自用记录)
    1.conda创建环境condacreate--namenamepython=3.62.激活环境condaactivatename3.查看所有环境condainfo--envs4.查看当前环境下已经安装的包condalist5.删除环境condaremove--namename--all6.查看当前channelcondaconfig--show7.添加清华源condacon......
  • ssts-hospital-web-master项目实战记录二:版本管理-git
    记录时间:2024-10-231.VSCode打开项目(1)文件→打开文件夹,对应的英文为File→OpenFolder(2)打开效果如下 2.VSCode本地项目托管 (1)打开终端:Terminal→NewTerminal(2)生成仓库:git init输入 git命令git init (3)添加到暂存区:git add.输入 git命令git add. (4)提......