基本信息

《基于区块链技术的跨设备联邦学习》

摘要

我们结合区块链技术,这篇文章提出了一个区块链联邦学习(blockchain federated learning, BlockFL)架构,其中交换和验证了本地学习模型的更新。

这使得设备上的机器学习无需任何集中的训练数据或通过使用区块链中的共识机制进行协调。

此外,我们分析了BlockFL的端到端延迟模型,并通过考虑通信、计算和共识延迟来刻画最优的块生成率。

1.Introduction引入

未来的无线系统可以保证随时随地的低延迟和高可靠性

为此,设备上的机器学习是一个引人注目的解决方案,其中每个设备存储一个高质量的机器学习模型,从而能够做出决策, 即使它失去了连通性。

训练这样一个设备上的机器学习模型需要比每个设备的本地样本更多的数据样本,并且有必要与其他设备交换样本

在这篇文章中,我们解决了通过与其他设备联合来训练每个设备的本地模型的问题

一个关键的挑战是每个设备都拥有本地数据样本。因此,交换的过程应该保证来自于其他设备原始数据的私有与隐私.

为此,正如谷歌的联邦学习(FL),被称为vanilla FL,每个设备交换它自己本地的模型更新

也就是,学习模型的权值和梯度参数,不能从中得到原始数据

如图1-a所示,vanilla FL的交换是通过中央服务器的帮助而实现的,中央服务器聚合并获取所有本地模型更新的总体平均值,产生global model的更新。然后,每个设备下载全局模型(global model)的更新,并计算它的下一个本地更新,直到全局模型训练完成[5]。由于这些交换,vanilla FL的训练完成延迟可能是几十分钟或更多,正如谷歌的键盘应用程序( Google’s keyboard application)[7]所演示的那样.


下面开始分析谷歌Vanilla的缺点: 两个方面: 1.中心服务器的中心化 2. 缺乏奖励措施

Vanilla FL操作的局限性是双重的。

首先,它依赖于一个单一的中央服务器,这在服务器故障时是脆弱的。那么当global model发生不准确的更新时会导致所有的local model发生错误的更新

其次,他对于本地设备没有给予奖励,拥有更多数据样本的设备对全局训练的贡献更大。如果不提供补偿,这样的设备就不太愿意与拥有少量数据样本的其他设备联合.


引入本项目的架构: BlockFL

为了解决这些紧迫的问题, 通过利用区块链技术作为中央服务器的替代,我们提出了一个Blockchained FL (BlockFL)架构

区块链网络允许交换设备的本地模型更新,同时验证和提供相应的奖励。

BlockFL克服了单点故障问题,并将其联合范围扩展到公共网络中不值得信任的设备,这得益于本地训练结果的验证过程

此外,通过提供与训练样本大小成比例的奖励,BlockFL促进了更多设备与更多训练样本的联合。


如图1-b所示,BlockFL的逻辑结构由设备和矿工组成

矿工在物理上可以是随机选择的设备,也可以是独立的节点,如边缘网络(network edges)(即蜂窝网络中的基站).它们在采矿过程中相对不受能源限制。

BlockFL的操作总结如下:

每个设备计算并上传本地模型更新到区块链网络中的相关miner;

矿工交换并验证所有本地模型更新,然后运行工作证明(PoW) [8];一旦一个矿工完成PoW,它会生成一个块,其中记录了已验证的本地模型更新;

最后,生成的存储聚合本地模型更新的块被添加到区块链,也被称为分布式账本,并被设备下载。每个设备从新的块计算全局模型更新。


请注意,BlockFL的全局模型更新是在每个设备本地计算的。矿机或设备的故障不会影响其他设备的全局模型更新。

为了这些好处,与普通的FL相比,blockfl需要考虑由区块链网络引起的额外延迟。

为了解决这个问题,通过考虑通信、计算和PoW延迟,建立了Block FL的端到端延迟模型.

通过调整块生成率,也就是PoW难度,从而使延迟最小化。


2.Architecture And Operation 架构和操作

FL operation in BlockFL:

FL的相关操作: FL在一套设备下操作:D={1,2,…,ND}D = \{1,2,…,N_D\}D={1,2,…,ND​}其中∣D∣=ND|D| = N_D∣D∣=ND​(一共有ND个设备N_D个设备ND​个设备) .第i个设备DiD_iDi​拥有的数据样例表示为SiS_iSi​其中∣Si∣=Ni|S_i| = N_i∣Si​∣=Ni​,并且只训练其本地的模型.设备DiD_iDi​本地模型的更新将会上传到与其相关联的Miner:MjM_jMj​ (这是从一组Miner中统一随机选择出来的, 即M={1,2,…,NM}M= \{1,2,…,N_M\}M={1,2,…,NM​} )

