FedDecorr
[ICLR2023] Official Implementation of Towards Understanding and Mitigating Dimensional Collapse in Heterogeneous Federated Learning (https://arxiv.org/abs/2210.00226)
Install / Use
/learn @bytedance/FedDecorrREADME
Introduction
This Repo contains the official implementation of the following paper:
|Venue|Method|Paper Title| |----|-----|-----| |ICLR'23|FedDecorr|Towards Understanding and Mitigating Dimensional Collapse in Heterogeneous Federated Learning|
and unofficial implementation of the following papers:
|Venue|Method|Paper Title| |----|-----|-----| |AISTATS'17|FedAvg|Communication-Efficient Learning of Deep Networks from Decentralized Data| |ArXiv'19|FedAvgM|Measuring the Effects of Non-Identical Data Distribution for Federated Visual Classification| |MLSys'20|FedProx|Federated Optimization in Heterogeneous Networks| |NeurIPS'20|FedNova|Tackling the Objective Inconsistency Problem in Heterogeneous Federated Optimization| |CVPR'21|MOON|Model-Contrastive Federated Learning| |ICLR'21|FedAdagrad/Yogi/Adam|Adaptive Federated Optimization| |KDD'21|FedRS|FedRS: Federated Learning with Restricted Softmax for Label Distribution Non-IID Data| |ICML'22|FedLogitCal|Federated Learning with Label Distribution Skew via Logits Calibration| |ICML'22/ECCV'22|FedSAM|Generalized Federated Learning via Sharpness Aware Minimization/Improving Generalization in Federated Learning by Seeking Flat Minima| |ICLR'23|FedExp|FedExP: Speeding up Federated Averaging via Extrapolation|
Dataset preprocessing
TinyImageNet:
- Download the dataset to "data" directory from this link: http://cs231n.stanford.edu/tiny-imagenet-200.zip
- Unzip the downloaded file under "data" directory.
- Lastly, to reformat the validation set, under the folder "data/tiny-imagenet-200", run:
python3 preprocess_tiny_imagenet.py
Running Instructions
Shell scripts to reproduce experimental results in our paper are under "run_scripts" folder. Simply changing the "ALPHA" variable to run under different degree of heterogeneity.
Here are commands that replicate our results:
FedAvg on CIFAR10:
bash run_scripts/cifar10_fedavg.sh
FedAvg + FedDecorr on CIFAR10:
bash run_scripts/cifar10_fedavg_feddecorr.sh
Experiments on other methods (FedAvgM, FedProx, MOON) and other datasets (CIFAR100, TinyImageNet) follow the similar manner.
Citation
If you find our repo/paper helpful, please consider citing our work :)
@article{shi2022towards,
title={Towards Understanding and Mitigating Dimensional Collapse in Heterogeneous Federated Learning},
author={Shi, Yujun and Liang, Jian and Zhang, Wenqing and Tan, Vincent YF and Bai, Song},
journal={arXiv preprint arXiv:2210.00226},
year={2022}
}
Contact
Yujun Shi (shi.yujun@u.nus.edu)
Acknowledgement
Some of our code is borrowed following projects: MOON, NIID-Bench, SAM(Pytorch)
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
last30days-skill
18.3kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
sec-edgar-agentkit
10AI agent toolkit for accessing and analyzing SEC EDGAR filing data. Build intelligent agents with LangChain, MCP-use, Gradio, Dify, and smolagents to analyze financial statements, insider trading, and company filings.
