【联邦学习+区块链】FLchain: Federated Learning via MEC-enabled Blockchain Network
文章目录
论文地址: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_{iin D_j } S_{i,j}
Sj=⋃i∈DjSi,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中,全局模型的更新由区块链网络进行计算、验证和存储,无需中心服务器,具有较强的鲁棒性。