我们的分布式模型训练主要以平行的方式关注于解决回归问题,考虑到整套设备的数据样本: S=⋃i=1NDSiS = \bigcup^{N_D}_{i=1}S_iS=⋃i=1ND​​Si​ (所有数据样本的并集) 其中∣S∣=NS|S|= N_S∣S∣=NS​

第k个数据样本$ s_k \in S$ 即 sk={xk,yk}s_k = \{x_k,y_k\}sk​={xk​,yk​}是一个d维的列向量xk∈Rdx_k \in \mathbb{R}^dxk​∈Rd 和一个标量值yk∈Ry_k \in \mathbb{R}yk​∈R

(Rd\mathbb{R}^dRd表示的是一个d维的向量)

训练的目标是使一个全局权重向量w∈Rdw \in \mathbb{R}^dw∈Rd (权重其实就是参数向量) 的损失函数f(w)f(w)f(w)最小.取损失函数f(w)f(w)f(w)作为均方误差:

f(w)=1NS∑i=1ND∑sk∈Sifk(w)f(w) = \frac{1}{N_S} \sum^{N_D}_{i=1}\sum_{s_k\in S_i}f_k(w)f(w)=NS​1​∑i=1ND​​∑sk​∈Si​​fk​(w) 其中 fk(w)=(xkTw−yk)2/2f_k(w) = (x_k^Tw-y_k)^2/2fk​(w)=(xkT​w−yk​)2/2

深度神经网络下的其他损失函数也可以像[10]中那样被整合。


为了解决这些问题,按照vanilla FL在[4]的设置,设备DiD_iDi​通过[4]中的随机方差约化梯度算法训练本地模型.采用分布式近似牛顿法对所有设备的局部模型更新进行聚合.对于每次训练, 设备DiD_iDi​的本地模型都以NiN_iNi​的次数迭代(Ni是Di样本的总数)

对于第lll次训练的第t次本地迭代,本地权重wi(t,l)∈Rdw_i^{(t,l)} \in \mathbb{R}^dwi(t,l)​∈Rd为:
wi(t,l)=wi(t−1,l)−βNi([∇fk(wi(t−1,l))−∇fk(w(l))]+∇f(w(l)))w_i^{(t,l)}=w_i^{(t-1, l)}- \frac{\beta}{N_i}([\nabla f_k(w_i^{(t-1, l)})-\nabla f_k(w^{(l)})]+\nabla f(w^{(l)})) wi(t,l)​=wi(t−1,l)​−Ni​β​([∇fk​(wi(t−1,l)​)−∇fk​(w(l))]+∇f(w(l)))
其中的∇\nabla∇符号:

劈形算符,倒三角算符,是一个符号,形为∇。就是对倒三角后面的量做如下操作:表示对函数在各个正交方向上求导数以后再分别乘上各个方向上的单位向量。

劈形算符在数学中用于指代梯度算符。它也用于指代微分几何中的联络(可以视为更广意义上的梯度算符)。它由哈密尔顿引入。

其中β(>0)\beta ( >0)β(>0) 是一个步长, w(l)w^{(l)}w(l)表示在第lll次训练中的全局权重 (每次训练的均方误差) , 其中:∇f(w(l))=1NS∑i=1ND∑sk∈Si∇fk(w(l))\nabla f(w^{(l)}) = \frac{1}{N_S}\sum^{N_D}_{i=1}\sum_{s_k\in S_i}\nabla f_k(w^{(l)})∇f(w(l))=NS​1​∑i=1ND​​∑sk​∈Si​​∇fk​(w(l))(集合所有设备所有样例的∇fk(w(l))\nabla f_k( w^{(l)})∇fk​(w(l))) [全局聚合函数1]

让wi(l)w_i^{(l)}wi(l)​代表在第lll次训练中最后一次本地迭代的本地权重,表示为wi(l)=w(Ni,l)w_i^{(l)}=w^{(N_i, l)}wi(l)​=w(Ni​,l) (样本总数为Ni,最后一次就是t=Ni) 则有:

[全局聚合函数2]
w(l)=w(l−1)+∑i=1NDNiNS(wi(l)−w(l−1))w^{(l)} = w^{(l-1)}+ \sum^{N_D}_{i=1}\frac{N_i}{N_S}(w_i^{(l)}-w^{(l-1)}) w(l)=w(l−1)+i=1∑ND​​NS​Ni​​(wi(l)​−w(l−1))
NSN_SNS​为合并各个设备所有样本的总数

vanilla FL[4][5]中,设备DiD_iDi​上传自己的本地模型更新(wi(l),{∇fk(w(l))}sk∈Si)(w_i^{(l)}, \{\nabla f_k(w^{(l)})\}_{s_k\in S_i})(wi(l)​,{∇fk​(w(l))}sk​∈Si​​)给中央服务器,其中模型的更新的大小δm\delta_mδm​同等的给各个设备.全局模型更新(w(l),∇f(w(l)))(w^{(l)}, \nabla f(w^{(l)}))(w(l),∇f(w(l)))(通过上面两个聚合函数)由服务器进行计算. 在BlockFL中,服务器实体被区块链网络取代,详细描述如下.


Blockchain operation in BlockFL:

在BlockFL中,通过MMM中的miner实现区块生成和它们的验证,miner的功能在于在一个分布式账本(即区块链)与本地模型之间信任的交换本地模型的更新,

分类帐中的每个块被分为它的主体body部分和头head部分[8]

在BlockFL中,区块体中存储着设备D的本地模型更新数据,即设备DiD_iDi​在第lll次训练更新的数据: (wi(l),{∇fk(w(l))sk∈Si})(w_i^{(l)}, \{\nabla f_k(w^{(l)})_{s_k \in S_i}\})(wi(l)​,{∇fk​(w(l))sk​∈Si​​})以及它的本地计算时间Tlocal,i(l)T_{local,i}^{(l)}Tlocal,i(l)​(这将会在后续讨论)

区块头部包含了指向前一个块的指针、块生成率λ和PoW的输出值的信息.

每一个区块的大小设置为h+δmNDh + \delta_m N_Dh+δm​ND​ 其中的$h 和和和 \delta_m$分别是区块头和模型更新的大小

每一个矿工Miner拥有一个与其相关联的设备或者其他Miner的充满了本地模型更新数据的候选区块(未上链区块),写入区块数据的过程直到达到区块的最大数据量或者达到等待时间TwaitT_{wait}Twait​


然后,根据PoW[8],miner通过改变其输入即nonce随机生成一个哈希值,直到生成的hash值变得小于目标值(难度)

一旦miner M1M_1M1​成功地找到了哈希值,它的候选块就可以成为区块链中一个新的区块,如图2所示。

区块的生成速度λ\lambdaλ可以被POW的难度控制,即POW的难度越大/区块目标值越小,区块生成速率λ\lambdaλ越小

由于其简单、健壮性,PoW应用于无线系统,如[11]、[12]。BlockFL还可以使用其他共识算法,如权益证明(PoS)或拜占庭容错(BFT),这可能需要更复杂的操作和初步工作来在矿工之间达成共识。


生成的块将传播给所有其他矿工。为此,正如[8]中所做的,所有收到生成区块的矿工都被迫停止他们的Pow工作,并将生成的区块添加到本地区块链中.

分叉问题

如图2所示,如果另一个矿工M2M_2M2​在第一个生成的块的传播延迟内成功生成了块,那么一些矿工可能会错误地将第二个生成的块添加到他们本地的账本中,称为分叉。在BlockFL中,分叉使得一些设备将一个不正确的全局模型更新应用到它们的下一个局部模型更新。分叉频率随着区块生成速率λ和块传播延迟的增加而增加,其缓解会带来额外的延迟,具体在第三节中进行阐述.


系统奖励机制:

区块链网络还为设备的数据样本和矿工的验证过程提供奖励,分为数据奖励data reward和挖掘奖励mining reward.

设备DiD_iDi​的数据奖励来自于与其相关联的Miner(或者说由其提供),奖励的数量与提供数据样例的大小NiN_iNi​成比例

当miner MjM_jMj​生成一个区块时,它的采矿奖励由区块链网络获得,就像在传统的区块链结构中那样.

挖掘奖励的数量与其所有关联设备的总数据样本大小成正比,即∑i=1NMjNi\sum_{i=1}^{N_{M_j}}N_i∑i=1NMj​​​Ni​ ,其中的NMjN_{M_j}NMj​​代表矿工MjM_jMj​相关联的设备数量.

值得注意的是,BlockFL可以通过奖励机制进一步改进,不仅可以考虑数据样本的大小,而且可以考虑数据样本的质量(特征对于训练模型准确度的提升程度),这些都影响了FL

作恶情况分析:

