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
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
Metadata Files
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
- Repositories: 1
- Profile: https://github.com/maxnowa
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