Hi, I am currently using BCM to classify my training set and have checked a lot of literature that shows that there is a mapping relationship between BCM and triple STDP, or that they are directly equivalent under certain conditions.
However, when I was collecting data I found that the three learning rules don’t seem to be related. In fact I see from the accuracy so far that triple STDP > STDP > BCM. this does not match the information I have found, but as there are no examples of classification using BCM online. I am not sure if this is due to a problem in my data collection process or a problem with the learning rules.
I was wondering whether BCM would work better than STDP if used for classification, and whether Oja would work worse than BCM if used for classification.
Hi @kkkkking! The mapping relationship between BCM and triplet STDP is, in large part, theoretical because the conditions under which they act similarly are not realistic conditions for any unsupervised learning networks that I’m aware of. It is also the case (again, as far as I am aware) that Nengo provides the only implementation of BCM that works with spikes, as BCM was originally formulated for rate neurons, so comparisons other than the ones that I have published are theoretical.
In terms of performance in a particular task, since these are unsupervised learning rules, performance is going to depend a lot on your choice of hyperparameters. One would have to do a pretty exhaustive hyperparameter search to conclude that one learning rule is strictly more accurate than another, and it’s not clear to me that you could generalize those results to any other task or dataset.
If the goal is classification and you are wanting to achieve good accuracy, then I would be suprised if you could find a parameter set with any of these rules that would outperform a similar (or simpler) network that used supervised learning like the PES rule. If your goal is not accuracy and you are wanting to compare unsupervised learning algorithms for the sake of comparing them, then I would start with thorough (or in some other way structured) hyperparameter exploration.