Another Word For It Patrick Durusau on Topic Maps and Semantic Diversity

April 9, 2014

clortex

Filed under: Clojure,Neural Information Processing,Neural Networks,Neuroinformatics — Patrick Durusau @ 7:24 pm

clortex – Clojure Library for Jeff Hawkins’ Hierarchical Temporal Memory

From the webpage:

Hierarchical Temporal Memory (HTM) is a theory of the neocortex developed by Jeff Hawkins in the early-mid 2000’s. HTM explains the working of the neocortex as a hierarchy of regions, each of which performs a similar algorithm. The algorithm performed in each region is known in the theory as the Cortical Learning Algorithm (CLA).

Clortex is a reimagining and reimplementation of Numenta Platfrom for Intelligent Computing (NuPIC), which is also an Open Source project released by Grok Solutions (formerly Numenta), the company founded by Jeff to make his theories a practical and commercial reality. NuPIC is a mature, excellent and useful software platform, with a vibrant community, so please join us at Numenta.org.

Warning: pre-alpha software. This project is only beginning, and everything you see here will eventually be thrown away as we develop better ways to do things. The design and the APIs are subject to drastic change without a moment’s notice.

Clortex is Open Source software, released under the GPL Version 3 (see the end of the README). You are free to use, copy, modify, and redistribute this software according to the terms of that license. For commercial use of the algorithms used in Clortex, please contact Grok Solutions, where they’ll be happy to discuss commercial licensing.

An interesting project both in terms of learning theory but also for the requirements for the software implementing the theory.

The first two requirements capture the main points:

2.1 Directly Analogous to HTM/CLA Theory

In order to be a platform for demonstration, exploration and experimentation of Jeff Hawkins’ theories, the system must at all levels of relevant detail match the theory directly (ie 1:1). Any optimisations introduced may only occur following an effectively mathematical proof that this correspondence is maintained under the change.

2.2 Transparently Understandable Implementation in Source Code

All source code must at all times be readable by a non-developer. This can only be achieved if a person familiar with the theory and the models (but not a trained programmer) can read any part of the source code and understand precisely what it is doing and how it is implementing the algorithms.

This requirement is again deliberately very stringent, and requires the utmost discipline on the part of the developers of the software. Again, there are several benefits to this requirement.

Firstly, the extreme constraint forces the programmer to work in the model of the domain rather than in the model of the software. This constraint, by being adhered to over the lifecycle of the project, will ensure that the only complexity introduced in the software comes solely from the domain. Any other complexity introduced by the design or programming is known as incidental complexity and is the cause of most problems in software.

Secondly, this constraint provides a mechanism for verifying the first requirement. Any expert in the theory must be able to inspect the code for an aspect of the system and verify that it is transparently analogous to the theory.

Despite my misgivings about choosing the domain in which you stand, I found it interesting the project recognizes the domain of its theory and the domain of software to implement that theory are separate and distinct.

How closely two distinct domains can be mapped one to the other should be an interesting exercise.

BTW, some other resources you will find helpful:

NuPicNumenta Platform for Intelligent Computing

Cortical Learning Algorithm (CLA) white paper in eight languages.

Real Machine Intelligence with Clortex and NuPIC (book)

3 Comments

  1. > my misgivings about choosing the domain

    What are those misgivings?

    > For commercial use of the algorithms used in Clortex, please contact Grok Solutions, where they’ll be happy to discuss commercial licensing.

    Bullshit. The algorithms are free to use, commercial or not, thanks to the GPLv3.

    Comment by eric2 — April 9, 2014 @ 11:07 pm

  2. @eric2 – Re “choosing the domain” was an obscure reference to the idea that a person can choose the “frame” from which they view the world. There is a long standing debate in philosophy whether it is possible to transcend that frame and view it as an outside observer. My “misgivings” are whether it is possible to change that frame. That is we view the world from whatever frame we occupy (frames are rarely stable) and when a frame changes, we can’t return to the earlier version.

    Take sexual experience for example. There are two states, pre and post sexual experience. Once you cross the the line into post sexual experience, you don’t see the world quite the same was as before. You can remember, with varying degrees of accuracy how you felt before, but you view now is shaped by being post sexual experience. That’s an easy example but I think there are many events that shape our perceptions of the world. Some not of our own choosing.

    Re you comment on licensing, I was simply quoting the language on the website. I have no personal opinion one way or the other about the licensing.

    Comment by Patrick Durusau — April 11, 2014 @ 9:38 am

  3. wow too much philosophy for me. I certainly think it’s possible for humans to understand the human brain, no change of frame needed.

    re. licensing I know you’re just quoting but I felt I needed to post a correction here for all the readers of your blog that might come away with the wrong idea.

    Comment by eric2 — April 13, 2014 @ 2:01 am

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress