一. 横向联邦学习
横向联邦学习适用于用户群体不同,特征空间相同(比如多个ipad和sever,典型的B-C架构)。
先介绍两种种横向联邦学习的架构
- B-C
过程:参与方在本地进行梯度计算,将结果用加密技术掩饰发给server,server进行安全聚合(梯度平均),将结果发送给worker,worker进行解密,更新模型,直到达到收敛。
- 对等网络
没有中央服务器,不是批量更新参数,是连续(循环或者随机)更新,达到收敛时间长。
之前在《联邦学习-技术层面问题》说过联邦优化算法的中心思想就是用计算代价代替通讯代价,也介绍了联邦平均算法的实现过程,在本节再详细介绍它的算法。
联邦平均算法
三个关键参数
(1)ρ:每一轮中进行计算的客户占比
(2)S:每一轮中,每一个客户在本地数据集进行训练的步骤数
(3) M:使用的mini-batch(梯度下降批量的量是多少)用𝑀=∞来表示完整的本地数据集作为一个批量进行处理
设 M=∞,S=1 ,在参与方进行梯度和损失函数计算ρ=1时,参与方拥有所有数据(全批量)进行计算,且数据集符合IID条件,由FederatedSGD算法计算得到梯度g,
满足Eg=𝛻𝑓(𝜔)
设服务器有初始模型,参与方了解优化器的设定。对于拥有固定的学习率h 的分布式梯度下降的典型实现,在第t轮更新全局模型参数时,第k个参与方将会计算
g𝑘=𝛻𝐹𝑘(𝜔𝑡)
就是它在当前模型参数𝜔𝑡的本地数据的平均梯度,然后server会通过以下公式聚合梯度更新信息,将全局模型参数发给各个worker,这种就是梯度平均,还有一种对模型进行加权计算的,叫做模型平均。
算法流程图如下(前提就是假设数据独立同分布):
安全的联邦平均方法就是在前者基础上加上隐私保护,隐私保护技术用的是AHE。
算法变化是:worker在本地数据计算梯度后,将结果加密,发送给server,server进行聚合,然后发送给worker,worker进行解密,更新模型信息。