Author Topic: HTM Piano  (Read 545 times)

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3449
  • Developer
    • View Profile
    • PaulsCode.Com
HTM Piano
« on: October 24, 2016, 04:53:07 PM »
I have looked at various AI technologies, and the most promising in my opinion is Hierarchical Temporal Memory (HTM).  This technology attempts to model aspects of the cortex in a manner which remains true to the biology.  Numenta has a nice collection of resources on GitHub for anyone interested.  The HTM White Paper in particular contains easy to follow pseudo-code, and Numenta's implementation of HTM, called NuPIC is open-source.

As a way of learning HTM, I wrote my own implementation, and used it in THIS SIMPLE DEMO.  After adjusting the properties of the system and clicking "Start", you are presented with a few piano keys and a depiction of the neurons of the "brain".  Click the keys to play notes, and the system tries to predict what note you are going to play next.

It isn't too intelligent, but it was a good start, and I learned a lot from it.  I developed it prior to studying the white paper or looking at NuPIC source code (solving the problems myself helps them to stick, versus starting with the answer).  I have since gone back and studied Numenta's implementation in depth, and I am in the process of rewriting my own implementation.  I will post a link to the source on GitHub once it is complete.

Numenta's implementation of HTM currently is only capable of sequence memory.  I am looking at expanding it to be capable of reinforcement learning and sensory-motor capabilities.  I'm less bound by Numenta's rule to remain true to the biology, so I believe I can use this technology to give ARTUR a good set of basic capabilities prior to plugging it into the transmutation routine.
« Last Edit: April 17, 2017, 04:25:46 PM by Paul »
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted