联邦学习——学习笔记1:FedAvg算法

文章目录


本笔记参考自b站up主:丸一口

原视频链接

在这里插入图片描述

如上图,现有6个医院:眼科、儿科、妇科、骨科、综合医院1、综合医院2。中间节点为政府。

现政府要求用各个医院的数据训练某个模型,希望对某些疾病进行一些预测,数据如下图:
在这里插入图片描述
如果是传统方法,那就是六个医院直接把数据发送到政府处,然后政府那边做机器学习。

如果用联邦学习,那政府是不能直接接收其他医院的所有数据的,因为如果直接接收数据,会有一个严重问题,就是隐私泄露的问题。因为传数据的过程中可能会被拦截,并且大量数据传送过程中对带宽也是有较高要求。

联邦学习的具体解决方案:中心节点初始化一个模型,把这个初始模型发给其他节点,其他节点在自己的地方做训练,训练结束后,把训练好的模型传到中心节点。然后中心节点做一个加权平均。然后中心节点再把模型发给其他节点,重复上述广播模型,上传模型操作。一直到中心节点认为准确率达到要求后,停止操作。

可以看到,联邦学习的过程中,中心节点是没有在本地存储数据的,这样就保证了数据的隐私。并且中心节点在没有数据的情况下,也能达到训练所有其他节点数据的效果。

在这里插入图片描述
再来看数据分布的问题:IID和Non-IID
ps:IID:independent identical distribution

这里的独立同分布
独立:就类似概率论里面两个事件发生互不影响。
同分布:如上图的综1和综2,它两个的数据分布情况都相同,都是均匀分布。

对于上图中的数据,如果我们仅仅用综合医院1的数据是不是也可以做到各个方面数据的训练?那为什么还需要其他的医院数据一起训练?

因为我们在机器学习训练的过程中,数据是训练的越多,对一些疾病的预测是更准确的,拟合效果也是更好的。

另外,虽然综合医院1可以对眼CT、胸CT、腿CT的数据分别训练。但是单眼CT来说,眼科医院的数据一方面更多,另一方面肯定也是更精确的。
在这里插入图片描述

在这里插入图片描述

在神经网络中,其实就是一个带权无向图。以上图中h1为例
前向传播
在这里插入图片描述
在这里插入图片描述
利用公式IN=i1w1+i2w2,我们得到h1的IN的数据,把这个数据称之为net值
在这里插入图片描述
而h1数据从第二层传给第三层时,还需要经过一个处理,也就是激活函数。
激活函数的作用就是不让网络数据线性的往下传递,每一层进行一点干扰,这样非线性的传递,才能拟合非线性的曲线。
在这里插入图片描述
这里用到的激活函数是ReLu,负数为0,正数是它本身,ReLu曲线如下:
在这里插入图片描述
在这里插入图片描述
然后计算出h1的out值。然后以此类推,依次往下传,直到传播到final。

在这里插入图片描述

比如我们这个神经网络是做一个猫狗识别,我们input进去一个图片,然后final出来一个猫或狗的结果。假设猫是1,狗是0。

然后final出来一个值是0.35,那么就是产生了一个误差,我们确定真实值为r,final值为f,然后使用误差函数,我们这里就简单的做误差就是r和f差的绝对值。具体误差函数看工业要求
在这里插入图片描述

后向传播
如果是猫狗检测,得到上述0.35这种非猫非狗的数据,肯定要再来一轮。下一轮经过神经网络的各个节点就需要调整各路的权重了。因为第一轮权重是随机出来的,后续就是要把这些路径的权重训练成所需,比如这里传入猫图片训练成1,传入成狗图片训练成0

在这里插入图片描述
所以我们在经历一轮前向传播之后,要立即接一轮后向传播来改变各路权重。
ps:如果不做后向传播改变各路权重,那么前向传播得到的值会一直不变。

后向传播具体做法:
在这里插入图片描述
等式右侧三个偏导解释分别如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后更新w5,新的w5=旧的w5-学习率*刚跟求的偏导
在这里插入图片描述
学习率可以认为是一个步长,如果不设置学习率就相当于学习率是1,对准确率影响较大,一般学习率设为0.01或者其他接近0的数。

在这里插入图片描述

其他的w和前面介绍的w5都是一样的步骤做GD梯度下降,即权重更新。

SGD就是在神经网络中每次随机选一个数据做梯度下降训练。

注:
SGD:随机选一个数据
BGD:全批量数据,比如数据集1000个,每次训练都全部1000个
MBGD:比如数据集1000个,分成几个组,比如分成20组,每组50个。做20轮梯度下降,每次取1组50个出来。

在这里插入图片描述
下面对FedAvg联邦平均算法进行一个具体的解释:
Client:
在这里插入图片描述

Server:
在这里插入图片描述



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

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

相关文章

JavaScript-环境对象

环境对象 指的是函数内部特殊的变量this,它代表了函数运行时所处的环境 作用:弄清this指向谁,可以使代码更整洁 直接调用函数的话,this指向的就是window函数 随调用this就指向谁 function fn(){console.log(this);}fn(); 直接调用…

详解|什么样的SSL证书能助力企业通过等保与密评?

企业在过等级保护(简称“等保”)与密码评测(简称“密评”)的时候,SSL证书作为网络安全的基础组件之一,其选择与部署对于企业顺利通过等保测评与密评至关重要。那什么样的SSL证书能够有效助力企业达成这一目…

展厅设计关键因素有哪些

1、选择一站式服务公司 企业不论参加展会还是做展厅设计装修,其目的都是为了更好的展示公司的产品,从而促进与客户的合作。那么展厅设计首先是要找展厅设计公司来做的,不过现在市面上有很多公司都可以设计制作展厅,这就需要客户去…

