# Fedrated Learning Project - Open Source **Repository Path**: penguink3/federal-learning-experiment ## Basic Information - **Project Name**: Fedrated Learning Project - Open Source - **Description**: 要写联邦学习论文,现在写的联邦学习实验 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 2 - **Created**: 2022-07-20 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据集下载地址 - cifar-10: http://www.cs.toronto.edu/~kriz/cifar.html - MedMNIST: https://medmnist.com/ - COVID-19 Radiography Database: https://www.kaggle.com/datasets/tawsifurrahman/covid19-radiography-database/metadata # 项目结构 - model: 模型设计,里面包括 ResNet18/34 - Run: FL 方法的内部构造,包括本地更新 LocalUpdate 和服务器参数聚合 Aggr - utils: 数据分割工具 [sampling](utils/sampling.py),配置文件 [options](utils/options.py),运行测试代码 [test](utils/test.py) - FedOur: 我的联邦学习方法入口文件 # 如何运行 1. 根据你所需要的配置修改 [options.py](utils/options.py) 文件的参数 - 包括数据集选择 - 训练参数修改 - 回合数等 - 模型选择 2. 运行 FedOur 文件执行联邦学习 ```bash python3 -m FedOur.py ``` # 实验结果展示 **注意: 本项目并没有提交其他FL方法的代码** ## 实验一 > 使用数据集Cifar-10,将 FedAvg、FedPer(Classify)、FedPer(Classify + 1 Bock)、FedRep(Classify)和FedOur对比(准确率和目标损失值)
## 实验二 > 使用 MedMNIST 数据集测试客户端数量(10, 50, 100)对我们模型的影响和对 FedPer(Classify) 的影响 ### BloodMNIST
### DermaMNIST
## 实验三 > 使用 Chest X-Ray Images 数据集进行 FedAvg的全局模型 Local 训练的本地模型 和 我们的全局基本层经过Meta-Transfer 后的模型的对比,体现模型确实学习到了 ground-truth representation
# Fed 方法结构说明 - 算法概括: 1. 服务器初始化基本层,发送给各客户端 2. 客户端通过训练数据更新 基本层$\phi$+连接层$C$+分类层$\theta$ 结构的模型,并且将基本层上传给服务器 3. 服务器聚合基本层的更行 4. 训练好的基本层可以给新加入的客户端当作特征提取器,新加入的客户端使用自己的训练集更新个性化层即可
- 我们将 连接层$C$+分类层$\theta$ 当作是个性化层,以达到个性化联邦学习的效果,我们在一轮更新中对基本层和个性化层的更新参考FedRep分两步进行,更新过程示意图如下: