联邦学习 OR 迁移学习?No,我们需要联邦迁移学习

2020-11-18 15:25:00
刘大牛
转自文章
230

在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的目的和意义。

海量训练数据是现代机器学习算法、人工智能技术在各个领域中应用获得成功的重要条件。例如,计算机视觉和电子商务推荐系统中的 AI 算法都依赖于大规模的标记良好的数据集才能获得较好的处理效果,如 ImageNet 等。然而在一些应用领域中,例如医学领域、经济学领域以及一些政务信息化领域中,海量的可用训练数据往往是非常有限的。存在这些问题的主要原因:一是,针对机器学习算法的数据标注任务需要专业的知识和经验才能完成,这种预处理任务的成本非常高,往往无法获得机器学习所需要的足够的标注数据。二是,各个行业对数据隐私和数据安全的保护越来越强,在一定程度上也限制了对训练数据的共享,也就进一步加剧了可用的标注数据缺乏的问题。



联邦学习(Federated Learning,FL)是解决上述问题的一种有效方法。2016 年,Google 首次提出了针对移动设备的联邦学习(FL)系统 [1],该系统允许用户形成一个联合体训练得到一个集中模型,而用户数据则安全地存储在本地,这就解决了数据隐私和安全保护问题。同时可以有效应用联合体各方所掌握的标注数据,解决标注数据缺乏的问题。但是,FL 要求联合体的不同方拥有的训练数据必须共享相同的特征空间,这就限制了 FL 的实用性。关于 FL 中的异构性问题,人工智能站之前也有过专门报道,感兴趣的读者可以阅读 相关文章


微众银行 (WebBank) 进一步提出了联邦迁移学习(Federated Transfer Learning,FTL)[1,6]。FTL 通过应用同态加密(Homomorphic Encryption)和多项式近似代替差分隐私(Polynomial Approximation instead of Differential Privacy)的方法,为特定行业提供了一种更安全、更可靠的方法。与此同时,基于迁移学习的的特性,FTL 的参与方可以拥有自己的特征空间,而无需强制要求所有参与方都拥有或使用相同特征的数据,这使得 FTL 适合于更多的应用场景。


本文关注联邦迁移学习方法,在介绍联邦学习和迁移学习相关知识的基础上,重点探讨向经典联邦学习中引入迁移学习的目的和意义。此外,本文还将梳理目前主流的联邦迁移学习方法,并重点介绍其中的 4 篇文章。


一、背景介绍


1.1、联邦学习(FL)


FL 允许多个参与方(也称为客户机、用户、客户端等)协作训练得到一个共享的全局模型,在这个过程中各个参与方无需分享本地设备中的数据,充分保证了参与方的数据隐私性和安全性。由 FL 系统中的中央服务器协调完成多轮联邦学习以得到最终的全局模型。其中,在每一轮开始时,中央服务器将当前的全局模型发送给各个参与方。各个参与方则根据其本地数据训练所接收到的全局模型,训练完毕后得到更新模型并将更新模型返回中央服务器。中央服务器收集到所有参与方返回的更新后,对全局模型进行一次更新,进而结束本轮更新。在整个更新过程中,数据保存在参与方本地设备中,而设备与中央服务器之间传输和交换的是加密后的模型。


从数学角度展示 FL,假设有 n 个参与方,经典 FL 表示为:



其中,z^i 为第 i 个参与方的设备中所存储数据采样。由于不同参与方的设备之间存在异构性,所存储的数据库也不同,从不同设备中提取的样本具有不同的期望值:

联邦学习的一次完整的更新过程由 T 个全局 epochs 组成。在第 t 个 epoch 中,中央服务器接收任意一个参与方设备发回的本地训练的模型 x_new,并通过加权平均来更新全局模型:

其中,α∈(0,1),α为混合超参数 (mixing hyperparameter)。在任意设备 i 上,在从中央服务器接收到全局模型 x_t 后,使用 SGD 进行局部优化以解决以下正则化优化问题:

中央服务器和客户机设备的工作线程执行异步更新。当中央服务器接收到本地模型时,会立即更新全局模型。


Google 的 FL 框架是在实际应用中使用的一套体系,为了能够满足实用性的要求,Google 的框架对上述经典 FL 架构做了一些修改和限定。它在中间结果中添加了噪声,以防止攻击者访问和推断私有信息。增加的噪声会降低准确度,从而导致生成低质量的模型。尽管如此,它仍在传输可能导致恶意攻击的敏感信息。最后,该框架要求所有参与方在同一个特征空间中拥有数据,这使得在实际场景中不同的参与方可能无法共享完全相同的特征空间。


1.2、迁移学习(Transfer Learning)


