【论文阅读笔记】Eavesdrop the Composition Proportion of Training Labels in Federated Learning

个人阅读笔记,如有错误欢迎指出!

来源:arxiv 2019

问题:

        客户端的来源是不同的,因此难以避免标签分布不均衡

        成员推理、重构攻击等只关注标签是否出现在训练中,容易被安全聚合策略等防御

        联邦学习是资源受限的设备可以协同训练,但是会泄露标签分布信息

        例:恶意商店可以通过FL方法训练出一个新的商品注册系统,计算出某种商品的供求关系 ,并据此调整其价格以获得不公平的优势

创新:

        提出三种攻击(无需梯度):

        推断某标签是否存在

        确定每个标签的数量,即数量推断攻击确定单轮中所选客户端拥有的训练标签的组成比例

        整体确定攻击确定整个训练过程的组成比例

方法:(可以单个可以整体)

        攻击者知识:能够从服务器获取信息,更改本地模型和本地数据,知道每个参与方拥有标签的平均标签数量和每个标签的可能数量,知道单轮中被选中的客户端个数

        使用稀有的“标签”来识别客户,因为这些标签通常由极少数人拥有。具体来说,如果攻击者在训练中检测到这样的标签,攻击者就可以知道谁参与了训练。

        总览:攻击者利用辅助数据集训练局部模型, 本地梯度变化g_{t+1}-G_t​,然后与全局模型的更新变化G_{t+1}-G_t​作比较,以判断哪些标签出现在当前轮次t中,并据此获得哪些客户端拥有这些标签。(当攻击者在联邦训练中被选中时,比较梯度需剔除掉攻击者的贡献)

        class sniffing类别嗅探:在单个训练轮中,对手能够推断出特定类别的训练数据 是否出现。

        quantity inference数量推断:在单个训练轮中,攻击者可以判断某个训练标签是由一小群客户端拥有还是由一大群客户端拥有,并预测有多少客户端拥有该标签

        whole determination整体确定:恶意参与者的目的是获取当前全局模型的数据集标签的构成比例

        class sniffing类别嗅探

        motivation:发现对于某一特定的标签L会使某一神经元权重增加,同时使其他神经元权重减少

        目标:检测在单次训练轮次中是否出现了特定的标签。

        方法:攻击者下载当前全局模型,使用辅助数据集训练模型,获得梯度更新。通过比较全局更新和辅助数据集训练得到的更新,推断特定标签是否参与了训练。若神经元更新变化超过阈值Th_{low}​则该标签出现在训练中,若接近阈值则其在训练中缺席。阈值Th_{low}​为设定的worst case,即设定某标签L不出现在训练集中产生的更新

        quantity inference数量推断

        目标:确定在单次训练轮次中,特定标签由多少客户端拥有。

        方法:类似于类别嗅探,但更进一步分析更新的幅度,以估计拥有特定标签的客户端数量。设置阈值来识别和排除异常值,并使用统计方法来估计客户端数量。

        辅助数据集为单个标签数据组成,通过比较辅助数据集上的模型与全局模型来判断数据量的多少。W_n​表示增加量。W_p表示减少量。

        计算比例:但更新变化容易受到影响,尤其是只有少量客户端拥有某一标签时,少数的增量很容易被大量的减量所抵消。因此设置R_{np}=\frac{|W_n|}{|W_p|}比例和R_{np}设置阈值,比较每个神经元权重对于每个本地更新(辅助数据集)的W_pW_n,如果R_{np}​高于设定的阈值则值则将其删除初始集合以减少影响。

        估计客户端数量:是用公式x=\frac{N_p\cdot P\cdot(G_{t+1}-N_L\cdot w_n)}{w_p-w_n}来估计拥有特定标签的客户端数量,其中N_p是总参与者数量,P是被选中的客户端比例,G_{t+1}​是全局模型的更新量,N_L是被选中客户端平均拥有的标签数量。

        验证估计:攻击者检查估计的客户端数量是否在合理范围内(例如,不大于总参与者数量,不小于0),对于不合理的估计值,从分析中删除相应的权重更新,并重新计算。基于剩余的权重更新,计算拥有特定标签的客户端数量的平均值作为最终估计。

        whole determination整体确定:

        目标:确定整个训练过程中不同标签的数据集组成比例。

        方法:攻击者在训练的中后期,当模型接近收敛时,下载全局模型并使用辅助数据集进行训练。通过分析频繁和偶尔出现的标签在梯度更新中的差异,推断出数据集中不同标签的相对数量。

        在训练的后期,模型可能会对数据出现过拟合,模型参数会过度反应训练数据的特征,攻击者利用过拟合现象,通过分析不同标签在模型参数中的反映,推断出数据集中不同标签的相对数量。

        通过聚类结果,攻击者确定不同标签的数据样本数量之间的关系。聚类算法将相似的更新向量分到同一组,从而揭示拥有近似数量数据样本的标签。

