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

王新民 编译自 Google Research Blog 量子位 报道 | 公众号 QbitAI

传统的机器学习方法需要将训练数据集中到一台机器或一个数据中心里,Google已经有强大的云端服务器设备,来对这些数据进行处理。现在,为了训练用户与移动设备进行互动的定制模型,Google又引入了一种新方法:联合学习(Federated Learning)

联合学习能够在所有训练数据都保存在移动设备本地的情况下,让手机能够同时学习一个共享的预测模型。这种方法让机器学习的训练过程不再需要将数据存储到云端。

本地模型是在设备上完成模型训练过程,对移动设备的操作目的进行预测,如运动视觉接口(Mobile Vision API)和设备智能回答(On-Device Smart Reply),但是联合学习方法比本地模型还要复杂些。

它的工作原理如下:在设备下载当前最新的共享模型后,通过手机上的用户数据进行学习来改进这个模型,然后将网络权值的变化部分压缩为一个小型更新包。并将该模型的更新部分用加密通信方法上传到云端,立即与其他用户的更新部分进行平均,以改善共享预测模型。

所有的训练数据都保留在用户设备上,并且每个用户的权值部分在改善预测模型后,会立即删除,不会存储在云端。

图1:根据用户手机的使用情况来更新共享模型(A),将用户更新信息集中起来(B),改善云端共享模型的权值(C),然后重复该过程。

应用联合学习方法,可以产生更智能的模型,同时具有更低的延迟和更少的功耗,能够确保用户的隐私。而且这种方法具有另一个直接的好处:除了能够更新云端的共享模型,并且用户手机上的改善模型能立即应用到该设备中,根据特定用户使用手机的习惯来为用户提供个性化的体验。

我们目前在安卓手机上使用谷歌输入法的情况下,使用Gboard虚拟键盘来测试联合学习实际效果。当Gboard键盘列出所有查询建议后,手机设备会存储当前上下文的有关信息以及用户是否点击了该建议。在联合学习过程中,能够通过设备的历史输入来迭代改善Gboard键盘的查询建议模型。

为了使联合学习方法成为现实,我们必须克服许多算法和技术上的挑战。在典型的机器学习系统中,在随机梯度下降(SGD)的优化算法处理大型数据集时,能够将计算量均匀分配到各个云端服务器上。

这种高度迭代的优化算法在连接到训练数据时,需要保持低延迟和高吞吐量。但是在应用联合学习的系统中,用户数据以非常不均匀的方式分布在数百万台设备上。此外,这些设备显然具有更高的延迟以及较低的吞吐量连接,并且只能间断性地进行模型训练。

由于带宽和延迟的限制,我们通过改进得到了联合平均算法(Federated Averaging algorithm)。与一个最简单的随机梯度下降优化算法相比,这种算法在训练深度网络时,所用通信量减少了10到100倍。

其关键思想是利用目前移动设备带有的强大处理器来计算比简单梯度算法质量更高的更新方法。由于这种算法只需要较少高质量的更新迭代步骤,即可生成良好的模型,所以训练过程可以减少通信量。

由于通常上传速度比下载速度慢得多,因此我们还开发出了一种创新的方法,通过使用随机旋转和量化方法来压缩更新信息,从而将上传的通信成本降低了原来的100倍。

虽然这些方法只适用于深度网络的训练过程中,但我们还针对点击率预测等问题,设计了高维稀疏凸模型的算法。

将这项技术应用到使用Gboard虚拟键盘的数百万个不同手机中,需要一个复杂的技术来实现。移动设备在训练时使用的是迷你版本的TensorFlow。只有确保设备处于空闲状态,连接到无线网络后才进行模型训练,因此对手机的性能没有影响。

图3:用户手机只有当不会对操作体验产生负面影响时,才会参与到联合学习中来

同时,系统需要以一种安全,高效,可扩展和容错性好的方式进行通信和更新联合学习模型。只有结合了对基础设备的研究,才能使联合学习的应用成为可能。

联合学习方法在运行时,不需要将用户操作数据存储在云端中,但是我们并没有就此停止研究。

我们开发了一种使用加密技术的安全数据融合(Secure Aggregation)协议,如果100或1000个用户参与,中心服务器只能通过解密得到平均更新信息,在平均操作之前无法得到单个用户设备的更新信息。

这个协议第一次切实可行地解决了深层网络规模大小和现实连接吞吐量的约束问题。我们也设计了联合平均方法(Federated Averaging),因此中心服务器只需要使用安全数据融合协议即可获得平均更新信息。

