To answer your questions: 1a) Yes, you can disable learning on the model object by calling model.disableLearning() [1]. It will no longer update its internal state after you have called this function. So you could do this before the examples gets to the missing Tuesdays, and it will not learn the "missing Tuesdays" pattern. You can re-enable learning with the enableLearning() method [2].
1b) You can save the model to disk by calling the model.save(<path>) function [3] and resurrect a model you've already saved by calling ModelFactory.loadFromCheckpoint(<path>) [4]. 2) Swarming is optimized only for prediction. It may not be the best method to find model params for anomalies. We have identified a set of model params that are decent for most one-dimensional scalar input anomaly detection, and we generally reuse those in all our anomaly models. 3) I don't quite understand the question, but I think when someone says "creating a model" they are generally referring to the process of identifying the best model params for a particular data stream. It probably does not refer to the model learning the patterns. 4) This search might help you find more info about "inferenceType" [5]. There is a wiki page [6] but it needs to be filled in. Anyone want to help? As for your question about temporal data, you should read this thread on our mailing list from last month [7]. Cortical.io's core technology does not deal with temporal data, true. But they are dealing mostly in the interesting properties of SDRs, which are a part of HTM theory, but not the whole. We are working with CIO to identify ways to improve natural language processing by consuming the temporal element of language as well. For example, you could consider this entire email -- indeed this entire mailing list -- a temporal data stream of text. This ability to process temporal language is not currently one of their capabilities, but it is a future goal of ours (not to speak for them, but we've talked openly about it). [1] http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#ae3efe32f87f56e9fd3edfb499b87263f [2] http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#af9756982485e3d520db6b1c99f4d1e39 [3] http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#aba0970ece8740693d3b82e656500a9c0 [4] http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1modelfactory_1_1_model_factory.html#a73b1a13824e1990bd42deb288a594583 [5] http://numenta.org/search/?q=inferenceType [6] https://github.com/numenta/nupic/wiki/Inference-Types [7] http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2016-January/012607.html Hope that helps, --------- Matt Taylor OS Community Flag-Bearer Numenta On Thu, Feb 11, 2016 at 7:12 AM, Wakan Tanka <[email protected]> wrote: > One more question: > Is it possible to somehow save the model "trained" from 1st dataset to use > it later? > > On Wed, Feb 10, 2016 at 11:52 PM, Wakan Tanka <[email protected]> wrote: > >> Hello NuPIC, >> >> In hotgym anomaly tutorial Matt changed inferenceType from >> TemporalMultiStep to TemporalAnomaly to being able detect anomalies. When >> he then run script to removed all Tuesdays NuPIC adapted to those changes, >> as it sees more and more of those data, started to consider it as a normal >> and stop reporting it as an anomaly. >> >> 1. I do not want NuPIC to adapt to those changes. Is possible to disable >> learning in this phase? I want is to create model using 1st dataset, then >> pass 2nd dataset to this model but further learning will be disabled. So >> far I know how to: create model_params by running swarm over 1st dataset >> and pushing this dataset into NuPIC to compute anomaly score. But what I do >> not know is how to "save" those learned patterns from 1st dataset and >> detect anomalies using this "trained" version in 2nd dataset. Is this even >> possible for NuPIC? >> >> 2. The one difference between hot gym prediction and hot gym anomaly was >> changing inferenceType from TemporalMultiStep to TemporalAnomaly in >> existing model params. So I guess that inferenceType does not affects swarm >> process because it can be easily turned into something else in existing >> model if needed? Are all available options under inferenceType using the >> same algorithm principles under the hood? >> >> 3. Based on above: when somebody is talking about creating model he is >> basically referring not just tuning (e.g. by hand or swarm) parameters >> inside model_params.py but also in this "training" phase? >> >> 4. Where can I find further info regarding inferenceType, the only info >> that I’ve found is this list [1]? Matt in his hot gym prediction tutorial >> said that the data are temporal so he has chosen TemporalMultiStep. But how >> can I know if my data are temporal and not e.g. nontemporal? As a >> nontemporal data can be considered e.g. those that guys from cortical.io >> are dealing with? I mean SDRs for particular words where time does not >> plays crucial role? Is the role of time completely omitted in cortical.io >> examples? >> >> [1] Inference Types - >> https://github.com/numenta/nupic/wiki/Inference-Types >> >> -- >> Thank you >> >> Best Regards >> >> Wakan >> > > > > -- > Best Regards > > Name: Wakan Tanka a.k.a. Wakatana a.k.a. MackoP00h > Location: Europe > Note: I'm non native English speaker so please bare with me ;) > Contact: > [email protected] > http://stackoverflow.com/users/1616488/wakan-tanka > https://github.com/wakatana > https://twitter.com/MackoP00h >
