Press "Enter" to skip to content

Facebook与密歇根大学提出加快联合学习的新方法

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

 

最近基于隐私保护的机器学习受到很多关注,联邦学习(Federated Learning)算是其中落地最快最有潜力的技术。谷歌之后,我们在这个方面也做了一些工作。

关于作者

 

刘洪磊,Facebook 研究科学家,加州大学圣塔芭芭拉分校博士。 主要研究方向为自然语言理解,对话系统和推荐系统。 Facebook 强化和在线学习开源框架ReAgent作者和Facebook NLP 开源框架PyText贡献者。

 

 

随着机器学习模型不断被部署到现实世界中,其基本假设与用户使用需求间的不适也逐渐显现出来。其中一个假设便是,无论是对于单一机器还是分布于不同研究者控制下的机器,对于数据都有无限制的访问。然而由于用户对于隐私的考虑使得他们不愿意将数据从个人设备上传送出来,使得中心化的模型训练无法进行。

 

为了解决数据分散在各个用户设备中的问题, 研究人员提出了联合学习(Federated Learning)的方法来在设备端进行模型训练 ,通过将全局模型发送给用户,在设备端利用本地的用户数据完成局域梯度计算,随后再进行全局的梯度融合实现学习。

 

但由于下载和上传模型带来了较高的传输代价,研究人员们迫切需要寻找到一种降低传输成本的有效手段。虽然在联合学习中减小用户和服务器间的通信开销十分重要,先前的研究人员提出过基于上下文和设备的特点的方法来选取用户,但很少有方法可以有效改变选取用户的方式。

 

针对这一问题,来自于密西根大学和Facebook的研究人员们提出了一种称为 主动联合学习 (Activate Federated Learnng,AFL)的新方法,采取了与主动学习类似的思想,其用户选择策略主要根据目前的模型状态和每个用户自身的数据来决定。它能够优先在那些对模型提升较大用户设备上进行训练。

 

在主动学习的启发下,研究人员提出利用价值函数的的方法在用户端进行测评,并将对应的指标上传给服务器来确定在这一用户上进行训练所可能得到的效用。服务器在收集这些评测指标后,将其转换为接下来将要选择哪些用户参与训练的概率。 通过对用户数据在当前模型下进行价值函数采样,可以在保持精度的情况下将将整体的训练次数减少20-70% 。

 

虽然都需要在不完美的信息条件下进行选择,对于主动学习来说协变量是完全已知的,而候选数据点的label则是未知的;对于主动联合学习来说,每一个用户自己对于协变量和数据标签都是已知的,仅仅需要将结果上传给服务器。此外,在标准的主动学习过程中,可能利用无约束的方式选择独立的数据点;而对于主动联合学习来说在每一个用户上将利用所有的数据进行训练。

 

这一研究的目标在于如何选择子用户集来进行联合学习使得模型达到要求所需的训练次数最少。首先让我们来看看联合学习的流程:假设训练数据是分布在多个用户的设备上的,首先需要选择一部分用户子集,并将模型发送到这些用户设备上去;随后每一个用户利用自己的本地数据对模型进行训练,并更新模型的参数;在完成参数更新后,它们将被送回服务器进行聚合,利用联合ADAM方法产生下一个全局模型的参数。在先前的方法中,选择子用户集进行训练时一般使用均匀随机的方法,并且每一个训练周期是相互独立的。而 这篇文章的目的就是为了寻找一种更好的用户子集选择方法,大幅减少所需的训练次数 。

 

 

主动联合学习

 

在主动学习的启发下,研究人员们提出了主动联合学习的框架。在每一个训练周期内,它基于每一个用户的数据对于全局训练有效性的价值函数来优化用户子集的选取。在每一次测评的时候,每一个用户都会根据价值函数向服务器返回一个对应的价值指标,而服务器将基于这些指标来计算下一次训练时所需要的采样分布。虽然指标是模型参数的函数,但由于传输模型参数的成本很高,所以这一方法仅仅从某次循环中入选训练的子集中收集新的指标。

 

 

其中v为第k个用户在第t次训练后的指标, 则为价值函数,x,y为设备本地的数据。U为用户子集S中的一个用户。

 

理想情况下价值函数的计算需要最小的增量计算代价,这主要是由于价值计算在用户设备端的硬件上进行。同时也要尽量避免暴露用户端的数据。下图显示了整个主动联合学习的流程,用户将计算的价值传送给服务器,服务器将其价值指标转换为每个用户在下一次训练时被选中的概率,最后服务器将利用这些概率选择出下一次参与训练的用户子集,而这些用户子集对于训练整体的贡献相比于随机均匀选取更大。

 

 

将用户数据上的损失作为价值函数是一个十分自然的想法:

 

 

由于在训练过程中已经进行了计算,损失函数不会带来额外的计算增益。同时它也能随着模型在用户数据上表现的恶化而不断提高,有效地显示了模型的性能。此外损失函数在数据中出现需要的结构时扮演了重采样的角色。如果存在极度不平衡或者弱可分的类别,少数类别的数据点将会得出比多数类别更高的损失。这就使我们更为偏好拥有更多少数类别数据的用户,对少数类别进行模拟重采样。同样如果噪声依赖于到分类边界的距离,那幺可以利用损失函数基于重采样策略来重复边缘。

 

最后对于具有同样价值的数据点来说,具有数据越多的用户将获得更多的价值。更重要的是,这样对于数据的自适应不需要用户知道所要探索的特定结构,这在信息受限的联合学习条件下是十分重要的。

 

保护用户的隐私也是十分重要的问题,即使只向用户收集一个简单的价值数据其中也包含了大量的信息。研究人员在实践过程中利用了差分隐私的策略来进行隐私保护。然而差分隐私中噪声的引入会误导服务器对于训练用户集的选择。那幺是否存在既能保护隐私又能保持训练稳定的结构呢?

 

研究人员发现大多数价值函数在有限的几个训练周期内不会发生剧烈变化,那幺我们 可以在查询是否有更新值之前先查询指标是否有剧烈变化,以此来减小整体的查询次数 。同时可以将价值函数设计成更为匹配差分隐私的形式,例如让价值函数具有无界的敏感度,并对它进行修剪以便提供差分隐私。但为主动联合学习提供隐私保障还面临着诸多挑战,需要在未来进行更为深入的工作。

 

 

实验结果

 

为了验证主动联合学习的效果,研究人员在Reddit数据和Sticker Intent 数据集上与标准的均匀用户选择法进行了比较。

 

下面显示了具体的算法流程,其中alpha1表示具有最小价值的用户其价值被设置为了负无穷,但依然具有被采样的可能性。alpha2则代表了softmax温度,alpha3代表随机选择的用户部分。

 

 

下图限制了两种采样方法下不同数据集上的模型表现,主动联合学习在达到相同性能的情况下所需的训练次数要少20-70%。

 

 

如果想要了解更多详细的问题定义、实验结果和参考资料,请参看论文:

 

https://arxiv.org/pdf/1909.12641.pdf

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注