联邦学习公式推导--为何只需要发送模型参数而不是模型梯度?

参考文献:https://arxiv.org/pdf/1602.05629v4.pdf

  • 对于一个机器学习应用来说,我们需要找到一个目标函数,使其最小化
    f ( w ) = 1 n ∑ i = 1 n f i ( w ) f(w) = \frac{1}{n}\sum_{i=1}^{n}f_i(w) f(w)=n1i=1nfi(w)

  • 上面等式中, f i ( w ) = l ( x i , y i , w ) f_i(w) = l(x_i, y_i, w) fi(w)=l(xi,yi,w),表示参数为 w w w的模型在样本 ( x i , y i ) (x_i, y_i) (xi,yi)上预测的损失。

  • 假设现在有多个设备并行计算模型在某个数据集上的总体预测损失,总样本数为 n n n,设备 k k k上有 n k n_k nk个样本,那么设备 k k k上的损失为:
    F k ( w ) = 1 n k ∑ i = 1 n k f k ( w ) F_{k}(w) = \frac{1}{n_k}\sum_{i=1}^{n_k}f_k(w) Fk(w)=nk1i=1nkfk(w)

  • 那么模型在整个数据集上的预测损失为:
    f ( w ) = ∑ k = 1 K n k n F k ( w ) = 1 n ∑ k = 1 K ∑ i = 1 n k f i ( w ) f(w) = \sum_{k=1}^K \frac{n_k}{n} F_k(w) = \frac{1}{n}\sum_{k=1}^K\sum_{i=1}^{n_k}f_i(w) f(w)=k=1KnnkFk(w)=n1k=1Ki=1nkfi(w)

  • 相当于使用同一个模型在整个数据集上跑了一遍,得到了总体的平均损失

  • 为了减少client和server间的通信次数,可以让更多的计算在client上完成。

    • 假设第 t t t轮通信中设备k进行一次梯度下降得到的梯度为: g k = ∇ F k ( w t ) gk=\nabla F_k(w_t) gk=Fk(wt) g k g_k gk最终会发送到服务器。 w t w_t wt是第 t t t轮通信中模型的参数。

    • 根据求导法则可知: ∇ f ( w t ) = ∑ k = 1 K n k n ∇ F k ( w t ) \nabla f(w_t) = \sum_{k=1}^K \frac{n_k}{n} \nabla F_k(w_t) f(wt)=k=1KnnkFk(wt),所以服务器拿到所以client的参数之后,更新下一轮模型的参数为:
      w t + 1 = w t − α ∇ f ( w t ) = w t − α ∑ k = 1 K n k n g k w_{t+1} = w_t - \alpha \nabla f(w_t) = w_t - \alpha \sum_{k=1}^{K} \frac{n_k}{n} g_k wt+1=wtαf(wt)=wtαk=1Knnkgk

    • 又因为设备 k k k可以用局部数据更新参数:
      w t + 1 k = w t − α g k α g k = w t − w t + 1 k w^k_{t+1} = w_t - \alpha g_k \\ \alpha g_k = w_t - w^k_{t+1} wt+1k=wtαgkαgk=wtwt+1k

    • 代入上面公式:
      w t + 1 = w t − ∑ k = 1 K n k n ( w t − w t + 1 k ) = w t − ∑ k = 1 K n k n w t + ∑ k = 1 K n k n w t + 1 k w t + 1 = ∑ k = 1 K n k n w t + 1 k w_{t+1} = w_t - \sum_{k=1}^K \frac{n_k}{n} (w_t - w^k_{t+1}) = w_t - \frac{\sum_{k=1}^K n_k}{n}w_t + \sum_{k=1}^{K}\frac{n_k}{n}w^k_{t+1} \\ w_{t+1} = \sum_{k=1}^{K}\frac{n_k}{n}w^k_{t+1} wt+1=wtk=1Knnk(wtwt+1k)=wtnk=1Knkwt+k=1Knnkwt+1kwt+1=k=1Knnkwt+1k

    • 上面是进行一次梯度下降,如果进行多次梯度下降,设备 k k k的更新参数公式为:
      w t + 1 k = w t − α g k 1 − α g k 2 − . . . − α g k e p o c h 其中 g k i 表示第 i 次梯度下降 w t + 1 k = w t − α ( g k 1 + g k 2 + . . . + g k e p o c h ) 令    g k = g k 1 + g k 2 + . . . + g k e p o c h , 则有    w t + 1 k = w t − α g k w_{t+1}^k = w_t - \alpha g_k^1 - \alpha g_k^2 \ \ - ...-\ \ \alpha g_k^{epoch} \ \ 其中 g_k^i表示第i次梯度下降 \\ w_{t+1}^k = w_t - \alpha (g_k^1 + g_k^2 \ \ + ...+g_k^{epoch}) \\ 令 \ \ \ g_k = g_k^1 + g_k^2 \ \ + ...+g_k^{epoch}, \ \ 则有 \ \ \ w_{t+1}^k = w_t-\alpha g_k wt+1k=wtαgk1αgk2  ...  αgkepoch  其中gki表示第i次梯度下降wt+1k=wtα(gk1+gk2  +...+gkepoch)   gk=gk1+gk2  +...+gkepoch,  则有   wt+1k=wtαgk

    • 所以可以在本地进行多次梯度下降并更新本地模型参数,然后将本地模型参数发送给服务器,服务器对这些参数进行加权平均得到全局模型参数,最终发送给各个设备,这样就能减少客户端和服务器间的通信次数。

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

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

