Communication-Efficient Learning of Deep Networks from Decentralized Data

news2025/2/27 20:50:56

international conference on artificial intelligence and statistics

Summary
  • 当前机器学习模型训练中存在着数据隐私保护问题,所以作者提出了FL概念。通过分布式+隐私保护进行训练模型。对不平衡、non-IID的数据也更合适。

  • 主要提出了FedSGD和FedAvg算法。FedAvg通信代价要小于FedSGD

  • 实验中使用了MNIST数字识别和语言模型,通过改变E和B(client本地训练的轮次、每次训练小批量数据的size)来探究最优的E和B,而且在non-IID和IID两种数据中都进行了相关实验。

Problem and Background
  • 目前我们拥有的一些设备(手机、PC)具有一定的算力,也可以接触到大量的包含个人隐私的数据。而且这些数据相较于传统的分布式学习是unbalanced and non-IID。每个client的数据肯定是不同规模,不同倾向的。
  • 所以我们希望提出一种模型训练的方法,可以在不同的设备上利用本地隐私数据进行模型训练。
Contributions
  • 提出Federal Learning这一概念。可用于人工智能隐私保护和安全多方计算。
  • FedAvg算法有一定的实用性,用于unbalanced and non-IID dataset,可以用较少的通信轮次获取不错的训练模型。
Method
  • FedSGD and FedAvg

    • C-fraction of clients on each round

    • E-本地客户端训练local data的次数

    • B-训练时本地数据小批量的大小,就是每次训练用多少数据。当B无穷大就代表每次训练本地的所有数据都要用。

    • 当B无穷大,E为1的时候,就是用所有数据每轮训练一次,那就是FedSGD Algorithm。

    • img - fedsgd:client发送给server的是g(梯度) - fedavg:client直接用g求出要更新的ω发送给server。
  • algorithm 1 FedAvg

    • image-20221002195325525
    • 其中服务器平均更新的权重是每个client的数据集占总的数据集的比重。(但是这里有client谎报自己的数据集怎么办,让自己用比较少的dataset占大的比重)
Experimental
  • MNIST digit recognition
    • MNIST 2NN
      • 具有2个隐藏层的多层感知器,每个层使用ReLu激活200个单元(总计199,210个参数)
    • CNN
      • CNN有两个5x5卷积层(第一个有32个通道,第二个有64个,每个都有2x2个最大池化),一个有512个单元和ReLu激活的完全连接层,以及一个最终的Softmax输出层(总参数为1,663,370)。
    • 两种数据分发方式:IID and non-IID
      • IID
        Each client随机获得600样例。
      • non-IID
        将用例按数字先分好类,再分成300size的200份。最后每个client只有两个数字的样例。
  • Language Modeling
    • dataset:莎士比亚作品集
    • 为作品集中所有说话的角色建立一个client,共1146个。将每个client的数据集八二分,80用于训练,20用于测试。与MNIST数据集不同的是这个每个client的数据是不平衡的,就是训练可用数据多少不同。
    • 该模型将一系列字符作为输入,并将每个字符嵌入到学习的 8 维空间中。然后通过 2 个 LSTM 层处理嵌入的字符,每个层有 256 个节点。最后,第二个 LSTM 层的输出被发送到 softmax 输出层,每个字符一个节点。完整模型有 866,578 个参数,我们使用 80 个字符的展开长度进行训练。
  • Result
    • 论文中讲解了相关实验的结果,主要研究了当B和E变化时对实验的影响,当B为10,E为5的时候效果比较好,因为B正无穷,E为1的时候就成立FedSGD。
