Open tcstewar opened 9 years ago
How difficult do you estimate implementing this might be? Is this appropriate for a small course project or is this more like a journal paper?
I think it could be a small course project. By "learning a backwards model" I actually meant doing the standard NEF solving-for-decoders to do the backwards model (mapping from the dynamical state back to the angle of the oscillator), so that should be straightforward. Maybe. I sort of get the sense that it'll either work okay or it'll be way harder than I imagine....
Resolved via my SYDE552 project, whose code is at: https://github.com/Seanny123/nef-conceptors
But I can't close this issue for some reason?
Herbert Jaeger's conceptors thing has a nice demo where it generates a bunch of 61-dimensional periodic output patterns. The patterns were gathered from motion-capture data, and are joint angles of a person doing a bunch of tasks. The model ends up being able to smoothly blend between them.
https://www.youtube.com/watch?v=DkS_Yw1ldD4 Matlab sourcecode and raw motion-capture data is available here http://minds.jacobs-university.de/conceptors (see link to matlab code at the bottom)
This looks a lot like a really simple version of dynamic motor primitives, and fits perfectly into our various ways of generating patterns (by having some generic dynamics and then decoding out the pattern). Here's a basic model:
One new feature that would be needed to be added is synchronizing the patterns based on current state. That is, when you blend from one pattern to the next, it needs to adjust the phase of the core oscillator to get near the phase in the pattern that leads to the closest output pattern of the current pattern. This is tricky, but I think can be done by learning a backwards model of the pattern. Maybe.
Also, one interesting idea for these systems is that the pattern itself could also specify the frequency of the oscillator. That is, the pattern itself can control the speed of the pattern (and change it at different times in the pattern).