文章目录

  • 1. Introduction
  • 2. Preliminaries and Definition
  • 3. System Model
  • 4. Blockchain operations in FLchain
  • 5. Evaluation

论文地址:https://ieeexplore.ieee.org/document/8892848


1. Introduction

传统的联邦学习中,移动设备根据本地的数据样本进行本地模型的更新,并将其发送至中央服务器。中央服务器将接收到的模型更新进行聚合,并更新全局模型。移动设备获取更新后的全局模型,进而进行本地模型的下一次更新。这种方式存在弊端,数据存储以及数据计算依赖于中央服务器的可靠性。区块链是一种按时间顺序、去中心化、可追溯且不可变的账本技术。以区块链替换中心服务器是解决上述问题的有效方案。区块链和联邦学习的结合实现了一种实用的高鲁棒性的去中心化模型训练方案,保证了用户数据的隐私性。训练好的模型参数能够安全地存储在区块链中,对未经授权的访问和恶意行为具有万无一失的抵抗能力。此外,区块链还能够安全地保存模型的来源和时序信息。


2. Preliminaries and Definition

A. Channel Fabric引入了信道(channel)的概念,用于实现至少两个peer之间的隔离通信。只有与信道相关联的peer才有权在信道内读取、提交和验证交易。每个信道都有一个单独的账本。在FLchain中,对于每个全局模型,都会创建一个带有创世块的新信道,存储特定的分类账。创世块存储了全局学习模型的初始权重、权重的维度、超参数、激活函数和偏置。

B. Global Model State Trie 类似于以太坊中追踪账户状态的“Account State Trie”,文章提出了“Global Model State Trie”来追踪FLchain中全局模型的权重。每个channel都有自己的Global Model State Trie,以键值对的方式存储权重(key:权重位置,vlaue:权重系数)。权重系数与区块的生成同步更新。在达成共识后,Global Model State Trie为全局模型提供更新的权重系数。


3. System Model

FLchain的架构如 F i g . 1 Fig.1 Fig.1所示,包含移动终端和边缘设备。移动终端基于本地数据计算本地模型更新。边缘设备具有两种功能:首先,为网络资源受限的移动终端提供网络资源。其次,作为FLchain区块链网络中的节点。

每个全局模型 M j M_j Mj​在单独的信道中进行训练。FLchain中可用的信道集合表示为 C = { 1 , 2 , 3 , . . . , C n } C = \{1,2,3,...,C_n\} C={1,2,3,...,Cn​}。 C n C_n Cn​表示FLchain中可用信道的数量, D j D_j Dj​表示信道 j j j中注册设备的数量。由边缘设备组成的区块链网络将来自用户设备的本地模型更新以区块的形式存储在特定信道的独立区块链上。区块链网络还计算并安全地将全局模型更新储存在Merkle Patricia Tree上的特定信道账本中。


4. Blockchain operations in FLchain

A l g o r i t h m 1 Algorithm \ 1 Algorithm 1展示了针对信道 j j j的FLchain操作。 F i g . 3 Fig.3 Fig.3展示了通道 j j j中设备 i i i的FLchain的操作流程图。

