专栏首页数据探索君什么是Federated Learning(联邦学习)?
原创

什么是Federated Learning(联邦学习)?

什么是Federated Learning(联邦学习)

federated learning是一种训练数据去中心化的机器学习解决方案,最早于2016年由谷歌公司提出,目的在于通过对保存在大量终端的分布式数据开展训练学习一个高质量中心化的机器学习模型,解决数据孤岛的问题。

Federated Learning示意图

federated learning不断循环以下步骤,直至训练出最终模型:

  1. 在符合条件的用户集合中挑选出部分用户,分别从服务器端下载当前的模型;
  2. 被选择的用户用各自的数据训练模型;
  3. 各个用户将训练好的模型传输给服务器;
  4. 服务器将接收到的各个用户的模型聚合成一个最终的模型。

2个参与角色:用户(client)- 服务器(server)

用户的特点:

  • 数据存在用户端,不同用户之间以及用户与服务器之间的数据不共享(最大的特点)
  • 数量大
  • 用户网络状态允许不稳定,可以随时被选择加入或退出训练
  • 用户数据的不平衡性,有些用户训练数据量大,有些用户训练数据少
  • 典型的用户:比如手机终端

服务器的特点:

  • 通过迭代方式不断聚合来自不同用户训练好的模型,训练出一个最终的模型。

如何保证安全性

各个用户将训练好的模型加密后传输给服务器,服务器仅仅可以将接收到的来自多个用户聚合后才能成功解密,而无法对单个模型解密。用户端的加密算法通过添加零和掩码来加扰训练好的模型结果,服务器端聚合各个模型后噪声互相抵消,从而无法反推出各个用户模型的训练数据达到安全性保护的效果。

federated learning的优点

  • 保护用户的隐私,服务器不获取用户的数据
  • 分布式的数据架构,减轻数据集中存储的压力

federated learning的局限性

  • 需要用户对齐或特征对齐才能共同训练模型
  • 模型传输(信息传递)存在一定的局限
  • 用户获取的间歇性
  • 数据获取的间歇性
  • 大规模的分布式网络结构带来压力

当前开源框架

目前的federated learning 开源框架主要有两个:

  • 谷歌的TensorFlow Federated (TFF)框架
  • 微众银行的federated learning开源框架FATE

[Referent]

[1] Federated Learning: Collaborative Machine Learning without Centralized Training Data, 2017. https://ai.googleblog.com/2017/04/federated-learning-collaborative.html.

[2] Federated Learning. https://federated.withgoogle.com.

[3] Federated Learning: Strategies for Improving Communication Efficiency, 2016. https://ai.google/research/pubs/pub45648.

[4] 《联邦学习白皮书 V1.0》https://img.fedai.org.cn/fedweb/1552917119598.pdf.

[5] Federated Learning: Machine Learning on Decentralized Data (Google I/O'19).

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 循环神经网络(RNN)是如何循环的?

    循环神经网络(RNN:Recurrent Neural Network)是一种主要用于处理和预测序列数据的神经网络。

    enenbobu
  • 我眼中的数据分析

    数据分析的任务必须是明确的,带着问题出发。它可以是一张简单的报表,也可以是专题或者综合分析。

    enenbobu
  • Python3 异常与断言

    不管会不会产生异常,都会执行finally语句.所以finally语句多用来收尾.

    py3study
  • 使用Pytest创建一个Python测试自动化项目

    Python是当前最流行的编程语言之一。它为Web后端,数据科学笔记本,sysadmin脚本等提供支持。它的语法简洁,易读且优雅–非常适合初学者和专家。您可以想...

    用户7466307
  • 那些你不知道的Photoshop冷知识⑤——CC2015评测专题

    笔者在探索新版本时,首先注意的便是首选项的变化,可以发现这次更新之后首选项侧边栏多了不少东西,点进去之后才发现原来是进行了重新分类,那么有哪些好玩的功能呢?介绍...

    宇相
  • 打造一款自动扫描全网漏洞的扫描器

    在渗透测试中,扫描器必不可少,毕竟目标很多,需要检测点也很多,不可能全部手工搞定的,所以很多渗透者都有自己的自动化工具或者脚本,这里就为大家分享一款由我自己开发...

    信安之路
  • 简单对比MySQL和Oracle中的一个sql解析细节 (r5笔记第40天)

    SQL的语法解析器是一个很强大的内置工具集,里面会涉及到很多的编译原理的相关知识,语法分析,词法分析。。一大堆看起来很理论的东东,不过看起来枯燥之余,它们的价值...

    jeanron100
  • Linux中创建新用户并赋予指定目录的相关权限

    这种方式创建的用户可以使用ssh登录,但只有只读权限可以浏览下载部分文件无法写和修改。

    砸漏
  • docker 容器

    容器是独立运行的一个或一组应用,以及他们的运行环境,对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。

    dogfei
  • 如何设置Docker容器重启策略?

    宿主机可能会因某些原因(如宕机)重新启动,默认情况下docker容器是停止状态的,这可能会对某些应用场景带来不便,所以docker提供了--restart参数,...

    用户1560186

扫码关注云+社区

领取腾讯云代金券