开发 | 分布式机器学习时代即将来临?谷歌推出“Federated Learning”

传统机器学习方法,需要把训练数据集中于某一台机器或是单个数据中心里。谷歌等云服务巨头还建设了规模庞大的云计算基础设施,来对数据进行处理。现在,为利用移动设备上的人机交互来训练模型,谷歌发明了一个新名词——Federated Learning。

谷歌表示,这会是机器学习的另一大未来发展方向。

那么,什么是 Federated Learning?

它意为“联合学习”——能使多台智能手机以协作的形式,学习共享的预测模型。与此同时,所有的训练数据保存在终端设备。这意味着在 Federated Learning 的方式下,把数据保存在云端,不再是搞大规模机器学习的必要前提。

最重要的一点:Federated Learning 并不仅仅是在智能手机上运行本地模型做预测 (比如 Mobile Vision API 和 On-Device Smart Reply),而更进一步,让移动设备能够协同进行模型训练。

工作原理

Federated Learning 的工作方式如下:

  • 智能手机下载当前版本的模型
  • 通过学习本地数据来改进模型
  • 把对模型的改进,概括成一个比较小的专门更新
  • 该更新被加密发送到云端
  • 与其他用户的更新即时整合,作为对共享模型的改进

所有的训练数据仍然在每名终端用户的设备中,个人更新不会在云端保存。

整个过程有三个关键环节:

  1. 根据用户使用情况,每台手机在本地对模型进行个性化改进
  2. 形成一个整体的模型修改方案
  3. 应用于共享的模型

该过程会不断循环。

谷歌表示,Federated Learning 的主要优点有:

  • 更智能的模型
  • 低延迟
  • 低功耗
  • 保障用户隐私

另外,在向共享模型提供更新之外;本地的改进模型可以即时使用,这能向用户提供个性化的使用体验。

谷歌输入法

目前,谷歌正在谷歌输入法 Gboard 上测试 Federated Learning。当 Gboard 显示推荐搜索项,不论用户是否最终点击了推荐项,智能手机会在本地存储相关信息。Federated Learning 会对设备历史数据进行处理,然后对 Gboard 检索推荐模型提出改进。

与推荐算法很像,但模型更新先在本地发生,再到云端整合。

技术挑战与解决方案

谷歌表示,实现 Federated Learning 有许多算法、技术上的挑战,比方说:

在典型的机器学习系统中,超大型数据集会被平均分割到云端的多个服务器上,像随机梯度下降(SGD)这样的优化算法便运行于其上。这类反复迭代的算法,与训练数据之间需要低延迟、高吞吐量的连接。而在 Federated Learning 的情况下,数据以非常不平均的方式分布在数百万的移动设备上。相比之下,智能手机的延迟更高、网络吞吐量更低,并且仅可在保证用户日常使用的前提下,断断续续地进行训练。

为解决这些带宽、延迟问题,谷歌开发出一套名为 Federated Averaging 的算法。相比原生的 Federated Learning 版本随机梯度下降该算法对训练深度神经网络的通讯要求,要低 10 到 100 倍。谷歌的核心思路,是利用智能移动设备的强大处理器来计算出更高质量的更新,而不仅仅是优化。做一个好模型,高质量的更新会意味着迭代次数的减少。因此,模型训练能够减少通讯需求。

由于上行速度一般比下行速度慢很多,谷歌还开发了一种比较新奇的方式,将上行通讯需求再次减少的 100 倍之多:使用随机 rotation 和 quantization 来压缩更新。虽然这些解决方案聚焦于训练深度网络,谷歌还设计了一个针对高维稀疏 convex 模型的算法,特别擅长点击率预测等问题。

在数百万不同的智能手机上部署 Federated Learning,需要非常复杂的技术整合。设备本地的模型训练,使用的是迷你版的 TensorFlow。非常细致的 scheduling 系统,保证只有用户手机闲置、插着电、有 Wi-Fi 时才训练模型。所以在智能手机的日常使用中,Federated Learning 并不会影响性能。

谷歌强调, Federated Learning 不会在用户体验上做任何妥协。保证了此前提,用户手机才会加入 Federated Learning。

然后,该系统需要以安全、高效、可扩展、可容错的方式对模型更新进行整合。

