Optimization about 'Layer' and 'Region' of Network

Hi, HTM experts.

I’m testing Nupic library using ‘hot gym’ example.
In this example, there are 3 ways for consist of ‘Network’.

  1. Basic (Single Layer / Region)
  2. Multi Layer
  3. Multi Region

And I saw different results (anomaly score) for each network organization.

I think, it is very important that is a design of network organization as data attribute.
Maybe some case (= some data) is best to ‘basic network’, and some case is best to ‘multi layer network’.

I wonder about this network design (or consulting).
If I apply Nupic to my solution, I must choose network, but back-data is not enough to me. (Which network is good for my solution?)

How does HTM / Nupic member think about it?

  1. Is it (HTM algorithm) researcher’s role? (App developer should request to consulting to researcher)
  2. Or, Does opensource guide about it? (using API guide or reference app or wiki)

Currently which is general between this forum members?

  • Additionally I attach my opinion about upper question.
    I’ve ever developed platform and released some framework.
    For the platform(or framework) getting popularity (or good usability), I think detailed example and guide page is verrry important.
    Not only API guide but also ‘reference app’ is important.
    The ‘reference app’ is different with ‘sample app’.
    ‘sample app’ just help to API usage.
    But ‘reference app’ includes real usage case.
    So, it’s complex to read, but it can help to solving real app developer’s worrying.
    If Nupic provides more API guides and reference app, developer experience will be enhanced.
    The ‘multi region’ / ‘multi layer’ Network design should be easy to getting insight by referencing guide page.

Thanks to read long text.
Jiwon Kim.

1 Like

I’m confused. All the examples of “hot gym” are single layer / region. What examples are you talking about where there are many layers or regions?

I refered htm.java-example.

Finaly I will use nupic.core with c++, after studying basical flow using it.

I’m sorry, I’m still confused. You’re looking at HTM.Java to figure out how to use NuPIC because there are no good NuPIC Core C++ docs? I’m not sure that is the best way to go about it, because we generally do not build multi-region networks with NuPIC.

We do have some examples of multi-layer networks in our research repos:

But I would not be surprised if that changed considerably soon.


Just so you know, that example’s purpose is to demonstrate the method by which the different layer types can be conctructed using HTM.Java’s Network API.

However, multilayer networks are a “space-holder” for when hierarchies are introduced within the algorithms themselves. At the moment, HTM algorithms are single-layer in nature, so there isn’t any benefit to be derived from constructing multilayered networks as the multi layering adds no functional benefit.

So with HTM.Java’s Network API, simple single layer networks are all you need at this point in time.

As a side note, you get different results because of additional processing which is being done in additional layers (i.e. therefore not equivalent algorithms).


Thank you for kindness explain and sample URLs.
They will very helpful to understand architecture.

So resultingly, decision of using single-layer or multi-layer is depend on algorithm.
And, Does guide of “which algorithm is good for which layer” provide at any document?

Design of layering for some solution, is it researcher’s role? or app developer should study all of theory?
The reason why asking it, I’m a app developer.
I wonder is it possible area to me.

1 Like

Some layers in the neocortex might do spatial pooling (HTM School episodes 7 & 8 and temporal memory (episodes 11 & 12) at the same time. Most of our examples, including hot gym, are this type.

The Network API can be used to describe any type of generic “nodes” and the “links” between them. In this case, we’d create an encoder node, an SP node, a TM node, and a classifier node (to extract predictions). That doesn’t mean we have many layers or regions. We are still just simulating one layer.