想做联邦学习安全相关的研究,现在漫无目的的看论文,希望有路过的大佬指点一下,感激
krum,bulyan,FABA,FoolsGold
论文原文如下
krum:Machine Learning with Adversaries: Byzantine Tolerant Gradient Descent
bulyan:http://proceedings.mlr.press/v80/mhamdi18a/mhamdi18a.pdf
FABA:没找到
foolsgold:Mitigating Sybils in Federated Learning Poisoning
看了krum算法,感觉证明看不懂但是证的很漂亮,我的理解是结合大数和平方和的方法,文中提到拜占庭worker我把他默认为可能恶意攻击得worker,未来避免两个拜占庭工作者串通,一个上交很大的梯度向量导致整体偏移而将另一个纳入正确的选项,证明了不管是简单平均还是线性组合都不能阻挡拜占庭worker的攻击,核心思想大概是选择一个客户端的局部更新作为下一个全局模型具体是基于平方和的方法寻找一个距离所有n-f-2个拜占庭工作者最小的向量。
找到了一个拜占庭相关的知识:
拜占庭故障(Byzantine Fault)是指在一个分布式系统中,系统的一部分节点出现了任意类型的错误,包括发送错误的信息、发送不一致的信息、或者完全停止发送信息等。这些节点的行为可能是由于硬件故障、软件错误或者恶意攻击引起的。拜占庭故障因为其不可预测性和恶意性而对分布式系统的安全性和一致性构成了挑战。
拜占庭将军问题(Byzantine Generals Problem)是一个经典的分布式系统问题,最早由Leslie Lamport、Robert Shostak和Marshall Pease在1982年提出。问题的场景是这样的:一支拜占庭军队被分成多个部分,每个部分由一个将军领导,这些将军需要通过传递消息来协调他们的行动,以决定是进攻还是撤退。然而,其中一些将军可能是叛徒,他们可能会发送错误的消息,导致其他将军做出错误的决定。
拜占庭将军问题的关键是如何在存在叛徒将军的情况下,确保忠诚的将军能够达成一致的决策。这个问题的解决方案需要满足以下条件:1)所有的忠诚将军必须达成一致的决策;2)如果将军是忠诚的,他们的决策必须是一个已经被提出的值;3)如果一个将军是叛徒,他们的决策对其他忠诚将军的决策不能产生影响。
看完了bulyan的论文,感觉好深奥,我的理解是,基于其他拜占庭弹性方法的基础上,迭代选择,但是n>=4f+3的条件没有看懂是为什么这样定义。先根据其他方法选出一些梯度值,然后对这些值进行修剪平均数。
FoolsGold:优点是不限制攻击者数目,主要解决基于sybil-based的攻击(伪造身份),基于客户端间贡献相似性的客户端自动更新学习率,比起前两种,恶意攻击者是全能的白盒攻击,这种方法更适用于联邦学习的环境下,因为文中假设攻击者看不到其他客户端的训练数据,他们只能观测到全局梯度变化,看不到单个客户端上传的梯度,符合联邦学习的环境。我理解是文中使用的是白盒定向攻击:
- 白箱攻击(white-box attack):在白箱攻击中攻击者知道目标模型的所有信息,包括模型的训练集、类型、结构以及参数。
- 黑箱攻击(black-box attack):在黑箱攻击中,攻击者不知道目标模型的内部细节,只能够观察目标模型对输入样本的输出结果。
- 定向攻击(target attack):对于一个多分类网络,把输入分类误判到一个某个特定的错误类别上
- 非定向攻击(non-target attack):只需要生成对抗样本,可以引入任意一个错误类别
核心思想诚实的客户可以通过他们的梯度更新的多样性从系统中分离出来。(我之前做过基于变分自动编码器VAE,encoder-decoder的方法识别,感觉和这个有点像,不确定,再看看)通过寻找相似余弦的客户端判断,并且提供信誉评分机制。