A. Initialization 为每个新的全局模型的训练创建一个新的信道。初始权重参数和其他必要的配置被设置并存储在创世块中。 j j j表示信道, M j M_j Mj​表示信道 j j j中所训练的全局模型。FLchain能够应用到任何模型的训练,文中考虑模型 M j M_j Mj​为线性回归模型。 D j D_j Dj​表示与信道 j j j相关联的设备集合。 S i , j S_{i,j} Si,j​信道 j j j中设备 i i i所拥有的样本集合。 S j = ⋃ i ∈ D j S i , j S_j=\bigcup_{i\in D_j } S_{i,j} Sj​=⋃i∈Dj​​Si,j​,表示信道 j j j中所有设备的总样本集合, ∣ S j ∣ = N S , j \left | S_j \right | =N_{S,j} ∣Sj​∣=NS,j​,表示信道 j j j中总样本数量。学习目标为基于全部样本 s z ∈ S j s_z \in S_j sz​∈Sj​, s z s_z sz​= { x z \{x_z {xz​, y z y_z yz​} 最小化损失函数 L ( ω ) L(\omega ) L(ω),最佳权重参数为 ω j ∗ \omega_j^* ωj∗​。 ω j \omega_j ωj​为 d d d维列向量,表示信道 j j j的全局模型权重向量。全局迭代t=0时的初步权重参数是从预定范围内随机选择的。全局权重参数: ω j ( 0 ) \omega_j(0) ωj​(0),设备 i i i的本地权重参数 ω i , j ( 0 ) \omega_{i,j}(0) ωi,j​(0)。

B. Channel Inquiry 当一个设备 i i i想加入FLchain的特定信道时,首先需要进行信道查询;随后,可用信道的列表 C C C由区块链网络发送给移动设备。

C. Channel Selection 当设备 i i i想加入某个特定的全局模型训练时会进行信道查询。一旦拥有可访问的信道列表 C C C,便可针对特定的全局模型选择相关的信道 c i c_i ci​。设备 i i i选择的频道 c i c_i ci​使用 j j j表示。

D. Device Registration 如果设备 i i i还没有注册,设备需要为其事先选定的信道注册。注册完毕后,设备会被分配私钥和公钥,通过这些私钥和公钥便可以向信道提交其修订的本地模型权重。 P r i i , j Pri_{i,j} Prii,j​和 P u b i , j Pub_{i,j} Pubi,j​表示为信道 j j j中设备 i i i所分配的私钥和公钥。

E. Local Model Update 在完成设备注册或收到计算本地模型下一次更新的通知后,设备通过其相关的边缘节点从区块链网络下载最新的全局模型参数 ω j ( t − 1 ) \omega_j(t-1) ωj​(t−1)。 t t t表示当前全局模型迭代,需要在信道 j j j中计算(不同的信道迭代次数可能不同)。对于每个全局模型迭代 t t t,设备 D i D_i Di​的局部模型更新 V V V个epochs。在本地模型的epoch v v v,设备 i i i的本地模型通过stochastic variance reduced gradient(SVRG)更新。 η > 0 \eta >0 η>0为step-size,在 V V V个本地epochs后可得 ω i , j ( t ) = ω i , j V ( t ) \omega_{i,j}(t)= \omega_{i,j}^V(t) ωi,j​(t)=ωi,jV​(t)。本地模型更新 ω i , j ( t ) \omega_{i,j}(t) ωi,j​(t)由设备 i i i决定,并以交易的形式转发给区块链网络。 t r a n s i , j ( t ) trans_{i,j}(t) transi,j​(t)表示信道 j j j中设备 i i i在第 t t t轮迭代中生成的交易,由设备的私钥 P r i i , j Pri_{i,j} Prii,j​签名。交易数据包括 ( ω i , j ( t ) , { ▽ l z ( ω j ( t ) ) } s z ∈ S i , j ) (\omega_{i,j}(t),\{\bigtriangledown l_z(\omega_j(t))\}_{s_z \in S_{i,j}}) (ωi,j​(t),{▽lz​(ωj​(t))}sz​∈Si,j​​)。

​F. Transaction Pool 所提交的交易被积累在交易池(mempool)中。区块链网络中的peers都拥有针对特定信道的交易池。这些交易被验证、核实和认证。在每次全局模型迭代中,信道 j j j所关联设备等待时间 T w a i t , j T_{wait,j} Twait,j​,以便积累交易池中交易的数量。由于网络延迟,交易池中的交易可能会延迟。原本前一全局模型更新中合用的事务不能用于计算下一个全局模型更新,这些事务会被丢弃。

G. Global Model Update 经过等待时间 T w a i t , j T_{wait,j} Twait,j​后,信道 j j j中的peers通过竞争来生成新区块。全局模型状态树被确定,用于安全存储全局模型参数 ω j ( t ) \omega_j(t) ωj​(t)。模型聚合通过distributed approximate Newton-type 方法实现。

H. Consensus Protocol 在矿工广播最新区块后,区块链中peers必须验证区块交易,并检查更新的全局模型状态树的正确性。peers从区块内的交易中计算自己的全局模型状态树,并对照广播的区块验证全局模型状态树的根。如果区块有效,则区块链网络需达成共识,相对应的矿工被认定为winner。如果区块是无效的,那么区块将被拒绝。winner所广播的最新区块在共识阶段会被添加到对应信道的账本中。每个区块链节点都会计算、验证和确认全局模型状态树,以达成共识,所以基于区块链的FL比典型的FL更加可靠和稳健。

I. Analysis 在每次全局模型迭代之后都要进行分析,以检查FL是否已经达到了预期的结果。停止的标准可以在每个FL任务的基础上定义。对于 M j M_j Mj​来说FL过程持续 T T T轮全局迭代直到 ∣ ∣ ω j ( T ) − ω j ( T − 1 ) ∣ ∣ 2 ≤ ε t h r e s h o l d , j ||\omega_j(T)-\omega_j(T-1)||_2 \le \varepsilon_{threshold,j} ∣∣ωj​(T)−ωj​(T−1)∣∣2​≤εthreshold,j​, ε t h r e s h o l d , j \varepsilon_{threshold,j} εthreshold,j​为预定义好的常量,数值大于0。


5. Evaluation

FLchain为每个全局模型的学习提供一个单独的信道。用于存储本地模型更新的共识和分类账是针对信道的。全局模型状态树也是在每个信道基础上维护的。

全局模型状态树可以安全无误地将全局模型权重存储在 Merkle Patricia Tree 中。全局模型状态树可以在从创世区块到顶部区块的迭代中被生成和验证。

在FLchain中,全局模型的更新由区块链网络进行计算、验证和存储,无需中心服务器,具有较强的鲁棒性。

【联邦学习+区块链】FLchain: Federated Learning via MEC-enabled Blockchain Network相关推荐

  1. 【联邦学习+区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》疑问解答

    联邦学习[1]VS 区块链 [问1]联邦学习,何为"联邦"? 作为一种分布式机器学习技术,联邦学习可以实现各个企业的自有数据不出本地,而是通过加密机制下的参数交换方式共建模型,即在 ...

  2. 【联邦学习 + 区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》阅读记录与提问

    [注]块引用部分是博主自己的思考.. 题目:<联邦[1]学习vs区块链:谁是"可信媒介"技术领域最强王者?> [问1]联邦学习,何为"联邦"? 在互 ...

  3. 【论文】联邦学习区块链 论文集(三)

    21.\color{#FF0000} 21.21. Privacy-Preserving Blockchain Based Federated Learning with Differential D ...

  4. 【论文】联邦学习区块链 论文集(一)

    1.\color{#FF0000} 1.1. Blockchained On-Device Federated Learning 关键词:联邦学习.区块链.延迟分析 主要贡献: 1)用区块链网络来代替 ...

  5. 【联邦学习+区块链】联邦学习与区块链

    前言:联邦学习(Federated Learning)是在保障大数据交换时的信息安全.保护终端数据和个人数据隐私.保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习的一种新兴人工智能 ...

  6. 【个性化联邦学习】Towards Personalized Federated Learning 论文笔记整理

    Towards Personalized Federated Learning 一.背景 二.解决策略 2.1 策略一.全局模型个性化 2.2 策略二.学习个性化模型 三.具体方案 3.1 全局模型个 ...

  7. 联邦学习1 A Unified Federated Learning Framework for Wireless Communications: towards Privacy,..论文

    大背景 面临的问题:1.隐私问题.2.非 IID 数据.2.无线网络通信资源有限.3.复杂的用户身份,训练过程面临着拜占庭设备的挑战,它可以向模型注入中毒信息 根据上一篇,FAug-FD 虽然工作良好 ...

  8. 学习区块链的十大理由

    学习区块链的十大理由 技术发展迅速!如果你仍然在你的多维数据集中编辑Java代码或只是搞PowerBuilder,那么你可能只生活在过去.少数雇主的地方.现在的情况发生了很大变化.你需要领先一步,采用 ...

  9. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

最新文章

  1. 网易云助力云音乐短视频功能快速上线
  2. (一)javascript面向对象:(1)类
  3. yum安装最新的 LNMP
  4. Android中的Touch事件处理流程
  5. 【牛客 - 303B第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Fibonacci and Counting(Fib数性质,gcd辗转相除法性质)
  6. LeetCode 1058. 最小化舍入误差以满足目标(排序+贪心)
  7. NSZombieEnabled使用
  8. android输入框圆形,GitHub - mylhyl/Android-CircleDialog: 仿IOS圆角对话框、进度条、列表框、输入框,ad广告框,支持横竖屏切换...
  9. C++ Vectors
  10. Swift语言精要 - Dictionary(字典)
  11. matlab求方程实根,简单迭代法求方程根的MATLAB程序
  12. 面向能源效率的云计算
  13. Microsoft Visual Studio--- 未能加载文件 %CommonDir%\dte90a.olb。未能找到该文件,因此解决此问题的尝试,请重新安装此程序。
  14. 二维旋转矩阵公式推导
  15. STM32 通用 Bootloader
  16. 缉拿IP冲突之后的“真凶”
  17. php jpeg windows,jpg和jpeg有什么区别
  18. 安卓逆向-new-sec6-4 Java反射相关知识以及平头哥框架hook构造函数 | App发布测试版本感染
  19. 三相全控tc787触发电路_开关电源常用的几种保护电路
  20. 计算机 难题_寻找免费难题的最佳网站

热门文章

  1. wordpress更改主页
  2. Yocto、Poky、OpenEmbedded 之间的关系
  3. html5如何将图片堆叠代码,css实现图片堆叠效果的方法介绍
  4. 基于PowerDC的直流压降仿真及整改分析
  5. #容斥,组合计数#洛谷 3214 卡农
  6. Java多态和实现接口的类的对象赋值给接口引用的方法
  7. 力扣刷题篇——双指针
  8. 苹果Mac特殊符号快捷键输入方法有哪些?
  9. cesium入坑 -- 各种API调用与API本身使用的坑
  10. My97DatePicker默认赋值