Federated learning 不需要在云端存储用户数据。但为避免用户隐私泄露,谷歌更进一步,开发了一个名为 Secure Aggregation、使用加密技术的协议。由于此草案,系统服务器只能够解码至少 100 或 1000 名用户参与的平均更新。在整合以前,用户的个体更新不能被查看。

这是世界上第一个此类协议,对于深度网络层级的问题以及现实通讯瓶颈具有使用价值。谷歌表示,设计 Federated Averaging,是为了让服务器只需要整合后的更新,让 Secure Aggregation 能够派上用场。另外,该草案具有通用潜力,能够应用于其他问题。谷歌正在加紧研发该协议产品级的应用执行。

小结

谷歌表示,Federated learning 的潜力十分巨大,现在只不过探索了它的皮毛。但它无法用来处理所有的机器学习问题。对于许多其他模型,必需的训练数据已经存在云端 (比如训练 Gmail 的垃圾邮件过滤器)。因此,谷歌表示会继续探索基于云计算的 ML,但同时“下定决心”不断拓展 Federated Learning 的功能。目前,在谷歌输入法的搜索推荐之外,谷歌希望根据手机输入习惯改进语言模型;以及根据图片浏览数据改进图片排列。

对 Federated Learning 进行应用,需要机器学习开发者采用新的开发工具以及全新思路——从模型开发、训练一直到模型评估。

今后,Federated Learning 是否会成为 AI 领域的一大主题,还是像网状网络技术那样停留在实验室中,我们拭目以待。

via googleblog

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

【深度】机器学习如何帮助Youtube 实现高效转码?

GAIR 今年夏天,雷锋网将在深圳举办一场盛况空前的“全球人工智能与机器人创新大会”(简称GAIR)。大会现场,雷锋网将发布“人工智能&机器人Top25创新企...

2924
来自专栏AI研习社

看过10万个视频 AI才能识别你的脑残操作 | 2分钟读论文

来源 / Two Minute Papers 翻译 / 朱婷 校对 / 李宇琛 整理 / 雷锋字幕组 AI 研习社出品系列短视频《 2 分钟论文 》,带大家用...

2835
来自专栏AI研习社

分布式机器学习时代即将来临?谷歌推出“Federated Learning”

传统机器学习方法,需要把训练数据集中于某一台机器或是单个数据中心里。谷歌等云服务巨头还建设了规模庞大的云计算基础设施,来对数据进行处理。现在,为利用移动设备上的...

33611
来自专栏腾讯移动品质中心TMQ的专栏

【AI专栏】识别类评测之数据篇

区别于传统测试的重路径,识别类评测更重数据。识别类的输入不被限制在软件可控范围内,而是包罗万象各种可能。不同的输入数据组合,得出来的评测结论也会截然不同。手机Q...

3120
来自专栏AI科技评论

动态 | MIT CSAIL最新研究:将AI应用于流媒体视频,可获得更好的播放体验

AI科技评论按:在网上看视频时,缓冲或色块问题时有发生,极其影响观看体验。现在,MIT计算机科学与人工智能实验室(CSAIL)利用神经网络算法,最大化地缓解了这...

3508
来自专栏云计算D1net

谷歌推出云自然语言API

将自然语言处理(NLP)的先进成果,从前沿研究的小世界里拿出来,送到普通的数据科学家和软件工程师手中,这已经成为一场运动。7月20日,谷歌也加入进来,发布了测试...

3295
来自专栏量子位

Google新推联合学习:让手机共享一个模型,数据存在本地

王新民 编译自 Google Research Blog 量子位 报道 | 公众号 QbitAI 传统的机器学习方法需要将训练数据集中到一台机器或一个数据中心里...

2556
来自专栏新智元

【深度】TensorFlow or TensorSlow,谷歌基准测试为何不给力?(附Google内部员工测试代码下载)

11月9日Google发布了第二代深度学习引擎TensorFlow,引起业内广泛关注。发布后业内人士热议的一个话题是:这个引擎能否成为Google所说的平台级产...

4354
来自专栏机器之心

学界 | 谷歌提出协同机器学习:通过分散的手机更新同一个云端模型

选自Google Blog 作者:Brendan McMahan、Daniel Ramage 机器之心编译 参与:微胖、韩天哲 标准的机器学习方法要求在一个机器...

26410
来自专栏人工智能头条

在机器学习模型运行时保持高效的方法

1102

扫码关注云+社区