Maybe We Think in Algorithms

All it takes is a common software library across the human species

Rob Vermiller
Geek Culture

--

Photo by Michael Dziedzic on Unsplash

We use language to communicate everyday rules and common sense bits of wisdom to others. “If you keep your key in the ignition with the radio blaring but the engine off for 2 hours, your car battery will probably be dead.” Or “Don’t touch the stovetop if the red light is still on.”

In addition to this simple IF-THEN logic, it’s also possible to communicate more complex LOOPs and variable assignments using words. “For each strawberry plant (P) in the garden, look for strawberries (S) on P having 90% red coloration, where S has no brown spots (B) that might indicate rot (R).”

I know. Such talk of mental representation is not welcome in many circles where sub-symbolic neural networks still rule the day. But please humor me for a moment.

How do we communicate our wisdom to others if not through language? We must to be able to package up our knowledge into symbolic form to make it transmissible. And what are we really communicating? How to do things. Detailed instructions on how to behave, learn a new skill, accomplish tasks, or think about the world. In other words, algorithms.

And if we need to explain ourselves and communicate our thoughts anyway, why not just think in terms of symbols and algorithms?

Perhaps language fragments themselves are the currency of the brain: packaged algorithms that are scheduled to run on whatever neural node is currently available, like a giant compute cluster.

This is still a fringe idea, of course. And there’s a big problem with it that may not be obvious at first. In order for language to be compiled into algorithms — in order for us to think and communicate using algorithms — we must all share a common library of mental algorithms to bootstrap our understanding. And no such code library has ever been located in our DNA. Yet.

If it did exist, what would such a common mental code library look like? It would provide a low-level layer of shared understanding to allow for effective communication with others. It would also allow for intra-brain communication, allowing us to “think in algorithms.” Here are some examples of the data structures needed:

  • Objects in the world (e.g., strawberries) have properties. Mental representations simulate these real-world objects (and their predicted behaviors).
  • Object templates are used to classify observed objects against known types. For example, a “strawberry” type is defined as a set of canonical yet probabilistic properties. Once classified, we can reason about specific strawberries as members of their type or class (“this strawberry is probably red when ripe”)
  • Physical objects take up space and move in certain ways.
  • Intentional objects (other people, animals) are their own cause (motivated from within) and have their own goals.
  • Events have start and stop times, locations, and sources (observed or hearsay). Events have causes (or at least predecessors)
  • Plans and goals are sequences of events, either real or imagined. Sequences of events (and object properties) may be nested and hierarchical. We also possess prior goals (desires, fears, motivations, aspirations, passions, etc.) that guide our actions. For example the drive to seek a mate.

Each mental representation comes with a set of standard placeholder functions and properties across the human species. For example: event.startdate, event.enddate, event.predict, event.assess-prediction-error, event.assess-cause, event.assess-suddenness, event.assess-pleasantness, event.assess-probability, and event.assess-conduciveness-toward-pre-existing-goals. (Obviously these function names would be in mental-ese, not in English!)

Using language and experience (training), we fill in these pre-named slots with mental algorithms. We rely on a shared library of common functions and innate mental primitives to bootstrap the learning process. Without a common (mental) software library we could not learn, communicate, or form a shared understanding with others.

--

--

Rob Vermiller
Geek Culture

A computer scientist with a passion for AI, AGI and Cognitive Science, and author of the Programmer's Guide to the Brain.