The mechanism for Inhibition is well known and accepted.
The implementation uses (topological) neighbourhood in which cells compete for activation (k-winner-takes-all).
Now, the problem is with biologically defining the neighbourhood.
I propose to add proximal horizontal (to peer cells) connections within Spatial pooler.
- peer connections randomly sample from distribution, same as feed-forward conns.
- a “negative” Hebbian rule applies: each time 2 cells fire (activate) together, their peer connections strenghtens (but the connection means how much/easily we’ll inhibit).
- if only 1 cell of the pair activates, the connection decays.
- each time a cell is active, it sends an inhibitory signal (weighted by strenght of the connection) to its peers
- each time cell’s (negative points, accumulated inhibition) decays.
This way, we can simplify the process of inhibition and its neighbourhood/radius computation.
Extension:
- special “types of neurons” can have different proximal connections structure, and thus define arbitrary topologies.