Split learning攻防介绍(Threat model and defence)

Split learning攻防介绍(Threat model and defence)

本文内容整理自三篇Split learning相关研究论文,为叙述方便,分别用论文A、B、C标识。

论文A: Gradient Inversion Attack: Leaking Private Labels in Two-Party Split Learning

论文B:Defending Label Inference and Backdoor Attacks in Vertical Federated Learning

论文C:Label Leakage and Protection in Two-party Split Learning

本文首先梳理三篇文章的整体工作,然后对每篇论文进行详细介绍。

Split learning 是什么

在这里插入图片描述

如上图所示:Split learning通常被用于两方纵向联邦学习场景:一方有原始数据Inputs,另一方有标签Labels。双方共同训练一个 f ⋅ g f·g fg 的复合模型,Inputs端保留 f f f 模型,Labels端保留 g g g 模型。Split learning的目的是同时保留Inputs x i x_i xi 的隐私和Labels y i y_i yi 的隐私,所以在训练过程中,两方之间只会交换中间特征embedding z i z_i zi 以及中间梯度 ▽ z L i \bigtriangledown_zL_i zLi ,而不会交换原始数据 x i x_i xi y i y_i yi 。一个典型的场景:公司A拥有客户点击广告的数据(Inputs),公司B拥有客户实际购买商品的数据(Labels),两公司联合训练模型以学习广告转化率。

Split learning也可以应用于多方的场景:标签只在其中一方,原始数据 x i x_i xi 由多方保存,每方有几个维度的特征。典型场景:公司A有客户点击广告的数据,公司B有客户的社交数据,公司C有客户实际购买商品的数据(Labels)。

论文A和论文C只考虑了两方,论文B同时考虑了两方和多方。三篇论文针对的都是分类问题。

Split learning Threat model

Label Inference Attack

标签推测攻击是三篇论文中都有考虑到的Threat model并且都给出了defence,指的是Inputs端利用接收到的 ▽ z L i \bigtriangledown_zL_i zLi 去推测真实的标签 y i y_i yi

论文A:认为直接交换 ▽ z L i \bigtriangledown_zL_i zLi会泄露标签的隐私,并且提出了一种基于有监督学习的攻击模型Gradient Inversion Attack(GIA)去推测标签,在Multi-class image classification以及binary conversion问题中推测标签的准确率可以达到(97.01%-99.96%)。

论文B:强调传递一个batch的聚合梯度也可能泄露隐私,然后也提出利用有监督学习的方式可以推测Labels(攻击模型跟论文A没太大区别)。

论文C:只考虑二分类问题,发现通过观察中间梯度 g g g 的特征,进行统计分析, 就可以进行一定程度的标签推测。如下图所示,标签为1的数据的中间梯度与标签为0的数据的中间梯度存在显著差异,该信息就会泄露标签隐私。

在这里插入图片描述

Backdoor Attack

论文B提出了Backdoor attack。攻击者通过替换标签或中间梯度,让一些数据被错误的分类。(感觉就是恶意攻击模型,不让模型正确地训练)。Labels端可以很容易地发起Backdoor attack,比如直接将某些本来是猫的标签,替换为狗。但是论文B觉得Labels端发起backdoor attack太简单,不值得研究,然后发现 Inputs端通过对发送的embedding z i z_i zi 进行一些操作也可以发起Backdoor attack。

Split learning Defence

论文A:nothing but 添加高斯噪声

在这里插入图片描述

可想而知噪声越大,安全性越好,模型效果越差。由于该方法过于粗暴,作者也指出只在一些简单的数据集上适用,用在一些复杂的数据集效果就很差。

论文B:Label confusion。核心思想就是对标签进行替换,比如将所有数据猫、狗的标签对换。这样Inputs推测出的标签都是错的(本来是狗、误以为是猫)。但是这种太容易被发现,因为Inputs只要知道任何一个样本的真实标签,就可以知道所有样本的真实标签。

