谷歌推出“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 进行应用,需要机器学习开发者采用新的开发工具以及全新思路——从模型开发、训练一直到模型评估。

原文发布于微信公众号 - BestSDK(bestsdk)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人人都是极客

AI 芯片和传统芯片的区别

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

1394
来自专栏人工智能头条

聊天机器人中的深度学习技术(引言)

2727
来自专栏养码场

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

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

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

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

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

1K7
来自专栏机器之心

观点 | TensorFlow sucks,有人吐槽TensorFlow晦涩难用

选自nicodjimenez 机器之心编译 参与:李泽南、刘晓坤 作为当今最流行的深度学习框架,TensorFlow 已经出现了两年之久。尽管其背后有着谷歌这样...

33710
来自专栏AI研习社

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

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

2973
来自专栏企鹅号快讯

机器学习必知的15大框架

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

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

21个必知的数据科学面试题及答案

Q1.解释什么是正则化,以及它为什么有用。 回答者:Matthew Mayo 正则化是给模型添加一个调优参数的过程,来引导平滑以防止过拟合。(参考KDnugge...

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

【推荐】飞林沙:商品推荐算法&推荐解释

这是今天看到的一篇蛮有新意的讲稿,由于不是一篇完整的论文,所以理解起来稍微有些困难,就顺着写个笔记,仅供参考。 Ref: http://www.wsdm-con...

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

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

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

6717

扫码关注云+社区

领取腾讯云代金券