Giter VIP home page Giter VIP logo

pub2018superspike's Introduction

pub2018superspike

This repository contains example code to accompany our paper

Zenke, F., and Ganguli, S. (2018). SuperSpike: Supervised Learning in Multilayer Spiking Neural Networks. Neural Computation 30, 1514–1541.

URL: https://www.mitpressjournals.org/doi/abs/10.1162/neco_a_01086

SuperSpike animation

Bibtex:

@article{zenke_superspike:_2018,
	title = {{SuperSpike}: {Supervised} {Learning} in {Multilayer} {Spiking} {Neural} {Networks}},
	volume = {30},
	issn = {0899-7667},
	shorttitle = {{SuperSpike}},
	url = {https://doi.org/10.1162/neco_a_01086},
	doi = {10.1162/neco_a_01086},
	number = {6},
	journal = {Neural Computation},
	author = {Zenke, Friedemann and Ganguli, Surya},
	month = apr,
	year = {2018},
	pages = {1514--1541},
}

Intro

SuperSpike is an approximate surrogate gradient method. The algorithm runs fully online and constitutes a three-factor rule capabable training recurrent and multi-layer spiking neural networks to perform complex spatiotemporal input output mappings. The present repository introduces the key classes extending the Auryn library to run SuperSpike and illustrates how to train a simple three layer network using either random or symmetric error feedback.

The present code was freshly optimized and should be considered alpha stage. Please report bugs on GitHub and use the forum (https://fzenke.net/auryn/forum/index.php) for questions and discussions.

Requirements

You will need a working compiled version of the Auryn library (https://github.com/fzenke/auryn). We have tested this with commit 6f88977da186e874c75ce3cdbba59d83748fe53c.

Quick start

  • Check out the repository and change into the sim/ directory.
  • Edit the Makefile and make sure the variable AURYNDIR points to your Auryn root directory.
  • Run make
  • Run the script run_symfb.sh which will launch a simulation with one hidden layer and symmetric error feedback (run_rfb.sh will launch the same sim with random feedback).

Inputs

This example simulation uses the Oxford themed (a picture of the Radcliffe Camera) target spiketrain from the themes directory. Input and targe spike trains are provided in the humand readable ras format (https://fzenke.net/auryn/doku.php?id=manual:ras).

Outputs

The above run scripts will generate their output in the .../output/ directory. Specifically, the input spikes are written to multi_stim.0.spk, the hidden layer spikes are written to multi_hidden.0.spk and the output layer spikes are saved to output.0.spk. The stats file contains a learning curve over training time.

Visualizing network activity

To plot the spikes you will have to decode the binary output format using aube which comes with the Auryn library (see https://fzenke.net/auryn/doku.php?id=manual:aube for details). The animation shown above gives one example of how such network activity evolves over the course of training.

License & Copyright

Copyright 2018 Friedemann Zenke

The SuperSpike extension for Auryn is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The SuperSpike extension for Auryn is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the SuperSpike extension for Auryn.
If not, see http://www.gnu.org/licenses/.

pub2018superspike's People

Contributors

fzenke avatar

Stargazers

Marcos Beleza Filho avatar  avatar Zihan Zhang avatar  avatar Thomas Shoesmith avatar Balachandran Swaminathan avatar Peter Keffer avatar Ahmet Akman avatar  avatar Max Reeder avatar  avatar  avatar  avatar  avatar  avatar Tielin Zhang avatar  avatar Yiming Yang avatar  avatar Wisam Reid avatar Kanishk Kalra avatar  avatar  avatar Justin Wasserman avatar  avatar Jose Patino avatar  avatar  avatar Baixin Zhao avatar Jie Su avatar takyamamoto avatar  avatar  avatar Zidong avatar  avatar Bruce Tian avatar Snow-Crash  avatar Il Memming Park avatar Sufeng Niu avatar Cole Hurwitz avatar Olivier RISSER-MAROIX avatar Daniel Saunders avatar Paul Brodersen avatar Cheng Huzi avatar Ben Poole avatar Sidney Pontes-Filho avatar Steffen Schneider avatar  avatar Steven Du avatar Slice avatar 2 avatar 爱可可-爱生活 avatar Rob Luke avatar Matt Shaffer avatar

Watchers

James Cloos avatar justiceli avatar Wisam Reid avatar  avatar Paul Brodersen avatar

pub2018superspike's Issues

1D convolutional signals

Hi Sir,

I am following your repository. I have question related to SNN.

Actually I wanna work on 1D Conv signals using spiking neural networks. So can we apply Poisson distribution to 1D signals?

Thanks.

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.