联邦学习知识学习

[3] 陈兵,成翔,张佳乐等.联邦学习安全与隐私保护综述[J].南京航空航天大学学报

服务器端 GAN 攻击

恶意服务器首先假扮成正常的服务器为用户提供联邦学习服务,但其主要目的其实是为了重构特定攻击目标用户的训练样本。在获取到所有用户(其中包括攻击目标用户)的所有本地更新后,恶意服务器将攻击目标用户的本地更新添加到当前的全局模型以完成对识别器 D 的初始化过程,紧接着利用用户的本地更新来计算得到相应的数据样本。然后,恶意服务器通过将这些数据样本输入多任务鉴别器,进而识别出攻击目标用户的身份,并进逐步更新鉴别器 D 和生成器 G,最终实现服攻击目标用户所持有样本的再生重构。

分布式移动用户交互,大规模分布的通信成本、不平衡的数据分布和设备可靠性是优化的主要因素

杨强联邦学习实战学习

对后门攻击的

联邦模型是通过聚合参与者提交的模型更新来创建的。为了保护训练数据的机密性,聚合器在设计上不知道这些更新是如何生成的。我们表明,这使得联邦学习容易受到模型中毒攻击,它比只针对训练数据的中毒攻击强大得多。

恶意参与者可以使用模型替换将后门功能引入联合模型。例如,反向图像分类模型将具有特定特征的图像错误地分类为攻击者选择的类别。
联邦学习采用安全聚合来保护参与者局部模型的机密性,因此不能通过检测参与者对联合模型贡献的异常情况来阻止我们的攻击。 为了证明异常检测在任何情况下都不会有效,我们还开发和评估了一种通用的约束和尺度技术,该技术在训练过程中将防御规避整合到攻击者的损失函数中。

我们从联邦学习文献中展示了模型替换在两个具体学习任务上的能力:CIFAR-10上的图像分类和Reddit语料库上的单词预测。即使是单次攻击,即在单轮训练中选择单个攻击者,也会使联合模型在后门任务上达到100%的准确率。控制少于1%的参与者的攻击者可以防止联合模型解开后门,而不降低其在主要任务上的准确性。模型替换大大优于“传统的”数据中毒

我们认为,联邦学习通常很容易受到后门和其他模型中毒攻击的攻击。首先,在与数百万参与者进行培训时,不可能确保没有一个人是恶意的。联邦学习[6]的设计者明确承认了与多个恶意参与者进行培训的可能性。其次,在联邦学习过程中既不能使用数据中毒,也不能使用异常检测,因为它们需要分别访问参与者的训练数据或他们提交的模型更新。

  • 安全的ML模式。安全多方计算可以帮助训练模型,同时保护训练数据[47]的隐私,但它不能保护模型的完整性。专门的解决方案,如在加密的、垂直分区的数据[26]上训练秘密模型,并不适用于联邦学习
  • 拜占庭式的宽容的分布式学习Byzantine-tolerant distributed learning。最近的工作提出了替代的聚合机制,以确保在拜占庭参与者面前的收敛(而不是完整性)。关键的假设是参与者的训练数据是IID,甚至是未经修改和平均分布的。这些假设对于联邦学习是明确错误的
  • Participant-level differential privacy. Differentially private federated learning限制bounds each participant’s influence over the joint model.
    传统的数据中毒旨在改变模型在输入空间的大部分区域上的性能,而拜占庭式的攻击则旨在防止[5收敛
    联邦学习知识学习_第1张图片
    联邦学习是将机器学习推到用户的设备:手机、智能音箱、汽车等的普遍趋势的一个例子

在这里插入图片描述

DP

参考
原因:即使联邦学习传的是参数不是梯度,也有梯度泄露攻击。

 #定义学习集 DataLoader
train_data = torch.utils.data.DataLoader(各种设置...) 
 #将数据喂入神经网络进行训练
for i, (input, target) in enumerate(train_data): 
    循环代码行......

所谓在联邦学习中使用差分隐私,主要流程如下所示:
我们使用随机大小的批,我们以概率q独立选择用户,而不是总是选择固定数量的用户

  • 本地计算:客户端 i i i根据本地数据库 D i D_i Di和接受的服务器的全局模型 w G t w_G^t wGt作为本地的参数,即 w i t = w G t w_i^t=w_G^t wit=wGt,进行梯度下降策略进行本地模型训练得到 w i t + 1 w_i^{t+1} wit+1( t t t表示当前轮数)
  • 模型扰动:每个客户端产生一个随机噪音 n n n n n n符合高斯分布,使用 w i ′ t + 1 = w i t + 1 + n w_i^{'t+1}=w_i^{t+1}+n wit+1=wit+1+n扰动本地模型(这里注意 w w w是一个矩阵,那么 n n n就对矩阵的每一个元素产生噪音)。
  • 模型聚合:服务器使用FedAVG算法聚合从客户端收到的 w i ′ t + 1 w_i^{'t+1} wit+1得到新的全局模型参数 w G t + 1 w_G^{t+1} wGt+1(也就是扰动过的模型参数。)
  • 模型广播:服务器将新的模型参数广播给每个客户端。
  • 本地模型更新:每个客户端接受新的模型参数,重新进行本地计算。
    联邦学习知识学习_第2张图片
    每个global_epoch都重新随机选取每轮参与的client,client下载参数,在本地训练local_epoch_batch,更新,加噪上传。服务器聚合加噪

怎样解决client的分布部署:

  • 以json配置文件进行相关参数的配置
  • FATE
    单机部署:用Docker镜像安装FATE;在主机安装FATE
    集群部署:KubeFATE

FATE调用:
使用组件化配置构建FL,需要两个配置文件:
dsl, conf配置文件

没有采用网络通信的方式模拟客户端和服务器(Flask-SocketIO),这里是在本地以循环的方式模拟

你可能感兴趣的:(联邦学习,学习,网络安全)