相关文章

Vue3中的watch函数使用

Vue2和Vue3中的watch函数作用是一样的,用来监测数据的变化并在数据变化时触发对应的回调函数,但Vue2和Vue3中的watch在使用的细节上有所不同,Vue3中的watch在监测reactive定义的响应式数据时,oldValue(旧的值&#xff…

模拟实现哈希表 - HashMap(Java版本)

目录 1. 概念 2. 冲突-概念 3. 冲突-避免 4. 冲突-避免-哈希函数设计 5. 冲突-避免-负载因子调节 ⭐⭐⭐⭐⭐ 6. 冲突-解决 6.1 冲突-解决-闭散列 6.2 冲突-解决-开散列/哈希桶 ⭐⭐⭐⭐⭐ 7. 冲突严重时的解决办法 8. 模拟实现 1. 概念 顺序结构以及平衡树中&#…

揭开时间序列的神秘面纱:特征工程的力量

目录 写在开头1. 什么是特征工程?1.1 特征工程的定义和基本概念1.2 特征工程在传统机器学习中的应用1.3 时间序列领域中特征工程的独特挑战和需求3. 时间序列数据的特征工程技术2.1 数据清洗和预处理2.1.1 缺失值处理2.1.2 异常值检测与处理2.2 时间特征的提取2.2.1 时间戳解析…

MySQL基础(三)-学习笔记

一.innodb引擎: 1). 表空间:表空间是InnoDB存储引擎逻辑结构的最高层,启用了参数 innodb_file_per_table(在 8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个…

计算机网络——网络层(3)

计算机网络——网络层(3) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)1 网络层——控制平面因特网中自治系统内部的路由选择总括考虑因素总结 ISP之间的路由选择:BGP考虑因素总结 SDN控制层面重要组件和功能总结 ICMP主要功能和特点…

京东手机评论分析

文章目录 前言:数据处理1.1数据导入1.2数据描述1.3数据预处理 2.情感分析2.1情感分析安装snownlp包 2.2 情感分直方图情感分直方图 2.3 词云图2.4 关键词提取关键词top10 3 积极评论与消极评论3.1 积极评论与消极评论占比计算积极评论与消极评论各自的数目积极评论占比 3.2 消极…

大脑模型认知实验报告(脑与认知期末考核)

