Federated averaging (FedAvg) [1]} is a central algorithmic step in federated learning. As shown in Algorithm REF , a pretrained model \(\mathbf {W}^0\)  initializes all clients at the beginning of the learning process.
This is followed by an iterative optimization loop, which contains two steps per round:
the first step is the local optimization, which is performed by each client.
Each client's model is initialized by the previous global model \(\mathbf {W}^{i-1}\) . To obtain the new client-side local model, each client updates their model with their own private dataset, which is kept on-device.
The second step is the FedAvg step, which is applied over all selected client models.
The averaged model is considered as the new global model in the next round.
In contrast to other works, averaging the accumulated gradient updates (e.g [1]}, [3]}), we directly average the model parameters at the end of each round, which leads to the same outcome with an easier implementation:
\( \begin{aligned}\mathbf {W}^{i} &=\sum _{n}^{}\alpha _n\cdot \mathbf {W}^{i}_{n}\\&=\sum _{n}^{}\alpha _n\cdot \mathbf {W}^{i-1} + \sum _{n}^{}\alpha _n\cdot \Delta \mathbf {W}^{i}_{n} \\&=\mathbf {W}^{i-1} + \sum _{n}^{}\alpha _n\cdot \Delta \mathbf {W}^{i}_{n},\end{aligned}\) 
