## 1 Introduction  
Technology development in this era leads to a growth in the amount of data produced by devices. When used as training data, these data can provide intelligence to the end devices. Traditional machine learning approaches are centralized, requiring all data to be collected and sent to the central server for processing. The central server will collect the data to train a machine learning model to enable intelligence at the end devices. This approach raises concerns due to the amount of data traveling through the Internet and the possibility of privacy leaks. Federated learning offers a solution to address these concerns by allowing for the sharing of knowledge through a trained local model instead of sharing data with a central server [1; 2; 3; 4]. Federated learning (FL) is a distributed collaborative artificial intelligence approach that trains a local model and shares it with the central server. Instead of sharing data with the central server, the FL approach shares the locally trained models, which the central server aggregates to build a global model, as shown in Figure 1[1]. FL technology provides many benefits compared to traditional learning approaches. It makes more efficient use of network bandwidth and preserves data privacy since there is no need to transfer raw data to the server. Additionally, FL can enhance the quality of the global model by leveraging computation resources and diverse datasets on clients' devices [1; 5]. With these advantages that FL provides, it can be used in different applications such as healthcare, the Internet of Things (IoT), transportation, and mobile applications (for example, next-word prediction) [6; 7]. However, FL faces some challenges due to its decentralized approach. The assumption of the Independent and Identically Distributed (IID) data used in machine learning algorithms is not applicable in FL. Usually, the data in FL are heterogeneous data caused by Non-Independent and Identically Distributed (non-IID) data. For that reason, FL encounters the challenge of data heterogeneity (non-IID data challenge) [5; 8; 9]. The nature of data in FL differs from the centralized approach since the training data depend on the device usage and location and can vary between clients. The data in each device can differ in quantity or class distribution. In some cases, clients may have more data than other clients, while in other cases, some clients may have data belonging to a specific class (label). These variations affect the FL process and model performance. In FL, the central server randomly selects a subset of clients to perform local training and receives the locally trained models for global aggregation. Clients attempt to minimize their loss function during the local model training based on their local data. However, if the selected clients' local data distribution varies, the obtained local models may differ significantly, resulting in a divergence of the global model from the optimal one. This inconsistency between the local and global models occurs because the local models fit the clients' data distribution and do not reflect the overall data distribution. Therefore, training local models using non-IID data affects global model performance and convergence speed. Figure 2 shows an example that illustrates the impact of non-IID data on the global model and how the model diverges from the optimal case; while the global model built using IID data is close to the optimal case, in the non-IID data case, the model will need more communication rounds to converge and reach the same accuracy as models trained using IID data. Therefore, the non-IID data problem must be solved to enhance the model's performance [5; 10; 11]. Figure 1: General architecture of federated learning.