迁移学习是机器学习的一个重要分支,其主要目的是将已经学习过的知识迁移应用于新的问题中。关于迁移学习最权威的综述性文章是香港科技大学杨强教授团队的《A survey on transfer learning》[7]。我们在这里参考杨强教授的文章对一些迁移学习的基本概念进行阐述。


迁移学习允许在机器学习模型的训练和测试中所使用的域(domains)、任务(tasks)和分布(distributions)是不同的。正如杨强教授所举的例子,我们可能会发现学习识别苹果可能有助于识别梨,同样,学习演奏电子管风琴也有助于学习钢琴。也就是说,人类能够智能地应用先前所学的知识来更快地或更好地解决新问题。迁移学习的目的是使机器也能具备这种能力。图 1 示出了经典机器学习技术和迁移学习技术的学习过程之间的区别。可以看出,经典机器学习技术试图从零开始学习每一个任务,而迁移学习技术则是在目标任务的高质量训练数据较少的情况下,将前一个任务的知识转移到目标任务上。


图 1. 经典机器学习与迁移学习的不同学习过程。


从数学角度描述迁移学习,给定一个源域 Ds 和学习任务 Ts,目标域为 Dt 和学习任务 Tt,迁移学习的目的是利用 Ds 和 Ts 中的知识来改进对 Dt 中目标预测函数 f_T(·)的学习,其中 Ds ≠ Dt,或 Ts ≠ Tt。


在上面的定义中,域是一对 D={X,P(X)}。因此,条件 Ds ≠ Dt 意味着 Xs ≠ Xt 或 Ps(X) ≠ Pt(X)。例如,在文档分类示例中,这意味着源文档集和目标文档集之间的术语特征要么不同(例如,它们使用不同的语言),要么边际分布不同。类似地,将任务定义为一对 T={Y, P(Y | X)}。条件 Ts ≠ Tt 意味着 Y_S ≠ Y_T 或 P(Y_S | X_S) ≠ P(Y_T | X_T)。当目标域和源域相同,即 Ds=Dt,学习任务相同,即 Ts=Tt 时,学习问题成为传统的机器学习问题。当域不同时,(1)域之间的特征空间不同,即 X_S ≠ X_T;(2)域之间的特征空间相同,但域数据之间的边缘概率分布不同,即 P(X_S) ≠ P(X_T),其中 X_Si∈X_S,X_Ti∈X_T。给定特定的域 Ds 和 Dt,当学习任务 Ts 和 Tt 不同时,要么(1)域之间的标记空间不同,即 Y_S ≠ Y_T;要么(2)域之间的条件概率分布不同。


杨强教授在文章中还对不同迁移学习方法进行了类别划分,见图 2。在归纳迁移学习(inductive transfer learning)中,无论源域和目标域何时相同,目标任务都不同于源任务。当源域中有很多标记数据可用时,归纳迁移学习类似于多任务学习。然而,归纳迁移学习的目的仅仅是从源任务中转移知识,而多任务学习则试图同时学习目标任务和源任务。当源域中没有可用的标记数据时,归纳迁移学习与自学习类似。在自学习中,源域和目标域之间的标注空间可能不同,这意味着不能直接使用源域的边际信息。因此,自学习可以看做是源域中标注数据不可用的归纳迁移学习。下面为李弘毅老师关于迁移学习课程 PPT 中的截图,从另外的角度针对源、目标域内数据的标注情况进行了所涉及到的主要方法的列举,能够更好的帮助理解迁移学习。具体课件地址为:http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/transfer%20(v3).pdf。




在直推式迁移学习(transductive transfer learning)中,源任务和目标任务是相同的,而源域和目标域是不同的。在这种情况下,目标域中没有可用的标记数据,而源域中有许多标记数据可用。此外,根据源域和目标域的不同情况,进一步将直推式迁移学习分为两种情况。一是,源域和目标域之间的特征空间不同;二是,域间特征空间相同,但输入数据的边缘概率分布不同。


在无监督迁移学习(unsupervised transfer learning)中,与归纳迁移学习类似,目标任务与源任务不同,但与源任务相关。无监督迁移学习的重点是解决目标域中的无监督学习任务,如聚类、降维和密度估计等。在这种情况下,在训练中源域和目标域中都没有可用的标注数据。


图 2. 不同迁移学习方法。


1.3、联邦迁移学习(FTL)


FTL 的目的是在保护隐私的前提下,利用迁移学习克服数据或标签的不足的问题。FTL 将 FL 的概念加以推广,以实现在任何数据分布、任何实体上均可以进行协同建模、以学习全局模型。它不仅可以应用于两个样本的空间,还可以应用于两个不同的数据集。