【系统架构设计师】四、嵌入式基础知识(体系结构|嵌入式系统|多核处理器)

目录 一、嵌入式微处理体系结构 1.1 冯诺依曼结构 1.2 哈佛结构 二、嵌入式系统 2.1 定义 2.2 嵌入式系统特性 三、嵌入式系统的分类 四、嵌入式系统 4.1 嵌入式数据库系统EDBMS 4.1.1.使用环境的特点 4.1.2 系统组成 4.2 嵌入式操作系统EOS 4.3 嵌入式实时操作系…

如何通过自定义模块DIY出专属个性化的CSDN主页?一招教你搞定!

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 💯如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

Git回滚和撤销---吃上后悔药、坐上时光机

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 提交分3步:add、commit、push,回滚和撤销也分3种情况: 撤销add撤销commit回滚push,也就是回滚远…

哈尔滨等保的定级备案

哈尔滨等保的定级备案是确保信息安全,保障国家和人民利益的重要措施。在当前信息化社会,信息安全已成为国家发展的重要支撑,哈尔滨等保的定级备案工作显得尤为关键。本文将从哈尔滨等保定级备案的背景、定级标准、备案流程、实施意义等方面进…

Electron快速入门(一):用VS Code快速创建html+js+css编写的项目

创建一个文件夹(例如:start或者create-electron 都是小写英文字母有的插件才不会报错),并进入该文件夹,打开 vscode创建3个文件: 1. 名为 main.js 的文件是主进程 // main.js//用于控制应用程序寿命和创建…

如何把模糊的图片修复变清晰,怎么做?有那些方法?

模糊照片怎么修复清晰?有些照片可能会因为保存不当或其他原因而变得模糊,这些照片删掉又觉得可惜,那么如何让这些照片焕然一新呢?今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来,给大家演…

WPF——Binding

一、作用 将Window GUI的运行机理从 “事件驱动” 转变为 “数据驱动”。将UI界面与业务逻辑解耦,使得改动一个而无需改动另一个。数据逻辑层自成体系,使得无需借助UI也可进行单元测试。 二、基础 1. Binding源模板 Binding包括源与目标,源…

揭示数据库内核的奥秘--手写数据库toadb开源项目

揭示数据库内核的奥秘–手写数据库toadb 数据为王的时代 在信息化时代,数据已成为企业和应用不可或缺的核心,而数据库不仅是数据的仓库,更是支撑业务决策、系统运行的基石。对于求职者而言,掌握数据库知识已成为求职市场上的必考…

MinIO Enterprise Cache:实现超性能的分布式 DRAM 缓存

随着计算世界的发展和 DRAM 价格的暴跌,我们发现服务器配置通常配备 500GB 或更多的 DRAM。当您处理大型部署时,即使是那些具有超高密度 NVMe 驱动器的部署,这些服务器上的服务器数量乘以 DRAM 也会迅速增加,通常达到几 TB。该 DR…

详细分析Oracle日期和时间的基本命令

目录 1. 基本类型2. 常用函数3. Demo 1. 基本类型 Oracle支持不同的日期格式模型,其中包括: ISO 8601: YYYY-MM-DDTHH:MI:SS,例如2024-06-20T14:30:00Oracle内部格式: DD-MON-YYYY HH:MI:SS AM,例如20-JUN-2024 02:30:00 PM DA…

【Golang - 90天从新手到大师】Day11 - 包的管理

系列文章合集 Golang - 90天从新手到大师 Go语言中包的使用 Go语言使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传…

大型语言模型在AMD GPU上的推理优化

Large language model inference optimizations on AMD GPUs — ROCm Blogs 大型语言模型(LLMs)已经改变了自然语言处理和理解,促进了在多个领域中的众多人工智能应用。LLMs在包括AI助手、聊天机器人、编程、游戏、学习、搜索和推荐系统在内的…

Linux管道与重定向

管道 是进程通信的方法之一,在Linux中用命令1|命令2的形式表示,将前一个命令的结果作为后续命令的参数进行输入,也有tee管道,可以进行多次筛选,即多次使用|过滤命令。 重定向 文件描述符FD Linux中输入输出分为三种…

基于AT32_Work_Bench配置AT32工程

基于AT32_Work_Bench配置AT32工程 ✨AT32_Work_Bench工具是用来给AT32 MCU快速构建外设初始化工程软件,类似STM32的STM32CubeMX工具软件。 📍AT32 TOOL系列工具下载地址:https://www.arterytek.com/cn/support/index.jsp?index4&#x1f3f7…

INFINI Labs 助力开源与教育:免费许可证计划全面升级

在数字化浪潮席卷全球的今天,INFINI Labs 深刻认识到开源项目和教育机构在技术创新与人才培养中的核心作用。因此,我们郑重推出全新升级的免费许可证计划,旨在全球范围内为开源社区和教育界提供有力支持,共同推动软件生态的繁荣与…

什么是数据库?从零开始了解数据库基础概念

什么是数据库?从零开始了解数据库基础概念 相信大家在日常生活中都听到过大数据,数据这个东西越来越火,比如交通大数据、旅游大数据等,,,数据成为了企业决策和业务运作的关键元素。而管理这些庞大而复杂的…

nginx出现504 Gateway Time-out错误的原因分析及解决

nginx出现504 Gateway Time-out错误的原因分析及解决 1、查看公网带宽是否被打满 2、查看网络是否有波动(可以在nginx上ping后端服务,看是否有丢包情况) 3、查看服务器资源使用情况(cpu、内存、磁盘、网络等) 4、查看nginx日志,具体到哪个服务的哪个…