Wow, you rock on again!

this is gold info. Should definitely go on wiki, so it doesn't dust here on
the ML.

+1 on the Network API level, if it's generic enough to specify settings for
the lower Algorithms. If not, maybe both should be included.

I suppose it's in the nta/engine directory. Shame on me to getting to now
this late!, I always thought this was part of the old  "hierarchical &
vision Nupic 1". So does this really work well now? Chaining regions (that
means SP+TP) together back and forth? Are there any examples? Doc?

Many thanks! M.


On Sat, Nov 16, 2013 at 8:13 PM, Subutai Ahmad <[email protected]> wrote:

>
> Wow, the mailing list has really exploded the past few days! A bunch of us
> were very busy at AWS Invent this week and personally I have only been able
> to sample the emails.
>
> There has been a bunch of good discussion about the NuPIC API. I agree
> with Matt, Fergal, Doug, and others about the need for defining this. There
> is also some (understandable) confusion about the various components of
> NuPIC, so I wanted to put some of this down and clarify the language.
>
> There are three main areas of NuPIC: the Algorithms, the Network/Regions
> API, and the OPF.   These three have very distinct purposes.  Below is a
> detailed description of each component. I apologize for the wordiness, but
> hopefully this is helpful in understanding the various pieces.   I also
> have below a proposal for the “NuPIC API”.
>
> The concepts underlying the CLA are extremely powerful. The potential
> applications are vast but there is still much research left to do. It is
> not easy to have a one size fits all approach, and we will be stretched in
> many different directions. A discussion of the API, release process, etc.
> is great to have now - thanks to Matt for kicking this off.
>
> —Subutai
>
> *Algorithms*. This level contains implementations of the Spatial and
> Temporal Poolers. If you just want to work with the raw algorithms, this is
> the easiest level to use.  The file spatial_pooler.py contains a clean
> implementation of the spatial pooler that can be used directly. See
> hello_tp.py for how to use the temporal pooler directly. Matt used this for
> his nupic_nlp implementation.
>
> *Network API* - This level formalizes the concept of “Networks" and
> “Regions". This API allows you to string together multiple regions,
> including hierarchies. You can send the output of N Regions into higher
> level Regions. It formalizes initialization, input/output vectors, a
> unified mechanism for setting/getting parameters, serialization, and the
> order that compute is called on individual regions (this is very important
> for hierarchies). It is one level above the algorithms and is agnostic to
> the specific algorithm. For example, a Region can have a CLA implementation
> or a KNN implementation. It is 100% written in C++, and it is very small
> and clean. It can support multiple language bindings, with Python being the
> main one currently implemented.
>
> *OPF* - the Online Prediction Framework is a client of the Network API
> and used in Grok’s commercial product. It is designed for a very specific
> use case: small streaming data applications. The OPF contains three years
> of exploring dozens of different industries and business models while we
> searched for commercial applications of the CLA. At least 40% of this code
> is not used anywhere anymore. We haven’t had time to clean it up. I would
> characterize this code as very powerful, very messy, and not easy to
> understand. The OPF includes encoders, the classifier, swarming, and the
> description file format. All this stuff is pretty specific to streaming
> data applications such as energy, IT data, etc. It does not support
> hierarchies, vision, and so on.  The hotgym sample is an example of using
> the OPF.
>
> *Support* - I include this because there is also a grab bag of other
> components that are used in various places. This would include the Sparse
> math library, test routines, the build system, etc.
>
> So what is the NuPIC API? *My strawman proposal: the main API for NuPIC
> should be the Network/Regions API*. It is very generic and clean. It is
> independent of specific algorithm implementations, and can support a very
> wide range of use cases including streaming data, vision, audio,
> hierarchies. It can also easily support other languages. It can support
> experimentation and commercial uses.
>
> Doug: the Network API does not yet support distributing CLA Regions across
> servers, but it could be extended to do so. It does support the idea of
> having pre-trained Regions that you can hook together.
>
>
>
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>
>


-- 
Marek Otahal :o)
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to