不可信的设备可能会通过任意的本地模型更新来扩充它们的可提供的样本大小.矿工在存储这些样本之前会验证这些本地更新, 其通过比较样本大小NiN_iNi​与其相关联的计算时间Tlocal,i(l)T_{local,i}^{(l)}Tlocal,i(l)​ (样本数量与其对应的计算时间是相关的,所以两者不匹配就会错误) 这在实际中可以由英特尔的软件保护扩展(Intel’s software guard extensions)来保证,允许应用程序在受保护环境中运行,这是区块链技术[13]所使用的

One-epoch BlockFL operation:

如图二所描绘的那样,设备DiD_iDi​在第 lll次训练过程中整个BlockFL的七部操作步骤:

  1. 本地模型更新

    设备DiD_iDi​根据迭代中的NiN_iNi​计算公式(1):

    wi(t,l)=wi(t−1,l)−βNi([∇fk(wi(t−1,l))−∇fk(w(l))]+∇f(w(l)))w_i^{(t,l)}=w_i^{(t-1, l)}- \frac{\beta}{N_i}([\nabla f_k(w_i^{(t-1, l)})-\nabla f_k(w^{(l)})]+\nabla f(w^{(l)}))wi(t,l)​=wi(t−1,l)​−Ni​β​([∇fk​(wi(t−1,l)​)−∇fk​(w(l))]+∇f(w(l)))

  2. 本地模型更新数据上传

    设备DiD_iDi​同时随机关联一个矿工MiM_iMi​.如果M=DM = DM=D,那么从M\DiM \backslash D_iM\Di​ (从未被选择的M)中挑选一个MiM_iMi​

    设备上传本地模型更新的数据:(wi(l),{∇fk(w(l))sk∈Si})(w_i^{(l)}, \{\nabla f_k(w^{(l)})_{s_k \in S_i}\})(wi(l)​,{∇fk​(w(l))sk​∈Si​​})和相应的本地计算时间Tlocal,i(l)T_{local,i}^{(l)}Tlocal,i(l)​给相关联的miner

  3. 验证

    矿工广播获得的本地模型更新。同时,矿工验证从他们的相关设备或其他矿工接收到的本地模型更新。验证的本地模型更新被记录在矿工的候选块中,直到它达到块的大小(h+δmND)(h + \delta_m N_D)(h+δm​ND​)或者最大等待时间TwaitT_{wait}Twait​

  4. 区块生成

    每个矿机都开始运行PoW,直到它找到nonce或者接收到一个生成的块。

  5. 区块广播

    设Mo∈MM_{o} \in MMo​∈M首先找到了nonce.它的候选块作为新块生成并广播给所有矿工

    为了避免分叉,一旦每个miner接收到新块,就会发送ACK,不管分叉是否发生。如果发生分叉事件,操作将重新启动第一步

    生成新块的miner将在等待时间Ta,waitT_{a,wait}Ta,wait​内等待到系统预定义的最大块ACK确认数量

  6. 全局模型下载

    设备DiD_iDi​在其相关联的Miner那里下载最新生成的区块

  7. 全局模型更新数据

    设备DiD_iDi​本地计算全局模型更新,根据式(2):w(l)=w(l−1)+∑i=1NDNiNS(wi(l)−w(l−1))w^{(l)} = w^{(l-1)}+ \sum^{N_D}_{i=1}\frac{N_i}{N_S}(w_i^{(l)}-w^{(l-1)})w(l)=w(l−1)+∑i=1ND​​NS​Ni​​(wi(l)​−w(l−1)).通过在生成的块中聚合的全局权重值更新本地模型

整个这样的过程直到得到满意的差距为止: ∣w(L)−w(L−1)∣≤ε|w^{(L)}-w^{(L-1)}| \leq \varepsilon∣w(L)−w(L−1)∣≤ε

集中式FL易受服务器故障的影响,服务器故障会扭曲所有设备的全局模型。然而,在BlockFL中,全局模型更新是在每个设备上本地计算的,这对故障是健壮的,并防止矿工的过度计算开销。

3.End-to-End Latency Analysis端到端延迟分析

Throughput,中文译作吞吐量。Latency,中文译作延迟。它们是衡量软件系统的最常见的两个指标。

吞吐量一般指相当一段时间内测量出来的系统单位时间处理的任务数或事务数(TPS)。注意“相当一段时间”,不是几秒,而可能是十几分钟、半个小时、一天、几周甚至几月。它的单位一般是TPS、每单位时间写入磁盘的字节数等。

延迟一般包括单向延迟(One-way Latency)和往返延迟(Round Trip Latency),实际测量时一般取往返延迟。它的单位一般是ms、s、min、h等。

