【FedCoin: A Peer-to-Peer Payment System for Federated Learning】

news/2024/4/28 14:21:35/文章来源:https://blog.csdn.net/qq_45467608/article/details/137120425

在这篇论文中,我们提出了FedCoin,一个基于区块链的点对点支付系统,专为联邦学习设计,以实现基于Shapley值的实际利润分配。在FedCoin系统中,区块链共识实体负责计算SV,并且新的区块是基于“Shapley证明”(PoSap)协议创建的。这与流行的比特币网络不同,在比特币网络中,共识实体通过解决无意义的难题来“挖矿”生成新区块。

FedCoin是首次尝试将区块链技术应用于联邦学习激励机制研究中的创新实践。这一举措为那些拥有计算资源但缺乏本地数据的实体提供了参与联邦学习的新机遇,使它们能够通过贡献计算资源获得相应的激励回报,进而推动整个联邦学习生态系统的健康发展。

在本工作中,我们的目标并非减少计算复杂度,而是建立一种机制,使得原本可能被浪费的分布式计算资源得以利用,协助联邦学习系统计算SV。

1.初步说明

每个样本 ( x i , y i ) (x_i,y_i) (xi,yi)
第i轮的模型参数记为: w i w_i wi
第t轮下的损失函数 F i ( w ) = ℓ ( x i , y i ; w t ) F_i(w)=\ell(x_i,y_i;w_t) Fi(w)=(xi,yi;wt)
第k个客户端有一个本地数据集 D k D_k Dk, n k = ∣ D k ∣ n_k=|D_k| nk=Dk表示第k个客户端拥有的数据量。
全局的数据集记为 D = { D 1 , . . . , D k } D=\{D_1,...,D_k\} D={D1,...,Dk} n = ∣ D ∣ = ∑ k = 1 K n k n=|D|=\sum^K_{k=1}n_k n=D=k=1Knk
目标的优化函数为 min ⁡ w ∈ R d F ( w ) = 1 n ∑ k = 1 K ∑ i ∈ D k F i ( w ) ( 1 ) \min_{w\in R^d}F(w)=\frac{1}{n}\sum^K_{k=1}\sum_{i\in D_k}F_i(w)\space(1) minwRdF(w)=n1k=1KiDkFi(w) (1)
这个优化问题通常通过基于随机梯度下降(SGD)的方法来解决。举例来说,基于当前模型wt,联邦平均算法计算客户端k上的平均梯度gt,
公式如下: g t k = 1 n k ∑ i ∈ D k ∇ F i ( w t ) g_t^k = \frac{1}{n_k} \sum_{i \in D_k} \nabla F_i(w_t) gtk=nk1iDkFi(wt)
然后,每个客户端使用该梯度来更新其本地模型,更新规则为:
w t + 1 k = w t − η g t k w_{t+1}^k = w_t - \eta g_t^k wt+1k=wtηgtk
最后,FL服务器将所有客户端的本地模型聚合成全局FL模型。聚合过程由聚合函数A完成,其形式如下:
w t + 1 = A ( { w t + 1 k ∣ k = 1 , … , K } ) w_{t+1} = A(\{ w_{t+1}^k | k = 1, \ldots, K \}) wt+1=A({wt+1kk=1,,K})

2.FedCoin

2.1 网络概述

在这里插入图片描述
在作者的系统中存在两个参与者网络:
1)联邦学习网络
2)点对点区块链网络
联邦学习模型请求者或联邦学习训练任务请求者指的是需要训练联邦学习网络并拥有预算V的实体。
客户端可以通过训练获得报酬和激励(TrainPrice)
聚合会产生一个聚合激励(ComPrice)
向区块链网络转移会产生一笔处理费(SapPrice)
总的花费应该 T r a i n P r i c e + C o m P r i c e + S a p P r i c e ≤ V TrainPrice+ComPrice+SapPrice \leq V TrainPrice+ComPrice+SapPriceV以维持支付平衡,而无需依赖将价值从外部转移至此系统。

服务器在每次全局更新之后,会向区块链发送一个任务,计算每个FL客户端的贡献。然后,区块链网络中的共识节点共同计算SV。获胜者获得奖励:TrainPrice+SapPrice。获胜者根据各自的SVs按比例将ComPrice分配给FL客户端,通过在区块链中创建交易来实现。

联邦学习网络和区块链网络之间靠一种特殊类型的任务产生联系,

一个特殊任务包括接收到的本地更新集合 W = { w k ∣ k = 1 , . . . , K } W = \{w_k|k = 1, . . . , K\} W={wkk=1,...,K},聚合函数 A A A,损失函数 F ( w ) F(w) F(w),以及每个更新轮次的SapPrice和TrainPrice的值。随着训练轮次的增加,SapPrice和TrainPrice会减少,并且用于训练的总付款可以平均分配或不平均分配给每一轮。

