FedUCA: Federated Learning by Utility-Constrained Stochastic Aggregation for Improving Rational Participation
FedUCA is a first-principles theoretical framework for managing endogenous participation in federated learning through non-monetary incentives. It formulates server-side optimization to balance incentive distribution against client participation dynamics, and provides theoretical convergence guarantees for stochastic aggregation while optimizing overall system performance.
This code is adapted from FedDyn. Before running any scripts, initialize the local environment by creating the directories used for dataset storage and experiment logging. From the root of the project, run:
mkdir Data
mkdir OutputData/: Starts empty. The execution scripts automatically download and format the corresponding datasets into this directory.Output/: Destination for all experiment logs, baseline comparisons, and generated plots.
Main execution scripts. Each one initializes the specified dataset (CIFAR-10, CIFAR-100, or Fashion-MNIST) and then runs both the standard baselines and the FedUCA framework in sequence.
Core implementations of all baseline federated learning methods with rationality, covering both the baseline algorithms and the FedUCA framework.
Server-side optimization logic and the game-theoretic functions used to compute and distribute non-monetary incentives to clients.
Run the experiments by executing the script for the dataset you want to evaluate. For example, to evaluate the framework on CIFAR-10:
python incentive_cifar_10.pyLogs, baseline comparisons, and plots for the run are written to Output/.