AI researchers in the 80s ran into a problem: the more their systems knew, the slower they ran. Whereas we know that people who learn more tend to get faster (and better in other ways) at whatever it is they’re doing.
The solution, of course, is: Duh. the brain doesn’t work like a von Neumann model with an active processor and passive memory. It has, in a simplified sense, a processor per fact, one per memory. If I hold up an object and ask you what it is, you don’t calculate some canonicalization of it as a key into an indexed database. You compare it simultaneously to everything you’ve ever seen (and still remember). Oh, yeah, that’s that potted aspidistra that Aunt Suzie keeps in her front hallway, with the burn mark from the time she …
The processing power necessary to to that kind of parallel matching is high, but not higher than the kind of processing power that we already know the brain has. It’s also not higher than the processing power we expect to be able to throw at the problem by 2020 or so. Suppose it takes a million ops to compare a sensed object to a memory. 10 MIPS to do it in a tenth of a second. A modern workstation with 10 gigaops could handle 1000 concepts. A GPGPU with a teraops could handle 100K, which is still probably in the hypohuman range. By 2020, a same priced GPGPU could do 10M concepts, which is right smack in the human range by my best estimate.
Associative memory gets you a lot. You don’t have to parse an unknown object for algorithmic retrieval. You don’t have to come with some one-size-fits-all representation and/or classification scheme. Indeed, each object in memory can have its own representation if necessary or useful.
It gets better. The memories aren’t all, or even mostly, objects. They’re typically actions. Let’s suppose the actions are represented as situation-action-resulting situation triples — something like Minsky’s trans-frames. Then we can use the associative memory to
- recognize, as described above
- predict: search on the situation and action; the prediction is the result in the best match
- plan: match on situation and desired result; do the action from the best match
- generalize: every time a was done, b happened
- model: by chaining predictions, etc
There was an attempt to do this kind of thing in mainstream AI under the name “case-based reasoning” a couple of decades ago, but it appears to have foundered for several reasons, not least of which was the inability to do heavy-duty parallel matching on extensive memory sets.
There are a number of things that need to be added to the scheme for it to be useful and robust, like embedding it in a hierarchical, multiagent architecture, the ability to do analogical quadrature, and the ability to find useful representations. But that’s for another post.