FTL 将来自不同特征空间的特征迁移到同一个潜在表示中,然后利用不同参与方收集的标注数据中的标签进行训练。在 Google 提出的 FL 实用框架中,强调的是参与方也就是联邦学习架构中的用户是独立的,但 不同参与方之间的特征必须是相同的。而由杨强教授提出的 FTL 框架则是 强调不同参与方的特征是不同的。也就是说,Google 的经典 FL 框架主要目的是保证各个参与方的用户隐私,而 FTL 框架的主要目的是应对数据不足、小数据量的问题,同时保证各个参与方的安全性和隐私性。


FTL 的工作流程见图 3 [2]。在训练一个模型时,A 和 B 双方首先计算并加密他们的中间结果,包括梯度和损失。然后由第三方收集并解密梯度和损失。最后,A 和 B 收到汇总结果并更新各自的模型。为了避免在反向传播过程中暴露参与方的数据,FTL 采用同态加密保证安全性,利用多项式差分近似来保证隐私性。与经典 FL 中将原始数据和模型保存在本地的处理方法不同,FTL 在数据传输之前,会令参与方对梯度进行加密,并使用一些技术如添加随机掩码等,以防止参与方在任务的任何阶段猜测得到对方的信息。


图 3. FTL 工作流。


利用 FTL 框架,可以在原有的各种机器学习算法和模型的基础上进行改进。首先,不同参与方可以根据不同来源的数据首先训练各自的模型,然后,将这些模型数据进行加密后使之不能直接传输以免泄露参与方的隐私。在此基础上,对这些模型进行联合训练以得到最终的最优模型,再返回给各个参与方。


本文在接下来的文章中将重点介绍 FTL 框架 [1] 以及对 FTL 实用性能的分析[2]。此外介绍两篇 FTL 相关的方法,其中一篇关注联邦域适应(Domain Adaption)的问题,属于直推迁移学习方法在联邦学习框架中的应用,另外一篇为微软研究院的工作,重点关注 FTL 中的梯度聚合方法。


二、FTL 不同方法介绍


2.1、 A Secure Federated Transfer Learning Framework




本文提出了联邦转移学习(FTL)来解决现有联邦学习方法的局限性,利用迁移学习为联邦学习框架下的样本和特征空间提供解决方案。作者将 FTL 问题在一个隐私保护的环境下形式化,提供了一个用于解决现有 FL 方法无法应对的联邦学习问题的解决方案。此外,作者提供了一个端到端的 FTL 解决方案,并证明了该方法在收敛性和准确性方面的性能与非隐私保护的迁移学习相当。最后,在 FTL 框架下,作者将加同态加密(HE)和基于 beaver 三元组的秘文共享方法结合到神经网络的两方计算(two-party computation,2PC)中,这种加密处理方法只需对神经网络进行最小的修改并且几乎不会影响准确度,就可以实现对各个参与方的安全性和隐私性保护。


2.1.1 方法介绍


【FTL 框架】


深度神经网络被广泛应用于迁移学习以找到隐藏的迁移机制。本文构建了一个迁移学习场景,其中 A 和 B 的隐藏表示由两个神经网络生成:

神经网络 NetA 和 NetB 作为特征转换函数,将 A 和 B 的源特征投影到一个共同的特征子空间中,A 和 B 可以在该子空间中进行知识迁移。实际上,可以应用任何其他的对称特征变换技术来构造公共特征子空间。只不过,使用神经网络可以建立一个端到端的解决方案来解决所提出的 FTL 问题。


为了标记目标域,一般的方法是引入预测函数:




在不失一般性的前提下,本文假设φ((u_j)^B)是线性可分的。也就是说,



作者使用一个迁移函数:

然后,使用标注数据库构建训练目标函数:

此外,还要将 A 和 B 之间的对齐损失最小化,以便在联邦学习环境中实现特征迁移学习:

目标函数最终为:

后向扩散过程中传递的梯度值为:

为了满足联邦学习的安全性和隐私性要求,在假设 A 和 B 不允许暴露其原始数据的情况下,需要进一步引入隐私保护方法来计算上述目标函数。作者对逻辑损失函数 l_1 采用二阶泰勒近似进行处理:

以及得到梯度值为:

至此,针对 A 和 B 两个参与方的 FTL 完整目标函数构建完毕。作者在此基础上,讨论了 FTL 的两种替代结构:第一种是利用附加同态加密(HE)确保安全性,第二种是利用基于 beaver 三元组的密文共享以保证隐私性。


【同态加密】


对二阶泰勒近似处理的目标函数以及梯度值进行同态加密处理(同态加密记做[[·]])。得到了 A 和 B 两个域的隐私保护损失函数和相应的梯度:




