开发 | 分布式机器学习时代即将来临?谷歌推出“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 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

需要密切关注的六大人工智能/机器学习领域

1663
来自专栏人工智能头条

谷歌语音转录背后的神经网络

1254
来自专栏数据派THU

独家 | 如何改善你的训练数据集?(附案例)

这张幻灯片是Andrej Karpathy 在Train AI 演讲的一部分,我很赞同它表达的观点。它充分体现了深度学习在研究和应用上的差异。学术论文几乎全部集...

744
来自专栏ml

Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)

注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线, 也就是对照物,参照物. 这片论文中,作者没有...

3609
来自专栏机器之心

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

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

26010
来自专栏PPV课数据科学社区

分布计算 | 大数据机器学习系统研究进展

要实现高效的大数据机器学习,需要构建一个能同时支持机器学习算法设计和大规模数据处理的一体化大数据机器学习系统。研究设计高效、可扩展且易于使用的大数据机器学习系统...

3385
来自专栏专知

【斯坦福大学吴恩达博士生Ziang Xie】深度文本生成最佳实战指南(附指南下载)

【导读】人们期待未来有一天计算机能够像人类一样会写作,能够撰写出高质量的自然语言文本。文本自动生成就是实现这一目的的关键技术。按照不同的输入划分,文本自动生成可...

5107
来自专栏AI科技评论

干货 | AAAI 2018 论文预讲:当强化学习遇见自然语言处理有哪些奇妙的化学反应?

AI科技评论按:随着强化学习在机器人和游戏 AI 等领域的成功,该方法也引起了越来越多的关注。在近期 GAIR 大讲堂上,来自清华大学计算机系的博士生冯珺,为大...

4267
来自专栏华章科技

科普:大数据、人工智能、机器学习与深度学习都是什么?有什么关系?

导读:大数据、人工智能是目前大家谈论比较多的话题,它们的应用也越来越广泛、与我们的生活关系也越来越密切,影响也越来越深远,其中很多已进入寻常百姓家,如无人机、网...

561
来自专栏python开发者

网络验证码--你到底是爱它还是恨它?

网络验证码--你到底是爱它还是恨它? 互联网安全防火墙(1)--网络验证码的科普 1   戏言部分 为了在网络上吸引大家读这个文章,在想标题的时候,也是够了。本...

1920

扫描关注云+社区