联邦学习Federated Learning(FL)

联邦学习Federated Learning

  • 序言
  • FL流程细节
  • FL代码实现(Pytorch)
  • Reference

序言

手机的数据涉及到个人隐私和安全,如果将客户端的数据上传到服务端,终究是很容易泄漏出用户的信息,何况 用户也不愿意把自己的数据交给服务端进行训练。
所以2016 年,谷歌最早提出了联邦学习(Federated Learning),通过让用户数据不出本地,而在设备本地进行模型训练。 目的是保障大数据交换时的信息安全、保护终端数据和个人数据隐私以及合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。
所以, 联邦学习本质上是一种分布式机器学习技术,或机器学习框架。
目标:联邦学习的目标是在保证数据隐私安全及合法合规的基础上,实现共同建模,提升AI模型的效果。
哈哈哈哈哈哈,一个公式总结就是: 联邦学习=分布式+加密技术

FL流程细节

请添加图片描述
A节点为用户设备,数据保存其中,并且不上传到其他节点
B节点是来自不同用户设备的模型参数聚合
C节点可以认为是一个统一的中央服务器(或集群),用来统一更新模型
大体流程是:

首先C初始化一个空模型
C将当前的模型参数传输到A
A设备中根据数据,计算模型参数(或梯度等)
A设备将更新后的模型参数(或梯度)上传
B对来自不同设备的模型参数(或梯度)聚合,例如简单取平均值
C更新根据B聚合后的结果,更新模型
回到第2.步,循环往复

再具体的细节设计到两个重要部分
第一: Client Trainer
第二:Server Trainer
其中FederatedAveraging 用来聚合所有客户端上传的参数,FederatedAveraging算法总共有三个基本的参数

  • 参数C(0~1) 控制有多少比例的的客户端参与优化
  • 参数E控制每一轮多少轮SGD需要在客户端运行
  • 参数B是每一轮的Mini-Batch的数目大小

那么假设总共有K个客户端:

  • 每一轮都随机选择出max(CK,1)个的客户端
  • 对于每个客户端进行Mini-Batch的大小为B,轮数为E的SGD更新
  • 对于参数直接进行加权平均(这里的权重是每个客户端的数据相对大小)

之前有其他研究表明,如何直接对参数空间进行加权平均,特别是Non-Convex的问题,会得到任意坏的结果。
而在FL的论文里,作者们对于这样的问题的处理是,让每一轮的各个客户端的起始参数值相同(也就是前一轮的全局参数值)。这一步使得算法效果大幅度提高。👍

FL代码实现(Pytorch)

Check this Github

Reference

  • https://arxiv.org/pdf/1602.05629.pdf
  • https://augint.tech/index.php?title=Federated_Learning
  • https://daiwk.github.io/posts/dl-federated-learning.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226095.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Life Beyond 工作室 x Incredibuild

Life Beyond 工作室简介 Life Beyond 工作室(前身为 Darewise)是 Animoca Brands 旗下的一家游戏工作室,由 AAA 游戏行业的资深人士创立,目前正在开发 Life Beyond 游戏,一款边玩边赚的科幻类大型多人在线游戏。工作室…

食材管家,轻松搞定!商户选择生鲜配送系统的原因

随着消费者对生鲜食品的需求不断增加,生鲜市场逐渐成为了电商领域中的热门行业。而生鲜配送系统,则是生鲜电商发展中不可或缺的一部分。本文将探讨商户选择生鲜配送系统的几个原因。 1. 提高效率 生鲜配送系统通过智能化的订单处理、路线规划和配送优化…

Unity中Shader的BRDF解析(三)

文章目录 前言一、BRDF中的镜面反射项二、分别解析每一个参数1、D、G函数:speclarTerm2、其他中间步骤3、光照颜色4、F函数(菲涅尔函数) :FresnelTermIBL在下篇文章中继续解析 三、最终代码.cginc文件:Shader文件: 前言…

Matplotlib图形注释_Python数据分析与可视化

Matplotlib图形注释 添加注释文字、坐标变换 有的时候单单使用图形无法完整清晰的表达我们的信息,我们还需要进行文字进行注释,所以matplotlib提供了文字、箭头等注释可以突出图形中重点信息。 添加注释 为了使我们的可视化图形让人更加容易理解&#…

西工大网络空间安全学院计算机系统基础实验一(123)

在实验零中,我们拿到了lab1-handout.zip压缩文件,接着,我们使用unzip ./lab1-handout.zip命令,解压缩该压缩文件。解压缩成功后,使用"ls"命令查看当前工作目录下的文件和文件夹,发现得到了"…

16.spirng源码解析-registerBeanPostProcessors

注册拦截bean创建的bean处理器 此部分实质上是在BeanDefinitions中寻找BeanPostProcessor,之后调用BeanFactory.addBeanPostProcessor方法保存在一个List中,注意添加时仍然有优先级的概念,优先级高的在前面。

竞赛选题 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正

文章目录 0 简介1 思路简介1.1 车牌定位1.2 畸变校正 2 代码实现2.1 车牌定位2.1.1 通过颜色特征选定可疑区域2.1.2 寻找车牌外围轮廓2.1.3 车牌区域定位 2.2 畸变校正2.2.1 畸变后车牌顶点定位2.2.2 校正 7 最后 0 简介 🔥 优质竞赛项目系列,今天要分享…

漏电保护器工作原理

漏电保护器 漏电保护器是低压线路中最常用的保护器之一,简称漏保,又称漏电开关或漏电断路器。漏电保护器除了具有空开的所有保护功能外,还具备漏电保护功能。 需要了解 一根通电导线可以产生磁场,磁场与电流方向遵循右手螺旋关…

微信如何养号?

目前导致微信封号的几点原因如下: 1.使用虚拟定位软件,进行附近人任务,频繁的切换ip,极易被判定微信被盗,对其封号 2.频发的群发骚扰消息,朋友圈发送过于频繁,给别人造成骚扰及其投诉 3.和微信好友聊天涉…

计算机基础知识59

MySQL的卸载流程 1、先停止MySQL服务:右键“此电脑”,选择“管理”,之后选择“服务和应用程序”--“服务”,在服务中找到“MySQL”,右键选择“停止”。 2、找到“控制面板”--“程序和功能”,找到MySQL&…

Vue框架学习笔记——事件处理:v-on指令+methods

文章目录 前文提要事件处理的解析过程,v-on:事件名样例代码如下:效果展示图片:v-on:事件名"响应函数"v-on简写形式响应函数添加响应函数传参占位符"$event"注意事项 前文提要 本人仅做个人学习记录,如有错误…

代码随想录算法训练营第35天| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

JAVA代码编写 860.柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须…