All Projects → IBM → Federated Learning Lib

IBM / Federated Learning Lib

Licence: other
A library for federated learning (a distributed machine learning process) in an enterprise environment.

Projects that are alternatives of or similar to Federated Learning Lib

Machine learning
Estudo e implementação dos principais algoritmos de Machine Learning em Jupyter Notebooks.
Stars: ✭ 161 (+0%)
Mutual labels:  jupyter-notebook
Pythonfromdatods
图书《Python编程:从数据分析到数据科学》的配套资源
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Image keras
Building an image classifier using keras
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Lolita
Using github's issue system as lightweight notes & blog.
Stars: ✭ 161 (+0%)
Mutual labels:  jupyter-notebook
Visualizing Cnn Feature Maps
Visualizing CNN filters using PyTorch
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Cs231n
My assignment solutions for CS231n - Convolutional Neural Networks for Visual Recognition
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Merf
Mixed Effects Random Forest
Stars: ✭ 161 (+0%)
Mutual labels:  jupyter-notebook
Nlp With Python
Scikit-Learn, NLTK, Spacy, Gensim, Textblob and more
Stars: ✭ 2,197 (+1264.6%)
Mutual labels:  jupyter-notebook
Real Time Facial Expression Recognition
A Deep Learning Case Study to detect one of the Seven Human Facial Expressions in Still Images and in Real Time. This model is also trained enough to Detect Facial Expressions of Animated Images.
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Pix2pix Film
An implementation of Pix2Pix in Tensorflow for use with frames from films
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Covid
Tracking Coronavirus Growth
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Contrastivelosses4vrd
Implementation for the CVPR2019 paper "Graphical Contrastive Losses for Scene Graph Generation"
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Feature Engineering Made Easy
Feature Engineering Made Easy, published by Packt
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Py
Repository to store sample python programs for python learning
Stars: ✭ 4,154 (+2480.12%)
Mutual labels:  jupyter-notebook
Sas kernel
A Jupyter kernel for SAS. This opens up all the data manipulation and analytics capabilities of your SAS system within a notebook interface. Use the Jupyter Notebook interface to execute SAS code and view results inline.
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Hitchhikers Guide Machine Learning
Guide explaining and implementing fundamental machine learning algorithms in Python
Stars: ✭ 161 (+0%)
Mutual labels:  jupyter-notebook
Pytket
Python module for interfacing with the CQC t|ket> library of quantum software
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Fsdl Text Recognizer 2021 Labs
Complete deep learning project developed in Full Stack Deep Learning, Spring 2021
Stars: ✭ 158 (-1.86%)
Mutual labels:  jupyter-notebook
Neural Nets Are Weird
Stars: ✭ 162 (+0.62%)
Mutual labels:  jupyter-notebook
Load forecasting
Load forcasting on Delhi area electric power load using ARIMA, RNN, LSTM and GRU models
Stars: ✭ 160 (-0.62%)
Mutual labels:  jupyter-notebook

IBM Federated Learning

What is it?

IBM federated learning is a Python framework for federated learning (FL) in an enterprise environment. FL is a distributed machine learning process, in which each participant node (or party) retains data locally and interacts with the other participants via a learning protocol. The main drivers behind FL are privacy and confidentiality concerns, regulatory compliance requirements, as well as the praciticality of moving data to one central learning location.

IBM federated learning provides a basic fabric for FL, to which advanced features can be added. It is not dependent on any specific machine learning framework and supports different learning topologies, e.g., a shared aggregator, and protocols. It supports Deep Neural Networks (DNNs) as well as classic machine learning techniques such as linear regression and k-means. This comprises supervised and unsupervised approaches as well as reinforcement learning. The figure below shows a typical configuration of an aggregator based federated learning setup supported by IBM federated learning.

A set of parties own data and each trains a local model. The parties exchange updates with an aggregrator using a FL protocol. The aggregator fuses (aggregates) the results from the different parties and ships the consolidated results back to the parties. This can go through multiple rounds until a termination criterion is reached. IBM federated learning supports the configuration of these training scenarios.

The key design points of IBM federated learning are the ease of use for the machine learning professional, configurability to different computational environments - from data centers to edge devices - and extensibility. It can be extended to work with different machine learning (ML) libraries, learning protocols, and fusion algorithms. This provides a basic fabric on which FL projects can be run and research in FL learning can take place.

IBM federated learning comes with a large library of fusion algorithms for both DNNs and classic ML approaches, consisting of implementations of both common, published fusion algorithms as well as novel ones we have developed.

Supported functionality

IBM federated learning supports the following machine learning model types:

  • Neural networks (any neural network topology supported by Keras, PyTorch and Tensorflow)
  • Decision Tree ID3
  • Linear classifiers/regressions (with regularizer): logistic regression, linear SVM, ridge regression, Kmeans and Naïve Bayes
  • Deep Reinforcement Learning algorithms including DQN, DDPG, PPO and more

IBM federated learning supports multiple state-of-the-art fusion algorithms to combine model updates coming from multiple parties. Changes in this algorithm may speed up the convergence, reduce training time or improve model robustness. For a particular ML model, you can select multiple types of fusion algorithms:

Supported ML Models Supported fusion algorithms
Neural Networks Iterative Average
FedAvg McMahan et al.
Gradient Average
PFNM Yurochkin et al.
Krum Blanchard et al.
Coordinate-wise median Yin et al.
Zeno Xie et al.
SPAHM Yurochkin et al.
Fed+ Yu et al.
FedProx: Tian Li et al..
ID3 Decision Tree ID3 fusion Quinlan
Reinforcement Learning RLLib models Iterative Average
FedAvg McMahan et al.
Linear classifiers with SGD Iterative Average
K-means SPAHM Yurochkin et al.
Naïve Bayes Naive Bayes fusion with differential privacy

We also support the following fairness techniques that help to mitigate bias in federated learning and can be coupled for multiple types of ML models:

Fairness techniques Algorithm types Supported ML models
Local Reweighing Abay et al. Pre-processing All ML models
Global Reweighing with Differetial Privacy Abay et al. Pre-processing All ML models
Federated Prejudice Removal Abay et al. In-processing Logistic Regression

How to get started?

Clone the repository. The main framework runtime is packaged in a whl file.

Try the set-up guide for a single-node federated learning setup.

There are a number of examples with explanation for different federated learning tasks with different model types to get started with.

How does it work?

There is a docs folder with tutorials and API documentation to learn how to use and extend IBM federated learning.

How to get in touch?

We appreciate feedback and questions. Please post issues when you encounter them.

We have set up a Slack channel for ongoing discussion. Join the IBM federated learning workspace: https://ibm-fl.slack.com/

Citing IBM Federated Learning

If you use IBM Federated Learning, please cite the following reference paper:

@article{ibmfl2020ibm, title={IBM Federated Learning: an Enterprise Framework White Paper V0. 1}, author={Ludwig, Heiko and Baracaldo, Nathalie and Thomas, Gegi and Zhou, Yi and Anwar, Ali and Rajamoni, Shashank and Ong, Yuya and Radhakrishnan, Jayaram and Verma, Ashish and Sinn, Mathieu and others}, journal={arXiv preprint arXiv:2007.10987}, year={2020} }

Ongoing effort

This is an ongoing effort. We plan to update this repo as new functionality is added frequently.

License

The distribution of IBM federated learning in this repository is for non-commercial and experimental use under this license. For commercial use IBM federated learning is available in IBM CloudPak for Data and as a service.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].