然而协议具有普适性,所以也可以应用于其他问题。我们正在努力推进这个协议的产品化,并希望在不久的将来能够应用到联合学习应用程序。

我们的工作只是解决了模型目前存在的表面问题。联合学习并不能解决所有机器学习问题,如通过精准标注样本来学习识别不同的狗品种。而对于许多其他模型,训练所需的数据集已经存储在云端,如训练Gmail垃圾邮件辨别的分类器。

所以Google将继续推进最先进的基于云端的机器学习技术,但是我们也会致力于这方面的研究,来扩大可以通过联合学习解决的问题范围。不只是用于Gboard查询建议,我们还希望基于实际键入手机的信息来改善输入法具有定制风格的语言模型,基于人们所看到、分享或删除的照片类别,来调整显示的照片顺序。

在目前的云端模型训练中,信息传递成本是一个很重要的限制因素。在联合学习方法的启发下,我们希望相关机器学习研究人员能够采用新的工具和新的思维方式,在不需要直接访问或标注原始数据的情况下,完成模型的开发、训练和评估过程。

为了用户的操作体验,我们希望应用联合学习方法,来解决更多有价值的技术挑战。我们已经发布了相关工作成果,希望在机器学习社区中和大家进行讨论。

原文发布于微信公众号 - 量子位(QbitAI)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磐创AI技术团队的专栏

推荐 | 7个你最应该知道的机器学习相关github项目

来源 | Analytics Vidhya 编译 | 磐石 出品 | 磐创AI技术团队 磐创AI导读:本文介绍了github上最近比较火的7个机器学习项目,每...

37640
来自专栏灯塔大数据

每周学点大数据 | No.57基于内容的推荐方法

NO.57 基于内容的推荐方法 Mr. 王:最常见的一种方法就是基于内容的推荐。基于内容的推荐思想非常的清晰、简单,就是向用户推荐与他评分高(喜欢)项目相类似的...

361100
来自专栏吉浦迅科技

AMD MLP:基于OpenCL的深度学习工具

AMD-MLP 深度学习技术 AMD-MLP是AMD中国异构计算部门开发的私有软件,其开发人员都是GPU计算和应用方面的专家,在使用异构计算技术提高软件性能方...

55650
来自专栏机器之心

业界 | Uber推出机器学习平台Michelangelo:全面处理工作流程推动AI民主化

选自Uber 作者:JEREMY HERMANN、MIKE DEL BALSO 机器之心编译 参与:黄小天、路雪、蒋思源 近日 Uber 提出了他们的机器学习平...

39660
来自专栏AI研习社

为计算机视觉生成庞大的、合成的、带标注的、逼真的数据集

我想要给大家分享一个我们在Greppy一直使用的测试版工具,其被称之为”Greepy Metaverse“,其通过快速、简便地为机器学习生成大量训练数据,来辅助...

13520
来自专栏目标检测和深度学习

厉害了,我用“深度学习”写了个老板探测器(附源码)

如果上班的时候想放松一下,或者直说想偷偷懒,看点和工作无关的网页,这时候万一老板突然出现在背后,会不会感到很难堪呢? 有的浏览器设置了boss按键,手快的人还可...

37170
来自专栏AI科技评论

干货 | 深度神经进化加速:只需 4 个小时就在个人电脑上训练出强化学习模型

近日 Uber AI Lab 开源了一组进化算法代码,它的特点是可以高速(同时也更廉价地)进行进化策略研究。根据介绍,训练神经网络玩 Atari 游戏的时间可以...

12120
来自专栏张俊红

数据分析学习笔记——数据可视化

数据分析学习笔记系列——数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍《数据之美—一本书学会可视化设计》的学习后整理所得。全篇主要围绕数据可视化的5个步...

38990
来自专栏新智元

谷歌推出“联合学习”,上千万手机协同训练一个共享神经网络模型

【新智元导读】Google Research博客今日更新,介绍了他们的一项新工作“联合学习”(Federated Learning)。这种新的方法不将训练数据集...

1.6K110
来自专栏AI科技评论

谷歌机器学习白皮书全解析 43条黄金法则(一)

编者按:此文由AI科技评论独家编译,未经许可拒绝转载。此白皮书为谷歌总结的机器学习(ML)最优实践方法,浓缩了其多年技术积累与经验,尤其是 Youtube、Go...

47460

扫码关注云+社区

领取腾讯云代金券