Hi Ryan,

To add to Matt and Marcus' replies, recently we have been getting to a
better mathematical understanding of the various parameters [1]. I think
the math provides a lot of insight into how to set many of the parameters.
We haven't folded this into the swarming process yet - it could speed
things up quite a bit.  At the end of the day I believe that most of the
parameters can be set once, and won't need to be tuned based on specific
problems.

However there are currently still some parameters that are dependent on
inherent properties of a specific data source. For example, you might need
to set the encoder parameters differently depending on whether the signal
is really noisy or really clean.  In biology, the retinas of different
animals are pretty tuned to their specific environment.  You might also be
able to do this analytically but no one has figured this out yet.

In that sense swarming is just a temporary hack for letting the computer do
the work for stuff we don't yet know how to figure out analytically.

--Subutai

[1] http://arxiv.org/abs/1503.07469


On Fri, Dec 4, 2015 at 1:20 PM, Matthew Taylor <[email protected]> wrote:

> Hi Ryan,
>
> You are correct, a human could procure model parameters without swarming,
> but it might take a very long time and a lot of experiments. That is what
> swarming was designed to do -- test out a bunch of different permutations
> of model parameters and see which ones are the best.
>
> Also, a human must choose what data fields are available to a swarm in the
> first place. We usually do this by guessing what data might affect the
> values of other data over time. Swarming helps us refine exactly how much
> each data field contributes to the predicted field.
>
> We have found that sometimes correlations between different input data is
> not evident to the human eye, and swarming can uncover those correlations
> that a human would rarely think logical. For an interesting discussion of
> this, see this mailing list thread [1].
>
> As you probably know, streams of data can have lots of different "shapes".
> Some have many fields, some have only one. Some fields are highly affected
> by the values of other fields. Some data patterns are daily, some hourly,
> some have no regard to time whatsoever.
>
> Finding out which input data is relevant and how to encode it is what
> swarming does. It also permutes over encoder parameters to find the best
> way to encode the input data into SDRs. This video explains it in detail
> [2] in case you have not seen it.
>
> Generally, you only need to swarm as a pre-processing step, and once you
> find good model parameters, you can feed data into an HTM model over the
> data's lifetime. As the patterns in the data change, the model will learn
> those changes online. You generally only need to re-swarm if the "shape" of
> the data changes.
>
> I hope this was helpful, please let me know if I answered any of your
> questions. If you are just getting started with NuPIC, you might want to
> try out Menorah [3] to run some models very quickly based upon data readily
> available in River View [4].
>
> [1]
> http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2015-October/011878.html
> [2] https://www.youtube.com/watch?v=xYPKjKQ4YZ0
> [3] https://github.com/nupic-community/menorah
> [4] http://data.numenta.org/index.html
>
> Regards,
> ---------
> Matt Taylor
> OS Community Flag-Bearer
> Numenta
>
> On Fri, Dec 4, 2015 at 12:28 PM, Ryan Singer <[email protected]> wrote:
>
>> Hello NuPIC community,
>>
>> I'm just getting started. I'm excited about Nupic because the HTM model
>> and SDR data structure make so much sense intuitively. Finally, an approach
>> that doesn't feel arbitrary and over-engineered.
>>
>> However I'm confused about why swarming is necessary when configuring
>> models. I've been reading all the docs and I haven't yet found an
>> explanation of why a human can't arrive at the right model parameters
>> through reasoning.
>>
>> Am I missing some documentation or video that explains this? Any help is
>> appreciated.
>>
>> Ryan
>>
>
>

Reply via email to