3 ms·
One approach I've been thinking about is optimizing each neuron using only the global loss and information about the neighboring neurons. Basically if the netw
by im3w1l 6y ago
One approach I've been thinking about is optimizing each neuron using only the global loss and information about the neighboring neurons.
Basically if the network made the correct prediction tell each neuron to do a little bit more of what it just did. If it sent a high output, change the weights so it sends an even higher output. Weaken connections that were inhibitory and strengthen connections that were excitatory. And for a neuron with a low output, make it even lower by doing the opposite.
If on the other hand prediction was wrong, then try to make the neuron do less of what it did.
Do you know if something like this has been tried?
- sdenton4 6y agoBackprop is good at giving credit where credit is due: you're looking at the impact of each weight on loss, which allows changing each weight to improve the loss, by an appropriate amount proportional to the other weights. You can even have some negative weight gradients and some positive; ie, it may be that even with a 'good' overall result that it's best to turn down a particular weight. So my guess is that this approach would either take a much longer time to converge (as there's less information transmitted back for the neuron updates) or stall out completely. Probably not too hard to code up, if you want to try it. But I would also be pretty surprised if it hadn't been tried before.
- im3w1l 6y agoI agree it's likely to converge slower, but I was thinking that it could maybe make up for it by being cheaper. Based on what I know it also seems more biologically plausible that learning is a mostly local process.
- duvenaud 6y agoThis is basically what the chain rule / backprop does. The only caveat is that it's pretty hard to make a network with only positive weights. And once you allow negative weights, you have to know whether your downstream neighbours should have had higher or lower output. The easiest way to do this is to propagate the gradient backwards from the output, hence backprop.