Thank Matt. It is great to have a quick view of the overall state of the
project like this. Very useful!

- Jeff

On Sat, Apr 11, 2015 at 12:48 PM Ralf Seliger <[email protected]> wrote:

> Thanks Matt. This is the overview I have been trying to piece together
> by myself over the last couple of weeks.
>
> RS
>
>
> Am 11.04.2015 um 19:43 schrieb Matthew Taylor:
> > Hello NuPIC,
> >
> > I've seen a lot of new names on the mailing lists lately, so I thought
> > this might be helpful.
> >
> > When NuPIC went open-source in 2013, it was a Python program with a
> > C++ core. Almost immediately after we open-sourced, the community
> > wanted to extract all the C++ out of the project and make it
> > independent of the Python code. Makes sense right? So we did it. But.
> > not. quite. all. the. way. (that will be important later...)
> >
> > Almost all the algorithms are written in both Python and C++. We
> > implement new algorithms in Python and port them to C++ once they are
> > vetted and optimization is required. So the newest algorithms are
> > still not ported to C++.
> >
> > The nupic.core Extraction Plan [1] is outdated, but it contains some
> > diagrams that outline the basic architecture of NuPIC and nupic.core.
> > You can see how there is both a C++ interface and a Python API that
> > can be installed with pip (requires python development headers).
> > Either one gives you the same algorithmic capacity. The Python API is
> > easier to use, and contains a basic framework for running experiments
> > called the OPF [2]. I use the OPF for my experiments, but those with
> > bigger plans use the Network API [3]. The Network API offers the
> > building blocks for hierarchy. The OPF is hard-coded to set up a
> > Network with only one layer, so no hierarchy. The Network API is
> > basically the same whether you are using the Python or C++ interface.
> > They each give you ability to build out flexible hierarchies.
> >
> > But there's a catch. The hierarchy has limited utility without
> > temporal pooling, and there are still ideas to implement in that field
> > [4]. We (Numenta) aren't even working on it right now. We think there
> > are still things to improve within one layer for cells before moving
> > on to a hierarchy. But the hierarchy will come. (FYI we've implemented
> > hierarchy in the past in a closed-source project, so we have proven to
> > ourselves that it works.)
> >
> > All the recent research [5] has been about sensorimotor integration.
> > In fact, due to Numenta's open research policy, you can see exactly
> > what Subutai, Chetan, and other NuPIC research engineers have been
> > working on [6].
> >
> > This is basically what NuPIC looks like today [7]. We are in the
> > process of Step #2 of the "extraction" plan [8]. Richard Crowder [9],
> > a NuPIC contributor, is working on moving the Temporal Memory
> > algorithm from Python into C++ right now. Subutai and Scott just had a
> > video chat with him about the work [10]. This is important because
> > without the TM algorithm ported to C++, the nupic.core project is not
> > very useful. The idea has always been to have the C++ nupic.core
> > project completely independent and feature complete. This will allow
> > anyone in the community with a language preference to create bindings
> > to the C++ interface and create an API in their favorite language,
> > thus exposing the core HTM functionality to many runtime environments
> > besides Python.
> >
> > We are also working on a platform-independent serialization technique
> > using Capn Proto [11], which will allow anyone running NuPIC to save
> > their Network states completely and re-instantiate them with complete
> > memory on different platforms. Once all this work is complete, users
> > of any NuPIC runtime should be able to transfer models across
> > networks, sharing all the knowledge they've learned about the data
> > they have seen so far. This should prove to be really useful as NuPIC
> > evolves and more people are running it in different environments.
> >
> > So there's a bunch of stuff to digest! I'm trying to get more people
> > involved, but we are pretty strict with PR reviews. Always nice, but
> > strict. Anyone in the community is welcome to sign our contributor
> > license [12] and start working on newbie or "help wanted" [13] tasks.
> > We are especially interested in getting people more versed in the
> > algorithms themselves. Several community members have worked on their
> > own implementations of HTM [14], which seems to be an excellent way to
> > really understand them. We have bi-weekly planning meetings that are
> > open to the public [15] and we occasionally have Numenta Office Hours
> > [16] where Jeff and Subutai address community questions and comments.
> >
> > [1] https://github.com/numenta/nupic/wiki/nupic.core-Extraction-Plan
> > [2] https://github.com/numenta/nupic/wiki/Online-Prediction-Framework
> > [3] https://github.com/numenta/nupic/wiki/NuPIC-Core-Network-API
> > [4]
> https://github.com/numenta/nupic/wiki/New-Ideas-About-Temporal-Pooling
> > [5] https://github.com/numenta/nupic.research
> > [6]
> https://github.com/numenta/nupic.research/wiki/Current-Research-Tasks
> > [7]
> https://github.com/numenta/nupic/wiki/images/nupic-core-extraction-step3.jpg
> > [8]
> https://github.com/numenta/nupic/wiki/nupic.core-Extraction-Plan#2-consolidate-all-cla-algorithms-in-nupiccore
> > [9] https://github.com/rcrowder
> > [10] https://www.youtube.com/watch?v=OKiO7WTRMm4
> > [11] https://github.com/numenta/nupic/issues/1450
> > [12] http://numenta.org/licenses/cl
> > [13] https://github.com/numenta/nupic/labels/newbie
> > [14] https://github.com/nupic-community
> > [15]
> https://www.youtube.com/watch?v=qdB--kl1TLU&index=34&list=PL3yXMgtrZmDrtAuw9jJCNbaJmW3nSD3hC
> > [16]
> https://www.youtube.com/watch?v=4V9J4tE_cL4&index=10&list=PL3yXMgtrZmDqsqo6hytKjhrkfFNEYDqfn
> >
> > Questions and comments welcome :).
> >
> > ---------
> > Matt Taylor
> > OS Community Flag-Bearer
> > Numenta
> >
>
>
>

Reply via email to