我们研究了最优区块生成率λ∗\lambda^*λ∗最小化学习完成延迟为ToT_oTo​,定义为在一个随机选择的设备Do∈DD_o \in DDo​∈D上经过LLL次训练的总时间

One-epoch BlockFL latency model:

定义第lll次延迟为To(l)T_o^{(l)}To(l)​,其由计算、通信和区块生成延迟决定.首先, 上述的七个步骤中都会带来计算延迟.

设δdδ_dδd​表示单个数据样本的大小与所有数据样本相同。

………

4.Numerical Results and Discussion数值结果与讨论

《Blockchained On-Device Federated Learning》精读相关推荐

  1. 【韩松】Deep Gradient Comression_一只神秘的大金毛_新浪博客

    <Deep Gradient Compression> 作者韩松,清华电子系本科,Stanford PhD,深鉴科技联合创始人.主要的研究方向是,神经网络模型压缩以及硬件架构加速. 论文链 ...

  2. 【韩松】Deep Gradient Comression

    <Deep Gradient Compression> 作者韩松,清华电子系本科,Stanford PhD,深鉴科技联合创始人.主要的研究方向是,神经网络模型压缩以及硬件架构加速. 论文链 ...

  3. [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN

    文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...

  4. 【翻译】Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift

    Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift Sergey I ...

  5. 模型加速--CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization

    CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization CVPR2018 http://www.sf ...

  6. 论文笔记30 -- (视频压缩)【CVPR2021】FVC: A New Framework towards Deep Video Compression in Feature Space

    <FVC: A New Framework towards Deep Video Compression in Feature Space> CVPR 2021 的一篇Oral 提出了特征 ...

  7. 端到端图像压缩《Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation》

    Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation 一 简介 二 内容 2.1 目前方法的缺陷 2.2 整 ...

  8. 深度学习视频压缩1—DVC: An End-to-end Deep Video Compression Framework

    本文是第一篇端到端使用神经网络来进行视频压缩的论文, github地址:GitHub - GuoLusjtu/DVC: DVC: An End-to-end Deep Video Compressio ...

  9. 【论文阅读】Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data

    [论文阅读]Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data ...

  10. CVPR 2018 TRACA:《Context-aware Deep Feature Compression for High-speed Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文的模型叫做TRACA.模型中使用多个expert auto-encoder,在预训练阶段,每个expert auto-encoder针对一个特定类进行训练:在tracki ...

最新文章

  1. springCloud全家桶
  2. kafka php 0.8,php5.6 centos7 kafka0.8.1
  3. 英语------------单词复数形式的规律
  4. RHEL4下刻录机使用--终端图形化方式
  5. C# 注册dll的两种方式
  6. C++ primer(第5版)第三章 字符串、向量和数组 学习笔记
  7. sqlserver2005 安装图解教程以及SQL 2005 SP3补丁安装图文教程
  8. Pr零基础入门指南笔记二
  9. html修改progress背景色,html5 progress标签如何更改进度条颜色?progress进度条详解...
  10. 创意CSS时钟网页代码
  11. 2.words平均长度
  12. 【UVA10859】Placing Lampposts
  13. Linux流量控制(SFQTBFPRIOCBQHTB原理介绍)
  14. 显示器分辨率一直跳_电脑屏幕的分辨率老是变换怎么回事?
  15. sql多维度组合排序
  16. loadrunne-- Analysis 分析器
  17. 一块硬盘装了黑苹果 一块硬盘装了win7_十分钟学会自己装电脑系统! 看完这篇,咱们单枪匹马,不求人,就是干!...
  18. STM32G431RBT6-----Timer
  19. CSS背景:背景色/背景图像/背景重复/背景附着/简写背景属性(一文搞懂)
  20. 360手机n4s骁龙版 html,高通骁龙机型 360N4S骁龙版_360 手机N4S_手机市场-中关村在线...

热门文章

  1. 《回炉重造 Java 基础》——集合(容器)
  2. 【Linux回炉 目录配置】
  3. 轮询查找连接电脑设备IP地址
  4. 水星mercury无线扩展器设置
  5. matlab标量数据,可视化标量三维体数据的方法
  6. 中南大学复试上机:1009: 安全路径
  7. insert table mysql_MYSQL insert data(如何插入数据到table)
  8. lg g5 android,【LGG5SE评测】Android中的SE 模块化LG G5 SE评测(全文)_LG G5 SE_手机评测-中关村在线...
  9. 商业银行内容管理和档案管理
  10. 服务器异常 随机名称的进程CPU资源占用过高