FLIGAN: Enhancing Federated Learning with Incomplete Data using GAN
<|reference_start|>FLIGAN: Enhancing Federated Learning with Incomplete Data using GAN: Federated Learning (FL) provides a privacy-preserving mechanism for distributed training of machine learning models on networked devices (e.g., mobile devices, IoT edge nodes). It enables Artificial Intelligence (AI) at the edge by creating models without sharing actual data across the network. Existing research typically focuses on generic aspects of non-IID data and heterogeneity in client's system characteristics, but they often neglect the issue of insufficient data for model development, which can arise from uneven class label distribution and highly variable data volumes across edge nodes. In this work, we propose FLIGAN, a novel approach to address the issue of data incompleteness in FL. First, we leverage Generative Adversarial Networks (GANs) to adeptly capture complex data distributions and generate synthetic data that closely resemble real-world data. Then, we use synthetic data to enhance the robustness and completeness of datasets across nodes. Our methodology adheres to FL's privacy requirements by generating synthetic data in a federated manner without sharing the actual data in the process. We incorporate techniques such as classwise sampling and node grouping, designed to improve the federated GAN's performance, enabling the creation of high-quality synthetic datasets and facilitating efficient FL training. Empirical results from our experiments demonstrate that FLIGAN significantly improves model accuracy, especially in scenarios with high class imbalances, achieving up to a 20% increase in model accuracy over traditional FL baselines.<|reference_end|>
@article{maliakel2024fligan:,
    title={FLIGAN: Enhancing Federated Learning with Incomplete Data using GAN},
    author={Paul Joe Maliakel, Shashikant Ilager, Ivona Brandic},
    journal={arXiv preprint arXiv:2403.16930},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.16930},
    primaryClass={cs.LG}
}