Hi Ken and Martin,
Thank you for your interest in the LIDA software framework.
On 6/1/12 10:13 AM, sandsmark wrote:
> Some background: We're attempting to use LIDA for implementing an
> agent playing StarCraft: Brood War, and we have feature detectors for
> detecting for example idle workers, but to be able to use this
> information we need to send the location info or the unique unit ID to
> the sensory-motor memory.
I have some general questions for you. Is your primary goal for the
agent to play starcraft well? This is probably for a competition right?
To what degree do you want to model human-like (i.e. more complex)
processing? Maybe going for the latter improves performance, but not
always, depending on the task, "simple" approaches can yield great results.
> We're attempting to send location information and some identification
> information from the sensory memory to the sensory-motor memory, and
> as far as we understand this is what the dorsal stream is for.
Theoretically, in the LIDA model, I think of communication from Sensory
Memory to Sensory-Motor memory involving two kinds of signals:
1.) dorsal stream information which involves information about
location (and location only) of objects with respect to the agent and/or
its actuators in some internal coordinate system
2.) "emergency" signals that leads to a reflexive motor execution
So the dorsal stream is always sending the location information but it
seems that only in critical situations does the "what" information get
send to SMM. For example perhaps the agent should reflexively pull back
its army if it suddenly detects the opponent's army to avoid a bad
engagement.
Now to contrast suppose you immediately send information about every
unit and its position to the SMM all the time. This will probably not
give good results and does not really use the entirety of the LIDA model
-- but maybe it gives good results in some situations. For example one
pitfull with such an approach is that there is no prioritization
(attention) that selects the most "important" thing for the agent to
respond to.
> But we
> are wondering if this stream is implemented in the current version of
> the framework? There seems to be methods for adding listeners, but in
> the default implementation of the sensory-motor memory the
> receiveSensoryMemoryContent method contains only a comment "research
> problem". Is this part not yet implemented?
Right, at least initially, we've decided to leave SensoryMemory and
SensoryMotorMemory somewhat undefined since these modules can vary
depending on the agent's domain. There is no detailed implementation of
the dorsal stream currently in the framework . What is implemented is
what you mention; namely, that SensoryMotorMemory is a
SensoryMemoryListener and as such it must implement the following:
public abstract void receiveSensoryMemoryContent(Object arg0);
So you can have your SMM receiving any kind of Object from SM i.e. no
constraint on the information transmitted.
Hope this helps.
glhf,
Ryan
--
Ryan J. McCall
Ph.D. Student, Dept. of Computer Science
Cognitive Computing Research Group
Institute for Intelligent Systems
The University of Memphis