I haven't realized Nupic code size is so large. A convolutional network algorithm written from scratch can fit in 1000 lines of code. Why is Nupic source ~300MB?
On Mon, Feb 2, 2015 at 11:47 AM, Dinesh Deshmukh <[email protected]> wrote: > David thank u for the detail explanation. > > > On 2 February 2015 at 13:25, cogmission1 . <[email protected]> > wrote: > >> Dinesh, >> >> First of all when you say NuPIC, it helps to be clear about what in fact >> that is. NuPIC had a list of components and can be accessed and utilized >> from a few different levels of abstraction. There is the OPF (Online >> Prediction Framework) which is the "highest" level with which to work. Then >> there is the Network API, which allows one to combine components with >> specific respect for the job one wants to get done. Then there is working >> with the individual components which is the most fine grained and requires >> the most technical know-how (most do not deal with this level). >> >> NuPIC is a framework that in the end delivers a prediction and a >> confidence level of that prediction, given a *stream* of input (or sequence >> of inputs). It consists of various lower level components. >> >> 1. A module that allows Swarming (an algorithmic approach to arriving at >> (converging on) the best configuration parameters to use with NuPIC. (I >> believe it hasn't yet been pulled out so that it can be used independent of >> the OPF, but that is a current effort - I may be wrong or not up to date) >> >> 2. Encoders. Take input of various forms and normalize it across all >> possible inputs of a given type to produce a representation which is >> suitable for input into other NuPIC components. This input adheres to a few >> different constraints. Some of these constraints are configurable such as >> how many bits to use for a representation, how many bits within that are to >> be "on" bits etc. >> >> 3. Spatial Pooler. This takes in an encoded bit vector and outputs an SDR >> (Sparse Distributed Representation). This SDR is guaranteed to have certain >> properties. It also represents other aspects being modeled in a biological >> way. This is namely the cortical columns which contain neurons. SDR's have >> certain properties such as consistency, resistance to noise (slight >> differences in the resultant bit vectors don't have an enormous relative >> effect on the semantics) etc. >> >> 4. Temporal Memory. This, in most cases takes an SDR processed by a >> Spatial Pooler - but doesn't have to in all cases depending on the task >> being accomplished. This provides the distinctions surrounding prediction >> and sequential learning. This also outputs an SDR. >> >> 5. Classifier. This is used to provide statistical correlation of a >> prediction to the input that caused it. It is in most cases added to to the >> final layer of processing (but doesn't always have to be used). >> >> The site at Numenta.org has wikis and links to videos[1][2][3] which >> explain and add knowledge about each of these components. This is just a >> rough overview, it would help to peruse these and then come back with more >> questions which are always welcome :) >> >> Hope this high level overview helps! >> >> Welcome aboard! >> >> David >> >> 1. http://www.numenta.org >> 2. https://github.com/numenta >> 3. https://github.com/numenta/nupic/wiki >> >> On Mon, Feb 2, 2015 at 1:15 AM, Dinesh Deshmukh <[email protected]> >> wrote: >> >>> I would like to know in depth about different modules of nupic.GIve me >>> some suggestions of any links that explains how nupic code flows. >>> I know abstract view of what htm is but i want to understand at a >>> programming level. >>> >>> What makes nupic about 600MB size? I mean what kind of features it has? >>> >>> Thank u all. >>> >> >> >> >> -- >> *We find it hard to hear what another is saying because of how loudly >> "who one is", speaks...* >> > >
