Giter Site home page Giter Site logo

snn_mpc's Introduction

Spiking Neural Networks for privacy preserving classification

This repository is meant to host our semester project based on implementing a Spiking Neural Network for classification, and using Crypten [1] to perform testing using privacy-preserving MPC.

##Collaborators with access to this repository

Nicolas SERVOT : EURECOM Student
Yavuz AKIN : EURECOM Student
Oubaida Chouchane : Staff SEC, project supervisor
Melek ONEN : Staff SEC, project responsible
Massimiliano TODISCO : Staff SEC, project responsible

Content of the repository

(Il faut mettre les différents fichiers qu'on a ici et expliquer ce à quoi ils correspondent)

Architecture of the SNN

The architecture of the spiking Neural Network is inspired from the Tutorials of Friedemann Zenke on Surrogate Gradient Learning [2].

Modifications to the original architecture :

In order to perform secure MPC during the Testing phase, the forward propagation of the SNN model is modified to compute on MPCTensors. The code has been adapted to work with a world size of at least 2 using GPU.

The Fashion MNIST Dataset has been used for training and testing. That's why in addition to the SNN architecture code, additional spike encoding functions have been added to convert the dataset into sets of spikes.

Structure of the Neural Network :

The SNN has the structure of a Feed Forward NN.

It is composed of 3 layers of neurons:
1. The first layer has 784 neurons
2. The hidden has 100 neurons
3. The output layer 10 neurons

The neurons are spiking neurons according to the Leaky-Integrate and Fire model (LIF).

How to install

Here are the instructions for installing Crypten on Linux, Mac, and AWS : https://crypten.readthedocs.io/en/latest/

Here are the versions of the libraries we used :

(ici faut ajouter les version de crypten, pytorch et tout)

How to use

(On peut remplir cette partie une fois qu'on a fixé le nom des fichiers)

What is next ?

  • Until now we've worked on the Fashion MNIST Dataset. The next step could be to train and test our model on classification of the spiking Heidelberg digits [3].
  • The final step of the project could be the implementation of an SNN for classifying voice spoofing records.

Ressources

[1] https://github.com/facebookresearch/crypten
[2] https://github.com/fzenke/spytorch
[3]https://compneuro.net/posts/2019-spiking-heidelberg-digits/

snn_mpc's People

Contributors

servax314 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.