联邦学习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.mzph.cn/news/174440.shtml

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

相关文章

Java基础小结

Java 基础小结 Java 基础概念与常识 什么是 Java ? Java 是 1995 年由 sun 公司推出的一门高级语言。 Java 的四个基本特性是面向对象、平台无关性、安全性和简单性。 具体特点如下: 简单易学。 平台无关性。 面向对象 面向对象是一种程序设计技术,以木匠工…

[C++]六大默认成员函数详解

☃️个人主页:fighting小泽 🌸作者简介:目前正在学习C和Linux 🌼博客专栏:C入门 🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪🏻 …

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现 )预习报告

手写报告稍微认真点写,80+随便有 目录 一、计算/设计过程 1、通过虚拟示波器观察和测量信号 2、通过实际电路(电阻、开关、发光二极管)模拟逻辑门电路 二、画出并填写实验指导书上的预表

数字IC芯片验证流程及验证工具推荐?收藏专用

验证其实是一个“证伪”的过程,从流程到工具,验证工程师的终极目的都只有一个: 发现所有BUG,或者证明没有BUG,以保证芯片功能性能的正确性和可靠性。 验证环节对于一颗芯片的重要性也是不言而喻的: 从项…

数据结构 | 排序

插入排序 直接插入排序(空间复杂度为1,排序后稳定) 思路: 在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入&…

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码 目录 题目描述: 示例1 示例2 解题思路: 代码实现: 题目描述: 一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连&…

快速排序算法,这么写打败95%的程序员

1960年,英国计算机科学家霍尔提出了一种高效的排序算法——快速排序。其核心思想是选定一个基准元素,将需排序的数组分割成两部分。其中一部分都比基准元素小,另一部分都比基准元素大。接着对这两部分分别进行快速排序,最后通过递…

jQuery_07 函数的使用

在jQuery中,如何使用函数呢? 1.基本函数 函数(常用的) 其实有很多函数,但是我们只需要掌握常用的函数即可 1.val 操作dom对象的value val() 没有参数 获取dom数组中第一个dom对象的value值 val(value) 有参数 设置dom数组中所有dom对象的…

UE5人物残影学习(材质实现)

学习视频 UE4简单的材质球残影人教学,你学会了吗!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rY411q7Yb/?spm_id_from333.788.top_right_bar_window_history.content.click 结果预览 1.创建残值,混合模式勾选半透明 “混合模…

经典神经网络——GoogLeNet模型论文详解及代码复现

论文地址:[1409.4842] Going Deeper with Convolutions (arxiv.org) 一、GoogLeNet概述 创新点 我认为,这篇文章最大的创新点是引入了一个名为Inception块的结构,能够增加神经网络模型大小的同时,减缓参数量的爆炸式增长&#x…

【数据结构】图<简单认识图>

对于下面的内容,大家着重观察和理解图即可,可以直接绕过一些文字性的概念,对图有一个大概的认识。 图 简单认识图图的定义有向图和无向图完全图无向完全图有向完全图 图的基本存储结构邻接矩阵存储邻接矩阵的优点 网络的邻接矩阵邻接表无向图…

计算机视觉面试题-02

图像处理和计算机视觉基础 什么是图像滤波?有哪些常见的图像滤波器? 图像滤波是一种通过在图像上应用滤波器(卷积核)来改变图像外观或提取图像特征的图像处理技术。滤波器通常是一个小的矩阵,通过在图像上进行卷积…

pytorch安装GPU版本 (Cuda12.1)教程

使用本教程前,默认您已经安装并配置好了python3以上版本 1. 去官网下载匹配的Cuda Cuda下载地址 当前最高版本的Cuda是12.1 我安装的就是这个版本 小提示:自定义安装可以只选择安装Cuda Runtime。Nvidia全家桶不必全部安装。把全家桶全部安装完直接系统…

C#学习-8课时

P10 输入输出程序编写 相同类型的可以直接相加; cwtabtabconsole.Writeline(); using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace C_8_1 { class Program { s…

性能压测工具:wrk

一般我们压测的时候,需要了解衡量系统性能的一些参数指标,比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线:P95。平均100%的请求中95%已经响应的时间 99线:P99。平均100%的请求中99%已经响应的时间 平…

案例030:基于微信小程序的英语学习交流平台

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

电子学会C/C++编程等级考试2021年12月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:我家的门牌号 我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。 数据保证有唯一解。 时间限制:1000 内存限制:65536输入 一个…

CSGO搬砖如何选品?选品软件和教程靠谱吗?

说到CSGO搬砖项目,目前平台最火的就是CSGO游戏搬砖。在CSGO搬砖项目中,选品是至关重要的环节,直接影响到利润。而选品软件可以帮助我们更快地了解市场变化、计算成本利润等关键信息,提高选品的效率和准确性。可靠的选品软件还能够…

简易版王者荣耀

所有包和类 GameFrame类 package newKingOfHonor;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList;im…

如何使用技术SEO来优化产品轮播

SEO(搜索引擎优化)对你来说并不陌生。现代电子商务系统通常包含旨在吸引谷歌等搜索引擎机器人注意的关键字。 但是,技术 SEO 在代码和服务器级别调查电子商务 SEO 策略。它改善了网站的技术因素,例如页面加载的速度以及抓取的直接…