Related Knowledge
  • SGD

    • 利用梯度觉得接下来迭代的方向,使代价函数越来越小。

    • SGD为随机梯度下降法。用数学式可以将 SGD 写成如下的式(6.1)。

      在这里插入图片描述

      这里把需要更新的权重参数记为W,把损失函数关于W的梯度记为 ∂L/∂W 。η ηη 表示学习率,实际上会取 0.01 或 0.001 这些事先决定好的值。式子中的←表示用右边的值更新左边的值。
      ————————————————
      版权声明:本文为CSDN博主「赵孝正」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/weixin_46713695/article/details/123198293

    • import matplotlib.pyplot as plt
      #一元四次函数 f(x) = x^4 - 3x^3+2
      xold = 0
      xnew = 6
      
      #误差
      eps = 0.00002
      #步长,学习率
      alpha = 0.01
      #function
      x = []
      y = []
      plt.title="TrendofSGD"
      plt.xlabel('x')
      plt.ylabel('y')
      
      def f(x):
          return x ** 4 - 3 * x ** 3 + 2
      def f_prime(x):#倒数
          return 4 * x ** 3 - 9 * x ** 2
      while abs(f(xold)-f(xnew)) > eps:
          xold = xnew
          xnew = xold - alpha * f_prime(xold)
          x.append(xnew)
          y.append(f(xnew))
          plt.scatter(xnew,f(xnew))
          plt.pause(0.2)
      plt.plot(x,y)
      plt.show()
      print(x)
      print("Result:",xnew,f(xnew))
      
  • 卷积层

    • (10 条消息) 如何通俗易懂地解释卷积? - 知乎 (zhihu.com)
    • (27条消息) 卷积层详述_Zeus_dad的博客-CSDN博客_卷积层
  • 池化

    • 池化 | 机器之心 (jiqizhixin.com)
  • 完全连接层

    • CNN 入门讲解:什么是全连接层(Fully Connected Layer)? - 知乎 (zhihu.com)
  • ReLu activation

    • 原来ReLU这么好用!一文带你深度了解ReLU激活函数! - 知乎 (zhihu.com)
    • 考虑输入输出及数据变化来选择用什么激活函数
  • softmax output

    • [(27条消息) 神经网络中的softmax层为何可以解决分类问题——神经网络之softmax(3)_石头1666的博客-CSDN博客_softmax分类层](

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

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

相关文章

Andriod开发R文件爆红相关解决方法及排查方案

1.首先尝试下基本的处理方法: 在IDE中工具栏处选择build 尝试clean project,然后再进行rebuild project或者是make project 若使用的是IDEA或Android studio,在上述方法尝试后可以尝试工具栏中File->Setting->Invalidate Caches/Rest…

微信小程序(基础语法)

文章目录基本组件视图容器viewscroll-viewswiper和swiper-item基础内容组件textrich-text其他常用组件buttonimagenavigator基本模板数据绑定插值表达式事件绑定常用事件在事件处理函数中为data的数据赋值事件传参bindinput的使用小程序中的v-model条件渲染wx:ifhidden列表渲染…

一些关于通信拓扑、图论的内容笔记

链接:https://zhuanlan.zhihu.com/p/373368383 目前主要是这一个系列,记下来怕我过后忘了。 别处看到的(大概率3B1B)----走桥的问题----d偶数 多智能体一致性问题(分蛋糕) 入度 出度 :信息流…

007_补充_ Pytorch 反向传播和Neural ODE的反向传播

一、Pytorch反向传播 首先是第一个小例子,训练模型拟合 y true_w * x true_b,模型的参数为 param_w, param_b import torchtrue_w torch.Tensor([[2.0, 3.0], [4.0, 5.0]]) # 初始化真实的参数 true_b torch.Tensor([[1.0, 2.0], [3.0, 4.0]]) #…

linux安装jdk17

登录linux 我使用的是Alibaba Cloud Linux 3.2104 LTS 64位操作系统,登录后结果如下: Welcome to Alibaba Cloud Elastic Compute Service !Updates Information Summary: available7 Security notice(s)5 Important Security notice(s)2 Moderate Sec…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园二手商品交易系统p11v7

毕业设计说实话没有想象当中的那么难,导师也不会说刻意就让你毕设不通过,不让你毕业啥的,你只要不是太过于离谱的,都能通过的。首先你得要对你在大学期间所学到的哪方面比较熟悉,语言比如JAVA、PHP等这些,数…

laravel对于数据量特别大的导出excel的提速方案

背景:一些业务场景需要导出excel的需求,但是面对日益增长的数据,要导出的数据会越来越大。生成表格的时间也会越来越慢。针对这个问题,目前的业务通过两个角度去提速。 1:异步导出 如果数据量达到一定的体量&#xf…

【毕业设计】大数据大众点评评论文本分析 - python 数据挖掘

文章目录0 前言1 爬虫1.1 整体思路1.2 网页爬取和解析1.3 数据存储1.4 反爬虫对抗2 探索性分析与文本数据预处理2.1 探索性分析2.2 数据预处理2.3 词云展示3 文本的情感分析3.1 先上结果3.2 文本特征提取(TF-IDF)3.3 机器学习建模3.4 最后输出的准确率4 …

java ssh校园拼餐系统

首先在系统前台,游客用户可以经过账号注册,管理员审核通过后,用账号密码登录系统前台,查看拼餐服务、网站公告、文明拼餐员、会员风彩、系统简介、咨询信息、拼餐信息等栏目信息,进行在线咨询和管理员交流,…

LTSPICE使用教程:二极管钳位电路仿真

在我们查看芯片内部的设计电路时,通常会发现以下的电路结构: 当定义pin脚输入电压Vpin, 1.Vpin>VDD,二极管D1导通,D2截止,此时无论怎样继续加大VPIN的输入电压时, 进入到管脚内部的电压会被钳制在Vint…

【RocketMQ中生产者生产消息的高可用机制、消费者消费消息的高可用机制、消息的重试机制、死信队列于死信消息】

一.知识回顾 【0.RocketMQ专栏的内容在这里哟,帮你整理好了,更多内容持续更新中】 【1.Docker安装部署RocketMQ消息中间件详细教程】 【2.RocketMQ生产者发送消息的三种方式:发送同步消息、异步消息、单向消息&案例实战&详细学习流程】 【3.Rock…

野火FPGA入门(5)

文章目录第17讲:触摸按键控制LED灯第18讲:流水灯第19讲:呼吸灯第20讲:状态机第21讲:无源蜂鸣器驱动实验第17讲:触摸按键控制LED灯 触摸按键可分为四大类:电阻式、电容式、红外感应式、表面声波…

调优工具常用命令

语法格式 mysqldumpslow [ OPTS... ] [ LOGS... ] //命令行格式常用到的格式组合 -s 表示按照何种方式排序c 访问次数l 锁定时间r 返回记录t 查询时间al 平均锁定时间ar 平均返回记录数at 平均查询时间 -t 返回前面多少条数据 -g 后边搭配一个正则匹配模式,大小写…

机械专业学子的芯片封装仿真“逆袭之路”

作者:萧显军 导读:近期,ANSYS公司给清华大学集成电路学院捐赠了一批业界领先的计算机辅助工程(CAE)软件及自动化(EDA)软件,为清华大学的芯片设计仿真的教学科研工作提供更强大的软件服务与技术支撑。 捐的仿真软件包括ANSYS涉及…

小白学Java

ip地址:用于唯一识别标记网络中的每一台计算机 查看方法:ipconfig ip地址的表示形式:点分十进制 xx.xx.xx.xx 每个十进制数的范围:0-255 ip地址的组成 网络地址主机地址 ipv4地址分类: (特殊:…

一、react简介

目标 理解react这个框架在前端开发中的地位理解react诞生的原因和意义(react是一个用于快速构建前端视图的javaScript库)理解什么是虚拟dom、原生js模拟出虚拟dom的表示,模拟出创建虚拟dom的方法,模拟出虚拟dom转换成真实dom的方…

什么是甘特图?什么是项目管理?

数字化与信息化早已成为现今人们工作和生活中不可缺少的一部分。尤其是随着科学技术的进步,人们对数字化的期待也越来也高。作为项目管理中常备的工具,甘特图已经成为不少业内人士中常备的“神器”了。然而依旧有人搞不清甘特图与项目管理区别究竟在哪里…

Revit中创建基于线的砌体墙及【快速砌体排砖】

​  墙可以更改内部结构和材质,但是很难画出砌块样式形成的墙体,我们可以用其他方式画出砌体排砖墙么?这里我们用基于线的常规模型做砌体排砖墙。在开始我们需要做两个族,作为砌体排砖墙的基本单位,也就是一个单独的砌体块。 一…

多亏了这份大佬整理的Java进阶笔记,让我斩获7个offer

移动互联网时代,IT 系统变得愈加复杂,对我们程序员的要求也是越来越高,技术不断更新,我们还不能停止学习,停下来了就会被打上一个‘不合格的程序员’的标签,如何成为一位「不那么差」的程序员? …

java.io.IOException: FIS_AUTH_ERROR in Android Firebase

项目里更换完google-services.json文件后,获取 firebase token 时,显示报错: E/FirebaseInstanceId: Topic sync or token retrieval failed on hard failure exceptions: FIS_AUTH_ERROR. Wont retry the operation.D/AndroidRuntime: Sh…