令[[·]]A 和[[·]]B 分别表示 A 和 B 的公钥的同态加密运算符。A 和 B 在本地初始化并执行各自的神经网络 NetA 和 NetB,以获得隐藏表示(u_i)^A 和(u_i)^B。A 计算并加密组件:

并将其发送到 B 以协助计算 NetB 的梯度。此时有如下参数:

类似的,B 计算并加密组件:

并将其发送到 A 以协助计算 NetA 的梯度。此时有如下参数:

为了防止 A 和 B 的梯度暴露,A 和 B 进一步用加密的随机值屏蔽每个梯度。然后,它们互相发送被屏蔽的梯度和损失,并在本地解密这些值。一旦满足损耗收敛条件,A 可以向 B 发送终止信号。否则,它们将不再隐藏梯度,而是用各自的梯度更新权重参数,并继续进行下一次迭代。一旦模型训练完毕,FTL 可以对 B 中未标注的数据进行预测。


完整的同态加密 FTL 算法流程如图 4:




图 4. 基于同态加密的 FTL。


【密文共享】


假设任何私有值 v 在 A 和 B 双方之间共享,其中 A 保留 < v>A,B 保留 < v>B,因此 v=<v>A+<v>B。此时,损失函数、梯度值记为:








在这种情况下,如果能够构造安全的矩阵加法和乘法,就可以保证整个执行过程的隐私性。由于使用公共矩阵或添加两个私有矩阵的操作可以简单地通过共享(Sharing)来完成,因此只需要讨论安全矩阵乘法操作。本文使用 Beaver’s 三元组实现矩阵乘法。


假设所需的计算是得到 P=MN,其中 M、N 和 P 的维数分别是 m x n、n x k 和 m x k。假设矩阵 M 和 N 被双方秘密共享,其中 A 保留 < M>A 和 < N>A,B 保留 < M>B 和 < M>B。为了辅助计算,在预处理阶段 A 和 B 分别生成了维度为 m x n、n x k 和 m x k 的三个矩阵 D、E、F,其中 A 保持 < D>A、<E>A 和 < F>A,而 B 保持 < D>B、<E>B 和 < F>B,满足 DE=F。满足协议要求,<P>A+<P>B=MN。可以看出,这种方法保证了在线计算的有效性。过程中 Beaver’s 三元组的生成方式如 Algorithm4:




组的密文共享,目标函数、梯度分别记为:








关于完整的数学推导计算过程,感兴趣的读者可以阅读原文详细了解。A 和 B 在本地初始化并执行各自的神经网络 NetA 和 NetB,以获得隐藏表示(u_i)^A 和(u_i)^B。A 计算并加密组件:

对于每个 k,A 随机确定掩模(Mask):

以得到:

A 将 k(k=1,...K_A)的上式结果发送给 B,类似的 B 也执行上述过程。训练过程完成后,则进入预测阶段。完成的基于密文分享的 FTL 过程如 Algorithm6 所示:




2.1.2 实验分析


作者给出了多个公共数据集上进行的实验结果已验证本文所提出的方法,包括:NUS-WIDE 数据库和 Kaggle 的信用卡客户违约数据库(“Default-Credit”)。NUS-WIDE 数据库包括了来自 Flickr 上的图像的 634 个低层次特征,以及它们的标签和真值标签。总共有 81 个真值标签。作者使用前 1000 个标签作为文本特征,并与所有低层特征进行结合,包括颜色直方图和颜色相关图等图像特征。作者在 A 和 B 之间建立了一个数据联合体来解决 1 对多的分类问题,其中 A 包含 1000 个文本标记特征和标签,而 B 包含了 634 个低级图像特征。


Default-Credit 数据库由信用卡记录组成,具体包括用户人口统计、支付历史记录和账单等,并以用户的默认付款作为标签。在对分类特征进行独热编码处理后,得到了一个包含 33 个特征和 30000 个样本的数据库。然后作者在特征空间和样本空间中对数据库进行分割处理,以模拟 A 和 B 双方联合的问题。具体来说,将样本分配给 A、B 或 AB 双方,这样可以保证在 A 和 B 之间存在少量重叠的样品。所有的标签信息都存储在 A 方。


作者针对 FTL 中不同的关键因素,包括重叠样本的数量、隐藏公共表示的维度和特征的数量,研究了该方法的有效性和可扩展性。作者在实验中对基本 FTL(TLL)、基于同态加密的 FTL(TLT)、基于密文共享的 FTL(SST)进行了对比。选择了三种机器学习模型:逻辑回归(LR)、支持向量机(SVM)和堆叠式自动编码器(SAEs)。