2.2 挖矿算法

挖矿算法如下
在这里插入图片描述
如何创建一个区块:
每当矿工接收到S和时间时,矿工计算所有收到的S的平均结果S(第16行)。然后,矿工计算自己的S与S之间的距离P。当距离不大于挖矿难度D时,矿工成为赢家并生成新的区块Blk(第18行)。
存在一些改进的空间,我觉得可以维持一个队列,只保存一段时间的产生的区块,因为刚开始计算出的S的稳定性不高,之后计算的结果会越来越接近于真实值

2.3 区块验证的算法

  1. 获胜者的 S t S_t St减去获胜者的 S t ‾ \overline {S_t} St平均的需要满足 ∣ ∣ S t − S t ‾ ∣ ∣ p < = D ||S_t-\overline{S_t}||_p <=D ∣∣StStp<=D
  2. 本机计算出的 S ‾ \overline S S需要满足 ∣ ∣ S ‾ − S t ‾ ∣ ∣ p < = D ||\overline S-\overline{S_t}||_p <=D ∣∣SStp<=D(我认为是防止winner机器作弊,同时防止本地机器偷懒)要求区块的S值应足够接近本地聚合S
  3. 当前区块ID应最大,以确保只有最长的链可接受。
    在这里插入图片描述

2.4 挖矿难度

挖掘新区块的难度水平可以动态调整:
影响难度更新的两个主要因素是:
1)矿工的总挖矿能力
2)生成区块的速度。在相同的挖矿能力下,随着区块生成速度的增加,难度级别应该降低。在相同的区块生成速度下,随着挖矿能力的增加,难度级别应该增加
3)(我编的:)是否应该考虑一下任务的总量

2.5 支付算法

在FedCoin系统中,一个FL模型请求者首先通过向FL服务器存入V个FedCoins来启动。V的价值不应大于请求者的FL模型的价值。为了在FL客户端、区块链矿工和FL服务器之间分配V,所有实体都应注册一个交易账户。

TrainPrice:支付给FL客户端;
ComPrice:支付给FL服务器用于处理模型聚合;
SapPrice:支付给区块链网络矿工用于计算每个客户端的Shapley值。

这种分配可以由预先约定的智能合约确定。例如,分配合约可以指定TrainPrice:ComPrice:SapPrice=7:1:2。那么,TrainPrice=0.7V,ComPrice=0.1V,而SapPrice=0.2V。
在这里插入图片描述

3. 实验结果

在这里插入图片描述
对于给定的数据集,高EMD值表示数据质量低。每个客户端类型的数据质量通过EMD来衡量,如表2所示。我们可以观察到,从T0到T9,数据质量呈线性递减。
在这里插入图片描述
随着质量等级从T1降至T9,Shapley值减小。此外,只有T0到T4类型的值为正,表明只有一半的客户端可以积极贡献于模型准确度的提升。这也表明我们的PoSap可以有效促进高质量数据在协作FL应用场景中的推广。对于T5到T9类型的负Shapley值意味着这些客户端可能会误导模型训练。

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

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

相关文章

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之九 简单闪烁效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之九 简单闪烁效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之九 简单闪烁效果 一、简单介绍 二、简单闪烁效果实现原理 三、简单闪烁效果案例实现简单步骤 四、注意事项 一、简单…

DevSecOps平台架构系列-微软云Azure DevSecOps平台架构

目录 一、概述 二、Azure DevOps和黄金管道 2.1 概述 2.2 Azure DevOps架构说明 2.2.1 架构及管道流程图 2.2.2 架构内容 2.2.2.1 Azure Boards 2.2.2.2 Azure Repos 2.2.2.3 Azure Test Plans 2.2.2.4 Azure Pipelines 2.2.2.5 Azure Application Insights 2.2.2.6…

蓝桥杯_day6

文章目录 不同路径不同路径II拿金币珠宝的最高价值 不同路径 【题目描述】 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为…

Linux中的vim/vi编辑器

VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。 VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器&#xff0c;可以说是&#xff1a;编辑器之神。可以主动的以字体颜 色辨别语法的正确性&#xff0c;方便程序设计。VIM 与 VI 编辑器完全兼容。 一:三种…

【JS球球大作战项目实战】+在线体验

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

论文《Exploring to Prompt for Vision-Language Models》阅读

论文《Exploring to Prompt for Vision-Language Models》阅读 论文概况论文动机&#xff08;Intro&#xff09;MethodologyPreliminaryCoOp[CLASS]位置Context 是否跨 class 共享表示和训练 ExperimentsOverall ComparisonDomain GeneralizationContext Length (M) 和 backbon…

