前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手机里跑个 AI 模型 | 谷歌 Federated Learning 联盟学习

手机里跑个 AI 模型 | 谷歌 Federated Learning 联盟学习

作者头像
数说君
发布2018-03-28 16:55:49
1.7K0
发布2018-03-28 16:55:49
举报
文章被收录于专栏:数说工作室数说工作室

各位数据大咖,还记得自己的跑模型的心路历程么?我想大家都在经历着下面的一个或多个阶段:

  • 论文答辩前夕,把自己敲进去的三千多条数据放进SAS中,哗的一下模型出来了,兴奋不已,感觉前途一片光明;
  • 将数据库中几G的本地数据导入SAS中,点击运行,机器轰然作响,几秒的时间模型出来了,感觉自己离CEO又进了一步。
  • 在服务器上跑数据,一天过去,结果出来了,发现代码敲错了一个地方,CAO,再等一天吧。
  • 在分布式集群上跑数据,稍微酷炫一点的模型,就要耗时三五天,因为数据量实在太大了。

数据分析师在进阶,工具在进阶,但数据也在进阶!

传统机器学习方法,需要把训练数据集中于某一台机器或是单个数据中心里,为了满足逐渐增加的数据量级,还要不断加机器、不断建设基础设施。

现在,谷歌研发出一种训练 AI 的新模式,可以直接在用户的手机上训练并改进 AI 算法,数据都保存在终端手机里。更神奇的是,多台手机之间还能进行协作训练,共享预测模型。

它有一个很霸气的名字——Federated Learning,联盟学习!

工作原理

Federated Learning 的工作流程如下:

  • 手机下载现有模型
  • 用手机的本地数据来训练模型
  • 训练好后,迭代更新,并把更新的内容加密上传到云端
  • 与其他用户的更新进行整合,作为对共享模型的改进
  • 该过程不断被重复,改进后的共享模型也会不断的被下载到本地。

(模型训练循环图,图来源于googleblog)

模型优点

这样一种「联盟学习」的模式,有何优点?数说君根据谷歌的官方文章,给出如下总结:

  • 更智能的模型(smarter models)
  • 低延迟(lower latency) 谷歌开发了 Federated Averageing 算法,能大大降低延迟,具体可见「挑战与解决」。
  • 低功耗(less power consumption)
  • 保障用户隐私(ensuring privacy) Federated learning 不需要在云端存储用户数据。但为避免用户隐私泄露,谷歌更进一步还开发了一个名为 Secure Aggregation、使用加密技术的协议(见参考资料(2))。
  • 保障用户体验。 Federated Learning 在训练本地模型时,使用简化版的 TensorFlow,配合精心的程序调度,并确保训练模型只在手机在闲置、插着电、有 Wi-Fi 时才进行。因此,Federated Learning 不会影响手机的日常使用。

模型应用

目前,谷歌已经在谷歌输入法 Gboard 上测试该模型。

有个背景数说君要先介绍一下,Gboard 不仅是一个简单的输入法,它还在键盘上集成了 Google 搜索,在输入文字的同时拥有了强大的第二大脑。

当使用 Gboard 集成的 Google搜索 功能时,Google搜索 会显示推荐搜索项,此时手机会在将搜索内容储存在本地。Federated Learning 会对本地的这些数据进行处理训练, 以用来改进 Gboard 检索推荐模型。

挑战与解决

然而问题还是有的,谷歌承认实现 Federated Learning 还有一些技术上的挑战:

在典型的机器学习系统中,超大型数据集会被平均分割到云端的多个服务器上。像随机梯度下降(SGD)这样的优化算法很适合在此上面运行。因为这些反复迭代的算法,需要与训练数据集之间有低延迟、高流量的连接。 但在 Federated Learning 系统中,数据以非常不平均的方式分布在数百万的移动设备上。而且,智能手机的延迟更高、吞吐的流量更低,并且仅可在保证用户日常使用的前提下,断断续续地进行训练。

为解决这些问题,谷歌专门开发出了一套名为 Federated Averageing 的算法(见参考资料(3)),相比于原生 SGD 算法,该算法在训练深度神经网络时,只需要10%~1%的网络通信要求。

由于上传速度一般都会比下载速度慢很多,为把上传速度再提升,谷歌为此还通过使用 random rotation 和 quantization 来压缩更新,把上传速度再减少100倍(见参考资料(4))。

另外,谷歌还专门设计了一个针对高维稀疏 convex 模型的算法 Federate Optimization,该算法特别擅长解决点击率预测等问题(见参考资料(5))。

未来,谷歌会不断拓展 Federated Learning 的功能,并希望能根据手机输入习惯改进语言模型;以及根据图片浏览数据改进图片排列等。

参考资料:

(1) Federated Learning: Collaborative Machine Learning without Centralized Training Data,https://research.googleblog.com/2017/04/federated-learning-collaborative.html

(2) Practical Secure Aggregation for Privacy Preserving Machine Learning,http://eprint.iacr.org/2017/281

(3) Communication-Efficient Learning of Deep Networks from Decentralized Data,https://arxiv.org/abs/1602.05629

(4) Federated Learning: Strategies for Improving Communication Efficiency, https://arxiv.org/abs/1610.05492

(5) Federated Optimization: Distributed Machine Learning for On-Device Intelligence,https://arxiv.org/abs/1610.02527

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数说工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档