NUS-WIDE 数据库中的实验结果见图 5。其中图 5(a)和(b)展示了引入二阶泰勒近似处理的有效性。其中,第一种情况下 NetA 和 NetB 都有一个自动编码器层,分别有 64 个神经元。在第二种情况下,NetA 和 NetB 都有两个自动编码器层,分别有 128 个和 64 个神经元。在这两种情况下,作者分别使用了 500 个训练样本,1396 个重叠样本对。由实验结果可知,与使用基本的 logistic 损失相比,使用 Taylor 近似时损失的衰减速率相似,并且 Taylor 近似方法的加权 F1 得分也可与 logistic 方法相当。图 5(c)显示了改变重叠样本数对迁移学习性能的影响。重叠的样本对用于连接双方之间的隐藏表示,由实验结果可知 FTL 的性能随着数据集之间重叠的增加而提高。


图 5. FTL 相关实验结果。


进一步, 作者使用 Default-Credit 数据库中的实验来研究 FTL 的可伸缩性。具体的,作者研究了训练时间如何随重叠样本数、目标域特征数和隐藏表示维度的变化而变化。基于所提出的迁移学习方法,B 向 A 发送消息的通信代价可以计算为:

其中,ct 表示消息的大小,n 是发送的样本数。在从 A 向 B 发送消息时,通信代价的计算方式相同。


为了加快 FTL 的计算速度,作者进行了 并行处理。并行处理逻辑流程包括三个阶段:并行加密、并行梯度计算和并行解密。在并行加密阶段,对发送给另一方的组件进行并行加密。在并行梯度计算阶段,对加密分量进行并行运算,包括矩阵乘法和加法,以计算加密梯度。在并行解密阶段,对掩模损失和梯度进行并行解密。最后,AB 双方交换解密的掩模梯度,用于更新神经网络。在划分为 20 个分区的情况下,并行方案比串行方案的速度提高了 100 倍。图 5(d)、图 5(e)和图 5(f)说明了基于 HE 的 FTL 的运行时间随着隐藏表示维度的大小、目标域特征的个数以及重叠样本数量实现近似线性增长。图 5(g)、图 5(h)和图 5(i)说明了训练时间如何随密文共享中的三个关键因素而变化。在其他因素不变的情况下,通信成本可以简化为 O(d^2)。


2.1.3 本文小结


本文提出了一个安全的联邦迁移学习(FTL)框架,引入了同态加密和密文共享两种保护隐私的安全方法。同态加密方法简单,但计算成本较高。密文共享方法的优点是没有精度损失,计算速度也较快,但其主要缺点是需要离线生成和存储多个三元组才能执行在线的联邦学习。 FTL 框架是一个通用的隐私保护联邦迁移学习解决方案,并不局限于特定的机器学习模型或其它特征提取或映射的方法。作为后续的研究方向,作者考虑将引入不同的分布式计算技术,以及廉价计算和通信方案来提高 FTL 框架的整体效率。


2.2、Quantifying the Performance of Federated Transfer Learning




FTL 利用迁移学习技术利用不同来源、不同特征的数据进行联合训练,同时实现数据隐私保护而不会造成严重的精度损失。然而,这些益处也伴随着额外的计算和通信消耗代价,因而存在效率问题。为了在实践中有效地部署和扩展 FTL 解决方案,我们需要深入了解基础设施会如何影响 FTL 的效率。本文并不是提出一种新的 FTL 方法,而是试图通过评估真实场景中部署的 FTL 的效率来回答上面的问题。


2.2.1 方法和实验简述


