Federated learning is a machine learning technique that can be used to train machine learning models at the location of data sources, by only communicating the trained models from individual data sources to reach a consensus for a global model. Therefore instead of using the traditional approach of collecting data from multiple sources to a centralized location for model training, this technique learns a collaborative model.
Federated learning addresses some of the major issues that prevail in the current machine learning technique such as data privacy, data security, data access rights, and access to data from heterogeneous sources.
There are different ways in which Federated Learning methods can be classified:
a. Cross-Silo Federated Learning: ML models runs of the larger computing devices such as cloud instances and bare metal servers.
b. Cross-Device Federated Learning: ML models are run on edge or IoT devices such as phones, or drones, or Raspberry Pi type of systems.
a. Horizontal Federated Learning: The data coming from different sources have the same feature space but they differ in data samples.
b. Vertical Federated Learning: The data samples are aligned across the data sources but they differ in data features.
c. Federated Transfer Learning: In situations where neither the data samples or the feature space are common between different data sources.
a. Centralized Federated Learning: a central server is used to orchestrate the different steps of the algorithms and coordinate all the participating data sources during the learning process.
b. Decentralized Federated Learning: The data sources are able to coordinate themselves to obtain the global model.