实验名称:大脑模型认知实验 实验目的: (1)对大脑的三部分、七层结构、区域划分有一个清晰的认识。 (2)对脑的各个区域的基本功能以及脑的工作方式有所了解。 实验环境:大脑模具、配有详细标…

Mongodb安装Linux

确定你的CentOS 版本 使用以下命令: /etc/centos-release下载Mongodb 解压tgz压缩包 创建data和log文件夹 , 确定你的文件夹访问权限 在log文件夹里面创建mongodb.log文件(这一步很重要 ! ! !) touch mongodb.log创建mongodb.conf文件 在你的mongodb文件夹下 vi mongo…

Flink 1.18.1 部署与配置 [CentOS7]

静态IP设置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…

GO 的 Web 开发系列(四)—— 静态资源文件访问的几种方式

Gin 的路由其实就是 Java 中 RequestMapping 注解的内容,只是 Go 需要在一个代码模块中统一对所有路由进行配置。 全文链接:https://blog.nineya.com/archives/155.html 一、路由组配置 一般情况下,通过路由需要完成两个事情,一…

如何本地搭建Emby影音管理服务并结合内网穿透实现远程访问本地影音库

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…

6个AI写作工具,让你的文字变得生动有力

写作是一项需要耐心和技巧的任务,对于许多人来说,写作可能是一项困难的挑战。然而,随着人工智能的发展,AI智能写作软件逐渐崭露头角,为我们提供了更加便捷和高效的写作体验。在本文中,我们将介绍几款好用的…

Spring-mybatis

怎样通过Spring整合Mybatis来实现业务 目录 1.导入依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency>&l…

一文教你如何本地搭建Qchan图床网站实现公网远程访问

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…

代码随想录 Leetcode77.组合

题目&#xff1a; 代码&#xff08;首刷看解析 2024年2月1日&#xff09;&#xff1a; class Solution { public:vector<vector<int>> res;vector<int> path;void backtracing(int n, int k, int startIndex) {if (path.size() k) {res.push_back(path);re…

windows pm2 执行 npm脚本或执行yarn脚本遇到的问题及解决方案

环境&#xff1a; 在windows上启动终端来运行一个项目&#xff1b;通过指令npm run start来启动&#xff0c;但是将终端一关&#xff0c;就无法访问了&#xff0c;所以想到用pm2来管理 1. 全局安装pm2 npm i pm2 -g2. 在项目根目录执行指令(大部分兄弟的错误使用方法) pm2 st…

微信小程序(二十七)列表渲染改变量名

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.改变默认循环单元item变量名 2.改变默认循环下标index变量名 基础模板有问题可以先看上一篇 源码&#xff1a; index.wxml <view class"students"><view class"item"><te…

解释性人工智能(XAI)

引言 解释性人工智能&#xff08;XAI&#xff09;是指一类旨在使人能够理解和解释机器学习模型的方法和技术。XAI的目标是提高AI系统的透明度和可理解性&#xff0c;让人们能够理解机器学习模型的决策过程、推理方式和结果。这对于社会应用和用户信任非常重要&#xff0c;因为A…

推荐系统|排序_融合预估分数

因为点赞率、收藏率和转发率是不同维度的数据&#xff0c;需要将其整合成一个数据&#xff0c;从而方便比较。 方法就是乘上对应的权重。而点赞、收藏和转发都是发生在点击之后的&#xff0c;也就是说会有先后的关系&#xff0c;概率会以乘的形式出现。 特殊的&#xff0c;当…

2023爱分析·数据智能厂商全景报告|爱分析报告

利用多种数据智能技术实现数据驱动的分析与决策&#xff0c;已经成为当前企业数字化转型最重要的目标之一。随着数据来源日益丰富、数据体量快速增长&#xff0c;企业对数据的依赖和挖掘愈发深入&#xff0c;不仅带来数据应用场景、数据用户角色的复杂和多元&#xff0c;也使得…