Closed ggoupy closed 2 years ago
Hello, Thank you for your interest in our work. I didn't clearly understand the situation. If the model is not learning, how could it reach ~ 70% AUC?
about your questions:
Hello, thank you for your answer !
I think that the model reaches ~ 72% AUC because the Convolutional SNN might act as an encoder that reduce the input dimensionality.
However, I do have this AUC when I use a potential-based vector for readout, which is a vector of size (out_c out_h out_w) where each value is the mean over all timesteps. For the spike-based vector, I have an AUC of 50% without training and around 68% with training. So there is such a learning process even if it leads to worse performance.
About STDP, if I choose one output neuron winner, it means that weights of the feature map of the winner are updated, using input values used (the convolution patch) to compute the potential of the winner right ?
To solve the STDP learning problem, I think I need to play with the code to find its source. About the winner, you are right. The weights are shared, and they will be updated based on the winner neuron's inputs (and outputs).
Alright, I moved to something different now but thanks for your answers !
Hello. I am new to SpykeTorch. I am working on an anomaly detection project and I would like to learn features from spectrograms using a Convolutional SNN. I have been struggling so far for the past week with STDP. My model achieves decent performance (~ 70% AUC) but does not learn or very few (gain of 2-5% AUC). I have tried a lot of things : parameter tuning (number of winners, firing threshold, inhibition radius) but also adaptive learning rate, adaptive firing threshold, etc. I don't understand where the problem comes from because I know I can obtain > 90% AUC with a regular CNN.
My pipeline is : signal -> spectrogram (MFSC) -> CSNN -> ML outlier detection classifier
So I have several questions :
sf.pointwise_inhibition(pot)
orsf.threshold(pot)
leads to worse performance in my case.Do you have any intuition about something I am doing wrong ?
Here is my model, I can also send you my whole code if you have the motivation to check it out.
Notes :