ChatGPT 商业金矿(上)

原文&#xff1a;ChatGPT Business Goldmines 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第一章&#xff1a;为什么我写这本书 欢迎阅读《ChatGPT 多源收入&#xff1a;20 个利润丰厚的业务&#xff0c;任何人都可以在一周内使用 ChatGPT 开始》。我很高兴分享我…

Backend - gitea 首次建库(远端本地)

目录 一、建立远端储存库 1. 进入新增画面 2. 填写储存库名称&#xff08;如book&#xff09;&#xff0c;点击“建立”即可 二、本地关联远端储存库 1. 本地初始化储存库代码 &#xff08;1&#xff09;新建文件夹 &#xff08;2&#xff09;获取远端储存库 2. 本地编写…

冒泡排序(六大排序)

冒泡排序 冒泡排序的特性总结&#xff1a; 1. 冒泡排序是一种非常容易理解的排序 2. 时间复杂度&#xff1a;O(N^2) 3. 空间复杂度&#xff1a;O(1) 4. 稳定性&#xff1a;稳定 动图分析&#xff1a; 代码实现&#xff1a; Swap(int*p1,int*p2) {int tmp *p1;*p1*p2…

Xcode 15 Sandbox: rsync(xxxx) deny(1) file-write-create

设置里面搜索user 把User Script Sanboxing 改为NO 新版本的Xcode 15 编译报该错误 右侧工具栏 项目的workspace 和 pod的 space 都选择为15.0 即可

Springboot整合瀚高

需要下载highgo驱动,然后将jar包打入进自己本地maven中 下载地址: highgi6.2.4 1.打开jar包所在的文件&#xff0c;然后在该文件夹中打开命令窗口&#xff08;或者先打开命令窗口&#xff0c;然后cd到jar所在文件夹&#xff09; install-file -Dfile&#xff1a;jar包名Dart…

想学网络安全,从哪里开始?网络安全的学习路线

网络安全学习路线&#xff1a; 想学习网络安全专业的知识&#xff0c;想当黑客&#xff0c;但是不知道该从哪里开始学。 我给你一个路线&#xff01; 清晰图片和大纲&#xff1a;https://docs.qq.com/doc/DU1lpVFpSbWVrd2p3

.NET分布式Orleans - 2 - Grain的通信原理与定义

Grain 是 Orleans 框架中的基本单元&#xff0c;代表了应用程序中的一个实体或者一个计算单元。 每个Silo都是一个独立的进程&#xff0c;Silo负责加载、管理和执行Grain实例&#xff0c;并处理来自客户端的请求以及与其他Silo之间的通信。 通信原理 在相同的Silo中&#xff0…

SCI论文改写、防查重神器QuillBot如何付费高级版本?

写论文时候的修改软件QuillBot&#xff0c;正常的文献里的句子帖进去&#xff0c;直接给各种倒装和各种同义词替换至少10次&#xff0c;保证查不出来是别人的句子。 QuillBot是一个帮助改写内容的转述工具。 Quillbot让你的内容重组变得简单。 转述是指你用不同的词来表达&a…

短视频账号矩阵系统/开发 -- -- -- 路径积ai算法上线

短视频账号矩阵系统&#xff0c;短视频矩阵系统开发3年技术之路&#xff0c;目前已经在技术竞品出沉淀出来&#xff0c;近期技术迭代的新的功能同步喽&#xff1a; php7.4版本&#xff0c;自研框架&#xff0c;有开发文档&#xff0c;类laravel框架 近期剪辑迭代的技术算法&am…

【HTTP完全注解】一些神奇的URL

URL HTTP 请求的内容被称为"资源"&#xff0c;‘资源’这一概念非常宽泛&#xff0c;它可以是一份文档&#xff0c;一张图片&#xff0c;或所有其他你能够想到的格式。每个资源的名称和位置由一个 URL&#xff08;统一资源定位符&#xff0c;它是 URI 的一种&#x…

【计算机网络】http协议的原理与应用,https是如何保证安全传输的

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

广场舞团系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. 系…

【Web应用技术基础】CSS(6)——使用 HTML/CSS 实现 Educoder 顶部导航栏

第一题&#xff1a;使用flex布局实现Educoder顶部导航栏容器布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Educoder</title><script src"https://cdn.staticfile.org/jquery/1.1…

linux 内存介绍

大致共有四类&#xff1a;VSS、RSS、PSS、USS &#xff0c;通常情况下&#xff0c;VSS > RSS > PSS > USS 1.VSS(Virtual Set Size)虚拟耗用内存&#xff08;包含共享库占用的内存&#xff09; VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已…