摘要:拜占庭鲁棒式联邦学习旨在存在一定数量恶意客户端时学习到一个准确的全局模型。当前存在的拜占庭鲁棒式联邦学习主要思想为在聚合更新全局模型前对所有的客户端模型更新进行统计分析,然后剔除掉可疑的。
服务器本身会提供一个干净的小型训练集(根数据集)用于学习任务,其会在这个数据集上维持一个模型(服务器模型)以引导信任。
每轮迭代中,服务器会根据各个客户端的本地模型更新为其分配一个信任分数(可以知道如果本地模型更新的方向与服务器模型更新的方向偏离越多,则其分数越低)。然后,服务器规范化本地模型更新的大小,以此让所有的本地模型更新在向量空间中处于同一个超球体中;该规范化可以大大的限制恶意本地模型更新的影响。最后,服务提供者计算归一化局部模型更新的平均值,并按信任评分加权,作为全局模型更新,用于更新全局模型。
拜占庭-鲁棒性联邦学习的目标:当存在有限的恶意节点时,学习到一个准确的全局模型。
联邦学习范式:有个客户端,每个客户端拥有一个数据集
,
表示加入训练的数据,每个
中的数据样本服从一个未知的分布
。所有客户端的目标为在服务器的帮助训练一个共享的全局模型。最优的全局模型
是下列优化问题的解:
StepⅠ:将本地模型与全局模型同步,全局模型为。
StepⅡ:每个客户端用本地数据训练出一个本地模型。即第个客户端解决优化问题wi
,其中
是第i
个客户端的本地模型。训练完后,每个客户端将其本地模型更新
发送给服务器(即,其本地模型与当前全局模型的差值)。
StepⅢ:通过聚合本地模型更新来更新全局模型。服务器通过聚合规则来聚合本地模型更新,得到全局模型更新,然后利用全局模型更新来更新全局模型,即
,其中
是全局的学习率。
(对疑问如下)(看完后面的证明后,这么设置的原因为了方便后面证明)
疑惑:为什么这里是而不是
?
按照下文举例的FedAvg:,按照数据量的加权平均。
则
这个时候时候只有时,
,才是正常的加权平均的FedAvg。
(另外,在Defending against Backdoors in Federated Learning with Robust Learning Rate一文中我也找到了类似定义联邦学习的方式,但是里面α前面的符号为正,如下图)
问题描述
攻击模型:攻击者控制一些恶意客户端,它们可以是攻击者假冒的客户端也可以是被破坏的真实客户端。但是攻击者不会危害服务器。这些恶意客户端会发送任意的本地更新模型在联邦学习的每一轮迭代中。
通常情况下,攻击者知道联邦学习系统中的以下设置:恶意客户端的本地训练数据及模型更新,损失函数,学习率。
缩放攻击、Krum攻击、Trim攻击只需要这些信息。