Closed Oblynx closed 4 years ago
For local inhibition the calculated value of t
is best.
For global inhibition, t ~ 0.5
works out best (keeping 1/2 of the tying minicolumns). I've probably misunderstood what ties mean.
k = ceil(Int, s*a())
gives another source of uncertainty
Local inhibition among a small synapse population presents a challenge in stabilizing output sparsity.
Currently the k-winners number isn't strictly enforced; if multiple minicolumns tie at the kth place, all of them will become active. This is ok when the population of competing neurons is large, but, if the inhibition area becomes too small or the synapse formation probability is too low, the total output sparsity is very unstable.
TODO
Tiebreaker logic
Z(y)
,activate(o)= o .>= Z(o)
must become smarter.o .>= Z(o)
->o + rand(Float32,size(o)) .> Z(o)
Z(y)
:Let
a
: number of neurons per area. We only want to activate 1 of the columns that tie at thek
th spot. ThenZ(y) = overlap(k)+t
, wheret
maximizes the probability that only1/a
samples in[0,1)
be> t
.Let this probability be p(X=1) where
X:= num of {a draws in [0,1)} > t
. We needt
that maximizesp(X=1)
:but
therefore