Good day,
I would like to start using monty for pattern recognition in time-series data. I don’t mind experimenting.
Can anyone please recommend where to start? Do you think the stock components (e.g. learning modules) are compatible/enough?
Regards
Good day,
I would like to start using monty for pattern recognition in time-series data. I don’t mind experimenting.
Can anyone please recommend where to start? Do you think the stock components (e.g. learning modules) are compatible/enough?
Regards
Hi @pepedocs
Currently, the models learned in Monty’s LMs don’t have a temporal dimension. We are actively brainstorming how to incorporate time into Monty’s models to learn and recognize behaviors and have a pretty concrete plan for doing this now, but none of it has been implemented so far.
I am planning to add all the items required for a first prototype to our future work section in the next days. If you are interested in playing around with and potentially contributing to some of them I’m happy to talk about more details.
If you wanted to model time series data with Monty today, you could try and represent time as a physical dimension. I.e., as you move through time, the x,y,z coordinates you sent as location information to Monty changes systematically along one of those axes. Movement would be pretty simple here since you can only move in one direction through time. To infer the temporal pattern, Monty would basically infer the location in the time series it has previously learned, the same way it infers the location of 3D objects.
I hope this helps!
Thank you. I’m interested with this. Will this require me to create a LM, or is there any existing one that I can start using?
Interesting, I’ll keep myself posted.
You could use the EvidenceGraphLM without any modifications. You would have to create a custom sensor module that takes your time series data and outputs the locations in the sequence as x,y,z locations in the self.location property of the State class (the output of any SM and expected input to any LM). If it is just a time series you probably only need one dimension (i.e. y and z would always be 0). The features at that point in the time series would be in self.non_morphological_features. You would probably set self.morphological_features to a placeholder pose since I assume there is nothing similar to an orientation in your time series data. Since you won’t need to recognize time series at different orientations you could set initial_possible_poses=[[0, 0, 0]] in the LMlearning_module_args` to reduce inference time.
Thanks a lot @vclay I’ll take note of this and get back as soon as I understand the fundamentals of monty. I think I need to read more about how learning in monty works first and also why it works. I posted another related question here.
Just curious as to what type of time-series data you want analyze. Knowing could help guide an approach.