本文选择 FATE 的应用场景验证 FTL 的效率(WeBankFinTech. Webankfintech/fate. https://github.com/webankfintech/fate,  2019)。FATE 是由 Webank 的 AI 部门发起的开源项目,旨在提供安全的计算框架来支持联邦 AI 生态系统。它基于同态加密和多方计算(MPC)实现安全的计算协议。它支持联邦学习体系结构和各种机器学习算法的安全计算,包括逻辑回归,深度学习和迁移学习等。FATE 官方网站:https://fate.fedai.org/。FATE 的整体结构如下。


  1. 不同角色:FTL 中有三种不同的角色, 访客(Guest)、主机(Host)和仲裁者(Arbiter)。访客和主机都是数据的持有者。Guest 是启动特定任务以及执行多方模型训练的机构,Guest 基于自己本地存储以及 Host 提供的数据集进行训练。它们主要负责计算和数据加密。Arbiter 在任务开始之前将公钥发送给 Guest 和 Host,并允许它们之间进行数据交换。在模型训练期间,Arbiter 负责汇聚梯度以及验证模型是否收敛。

  2. 工作流:Guest 和 Host 首先使用自己的数据在本地计算和加密中间结果,这些数据将用于计算梯度和损失值。然后 Guest 和 Host 将加密的值发送给 Arbiter。最后,Guest 和 Host 从 Arbiter 处获取解密后的梯度和损失以更新模型。FTL 框架迭代地重复上述步骤,直到损失函数收敛为止。

  3. 训练过程:FTL 提供了同质和异质两种训练方法。对于同质方法,各方用不同的样本训练同一个模型。而对于异构特征,各方在不同的特征空间共享相同的样本,以加密的状态聚合这些特征并协同构建一个包含所有数据的模型。



此外,FATE 中的机器学习算法用 Python 实现,关于任务调度、线程 / 进程管理和数据通信等底层框架使用 Java 编写。在每一个参与方中,不同的节点上有多个处理器并行训练模型。不同进程、节点和参与方之间的数据传输基于 gRPC 远程过程调用。


FTL 和分布式机器学习(Distributed Machine Learning,DML)具有相似的特性,它们都有多个工作节点,这些节点保存不同的数据,并根据聚合结果更新模型。然而,它们之间也存在一些显著的差异。对于分布式机器学习任务,参数服务器作为中心调度节点将数据和计算资源分配给工作节点以提高训练效率。但是对于 FTL 来说,数据持有者拥有自己的工作节点,并且对自己的数据拥有完全的自治权。此外,FTL 在训练模型时为了保证数据拥有者的数据隐私,所使用的加密方法需要更强大的计算能力和更快的网络来传输数据。数据隐私保护的要求也使得这样的数据传输更加频繁,这就进一步增加了对高效网络环境的需求。因此,FTL 的框架更为复杂,而分布式机器学习是 FTL 的一个理想情况,即:其中数据归一方所有,不需要加密。


对于一定的模型和数据集,分布式训练的性能是 FTL 所能达到的最优性能。原因是这两种模式都有相似的工作流程,但 FTL 有额外的开销,如数据加密和模型修改等,用以保证数据的隐私性。本文作者试图量化 FTL 的各种开销。首先测量端到端的任务完成时间,这就提供了两种方法之间的性能差距的概述。在 FTL 和分布式机器学习中,计算和数据传输对性能起着至关重要的作用,为了解释造成这种巨大性能差距的因素,进一步,作者将任务完成时间分解为 CPU 时间和通过网络传输数据的时间进行对比和分析。


作者使用 Google 云的虚拟实例进行验证,所使用的数据集是乳腺癌数据库[8],它包含 569 个样本和 32 个特征。为了使评估结果具有代表性,作者使用开源的 FTL 平台 FATE v0.1 进行评估。作者在 FTL 中使用了两种常见的 logistic 回归(Logistic Regression,LR)模型,即同质 LR 和异质 LR。根据同质模型和异构模型目标的不同,将数据库分为纵向和横向两部分。横向划分处理后生成同质模型所需的不同数据样本,而纵向划分处理后的数据库则具有不同的特征空间,用于构建异构模型。作为比较,作者使用 Tensorflowv2.0.0 实现了分布式 logistic 回归,其中包括一个参数服务器和两个工人结点。在所有的实验中,模型都用相同的迭代次数进行训练。


2.2.2.1 整体性能对比


如图 6a 所示,与简单的分布式实现相比,同质 LR 和异构 LR 任务完成时间大约为 24 x (250s vs 10s) 和 17 x (177s vs 10s) 。此外,作者将任务完成时间分解为 CPU 时间和数据传输时间,以深入了解哪些因素导致了较大的开销。结果如图 6b 和 6c 所示。与分布式实现相比,这两种模型的 CPU 执行时间和数据传输时间都要长得多。实验结果表明,FTL 仍然面临巨大的计算和数据传输开销问题,需要进一步改进。


图 6. 同质(Homo)logistic 回归和异质(Hetero)logistic 回归的任务完成时间、CPU 执行时间和数据传输时间。


2.2.2.2 CPU 执行时间


对于 CPU 的执行时间,仅仅根据评估结果很难解释时间增加的原因。作者对代码进行了分析,提出了两个可能的原因:1)由于数据加密,增加了计算量;2)大部分 CPU 资源都花在了额外的任务上,如进程间通信和内存拷贝。


图 7a 给出了模型训练时间和额外执行时间的比例。以异构 LR 为例,只有 18% 的 CPU 执行时间(160s 中的 29s)用于模型训练。额外的 CPU 消耗会导致训练任务的性能显著下降。作者分析,性能下降的原因如下:1)不同运行阶段之间的数据交换和内存拷贝,如 python 和 JVM;2)在 JVM 中,仍存在两个进程,一个负责在数据准备好后创建和发布作业,另一个则对各种系统事件做出响应,并将数据传输给远程用户。两个进程之间的通信以及进程内的线程调度都会影响效率。总之,机器内部的进程间通信和内存副本是当前 FTL 实现的主要瓶颈。


