Both Events and Words are strings, and both are encoder with the same
nupic built-in Category Encoder. You could say my current model is
learning a sequence of strings, it makes no differentiation whatsoever
between an Event and a Word. The CLA Classifier does a multistep
prediction, of 1 and 2 steps ahead. When I'm training the model, I pass
the entire sequence, words and events. Then, when I'm testing, I only
pass the words and let the CLA Classifier predict the next to elements,
which should be the events.
On Tue, Jan 12, 2016 at 1:02 PM, Matthew Taylor <[email protected]
<mailto:[email protected]>> wrote:
So you have a NuPIC model accepting sentences like "move to the
left", and it is classifying them into event types? If so, how are
you doing that? Are the words treated as string categories? Is each
sentence a sequence? How is a prediction being translated into an
event type? I'm really confused. :?
---------
Matt Taylor
OS Community Flag-Bearer
Numenta
On Mon, Jan 11, 2016 at 12:39 PM, Sebastián Narváez
<[email protected] <mailto:[email protected]>> wrote:
Ok, sorry for the inaccuracy, I was trying to explain it in a
quick manner. I'm making a task execution software for a virtual
environment (It's like a game. So far the character can move up,
down, left and right) with nupic. It takes a sentence as a
parameter (which is treated as a sequence of words) and outputs
an event on the virtual environment (i.e.: the movement of the
character). So for example, an input can be ['move', 'to',
'the', 'left'], and it should output ['event-move', 'event-left'].
I've tried various encoders and structures. So far I've got the
best results using the same Category Encoder to encode the words
of the input sentence, and the output events, and passing them
trough a SP, a TM all the way to the CLA Classifier. I train the
model by passing a sequence of words and then it's corresponding
sequence of events, then reset()ing the TM and passing another
pair of sequences.
After roughly 50 iterations, the model correctly predicts the
sequence of events 77.77% of the time, given a sequence of words
(or input sentence). Technically, it should always succesfully
predict the sentences, as I'm currently testing with the exact
same training set (there is no noise whatsoever), so I thought
it might improve if I adjusted the SP and/or TM parameters. In
fact, before I played with them a little, my succes rate was of
about 66.66%. What I've found funny, however, is that it almost
always predict correctly if the sentence ends with the direction
(e.g. ['move', 'it', 'upwards']), but fails if it doesn't (e.g.
['could', 'you', 'move', 'it', 'upwards', '?']).
I hope I explained myself clearly. Please tell me if there's
something weird in my explanation; english is not my main language.
On Mon, Jan 11, 2016 at 1:36 PM, Matthew Taylor
<[email protected] <mailto:[email protected]>> wrote:
Sebastian, is it possible to talk about this data without
abstraction? I'm having a hard time understanding what you
mean by "fixed size sequence". It would help if you could
talk about the actual sensors producing this data?
Either way, if you swarm for a model with two data sources
in an attempt to optimize the predictions of one of these
fields, many times the swarm exposes an unexpected lack of
correlation between the two fields. Sometimes it is simply
that to predict field A, the value of field B simply does
not matter enough to keep track of it.
If both sequences are independent of each other like you
say, I would not expect the value of one field to affect the
value of another field at all.
---------
Matt Taylor
OS Community Flag-Bearer
Numenta
On Fri, Jan 8, 2016 at 7:26 PM, Sebastián Narváez
<[email protected] <mailto:[email protected]>> wrote:
Sure. I have two inputs from different sensors. Having a
sequence from the first sensor (which isn't of a fixed
size), I want to predict a sequence from the second
sensor (which right now is of a fixed size of two, but
it would be nice to generalize to non-fixed size later).
When a sequence from the first sensor is passed to Nupic
and it returns a prediction, another sequence from the
first sensor is then passed, that have no relation
whatsoever with the previous sequence. That's what I
meant with non-streaming data. Each sequence is
independent from the other.
On Wed, Jan 6, 2016 at 2:04 PM, Matthew Taylor
<[email protected] <mailto:[email protected]>> wrote:
Hi Sebastian,
We recommend you use the swarming library to
identify the best SP and TM parameters. See
https://github.com/numenta/nupic/wiki/Running-Swarms
for details.
I'm not sure what you mean by non-streaming data,
can you elaborate?
---------
Matt Taylor
OS Community Flag-Bearer
Numenta
On Tue, Jan 5, 2016 at 3:42 PM, Sebastián Narváez
<[email protected] <mailto:[email protected]>>
wrote:
Hey guys. Is there any recommendations for the
SP and TM parameteres based on the type of
inputs or the encoder used? Also, how does
swarming behave with non-streming data? (i.e.: A
dataset of independent sequences).
Thanks in advance!