/ann-snn

Primary LanguageJupyter Notebook

ANN

  • Download ann.ipynb and ann_train.csv to replicate my work
  • You need these libraries:
    1. matplotlib
    2. pytorch
    3. numpy
    4. pandas
  • In addition to them you need inbuilt modules like copy and random

Results

  • got around 98% accuracy for Arrhythmia_classifier

    Arrhythmia_classifier results

  • ANN and SNN networks can be calculated now. Download spikes.ipynb file and run it with the biases and weights you got after running the Arrhythmia_classifier model from ann.ipynb .

SNN

Network Structure

  • num of inputs - 4
  • num of hidden layers - 8
  • num of output - 5

Input feature vectors include rr_interval, qrs_interval, st_interval, qt_interval.

A quick overview of preprocessing.

flowchart

If you want to update the flowchart, open flowchart.excalidraw on excalidraw

How to play with the parameters

  • parameters you can change include beta for the LIF neurons, the sampling strategy, learning_rate specified in the ADAM optimizer.
  • beta is the decay rate of membrane potential, clipped between 0 and 1 during the forward-pass.
  • To know more about LIF neurons, visit this website.
  • sampling strategy is used to over sample classes whose count is very less. Whatever the number you assign to a particular key, that will be the number of elements in the final dataset before splitting for training and testing.
  • The over sampling method used is SMOTE.

Results

SNN results