this is a lightweight python implementation of the leaky, competing, accumulator, based on [1], [2] and [3].
here's an example that you can play with on google colab:
the script will generate the follwing plot, showing that more units got activated -> more competition -> reduce the activity level of the strongest unit == increase uncertainty. this is a desired property emerged from the competition across all accumulators.
the effect of leak is straightforward: controlling for everything else, accumulators with bigger leak get less activated
its on
PyPI,
so simply do pip install pylca
this implementation...
- ... allows any non-negative self-excitation. [2] assumes the strength of self-excitation (for the accumulators) is zero.
- ... doesn't terminate the LCA process when the (activity threshold) criterion is met, which is different from [2]. the user can truncate the activity time course post-hoc.
- ... lower bound the output activity by 0 (i.e. ReLU), like [1, 2]. [3] can do other non-linear transformations
- ... doesn't perform exponential weighted moving average of the inputs. [3] can do this.
-
[1] Usher, M., & McClelland, J. L. (2001). The time course of perceptual choice: the leaky, competing accumulator model. Psychological Review, 108(3), 550โ592. Retrieved from https://www.ncbi.nlm.nih.gov/pubmed/11488378
-
[2] Polyn, S. M., Norman, K. A., & Kahana, M. J. (2009). A context maintenance and retrieval model of organizational processes in free recall. Psychological Review, 116(1), 129โ156. https://doi.org/10.1037/a0014420
-
[3] PsyNeuLink: LCAMechanism