Evolution designed the neocortex, would evolution help HTM?


Hi all,

First of all, thanks for the fascinating work about understanding our brain. This inspires me and others. Great job.

Before getting to know HTM, I have been playing and publishing papers about evolutionary programming, you know, individuals that represent solutions to a problem, fitness is obtained, generations, … at the end, a methodology to search in the solution space, an optimisation algorithm.

I am wondering if you know about any work done on optimising HTM models by using evolutionary/genetic algorithms.

I heard @jhawkins in a talk mentioning evolution when talking about HTM models in Grok. Is any of these techniques used?

Said that, thanks again for your time and work.



Certainly, evolution is an interesting tool or process to look at, whether it is as an external guide or ‘designer’ :P, or perhaps as a means within the brain itself (neurodynamics, Calvin etc).

Some work has been down to use evolutionary algorithms for parameter tuning, see:

I’ve yet to see anything around topology and combining in a hierarchical fashion modules of HTM together to form some new process. This wouldn’t most likely not be biologically plausible, but it might be interesting to see if layers spatial poolers and temporal memory layers in unique ways could be of benefit.


As a practical matter, evolutionary methods take a long time to run and they’re messy. They find weird solutions and they can be deceptively simple (when in fact they’re rather complex). The primary advantage of evolution is that every iteration is viable, which is really important for living things but not important for computer programs.

My latest work on parameter optimization takes a different approach: quality over quantity. I wrote a program which instead of trying many different parameters, tries a few sets of parameters many times and then calculates the mean and standard deviation of the fitness. It also calculates the statistical confidence that the fitness is different than that of the starting parameters.

See: https://github.com/ctrl-z-9000-times/sdr_algorithms/blob/master/ae.py


Nupic uses swarming to optimize parameters. I don’t know much about it, but maybe it could benefit from genetic algorithms.



I see that this has been explored already, thanks for your inputs guys.

I also found the paper “Evolving Hierarchical Temporal Memory-Based Trading Models”