2023/03 - Speedup Discussions - Part 2

Did you guys ever end up entertaining Eric Collin’s idea regarding locality-based caching of the KD-Tree search?

(Found in Part 1 at the 22:30-second mark, here: https://youtu.be/JVz0Km98hLo?t=1353&si=5NmAMfvNmsL1KYUE)

My intuition says that he was on the right path in his thinking there. The team just decided to go with the that global lookup table idea (which also wasnt a terrible approach).

I think if you ended going with some method of leaf-node caching, however, you would essentially still be leveraging those lookup tables–with all their benefits and drawbacks–albiet stored at the local LM level.

Approached this way, you can almost view the issue of nearest neighbor sorting as a sort of DNS routing problem. The cached nodes would be like local DNS entries as found on a computer (if we were to view the LMs as computer nodes on a network, that is). Then if you needed to escape the local cache and perform a broader query/search you could step up the KD tree’s construction, similar to how a DNS resolver queries against an Authoritative nameserver > then Top-level > then Root.

I know some of the team had reservations against this given the somewhat stochastic nature of the sensory inputs, but this approach has been successfully used for applications similar to your own. Specifically, robotics.

As an example, here’s a paper on 6-dimensional localization and mapping techniques utilizing KD-tree local caching:

In it, the team used an approach similar to Collin’s suggestion (combined with an ICP algorithm) to map out x/y/z coordinates, plus pitch/roll/yaw, enabling spatial awareness for their system. The robot had a spatial field of 181 x 256 points (so ~46,000 points) in which it was able to analyze in about 3.5 seconds. It did this while being constrained to only 768MB of RAM and utilizing a Pentium-Centrino-1400. So… hardware from almost 20 years ago…

Plus, if we loop this all back to being inspired by the brain, this approach isn’t too far off from concepts like hippocampal indexing theory. Here, the cortical-cortical connections are akin to the local networking paths found between computer nodes (their addressing schema cached privately), and the hippocampal areas are like a DNS server resolving against the broader network.

Though in this case, the “hostname(s)” you’d query for would be the LMs’ input patterns/hypothesis/what-have-you, and the returned “IP addresses” would be those column’s ID. What are your thoughts?

1 Like