一种想法就是将标签替换成多维向量。基于此思想论文B提出了autoencoder,包括encode和decode两部分:

  • encode:在训练阶段,将真实标签替换为fake label,从而保护真实标签的隐私。
  • decode:在测试阶段,将fake label还原为真实标签。

论文C(二分类问题):添加精密计算过的噪声。对于不同标签对应的中间梯度添加不同的噪声,标签为1的数据对应的梯度添加 D 1 = N ( 0 , Σ 1 ) D^{1}=N(0, \Sigma_1) D1=N(0,Σ1) ,标签为0的数据对应的梯度添加 D 0 = N ( 0 , Σ 0 ) D^{0}=N(0, \Sigma_0) D0=N(0,Σ0) Σ 1 \Sigma_1 Σ1 Σ 0 \Sigma_0 Σ0是求解如下优化问题得到的最优解。

在这里插入图片描述

论文A:Gradient Inversion Attack: Leaking Private Labels in Two-Party Split Learning

Label Leakage Attack Objective

Attacker想要获得真实的标签 D l a b e l = { y i } D_{label} = \{y_i\} Dlabel={ yi},Attacker通过推理得到的标签为 D y ′ = { y ′ } D_{y'} = \{y'\} Dy={ y}

Attacker的目标就是让 y i y_i yi y i ′ y_i' yi尽可能接近,即:

在这里插入图片描述

由于实际中Attacker不知道真实标签,所以无法直接求解上述优化问题,于是该论文提出了GIA来窃取隐私。

Label Leakage Defence Objective

Labels端想要保护隐私需要平衡以下两个方面:

  • Privacy Objective:让attacker推理的 y i ′ y_i' yi 与真实标签 y i y_i yi 的差异尽可能大,即:

在这里插入图片描述

  • Utility Objective: 保护隐私也不能作茧自缚,要尽可能保证模型可用性。通过训练好的联合模型 f ⋅ g f·g fg,预测的标签要尽可能与真实标签接近,即:

在这里插入图片描述

攻击模型GIA

在这里插入图片描述

