[nengo-user] constraint satisfying network

Terry Stewart terry.stewart at gmail.com
Mon Jan 6 17:16:49 EST 2014


Hello Jessica,

Excellent question.  That's the topic of a lot of our ongoing research
here, and there seem to be lots of different ways to do it.  We've
made one step towards this in this paper:

---------------------
Intention, Emotion, and Action: A Neural Theory Based on Semantic Pointers

We propose a unified theory of intentions as neural processes that
integrate representations of states of affairs, actions, and emotional
evaluation. We show how this theory provides answers to philosophical
questions about the concept of intention, psychological questions
about human behavior, computational questions about the relations
between belief and action, and neuroscientific questions about how the
brain produces actions. Our theory of intention ties together
biologically plausible mechanisms for belief, planning, and motor
control. The computational feasibility of these mechanisms is shown by
a model that simulates psychologically important cases of intention.

http://onlinelibrary.wiley.com/doi/10.1111/cogs.12100/abstract
--------------------

The main nifty thing in here is setting up the sort of continuous
dynamics and constraint satisfaction system that you mentioned.  I
think there are two fairly natural ways to do this in the Neural
Engineering Framework.

First, we can just go ahead an implement a totally standard constraint
satisfaction system.  We just have an ensemble for each node in the
constraint network, and connect them with the relevant functions.  So
you can do something like this:

--------
import nef

net = nef.Network('Constraint Satisfaction', seed=1)

net.make('A', neurons=20, dimensions=1)
net.make('B', neurons=20, dimensions=1)
net.make('C', neurons=20, dimensions=1)

# positive association between A and B
net.connect('A', 'B', weight=1)
net.connect('B', 'A', weight=1)
# positive association between B and C
net.connect('B', 'C', weight=1)
net.connect('C', 'B', weight=1)
# negative association between A and C
net.connect('A', 'C', weight=-1)
net.connect('C', 'A', weight=-1)

net.view()
--------------

That approach is pretty simple, but I think it has a problem scaling
up.  In particular, it ends up making the strong claim that each
concept (A, B, C) is represented by a distinct group of neurons.

We deal with this "grandmother cell" problem in the paper I linked to
above by bringing in the whole semantic pointer thing and saying that
there's just one giant ensemble that represents a ~500 dimensional
vector.  Now each concept (A, B, C) is a different vector in that
space.  Now all we need to do is to connect that ensemble back to
itself with a function that implements the desired dynamics (which in
this case turns out to just be a weighted sum of outer products of the
associations between concepts).

So I like this second approach much better, since we end up with a
completely distributed constraint satisfaction system.  This makes it
reasonably intuitive to build and understand (since I'm used to
thinking of these sorts of networks), but avoids the grandmother cell
problem, and so should scale up much better.

I hope that helps -- please let me know if we could help give more
details on this approach, and how it might fit with the sort of
systems you're interested in modelling!

Terry Stewart



On Fri, Dec 27, 2013 at 6:54 PM, Jessica Dinh <jd62 at zips.uakron.edu> wrote:
> Hello,
>
> I have recently started learning how to build Nengo simulations from the
> examples in Eliasmith's book "How to Build a Brain." I am most interested in
> building a model that can simulate the emergence of person perceptions as
> perceptual systems continuously account for the dynamics among systems that
> process emotions, cognitive schemas, and embodiment (e.g., forward or
> backward's movements). Since I am new to this program and realize that this
> model is a bit advanced, I wanted to know if you would have advice on how to
> best construct such a model. For example, would I represent emotional
> systems, cognitive schemas, and systems that process embodiment as different
> ensembles that are integrated together? Or is there a better way to
> represent the dynamics among multiple systems as they constrain or
> facilitate one another.
>
> Thank you in advance for your help.
> Jessica
>
>
>
> --
> Dr. Jessica E. Dinh
> Industrial/Organizational Psychology
> The University of Akron
> Arts & Sciences Building, Mailbox #20
> Akron, OH 44325
> jd62 at zips.uakron.edu
>
> _______________________________________________
> nengo-user mailing list
> nengo-user at ctnsrv.uwaterloo.ca
> http://ctnsrv.uwaterloo.ca/mailman/listinfo/nengo-user
>



More information about the nengo-user mailing list