图 7. (a)显示,只有大约 18% 的 CPU 执行时间用于实际的模型训练。关于数据加密的影响如(b)所示,当前的加密方法增加了 2 倍 以上的计算工作量。


2.2.2.3 数据传输时间


作者首先解释了为什么在 FTL 中数据传输时间增加了 16 倍以上(见图 6(c))。作者认为有以下两个原因。首先,FATE 中利用同态加密的典型算法 Paillier[9]来实现数据加密。Paillier 将单个数字的大小增加到 1024 位(通常情况下为 64 位)。因此,加密后要传输的数据总体大小大大增加。其次,FTL 需要修改模型来建立隐私保护,与分布式机器学习相比,这种处理方式使得 FTL 需要更频繁的数据传输。对于分布式机器学习,参数服务器和工作节点在每次迭代结束时交换数据以更新集中式模型。而对于 FTL 来说,各个参与方需要在每一次迭代的过程中反复进行密集的通信来加密和解密数据。


此外,在生产环境中,各个参与方在物理环境中可能并不位于一个数据中心,有时可能会存在较长的物理空间距离。这种物理空间的远距离存储会导致网络带宽出现变化。为了模拟实际案例并评估不同地理级别对 FTL 性能的影响,作者将不同的参与方放在位于美国、北美甚至全球的不同数据中心。图 8 给出了具体实验结果。当各个参与方位于世界各地时,在同质和异构模型中,通过因特网进行数据传输的时间分别占总完成时间的 34%(324s 中的 117s)和 33%(239s 中的 79s)。综上所述,为了使 FTL 实用化,我们还需要解决远距离数据传输的性能问题。


图 8. 在不同的地理位置设置参与方以模拟真实场景。不同的地理距离导致了带宽的变化。结果表明,随着带宽的下降,数据传输起着更重要的作用。当参与方位于世界各地时,数据传输时间最多会占总完成时间的 34%。


2.2.2 分析与讨论


通过以上评估,作者总结了三个瓶颈,并提出了可能的解决方案来帮助优化当前的 FTL 框架:


1、机器内部的进程间通信(Inter-process communication,IPC)占总完成时间的 77%。这是当前 FTL 实施的主要瓶颈。进程间的数据交换和内存拷贝会导致极高的延迟。为了缓解这个瓶颈,下面的一些技术可能会有所帮助。



  • 关于 JVM 内存管理的 JVM native memory heap,这可以减少 JVM 和原始内存之间的内存拷贝。

  • 更有效的 IPC 实现,以减少通信开销。例如 UNIX domain sockets、JTux。



2、对隐私保护的要求增加了更多的计算开销。问题在于未优化的基于软件的实现消耗了太多的 CPU 周期。近年来,由于 ASIC(如 GPU)或 FPGA(netFPGA)具有强大的计算能力,常被用来加速机器学习框架。例如,微软已经提出了一个成功的解决方案,通过在 FPGA 中实现深度模型来加速分布式 CNN[10]。这些解决方案为我们提供了在 FTL 基础设施中采用特定硬件进行数据加密的启发。



3、由于 FTL 涉及多个数据中心来训练一个模型,所以网络的状况极大影响了 FTL 的效率。各参与方之间密集的通信产生密集的网络流量,容易造成拥塞。对高效网络的需求促使我们探索采用先进的拥塞控制技术来提高数据传输效率的可能性。



2.3、Federated Adversarial Domain Adaptation




联邦学习在保护各参与方数据隐私性的同时保证了较好的模型训练效果,但是现有的方法忽略了以 Non-IID 方式收集每个节点上的数据的事实,从而导致节点之间的域迁移。例如,一台设备可能主要在室内拍照,而另一台则主要在室外拍摄。室内和室外的光线、背景都不通,所以不同设备中获取的图像数据一定是 Non-IID 的。在本文中,作者拟解决的问题是在无需用户任何额外监督的情况下,将知识从分散的节点迁移到具有不同数据域的新节点。作者将该问题定义为无监督联邦域自适应(Unsupervised Federated Domain Adaptation,UFDA),如图 9(a)所示。