实验:

        数据集与backbone模型

        类别嗅探成功率,指标\frac{T_s}{T_s+T_f},预测标签成功次数T_s​,失败次数T_f

        数量推断成功率,指标:假设在某指定轮次中有i个客户端拥有标签L,推断出有\hat{i}个客户端拥有,若|\hat{i}-1<\alpha|视为攻击成功,\alpha为误差值设定为1,计算成功次数/总次数为评价指标

        超参数对数量推断成功率的影响

        客户端参与比例对数量推断成功率的影响

        整体确定攻击中,每个标签样本的数据量有差异,首先找到数量和比例之间的联系,实验中通过改变属于某一标签的样本数量,并记录相应的比例差异。如下图所示,当比例相差4倍时显示出明显差异。将整个标签随机分为3组 ,并确保第一组每个标签可以 分配Q个数据样本,第二组只能 获取Q/4个样本,最后一组只能获得Q/5个样本。这些组将用于训练学习模型,用于评估方法是否可以检测到该组比例。

        指标:当聚类结果与训练前的数据分配完全相同时,认为攻击成功,包括聚类的数量和每个聚类中的特定标签。

        压缩梯度进行防御的效果

窃听信道模型(Eavesdropping Channel Model)是指在无线通信中,除了合法通信的用户之外,还存在一些未经授权的窃听者,他们可能会窃听到通信过程中的信息。为了保护通信的安全性,需要对窃听信道进行建模和分析。 在MATLAB中,可以使用通信系统工具箱中的函数来实现窃听信道模型。以下是一个简单的示例代码: ```matlab % 定义无线信道 h = rayleighchan(1/1000, 50, [0 1/4 1/2 1], [0 -3 -6 -9]); % 定义发送信号 tx = randi([0 1], 1000, 1); % 模拟发送和接收过程 rx = filter(h, tx); snr = 10; rx_eavesdrop = awgn(rx, snr, 'measured'); % 显示结果 subplot(2,1,1); plot(abs(h.PathGains)); title('Channel Impulse Response'); subplot(2,1,2); plot(abs(fft(rx))); hold on; plot(abs(fft(rx_eavesdrop))); title('Spectrum of Received Signals'); legend('Received Signal', 'Eavesdropping Signal'); ``` 在这个示例代码中,我们首先定义了一个Rayleigh衰落信道对象`h`,其参数为:采样率1/1000,最大多径时延50个采样周期,路径增益为0、-3、-6和-9dB。接着,我们定义了一个随机的、长度为1000的发送信号`tx`。然后,我们使用`filter`函数模拟了发送和接收过程,并使用`awgn`函数在接收信号中添加了高斯白噪声。最后,我们绘制了信道脉冲响应和接收信号的频谱图,并比较了正常接收信号和窃听信号的区别。 需要注意的是,在实际应用中,窃听信道模型可能会更加复杂,例如考虑多径信道、干扰等因素。因此,需要根据具体应用场景进行建模和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值