BAFL: A Blockchain-based Asynchronous Federated Learning Framework
BAFL 区块链异步联邦学习框架论文笔记
“Instead of the traditional federal average (FedAvg) algorithm, this paper evaluates the participating rank and proportion of the local model trained in BAFL of devices. The indices, which consider the training time, training sample size, local update correlation, and global update cheating times, are obtained by the entropy weight method and are recorded in the blockchain for long-term trust.”
— Feng et al., 2022, p.1
本文没有采用传统的联邦平均(FedAvg)算法,而是评估在设备的 BAFL 中训练的本地模型的参与排名和比例。
通过**熵权法(Entropy Weight Method)**获得综合指标,这些指标考虑了:
- 训练时间
- 训练样本量
- 局部更新相关性
- 全局更新作弊次数
这些指标被记录在区块链中,从而实现长期信任机制。
核心知识回顾
1 信息熵(Information Entropy)
信息熵用于衡量随机变量 的不确定性。
信息熵越高,表示变量越不确定
当:
- 各取值概率相等 → 信息熵最大
- 某一取值概率为 → 信息熵最小
信息量的定义依赖对数函数,使得信息量的加法对应概率的乘法
因此,信息熵可以理解为信息量的期望值。
信息熵公式:
2 KL散度(Kullback-Leibler Divergence)
KL散度(相对熵)衡量两个概率分布之间的差异。
设:
- 为真实分布
- 为预测分布
KL散度为:
其含义是:
在真实分布 下,用 近似 时产生的信息损失。
3 信息熵、KL散度与交叉熵
三者之间存在关系:
其中:
- :交叉熵
- :信息熵
- :KL散度
因此:
交叉熵 = 真实分布的信息熵 + 两分布之间的 KL 散度
4 交叉熵(Cross Entropy)
交叉熵定义为:
在机器学习中:
- 是常数
- 可优化部分仅存在于
因此:
训练神经网络时,最小化交叉熵等价于最小化 KL 散度。
为什么不直接使用 KL 散度?
主要原因:
- 计算更简洁
- 数值更稳定
- 与 Softmax 输出更匹配
BAFL流程详解
“3.2.2 One-epoch operation in blockchain-based asynchronous FL”
— Feng et al., 2022, p.4
在 BAFL 中,每个 epoch 的执行过程包含 10 个步骤。
1 本地模型更新(Local Model Update)
设备 使用本地数据集 训练本地模型:
2 本地模型上传(Local Model Upload)
设备随机选择矿工 ,并将本地模型上传。
3 本地模型交叉验证(Cross Validation)
矿工:
- 将模型写入新区块
- 向区块链网络广播
其他矿工:
- 验证模型
- 记录验证结果
4 模型与评分下载
设备下载:
- 当前全局模型
- 自身本地模型
- 设备评分
- 本地训练时间
5 全局模型与评分更新
全局模型更新
异步联邦学习中:
每次只聚合一个本地模型。
聚合公式:
其中:
- 为贡献权重
设备评分计算
评分基于四个指标:
| k | 含义 |
|---|---|
| 1 | 数据集大小 |
| 2 | 历史评分 |
| 3 | 错误更新次数 |
| 4 | 更新相关性 |
6 全局模型上传
设备上传:
- 新全局模型
- 新评分
7 全局模型交叉验证
矿工:
- 广播模型
- 检查一致性
结果:
- 最一致模型 → 正确模型
- 错误模型 → 恶意更新
并记录在区块链。
8 区块生成
使用 PoW(Proof-of-Work)。
通过 SHA-256 找到满足条件的 Nonce:
9 区块传播
最先找到 Nonce 的矿工:
- 生成新区块
- 广播网络
若多个矿工同时成功:
- 产生 Fork
- 通过 ACK 确定主链
10 全局模型下载
设备 下载:
重复上述过程直到:
- 模型收敛
- 或达到目标精度