模型无关的联邦学习:MAFL框架探索
立即解锁
发布时间: 2025-08-31 00:21:15 阅读量: 5 订阅数: 20 AIGC 

# 模型无关的联邦学习:MAFL 框架探索
## 1. 引言
联邦学习(FL)是一种机器学习技术,近年来广受欢迎。它允许在不交换各方数据或集中数据的情况下训练共享的机器学习模型。随着其流行,众多 FL 框架应运而生,如 Flower、FedML 和 HPE Swarm Learning 等,但这些框架大多仅支持深度神经网络(DNNs)。
DNNs 在许多领域表现出色,但并非适用于所有场景。它需要大量数据,收集和标注成本高;对某些类型的数据,如表格数据,传统机器学习模型可能具有更好的性能复杂度比;DNNs 像黑盒,难以解释输出结果;且需要高计算资源,现代安全保护方法会加剧这一问题。
为解决这些问题,我们提出了开源的 MAFL(模型无关的联邦学习)框架。MAFL 利用集成学习,支持和聚合各种类型的机器学习模型。它采用 AdaBoost.F 算法,并与开源的行业级 FL 平台 Intel® OpenFL 结合。据我们所知,MAFL 是首个模型无关的 FL 框架。
本文的贡献如下:
- 引入 MAFL,这是首个能与任何监督式机器学习模型协同工作的 FL 软件。
- 详细描述模型无关的 FL 框架带来的架构挑战。
- 阐述如何改进 Intel® OpenFL 以提升计算性能。
- 对 MAFL 进行广泛的实证评估,展示其正确性、灵活性和性能。
## 2. 相关工作
FL 通常指的是集中式结构,由单个聚合器和多个协作者共同解决机器学习问题。FL 框架负责分发初始模型、收集模型更新、合并模型并广播更新后的模型。由于需要快速安全地交换模型参数,FL 需要比传统机器学习流程更高级的软件基础设施,模型训练通常委托给 PyTorch 和 TensorFlow 等标准机器学习框架。
不同的 FL 框架不断涌现,但大多数仅支持 DNNs 的监督式训练。只有 FATE、IBM - Federated 和 NVIDIA FLARE 支持少数其他机器学习模型,主要是联邦 K - 均值或极端梯度提升(XGBoost)。这是因为定义模型无关的聚合策略存在困难,在模型无关的场景中,序列化基础设施和聚合机制需要足够强大以适应不同的更新类型。
我们选择 Intel® OpenFL 作为开发 MAFL 的基础,原因有二:一是其结构和社区支持;二是可以利用现有生态系统。
## 3. 模型无关的联邦算法
现有的 FL 框架大多不支持模型无关的联邦算法,原因包括现代 FL 框架注重技术成熟度而非新功能,以及模型无关的联邦算法尚处于起步阶段。
最近提出了三种联邦版本的 AdaBoost:DistBoost.F、PreWeak.F 和 AdaBoost.F。它们都基于 AdaBoost,具有模型无关性。在集成学习中,我们将每个联邦轮次学习的模型称为弱假设,最终的全局模型称为强假设。基于 AdaBoost 的 FL 算法的一般步骤如下:
1. 聚合器从每个协作者处接收数据集大小 N,并发送初始的弱假设。
2. 聚合器接收每个协作者的弱假设 hi,并向所有协作者广播整个假设空间。
3. 每个客户端计算全局弱假设在本地数据上的误差 ϵ,并发送给聚合器。
4. 聚合器利用误差信息选择最佳弱假设 c,添加到全局强假设中,并将计算得到的 AdaBoost 系数 α 发送给协作者。
这三种算法产生相同的强假设和 AdaBoost 模型,但在每一轮选择最佳弱假设的方式不同:
- DistBoost.F 使用弱假设委员会。
- PreWeak.F 使用完全训练的 AdaBoost 模型中的弱假设。
- AdaBoost.F 使用当前轮次训练的最佳弱假设。
模型无关的联邦协议比标准 FL 协议更复杂,每一轮需要额外的通信,且需要在网络中交换复杂对象(弱假设),这会影响性能。增加全局同步点会降低并发性,增加对落后者的敏感性。我们选择实现 AdaBoost.F,因为其协议涵盖完整的消息集,计算分析更有意义,且在数据非独立同分布时学习效果最佳。
## 4. MAFL 架构
重新设计 OpenFL 有两个主要目标:实现更灵活的协议管理和使整个基础设施模型无关。在此过程中,我们尽量减少对原始设计的侵入,尊重其设计原则。
### 4.1 计划泛化
计划文件(Plan)是一个 YAML 文件,指导软件组件的运行时。原始的 OpenFL Plan 功能有限,用户难以完全自定义,许多字段在运行时会被默认值覆盖。我们扩展和增强了计划文件的解析功能,使其能够处理新类型的任务和更多参数。
通过在 Aggregator 和 Collaborator 关键字下指定 nn: False 参数,可以触发新的模型无关工作流。具体的协议步骤可以在任务部分指定。在 Intel® OpenFL 框架中,原本有三个任务:
- aggregated_model_validation:聚合模型的测试集验证。
- train:模型的本地训练。
- locally_tuned_model_validation:本地模型的测试集验证。
在 MAFL 中,任务列表增加了三个新任务:
- weak_learners_validate:弱学习器的测试集验证。
- adaboost_update:在协作者上
0
0
复制全文
相关推荐








