专栏名称: 谷歌开发者
Google中国官方账号。汇集Android, Chrome, Angular等移动和网络开发技术、Google Play和AdMob等开发者成长、优化和变现平台。
目录
51好读  ›  专栏  ›  谷歌开发者

Google研究 | 联合学习:无需集中存储训练数据的协同机器学习

谷歌开发者  · 公众号  · 科技媒体  · 2017-04-27 12:34

正文

请到「今天看啥」查看全文



我们目前正在 Android 版 Gboard(即 Google 键盘)中测试联合学习。当 Gboard 显示建议的查询内容时,您的手机在本地存储与当前上下文以及您是否点击此建议有关的信息。联合学习处理设备上的历史记录,为 Gboard 的查询建议模型的后续迭代提出改进建议。


要实现联合学习,我们必须克服算法和技术上的诸多挑战。在典型的机器学习系统中,对大型数据集执行类似随机梯度下降 (SGD) 这样的优化算法时,会将数据集均匀地分散在云中的不同服务器上。这种高度迭代的算法要求与训练数据之间保持低延迟时间、高吞吐量的连接。而在联合学习环境中,数据很不均匀地分散在数以百万计的设备之间。此外,相比之下,这些设备的连接的延迟时间要长很多,而吞吐量却低很多,并且只能间歇性用于训练。


这些带宽和延迟时间上的限制促使我们设计出联合平均算法,此算法训练深度网络所用的通信资源不到最初 SGD 联合版本的 1/10-1/100。关键在于利用现代移动设备中强大的处理器来计算比简单梯度方法质量更高的更新。由于只需较少的优质更新迭代就可生成适当的模型,训练使用的通信资源大大减少。由于上传速度通常远低于下载速度,我们还研究出了一种新方法,通过使用随机旋转和量化的方式压缩更新,使上传通信开销最多可降至之前的 1/100。这些方法主要用于深度网络训练,我们还为擅长解决点击率预测等问题的多维稀疏凸集模型设计了多种算法。


将此技术部署到数以百万计运行 Gboard 的手机,需要一整套成熟的技术。设备端训练采用了迷你版 TensorFlow。审慎地计划,确保仅在设备处于空闲、通电状态并使用免费的无线连接时进行训练,以便不影响手机的性能。


仅在不会影响您的体验的情况下,才让您的手机参与联合学习。


然后,系统需要以安全、高效、可扩展和容错的方式传输和聚合模型更新。只有将研究与此基础架构相结合,才能从联合学习中受益。







请到「今天看啥」查看全文