qihongl / pylca

A python implementation of the leaky, competing, accumulator (Usher, & McClelland, 2001).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The leaky, competing, accumulator (LCA)

this is a lightweight python implementation of the leaky, competing, accumulator, based on [1], [2] and [3].

how to use

here's an example that you can play with on google colab: Open in 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.

cmpt

the effect of leak is straightforward: controlling for everything else, accumulators with bigger leak get less activated

leak

install

its on PyPI, so simply do pip install pylca

note

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.

references:

About

A python implementation of the leaky, competing, accumulator (Usher, & McClelland, 2001).

License:MIT License


Languages

Language:Jupyter Notebook 96.2%Language:Python 3.8%