Description of problem
Hi all, I am trying to implement my own version of MNIST training with STDP. What I am doing here is simple: Use a 784 input neurons to an output neuron driven by LIF model. My aim is to force this network to learn the weights of class ‘0’, meaning that after training the network and visualising the weights, it should show ‘0’ image like what literature papers show. After training, i proceed to testing phase on training set ‘0’, ‘1’ and ‘2’ by turning off weight updates and try to confirm if it fires more spikes for class 0 than class 1 and class2. Indeed, it fires less for class 1, but somehow it fires almost the same no of spikes with class 2 as class 0, so I am not sure if this is correct? Can some expert advise on this? Link to colab is below
Minimal code to reproduce problem
https://drive.google.com/file/d/19zaQ4SPHBz-rQI1nVrKPzujseUq-L7Yz/view?usp=sharing
What you have already tried
Kind of stuck for many days on looking at how people do this, but most of the codes contain bugs or are not modular or easily readable for beginners :(((. Some expert might want to point me to some good source of reference? Not the Diehl paper 2015 because the code is very complicated… Yes, I have tried raiding the whole website, so far no one has show a GOOD code on how classification problems are solved with STDP.
Expected output (if relevant)
I want the network to fire more spikes ONLY on the class it is trained on, but seems like that is not the case. Am I doing this wrongly? How can I improve on this? Please help me…
Actual output (if relevant)
Can be seen from the google colab
Full traceback of error (if relevant)
NIL
THANK YOU SO MUCH kind people!