Oscillating state objects and working memory

When I have worked with state objects, they seem to have the following characteristics for maintaining semantic pointers:

  1. With perfect feedback, they will maintain a semantic pointer indefinitely.
  2. When a new semantic pointer is presented, the old one quickly fades away.
  3. If ‘APPLE + ORANGE + PEAR …’ are all presented at the same time, the object can maintain the multiple items (?treats as one item), but if they are presented consecutively, it cannot.

Over 20 years ago, John Lisman and his collaborators presented a model of working memory where items in short term memory were maintained by oscillatory subcycles (see Lisman JE, Idiart MA, Storage of 7 +/- 2 short-term memories in oscillatory subcycles. Science (1995): 267:1512-5 or Lisman J1, Buzsáki G. A neural coding scheme formed by the combined function of gamma and theta oscillations.Schizophr Bull. (2008). 34(5):974-80. I have played with implementing these ideas in Nengo. I have created oscillations with a 2-dimensional oscillatory neuronal ensemble that I then connect up to a higher dimension state object. (Other versions ‘inject’ oscillatory waves from a node (not shown)). The model maintains multiple semantic pointers presented at one per second or much more rapidly in working memory. (Sample code available on request )

My questions:

  1. I can’t ‘get my mind around’ why this works. When the initial semantic pointer fades in this scheme where is it saved and how does some exogenous input bring it back?
  2. Could this be a ‘real’ phenomena?
  3. If so, has anyone in the Nengo community investigated the parameters of oscillatory frequencies, semantic loads and timing of presentation, on model performance?
  4. Are there analytical tools that are relevant to the last question?


Hi Howard, sorry for taking so long to reply. Sounds like a very interesting line of research! It’s hard to say exactly what’s going on without access to the code and the details of your model. I would need this in order to propose how it could be working. For example it’s unclear to me how you are connecting the 2D oscillatory ensemble to your high-dimensional memory, or what you have done to set your oscillator(s). Some possibile things to investigate that come to mind are:

  • You might need to be careful and re-run the experiments with many different random seeds (vocabularies, tuning curves, etc.) as some times these results can be incidental side-effects of how your semantic pointers are related to one another, and tuning curves being predisposed to represent them in some way.

  • Could the postsynaptic filters (synapses) between ensembles be responsible for maintaining some of the memory over time?

  • Have you done any controlled experiments to isolate the role of oscillations here?