核心思想:Attacker(Inputs端)只有模型 f f f, 不知道模型 g g g ,也不知道标签 { y i } \{y_i\} { yi}。那么Attacker可以自己建立一个surrogate model g ′ g' g 以及surrogate labels { y i ’ } \{y_i’\} { yi} 。建得不准没有关系, g ′ g' g (对应参数 θ g ′ \theta_{g'} θg)和 { y i ’ } \{y_i’\} { yi} ( { y i ~ } \{\tilde{y_i}\} { yi~}) 都是可学习的参数,可以先随机初始化,然后通过学习过程让 θ g ′ \theta_{g'} θg { y i ~ } \{\tilde{y_i}\} { yi~} (主要是 { y i ~ } \{\tilde{y_i}\} { yi~})尽量接近真实值,这个学习的过程叫Replay Split Learning。

Replay Split Learning

  1. z i z_i zi 输入到 g ′ g' g中,得到预测的标签 p i ′ p_i' pi
  2. 计算predition lables p i ′ p_i' pi 与 surrogate labels y i ’ y_i’ yi 之间的误差 L i ′ = H ( y i ′ , p i ′ ) L_i' = H(y_i', p_i') Li=H(yi,pi)
  3. 根据surrogate model g ′ g' g 与误差 L i ′ L_i' Li 反向传播,得到 z i z_i zi 的梯度 ▽ z L i ’ \bigtriangledown_zL_i’ zLi ,真实的梯度为 ▽ z L i \bigtriangledown_zL_i zLi , 所以Replay Split learning的基本思想就是让 ▽ z L i ’ \bigtriangledown_zL_i’ zLi 尽可能逼近 ▽ z L i \bigtriangledown_zL_i zLi ,为此作者设计了一个GIA Loss。

GIA Loss

GIA Loss需要实现四个目标:

1.Gradient Objective:这是最基本的目标,就是让 ▽ z L i ’ \bigtriangledown_zL_i’ zLi 尽可能逼近 ▽ z L i \bigtriangledown_zL_i zLi ,即:

在这里插入图片描述

2.Lable Prior Objective:让surrogate labels y i ′ y_i' yi 的分布与真实数据集中标签 y i y_i yi 的先验分布一致。假设Inputs端已经知道数据集中各个标签的先验分布 P y P_y Py,而 y i ′ y_i' yi

的分布可以计算为( y i y_i yi 是softmax层输出,是一个n维向量,各个维度和为1):

在这里插入图片描述

该优化目标就是减小 P y P_y Py P y ′ P_{y'} Py 之间的距离(KL散度),即:

在这里插入图片描述

3.Label Entropy Objective: { y i ’ } \{y_i’\} { yi} 的熵应该最小。因为预测的标签为 a r g m a x ( y i ′ ) argmax(y_i') argmax(yi),当 y i ′ y_i' yi 为one-hot向量时,熵最小,这样预测结果可信度最高;当 y i ′ y_i' yi 为均匀向量时,熵最大,结果最不可靠。

4.Accuracy Objective: 对于重构的模型,surrogate model g ′ g' g ,效果也应该不错,即 p i ′ p_i' pi 要尽可能接近 y i ′ y_i' yi

3、4的目标是下式(分子部分):

在这里插入图片描述

H ( y i ′ , p i ′ ) H(y_i', p_i') H(yi,pi) 表示交叉熵, H ( y i ′ , p i ′ ) = H ( y i ′ ) + D K L ( y i ′ ∣ ∣ p i ′ ) H(y_i', p_i') = H(y_i') + D_{KL}(y_i' || p_i') H(yi,pi)=H(yi)+DKL(yipi) ,前式表示目标3,后式表示目标4。除以分母 H ( P y ) H(P_y) H(Py) 是让指标对本来的分布不敏感。

总的GIA Loss 就是上面几个乘以系数加起来:

在这里插入图片描述

整个训练过程就是利用中间梯度去最小化 L G I A L_{GIA} LGIA

Defence

没啥说的……就是一个高斯噪声:

在这里插入图片描述

实验

模型参数:

在这里插入图片描述

另外本文假设Inputs端是不知道 g g g 网络结构的,实验中 图像分类 g ′ g' g 是 DNN(FC(128-64-10)),Criteo是 DNN(FC(32-32-10))。

实验结果:

GIA攻击:

在这里插入图片描述

加噪声:

在这里插入图片描述

个人总结

感觉GIA的思想挺好,如何设计噪声是后续的研究点。

论文B: Defending Label Inference and Backdoor Attacks in Vertical Federated Learning

先上图:

在这里插入图片描述

Active Party即Labels端,Passive Party即Inputs端。

图中A表示基本的Split learning过程,B表示Gradient Inversion Attack(与论文A中GIA思想一致,该论文没有详细阐述这部分),C为Input端发起的Backdoor Attack,D是为保护标签所设计的保护机制CoAE。

Multi-party Split Learning

假设有K个参与方利用数据 { x i , y i } i = 1 N \{x_i,y_i\}_{i=1}^N { xi,yi}i=1N进行训练, x i x_i xi被分成K份 { x i k } k = 1 K \{x_i^k\}_{k=1}^K { xik}k=1K ,只有一方拥有标签,不失一般性地假设第K个参与者拥有标签。则Split Learning的训练目标如下:

在这里插入图片描述

i i i表示第 i i i个样本, N N N表示总样本数, o i K o_i^K oiK表示前向过程计算的输出, y i y_i yi 表示真实标签。

假设每个Inputs端有一个本地模型 G k G_k Gk , 然后得到的本地embedding 为 H k H_k Hk 需要发送给Labels端:

在这里插入图片描述

Loss为:

在这里插入图片描述

即各个终端的embedding是以求和的方式聚合的,然后再通过 f f f 模型得到一个输出的标签。假设 H i = ∑ k = 1 K H i k H_i=\sum_{k=1}^{K}H_i^k Hi=k=1KHik,那么第 k k k个参与者得到的梯度函数为:

在这里插入图片描述

∂ H i k ∂ θ k \frac{\partial H_i^k}{\partial \theta_k} θkHik部分Inputs端自己算,Labels端返回的梯度就是 KaTeX parse error: Can't use function '\H' in math mode at position 28: …al l}{\partial \̲H̲_i}

该论文用了同态加密,Inputs party发送的 H i H_i Hi是加密的,返回的 KaTeX parse error: Can't use function '\H' in math mode at position 28: …al l}{\partial \̲H̲_i}也是加密后的梯度,Inputs party自己算加密后的 ▽ k ℓ \bigtriangledown_k \ell k, 多个梯度发送到TTP(安全第三方)请求解密。

在这里插入图片描述

反正最后Inputs端是能看到梯度的,同态只是保证Inputs端只会看到聚合后的梯度,而不是单个的梯度,论文后续也就没有再提同态这件事情了。

Threat Model

Label Inference Attack

在这里插入图片描述

与论文A类似,攻击者重构一个模型,计算重构后的Loss:

在这里插入图片描述

因为是multi-party的,所以这里用 H p + H a ′ H_p + H_a' Hp+Ha 模拟聚合后的梯度,文本不像论文A设计的LOSS那么复杂,只是考虑让拟合的梯度逼近真实梯度:

在这里插入图片描述

Backdoor Attack

其实,就是替换标签,把想要攻击的样本真实的标签 y i y_i yi 替换成有毒的标签 r i r_i ri

替换后整个Split learning的目标就变成了:

在这里插入图片描述

c l n cln cln 表示干净的数据, p o i poi poi 表示有毒的那部分数据。

Labels端是很容易发起Backdoor Attack的,只需根据有毒的标签计算有毒的梯度即可。这东西太简单了,还研究啥。所以论文B主要研究Inputs端发起的Backdoor Attack。

g H i g_H^i gHi 表示梯度,首先假设在聚合后的embedding H i H_i Hi上没有加更复杂的网络了,直接加了个Softmax,然后就开始用交叉熵算误差了。这时就有个性质:

在这里插入图片描述

知道真实标签以及这条性质就好办了, 如果Inputs端想把特定数据的标签替换为target label τ \tau τ,执行以下操作。本来正确的标签对应的梯度传过来的时候减1了,我给他加上去。我想制造的有毒标签再减1。然后基于这个伪造的梯度进行后续训练就可以了。

在这里插入图片描述

虽然似乎观察 g H i g_H^i gHi 就能知道真实标签了,不过本文中只传递聚合后的梯度,所以观察不出来。所以还是要通过Label Inversion attack 先获得每个sample的真实标签,再发起上述攻击。上述分析还依赖于Labels端直接用Softmax处理 H i H_i Hi ,但真实情况是Inputs不知道Labels端的结构。

那我想直接发起Backdoor attack可不可以?可以。

作者提出了一个方法,不需要太多关于标签的先验知识。但是,仍然需要知道少数本来label就是target label的数据 D t a r g e t D_{target} Dtarget。作者认为获得少数这种数据是不难的(你说不难就不难吧)。基于这个假设,作者提出了一种直接在训练过程下毒的方法Gradient replacement backdoor:

  • 前向过程:attacker计算 H i k H_i^k Hik ,对于想要下毒的样本 i i i 随机从 D t a r g e t D_{target} Dtarget 中选样本 j j j ,用 H j H_j Hj替换 H i H_i Hi ,并记下换过的这一对 < i , j > <i, j> <i,j>
  • 反向传播过程:用收到的 j j j 样本的梯度 g j g_j gj 乘以一个amplify系数,作为样本 i i i的梯度。

这样,虽然传的是 i i i 的原始数据,但却是按 j j j 的样子去训练了。这种策略可以被概括为: i i i 窃取了 j j j 的身份,让labels端误以为 i i i j j j ,这样就把 i i i 训练成了 j j j,算法流程图如下:

在这里插入图片描述

Defence

核心思想:将原始的真实的标签转化为Soft fake labels, 这样即使attacker发起攻击获得的也是fake label,而attacker并不知道如何将fake label还原成真正的。转化需满足以下三个条件:

  1. 显然,他们要不一样,差得越大越好。
  2. 可以几乎无损地利用fake labels还原真实标签。
  3. fake标签需要足够有迷惑性。

我们考虑一个简单的转化,将“猫”和“狗”的标签替换。这个转化复合1、2两点,但是不符合第3点。attacker只需要知道一个数据的真实标签,就能破解。为了增强Fake标签的迷惑性,作者提出了a confusional autoencoder (CoAE)。

CoAE包括encode模块 e e e,对应参数 W e W_e We以及decode模块d 对应参数 W d W_d Wd

那么制造fake label y ~ \tilde{y} y~ 的过程如下:

在这里插入图片描述

利用 y ~ \tilde{y} y~ 还原成标签 y ^ \hat{y} y^ 的过程如下:

在这里插入图片描述

W e W_e We W d W_d Wd 是需要经过学习训练得到的,学习的目标是最小Loss L:

在这里插入图片描述

其中:

在这里插入图片描述

C E CE CE 是交叉熵, L c o n t r a L_{contra} Lcontra 是为了实现目标1和目标2, L c o n t r a L_contra Lcontra 是为了实现目标3。

CoAE是单独训练的。利用CoAE进行Split learning的过程就是:训练的时候用Fake标签进行训练。这样得到的模型进行测试输出的也是Fake标签,再把Fake标签送到decoder,就可以得到真实标签了。

实验

实验1:Label inversion attack可以达到很高的准确率:

在这里插入图片描述

实验2:Backdoor attack

模型本身的分类任务准确率很高,同时下毒也很成功

在这里插入图片描述

Defence实验,选了DP和GS作为对照实验,在二分类问题上选了Marvell(论文3的方法)

实验3:Label Inference Attack的防范

比其他所有方法都好,既保证了模型的准确率,又避免了attacker 推测标签:

在这里插入图片描述

实验4:Gradient-Replacement Backdoor的防范:

比其他所有方法都好,既保证了模型的准确率,又保证下毒的数据下毒成功率很低:

在这里插入图片描述

个人总结

这篇论文我存在几个疑问:

  1. 首先基于训练好的 W e W_e We, CoAE编码部分从真实标签 y y y 到 Fake标签 y ~ \tilde{y} y~ 的过程,应该是一一映射的,其实本质上跟把猫和狗替换没有区别,这样会不会有安全风险。
  2. CoAE是如何防止Gradient-Replacement Backdoor的?Backdoor攻击的原理是,数据 i i i 窃取数据 j j j 的身份, j j j 的身份是什么不重要,对应的在训练过程中的标签是真实标签还是Fake标签不重要,只要让Labels端误认为 i i i j j j 就实现了。CoAE似乎防不住这个,所以 i i i 还是会被打上 j j j 的标签。不管如何对 j j j Fake,如论文中的基本假设所述,Attacker是知道 j j j 的真实标签的。所以还是成功对 i i i 下毒了。论文未解释防范Gradient-Replacement Backdoor的原理,只展示了实验结果,我感觉是不可靠的。
  3. 论文说,由于Marvell(论文C中的方法)是二值分类问题,所以对CoAE进行了处理,只选择了属于clouds和person类的数据。这不对。二值分类问题是整个特征空间只能被分成两份,而该论文这样处理相当于是从可以被分成n份(n表示类别)的特征空间中选了两份。所以正确的处理应该是选择所有数据集,属于clouds的标签为1,不属于clouds的标签为0。或者将所有类别分成两份。

论文C:Label Leakage and Protection in Two-party Split Learning(二分类)

论文A和B的处理是从机器学习的角度进行的,而论文C则是从数学的角度进行分析的,虽然看不懂数学分析,但是还是让人眼前一亮。

在这里插入图片描述

AUC指标

二值分类网络输出通常是一个常数,设定一个阈值 t t t , 如果输出大于 t t t 标签就是正样本, 小于等于 t t t 就是负样本。

设置不同的阈值 t t t 就可以得到不同的分类器。绘制这些不同的分类器的ROC曲线,围成的面积就是AUC。AUC值越大,分类器的效果就越好。

Privacy Loss Metric

Inputs端试图通过中间梯度 g g g 窃取labels。怎么窃取呢? g g g 本质上是数值,对于数值就可以构建二值分类器。显然,如果不同标签样本的 g g g 存在显著差异,那么就可以构建相当好的分类器,该分类器的AUC值较大。

本文就用AUC来衡量隐私泄露程度, 称这样计算出的AUC为leak AUC。leak AUC越大,推测出标签的准确度就越高。

Threat Model

Attack 1: Norm based socring function

中间梯度 g = ( p 1 ~ − y ) ▽ h g= (\tilde{p_1} - y)\bigtriangledown h g=(p1~y)h , 包含了两部分$ (\tilde{p_1} - y) $ 以及 ▽ h \bigtriangledown h h

观察真实的训练过程中,$ |\tilde{p_1} - y| $ 的分布如下,蓝色和黄色分别代表着正负样本。

在这里插入图片描述

显然不同标签的$ |\tilde{p_1} - y| $ 存在显著差异。

观察真实的训练过程中, ▽ h \bigtriangledown h h的分布如下:

在这里插入图片描述

显然,没有明显差异。

上面两个指标相乘,显然不同标签的 ∣ g ∣ |g| g 也存在显著差异,事实确实如此,如下图:

在这里插入图片描述

正样本的 ∣ g ∣ |g| g 显著大于负样本的 ∣ g ∣ |g| g ,所以 ∣ g ∣ |g| g 本身就是一个很强的分类器,计算出的 leak AUC 可以达到0.9。

本文称这种泄露方式为Norm Leak AUC。

Direction-based scoring function

上面计算了 g g g 的模,实际上 g g g 的方向也会泄露隐私。 对于两个样本 a a a b b b ,计算 c o s ( g a , g b ) cos(g_a, g_b) cos(ga,gb)

在这里插入图片描述

p ~ 1 , a \tilde{p}_{1,a} p~1,a 表示a样本预测为1的概率。在论文B中也提过,当 a a a 为正样本时, p ~ 1 , a − y a \tilde{p}_{1,a} - y_a p~1,aya < 0 ,当a为负样本时 p ~ 1 , a − y a \tilde{p}_{1,a} - y_a p~1,aya > 0。所以若 a a a b b b 是两个相同类型的样本, s g n ( p ~ 1 , a − y a ) s g n ( p ~ 1 , b − y b ) = 1 sgn(\tilde{p}_{1,a} - y_a) sgn(\tilde{p}_{1,b} - y_b) = 1 sgn(p~1,aya)sgn(p~1,byb)=1 ,反之等于-1。 s g n sgn sgn 表示值函数。

后面那一部分呢,如下图所示:任意两个样本计算的值均为正:

在这里插入图片描述

所以判断 c o s ( g a , g b ) cos(g_a, g_b) cos(ga,gb) 的正负,即可知道两个样本是否是同类样本。

现实中,很多问题是不均匀二值分类问题,比如癌症诊断。任意给定一个样本,计算它与其他所有样本的 c o s cos cos ,若超过一半的结果为1,则说明它属于多数;若超过一半的结果为-1,则说明它属于少数。这样就可以知道任意一个数据的类别了。

如果是均匀二值分类问题呢。只要attacker知道任意一个样本的分类,不妨设它为正样本 g + g+ g+ 好了,如下图所示,任意一个样本,正样本的 c o s ( g , g + ) = 1 cos(g, g+) = 1 cos(g,g+)=1,负样本为-1:

在这里插入图片描述

我们称这种泄露为cosine leak AUC

Defend

核心思想就是在梯度上加噪声,怎么加呢?本文首先提出了两种方法抛砖引玉,然后引出了自己的优化方法Marvell(optiMized perturbAtion to pReVEnt Label Leakage)。

Random perturbation and the isotropic Gaussian baseline

样本的真实梯度为 g g g , 加完噪声后的梯度为 g ~ \tilde{g} g~ ,该方法试图加噪声让 g ~ \tilde{g} g~ g g g 的无偏估计,即:

在这里插入图片描述

根据链式法则,以及期望是线性的,inputs端的模型 f f f 也就是无偏的。

为了实现这种无偏扰动,一种简单的方法就是在梯度的每个维度上加上独立同分的各向同性的高斯噪声 iid Isotropic Gauss Noise。

高斯噪声即满足多维高斯分布 N ( 0 , Σ ) N(0, \Sigma) N(0,Σ) 的噪声,各向同性即不考虑各个维度的联系,即协方差矩阵对角线上的值相等。

。虽然这是一个可选项,但不是一个最佳项:

  1. 梯度是向量,是有方向的,直接加Isotropic Noise会忽视方向信息。
  2. 样本通常是非均匀的,所以正负样本应该有区分的加噪声。

Norm-alignment heuristi

设对 j j j 个样本 g j g_j gj 加的噪声为 η j \eta_j ηj, 设一个batch内,所有梯度中的最大梯度为 g m a x g_{max} gmax

尺度上,希望

在这里插入图片描述

方向上,保证

在这里插入图片描述

这样可以计算出 η j \eta_j ηj 的方差为

在这里插入图片描述

作者称这种保护为max_norm,优点是没有参数可调,缺点是没有理论支撑,也无法在model utility 和 privacy之间建立灵活的trade-off,也可能被一些没有发现的treat model 攻击。

Optimized Perturbation Method: Marvell

假设对正样本和负样本加的噪声分别服从分布 D ( 1 ) D^{(1)} D(1) 以及 D ( 0 ) D^{(0)} D(0) 。加噪声是优化如下目标函数:

在这里插入图片描述

什么意思呢?Attacker会利用获取的梯度(已经加过噪声了),去建立分类器,尽可能得到最大的AUC。 保护的目标就是让Attacker能获得的最大的AUC,越小越好。即最小最大化原则。

P ~ ( 1 ) \tilde{P}^{(1)} P~(1) P ~ ( 0 ) \tilde{P}^{(0)} P~(0)表示加过噪声后的梯度分布,AUC的上界服从下列理论:

在这里插入图片描述

ϵ < 4 \epsilon < 4 ϵ<4 时, ϵ \epsilon ϵ 越小,AUC的最大值越小。因此我们可以把最小最大化目标转化为优化:

在这里插入图片描述

上述只是考虑了隐私保护,那么考虑可用性呢,优化目标就是:

在这里插入图片描述

假设标签为1的数据对应的梯度添加的噪声为 D 1 = N ( 0 , Σ 1 ) D^{1}=N(0, \Sigma_1) D1=N(0,Σ1) ,标签为0的数据对应的梯度添加 D 0 = N ( 0 , Σ 0 ) D^{0}=N(0, \Sigma_0) D0=N(0,Σ0)

优化上述目标等价于:

在这里插入图片描述

所以最后就是求解上述目标优化问题就行了。中间的数学过程实在看不下去了。

实验

与不加噪声相比,Marvell可以显著降低leak AUC。

在这里插入图片描述

与其他方法相比,Marvell既能实现较好的模型效果,同时也能保证泄露的AUC最少。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wuxing610/article/details/123266614