Subutai, As usual from you, spotless. This is a great contribution to the design discussion (ie what we already have), and in an understandable, and concise, summary. Let's work from this.
On Sat, Nov 16, 2013 at 8:40 PM, Marek Otahal <[email protected]> wrote: > 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 > > -- Fergal Byrne, Brenter IT <http://www.examsupport.ie>http://inbits.com - Better Living through Thoughtful Technology e:[email protected] t:+353 83 4214179 Formerly of Adnet [email protected] http://www.adnet.ie
_______________________________________________ nupic mailing list [email protected] http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
