I am learning about unsupervised machine learning, and am a bit confused regarding different algorithms to update weights. So, I understand that both Oja's Rule and BCM can be used.
In Oja's rule:
dw/dt = k*x*y - w*y^2
x is the value at the input neuron,
y is the value at the output neuron and
w is the connection strength between the two. The idea is that this prevents weights from growing out of proportion.
dw/dt = k*(y-theta)*x
Where the idea is that unless my postsynaptic strength exceeds a threshold theta then I don't want my connectio to be strenghtened.
Studying competitive learning, which is yet another type of unsupervised learning I cam across another rule:
dw/dt = n*(x-y)
In this case however
x is the full input vector and
y is the vector representation of the output vector. The idea being that we move the prototype that responded the strongest to a given input closer to it, making the two more similar.
However, I don't understand when should I use which rule? For example, why couldn't I use a rule that combines both Oja's and BCM, hence only increasing connection weights when the output exceeds a given threshold, and preventing weights from growing out of proportion?