本文聚焦于向联邦学习中引入直推式迁移学习中的领域自适应(Domain Adaption),提出了一种联邦对抗域适应方法(Federated Adversarial Domain Adaptation,FADA),通过对抗性技术解决联邦学习中的域迁移问题,如图 9(b)所示。通过为每个源节点训练一个模型并使用源梯度的聚合更新目标模型来保护数据隐私,与经典联邦学习不同,FADA 在保证数据分散学习模型的同时实现了减少域偏移。首先,作者从理论上分析了联邦域自适应问题,并构建了一个泛化界(Generalization Bound)。基于理论分析的结果,作者提出了一种有效的基于对抗性自适应和表示分离的自适应算法。此外,作者还设计了一个动态注意力模型来处理联邦学习中不同的收敛速度问题。


图 9. (a) 本文针对 UFDA 问题提出了一种方法,令模型在每个源域上分别训练,并利用动态注意力机制聚合其梯度来更新目标模型;(b) FADA 模型学习使用对抗性域对齐(红线)和特征分解器(蓝线)来提取域不变特征。


2.3.1 联邦域自适应的泛化界


首先,作者从理论上对联邦域自适应问题的泛化界进行定义。令 Ds 和 Dt 分别表示输入空间 X 上的源和目标分布,以及一个基本真值标记函数 g:X→{0,1}。假设定义为函数 h:X→{0,1},其误差为基本真值标记函数:




将假设 h 对 Ds 的风险和经验风险分别表示为 ∈_S(h)和 ∈_S^(h)。类似的,h 对 Dt 的风险和经验风险分别表示为 ∈_T(h)和 ∈_T……(h)。分布 D 和 D’之间的散度定义为:




对称散度空间 HΔH 表示为:




将在源和目标上实现最小风险的最优假设表示为:




h 的误差表示为:




定理 1. 设 H 为 VC - 维的假设空间,D^_S 和 D^_T 分别为 Ds 和 Dt 中提取的 m 大小样本的经验分布。对于每个 h∈H,在选择样本时,概率至少为 1-δ:


(1)



令 Ds 和 Dt 分别表示 UFDA 系统中的 N 个源域和目标域。在联邦域自适应系统中,Ds 分布在 N 个节点上,训练过程中数据不可共享。经典的域自适应算法以最小化下述目标风险为优化目标:




然而,在 UFDA 系统中,由于安全和隐私的原因,一个模型不能直接访问存储在不同节点上的数据。作者提出为每个分布式源域学习不同的模型:




目标假设 h_T 是 h_S 参数的聚合结果:




定理 2. (联邦域自适应的加权误差界)。设 H 是一个 VC 维的假设类,且有:




(Dt)^ 是由联邦学习系统中每个源域和目标域的 m 大小的样本分别导出的经验分布。对于每个 h∈H,任意权重α,在选择样本时,概率至少为 1-δ:


(2)



其中, 公式(2)中的界限是从公式(1)扩展而来的,如果只有一个源域存在(N=1),它们是等价的。公式 (2) 中的误差范围涉及多个假设。


2.3.2 联邦对抗域适应


2.3.2.1 注意力机制


在联邦域自适应系统中,不同节点上的模型具有不同的收敛速度。另外,源域和目标域之间的域迁移是不同的,导致一些节点对目标域没有贡献甚至是负迁移。为了解决这个问题,作者提出了动态注意力,它是源域梯度上的一个掩模。纳入动态注意力机制的原理是增加那些梯度对目标域有利的节点的权重,而限制那些梯度对目标域不利的节点的权重。具体来说,利用间隙统计(Gap Statistics)来评估无监督聚类算法(K-Means)对目标特征 f^t 的聚类效果。


假设有 K 个聚类,间隙统计计算如下:




其中,C_1, C_2, ... ,C_k,C_r 表示第 r 个聚类的观测指数,n_r=|C_r|。直观地说,较小的间隙统计值表明特征分布具有较小的类内方差。通过两个连续迭代之间的间隙统计增益来衡量每个源域的贡献,表示在目标模型用第 i 个源模型梯度更新之前和之后,聚类可以改进多少:(I_i)^gain=(I_i)^(p-1)-(I_i)^p,p 表征训练阶段。源域梯度掩模定义为:




2.3.2.2 联邦对抗对齐


由于域差异的存在,机器学习模型的性能急剧下降。作者提出了联邦对抗性对齐,将优化分为两个独立的步骤,一个特定领域的局部特征抽取器和一个全局鉴别器。具体包括:(1)对于每个域,训练一个本地特征提取器,Gi 对应 Di,Gt 对应 Dt,(2)对于每个(Di , Dt) 源域 - 目标域对,训练一
发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 透明七彩巨人
Email: weok168@gmail.com
© 2013- 2024 透明七彩巨人-tmqcjr.com   
SQL查询: 26
内存占用: 8.25MB
PHP 执行时间: 0.4