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?
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.