【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)

文章目录

  • 一、横向联邦学习的定义
  • 二、横向联邦学习的安全性
  • 三、横向联邦学习架构
    • 1. 客户-服务器架构
    • 2. 对等网络架构
  • 四、联邦优化
  • 五、联邦平均算法
  • 参考链接


一、横向联邦学习的定义

横向联邦学习也称为按样本划分的联邦学习(Sample-Partitioned Federated Learning 或 Example-Partitioned Federated Learning),可以应用于联邦学习的各个参与方的数据集有相同的特征空间和不同的样本空间的场景,类似于在表格视图中对数据进行水平划分的情况。事实上,横向一词来源于术语 横向划分(horizontal partition)。“横向划分” 广泛用于传统的以表格形式展示数据库记录内容的场景,例如表格中的记录按照行被横向划分为不同的组,且每行都包含完整的数据特征。


二、横向联邦学习的安全性

关于横向联邦学习系统的安全性的定义,我们通常假设一个横向联邦学习系统的参与方都是诚实的,需要防范的对象是一个诚实但好奇 (honest-but-curious)的聚合服务器。即通常假设只有服务器才能使得数据参与方的隐私安全受到威胁。


三、横向联邦学习架构

横向联邦学习具有两种常用的系统架构,分别称为客户-服务器 (clientserver)架构和对等(Peer-to-Peer,P2P)网络架构。

1. 客户-服务器架构

客户-服务器架构也被称为主-从(master-worker)架构或者轮辐式(hub-and-spoke)架构。在这种系统中,具有同样数据结构的 K 个参与方(也叫作客户或用户)在服务器(也叫作参数服务器或者聚合服务器)的帮助下,协作地训练一个机器学习模型。横向联邦学习系统的训练过程通常由如下四步组成:

  • 步骤1:各参与方在本地计算模型梯度,并使用同态加密、差分隐私或秘密共享等加密技术,对梯度信息进行掩饰,并将掩饰后的结果(简称为加密梯度) 发送给聚合服务器。
  • 步骤2:服务器进行安全聚合(secure aggregation)操作,如使用基于同态加密的加权平均。
  • 步骤3:服务器将聚合后的结果发送给各参与方。
  • 步骤4:各参与方对收到的梯度进行解密,并使用解密后的梯度结果更新各自的模型参数。
【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)_第1张图片

2. 对等网络架构

除了上面讨论的客户-服务器架构,横向联邦学习系统也能够利用对等网络架构。在该框架下,不存在中央服务器或 者协调方。在这种架构中,横向联邦学习系统的 K 个参与方也被称为训练方(trainer)或分布式训练方。每一个训练方负责只使用本地数据来训练同一个机器学习模型(如DNN模型)。此外,训练方们使用安全链路(channels)在相互之间传输模型参数信息。为了保证任意两方之间的通信安全,需要使用例如基于公共密钥的加密方法等安全措施。

【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)_第2张图片

四、联邦优化

文献[1,2]提出将联邦平均算法(FedAvg)用于横向联邦学习的模型训练。

为了区别于分布式优化问题,联邦学习中的优化问题被称为联邦优化,联邦优化具有一些关键特性,使其与传统分布式优化问题有所区别:

  1. 数据集的非独立同分布
  2. 不平衡的数据量
  3. 数量很大的参与方
  4. 慢速且不稳定的通信连接

为了应对联邦优化中面临的挑战,谷歌的H.Brendan McMahan等人提出使用联邦平均算法来求解联邦优化问题[2]。联邦平均算法可以用于深度神经网络训练中遇到的非凸损失函数(即损失函数是神经网络模型参数的非凸函数,常见于深度神经网络模型)[1,2]。联邦平均算法适用于任何下列有限加和形式的损失函数:

式中,n表示训练数据的数量;w∈Rd表示d维的模型参数(如DNN的权重值)。

随机梯度下降(SGD)及其一系列变形是最常用的深度学习优化算法。许多在深度学习领域的发展都能理解为是模型结构的调整(因此损失函数得到减小),使其能更易于通过简单的基于梯度的方法来进行优化。鉴于深度学习的广泛应用,我们很自然地想到基于随机梯度下降来搭建联邦优化算法。

随机梯度下降可以方便地用于联邦优化中,其中一个简单的小批量 (mini-batch)梯度计算(以随机选取的一个参与方为例)在每一轮训练中都会被执行。在这里,“一轮”表示将本地模型更新从参与方发送至服务器和从服务器将聚合的结果发回到参与方。这种方法在计算上是非常有效的,但需要非常多轮次的训练才能得到令人满意的模型。例如,即便使用了像批标准化(Batch Normalization,BN)这样的先进方法,有文献揭示了在MINST数据集上,当选择小批量为60时,需要进行50000轮的训练。


五、联邦平均算法

联邦平均算法的计算量由三个关键参数控制:

  1. 参数ρ。指在每一轮中进行计算的客户的占比。
  2. 参数S。指在每一轮中,每一个客户在本地数据集上进行训练的步骤数。
  3. 参数M。指客户更新时使用的mini-batch的大小。我们使用M=∞来表示完整的本地数据集被作为一个批量来处理。

在该算法中,ρ 控制着全局批大小,当ρ=1时,表示在所有参与方拥有的所有数据上使用全部训练数据(亦称全批量,full-batch)梯度下降(非随机选择训练数据)。我们仍然通过在选定的参与方上使用所有的数据来选择批量,我们称这种简单的基线算法为FederatedSGD。假设由不同参与方拥有的数据集符合IID条件,且批量的选取机制与通过随机选取样本的方式不同,由FederatedSGD算法计算得到的批梯度g仍然满足E[g]=▽f(w)。

假设协作方或服务器拥有初始模型,且参与方了解优化器的设定。对于拥有固定学习率η的分布式梯度下降的典型实现,在第t轮更新全局模型参数时,第k个参与方将会计算gk=▽Fk(wt),即它在当前模型参数wt的本地数据的平均梯度,并且协调方将会根据以下公式聚合这些梯度并使用模型参数的更新信息:

【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)_第3张图片

协调方之后能够将更新后的模型参数wt+1送给各参与方。或者协调方可将平均梯度发送给各参与方,且参与方将根据上式计算更新后的模型参数wt+1。这种方法被叫作梯度平均。

文献[13]同时提出了一种等价联邦模型训练方法:

【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)_第4张图片

每一个客户根据上式在本地对现有的模型参数使用本地数据执行梯度下降的一个(或多个)步骤,并且将本地更新的模型参数发送给服务器。之后服务器根据上式对模型结果进行加权平均计算, 并将聚合后的模型参数发送给各参与方。这种方法被称为模型平均。


参考链接

  1. Communication efficient learning of deep networks from decentralized data
  2. Federated learning of deep networks using model averaging

你可能感兴趣的:(机器学习,机器学习)