## 2 Background
### Federated Learning Algorithms  
Algorithm 1 provides an overview of FL, where at a high level, FL boils down to the coordination process overseeing the distributed training of a model on data that never leaves its origins. That said, both the aggregation function applied by the server and the client selection can take many forms. ```
0: Training rounds \(T\), Clients \(K\), local training epochs \(E\), public dataset \(D\) for initial training
0: Trained model \(W_{T}\)
0: Central Server is running
1:\(W_{0}\leftarrow\) initialize(D)
2:for each training round \(t\) in \(T\)do
3:for each\(c_{k}\) in \(K\) in parallel do
4:\(w_{t_{\Omega}}\leftarrow\) ClientUpdate(\(W_{t-1},E\))
5:endfor
6:\(W_{t}\leftarrow\) Aggregate(\(w_{t,c_{1}},\dots,w_{t,c_{K}}\))
7:endfor
8:return\(W_{T}\)
```  
**Algorithm 1** High-Level Federated Learning Process  
As an example, one may consider FedAvg [1], the most well-known FL algorithm and often considered the baseline for FL. After model initialization, FedAvg embraces local training where each client employs, in parallel, \(E\) epochs of Stochastic Gradient Descent (SGD), where the weights of the local model are updated to optimize the model loss based on the local data. At the end of the round, the central server collects the derived model weights per client. Aggregation is then performed using a weighted average where \(s_{k}\) is the number of samples used by each client during local training and \(S=\sum_{k}s_{k}\):  
\[W_{t}=\sum_{k}\frac{s_{k}}{S}w_{t,c_{k}} \tag{1}\]  
With this, clients that have used more samples have a larger influence on the new state of the model. Hence, despite the simplicity of FedAvg, the literature has shown that for non-IID data, there are no convergence guarantees [26]. To compensate, FedProx [3] has been proposed as a generalization of FedAvg where the clients extend the SGD process so that clients optimize a regulated loss with a proximal term that enforces the local optimization of the loss in the vicinity of the global model per training round. Similarly, SCAFFOLD is a FL algorithm that attempts to optimize the training process for non-IID data by providing a \"correction\" mechanism for the client-drift problem during local training [27]. In brief, SCAFFOLD estimates the update direction for the global model at the FL server and the update direction for each client with the difference used to correct the local model versions. Figure 1: FL example where initial model \(W_{t_{0}}\) is disseminated to clients for round \(t_{0}\) (step 1), clients update their local model state at \(t_{1}\) (step 2) and afterward the central FL server employs a global aggregation to infer a new model state \(W_{t_{1}}\) (step 3) where in this case a weighted average is used. To reduce the significant communication overhead imposed by FL, FedDyn is an algorithm that \"pushes\" to the client level more processing and optimization to reduce the overall communication burden and the number of training rounds [28]. For this, FedDyn adopts a regularization optimizer per round that dynamically modifies the client side objective with a penalty term so that, in the limit, when model parameters converge, they do so to stationary points of the global empirical loss. In terms of client selection, the aforementioned algorithms employ a common strategy where the FL server opts for a random selection from the pool of available clients via a uniform distribution. On the other hand, two notable studies show that performing a biased selection of clients can yield faster global model convergence and reduce communication overhead. For example, after a few initial training rounds, the Power-of-Choice [29] opts for a biased selection towards clients with higher local loss. This way, the algorithm achieves faster error convergence by 3\(\times\) and 10% higher test performance.