Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: maxnowa
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 36.8 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Project Overview

bioSNN

This computational tool is part of the bachelor thesis "Exploration of Dynamics and Application of Spike-Timing-Dependent Plasticity". The purpose of this biologically inspired spiking neural network (bioSNN) is to perform digit recognition on the MNIST dataset using biologically plausible learning mechanisms, mainly STDP, but also together with other mechanisms such as winner-takes-all, adaptive thresholding, stochasticity, and more (to be added). bioSNN should perform training, testing, and evaluating of various network configurations automatically and efficiently, while retaining high customizability.

The results of the thesis demonstrate that the model, through STDP, can learn stable and differentiated representations of input data. The spike encoding mechanism plays a key role in this process. These findings together with the tool lay a foundation for further research into biologically plausible modeling of learning processes in spiking neural networks.

Installation

To install the required packages run

zsh pip install requirements.txt

Usage

Training and Inference

The current implementation does not feature a GUI or CLI. To run an experiment change directories into the main folder zsh cd path/to/folder and run zsh python3 src/main.py Parameters settings can be modified by changing values inside a dictionary in the main.py file. Running the file without changing parameters utilises the default parameters and optimal parameter setting specified in the thesis.

Results of the training will be displayed and subsequently saved to an experiment folder in the data folder. The naming scheme of the folders features key parameter settings from that run, model name, version, as well as a unique ID to allow for multiple experiments with the same parameter configuration to be saved. The experiment folder contains four subfolders and one .py file (as of version 1.03): - parameters: contains json files with all parameter settings - plots: contains all plots generated during the run - results: contains the output of the last evaluation - weights: contains final weights and weight change file - plotweightchanges.py: script to generate interactive graphics showing the weight change during training, as heatmap and weight reconstruction

Training visualization

To view the weight change over the training time, execute the script plotweightchanges.py in the experiment folder. Change directory into the desired data folder zsh cd data/bioSNN-v1.03_MNIST60000_EXAMPLE and execute the script zsh python3 plot_weight_changes.py A slider allows to scroll forward and backward through the training course.

Features

The current version of bioSNN features the following mechanisms:

  • adaptive threshold after Diehl & Cook (2015)
  • hard/soft Winner-Takes-All
  • "error" mechanism
  • neuronal coding mechanism: exact time rate coding (constant coding), linear random time rate coding (Poisson coding), exponential random time rate coding

Potential future work could add:

  • receptive fields
  • recurrency
  • delay
  • neuronal backpropagation
  • stochastic connections

NOT FUNCTIONAL:

Some features have been started but are not fully functional yet: - specifying arbitrary network architectures - changing neuron model

License

This software is licensed under the MIT License.

Citation

For information on how to cite this software please refer to the citation file.

Contact

For any inquiries please contact the author at:

max.nowaczyk@bccn-berlin.de

Owner

  • Name: Max
  • Login: maxnowa
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: bioSNN
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Max
    family-names: Nowaczyk
    email: max.nowaczyk@bccn-berlin.de
    affiliation: Bernstein Center Computational Neuroscience Berlin
repository-code: 'https://github.com/maxnowa/bioSNN'
license: MIT
version: '1.03'

GitHub Events

Total
  • Push event: 3
Last Year
  • Push event: 3