htm-community / comportex

Hierarchical Temporal Memory in Clojure
153 stars 27 forks source link

Better docs please :) #45

Open kristianmandrup opened 8 years ago

kristianmandrup commented 8 years ago

I've just been reading through: http://floybix.github.io/2014/11/05/htm-protocols

Pretty hard to grasp from an "outsider". I'd suggest visualising the architecture, with some kind of graph to show where each kind of Protocol goes in the IO flow... I'd love to help out if I could. Or maybe just link to some more/better articles/videos on htm theory and how it fits in with data structures and info flows

The first part is pretty clear, the step implements the main htm protocol and feeds the input in to each layer in canonical order. However how this fits into the regions is a bit of a mystery.

"Of course for all this to work it needs to call corresponding functions on individual regions, and within regions on layers of cells."

And then:

"And similarly within a region there are layer-activate, layer-learn, layer-depolarise functions."

Could you/we visualise this to make it more clear :)

floybix commented 8 years ago

I agree the docs are woeful. I've been reluctant to put effort into docs since I still think of the software as in flux (and not useful in practice right now).

Speaking of which, I have recently starting planning to get rid of "regions" altogether. Just leaving layers, which could be assembled in different ways.

floybix commented 8 years ago

If it helps, currently regions are basically containers for layers, but unless you are running exotic experiments you will have just one layer in a region, and it will be known as "layer-3" (neuroscience term).

kristianmandrup commented 8 years ago

"I have recently starting planning to get rid of regions altogether. Just leaving layers, which could be assembled in different ways."

That sounds very reasonable on the face of it. Better with simpler constructs/models that can be used as generic building blocks I think :)

kristianmandrup commented 8 years ago

Can I make a "brain" with layers of any depth I like using this model? I recall that the latest winners of Image recognition competition used more than a hundred layers...

floybix commented 8 years ago

https://discourse.numenta.org/t/h-is-for-hierarchy-but-where-is-it/333

TLDR: this is a research topic, it is not useful for anything right now...

kristianmandrup commented 8 years ago

"A region is the main composable unit in this library. It represents a bank of neurons arranged in columns, responding to an array of feed-forward input bits, as well as distal connections to itself and possibly other regions."

So removing regions would be a major change!! Would be nice with some docs on how to compose the brain architecture...