开发 | 分布式机器学习时代即将来临?谷歌推出“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研习社

人脸识别哪家强?亚马逊、微软、谷歌等大公司技术对比分析

哪一个人脸识别 API 是最好的?让我们看看亚马逊的 Rekognition、谷歌云 Vision API、IBM 沃森 Visual Recognition ...

2963
来自专栏AI研习社

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

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

37211
来自专栏养码场

最适合练手30个的机器学习开源项目,赶紧收藏!

“ 场主,这篇文章炒鸡棒!内涵许多实战项目,很适合机器学习刚入门的小伙伴磨练来提升自己的技术水平。这些优质的开源项目都来自于GitHub上,排名十分靠前,反正很...

981
来自专栏人人都是极客

AI 芯片和传统芯片的区别

比如,自动驾驶需要识别道路行人红绿灯等状况,但是如果是当前的CPU去算,那么估计车翻到河里了还没发现前方是河,这是速度慢,时间就是生命。如果用GPU,的确速度要...

1334
来自专栏CSDN技术头条

Github上的十大机器学习项目

Github上的十大机器学习项目涵盖了一系列函数库、框架和教学资源。我们来看看别人使用的工具和学习的资源。 开源软件是数据科学很重要的一部分。 根据最近的KDn...

30210
来自专栏大数据挖掘DT机器学习

当推荐算法开源包多如牛毛,为什么我们还要专门的推荐算法工程师

作为一个推荐系统业余爱好者,在机器学习领域的鄙视链中,我感觉一直地位不高,时常被搞NLP CV语音等高科技技术的朋友鄙视。 最近甚至被人问,推荐算法开源包多如牛...

4069
来自专栏企鹅号快讯

机器学习必知的15大框架

机器学习工程师是开发产品和构建算法团队中的一部分,并确保其可靠、快速和成规模地工作。他们和数据科学家密切合作来了解理论知识和行业应用。数据专家和机器学习工程师的...

2248
来自专栏数值分析与有限元编程

高斯消去法解方程组及Python实现

Python 是一种高级计算机程序设计语言。对于初学者和完成普通任务, Python 语言是非常简单易用的。 对于方程组Ax=b,增广矩阵为[A b]。第一次消...

6707
来自专栏机器之心

重磅 | 谷歌发布TPU研究论文,神经网络专用处理器是怎样炼成的?

选自Google Cloud Platform 作者:Norm Jouppi 机器之心编译 在去年的谷歌 I/O 开发者大会上,谷歌宣布发布了一款新的定制化硬...

3309
来自专栏TEG云端专业号的专栏

全国知识图谱与语义计算大会 - 实体发现与链接比赛总结

一 背景 互联网大数据时代中,随着机器语义理解需求的日益增长,知识图谱,即各类实体、概念及其之间的语义关系,日益成为大数据时代知识表示的主要形态之一,并在学术界...

9957

扫码关注云+社区

领取腾讯云代金券