Skip to content

The Brain’s Registers

December 22, 2016

In the last few years, there’s been a lot of impressive work done with neural networks. One of the most interesting things I’ve seen is Word2vec, a technique to compute word embeddings, to map english words to large vectors of neural activations. This is interesting because this latent space for words has interesting properties. Concepts that are semantically close end up close together in the vector space, and it’s possible to do arithmetic on word vectors, giving us results such as ‘queen – woman + man ≈ king’.

The ability to do approximate arithmetic on word vectors is nifty, but what I think is most interesting is that Word2vec shows that we can translate fuzzy human concepts such as english words or sentences into an encoding from which computers can extract semantic information. There are now machine translation models based on recurrent neural networks which take a sentence in a language X, generate an activation vector, and then feed that vector into another recurrent neural network trained to generate text in another language Y. These machine translation models have reached the point where they are competitive with traditional statistical models.

The ability to create an intermediate representation for machine translation is quite powerful, but vectors of neural activations can be used to encode semantic information contained in many things besides written language, and also to transfer information from one modality to another. Researchers at Google have also shown that you can generate captions from images by first encoding images into semantic vectors, and then feeding those vectors into a recurrent neural network which generates text. Hence, a vector of neural activations can be used to represent semantic information, meaning, maybe even concepts and ideas in an abstract space that is agnostic to input and output modalities.

I hope this doesn’t seem too far-fetched, but I’m going to suggest that it’s highly likely that such semantic vectors are used to convey meaning and transfer information between different representations inside the human brain, particularly in the areas of the prefrontal cortex (PFC) that implement higher-level thinking. I’m going to go even further, and make the prediction that the PFC implements something analogous to the registers found in a microprocessor. Semantic registers which are used to buffer, store and transfer vectors of neural activations that encode meaning, concepts or ideas.

There is obviously still a lot we don’t know about the human brain, or the way in which it implements higher-level thinking, and the neurons in artificial neural networks are very loose approximations of their biological cousins. Still, bees, bats and birds use wings to fly. These are different kinds of wings, with different properties, which have evolved independently, but they are all wings nonetheless. All three have come to evolve a similar solution to the problem of flight because this solution is natural and efficient. In the same vein, I think you could make the argument that a register is a natural concept when it comes to shuffling and operating on data.

The registers in a microprocessor hold small pieces of temporary data. They store vectors of bits and typically have a few input and output ports. They implement simple operations, such as the ability to reset/erase the contents stored, and the ability to open or close the flow of information to/from various components inside the processor. In digital hardware, opening and closing of data ports is accomplished by gating signals with transistors. In biology, the gating of signals is accomplished by inhibitory neurons.

According to Wikipedia, working memory is “a cognitive system with a limited capacity that is responsible for the transient holding, processing, and manipulation of information”. It’s believed that human beings are limited to being able to hold only about seven items at a time in working memory. Could it be that this temporary store of information is the human brain’s equivalent of a CPU’s register file, built out of a relatively small set of neural registers, with inhibitory neurons gating their outputs? I believe this could begin to explain our amazing (and yet limited) ability to shuffle and operate on concepts and ideas stored in our working memory.

In a typical CPU, the register file is connected to components such as an Arithmetic and Logic Unit (ALU). The ALU can read data from one or more registers, and perform operations such as addition, subtraction and multiplication between the values read, and store the result back into registers. Values can also be compared and the result of such comparisons used to decide which action the CPU should take next. Human beings are not born with the ability to compute signed integer multiplications, but there are certain high-level thinking faculties which may be innate, such as the ability to reason by analogy.

One could imagine that, somewhere in the PFC, there may be a dedicated component which is able to load semantic registers and draw analogies between semantic vectors, to answer the question of whether A is to B as C is to D, and perform some action based on the result. It could be that the part of our brain that does high-level thinking contains a number of operators that connect to one or more semantic registers and perform various operations on the concepts represented. These would be our brain’s ALU: the set of primitives that enable our high-level cognitive abilities.

As Edsger Dijkstra famously said, “The question of whether machines can think is about as relevant as the question of whether submarines can swim.” Maybe my attempt to make sense of higher-level human thinking by drawing analogies with computing hardware is misguided. Maybe working as a compiler engineer and looking at machine code for too long has warped my own cognition beyond repair. The ideas I’m proposing here are largely speculative, but maybe I’m right, and maybe, within a decade or two, someone will begin to map out the circuits that constitute the brain’s registers and operators.





  1. Mike S. permalink

    If you’re right, doesn’t it also mean that AI researchers are focused in the right direction to make real progress?

    Either way, these concepts are really cool.

  2. WarrenP permalink

    > “Could it be that this temporary store of information is the human brain’s equivalent of a CPU’s register file?”

    I believe this “the human brain has registers” is one of the falsifiable theories that is now in the “falsified” dustbin, as cognitive science has advanced. I am only a casual outside reader but that was my take after reading this:

    • My hypothesis is that working memory (a very specific component of the brain) may be implemented using neural circuits that implement things like gating and multiplexing. I think the article you linked to is wrong in a number of ways. What I’m suggesting is not that every part of the brain operates “like a computer”, but that some of the parts of our brain that have to do with high-level thinking might.

      This might be necessary to implement some of the symbolic reasoning we’re capable of. We’re capable of understanding relationships, like “A is similar to B”, “A belongs to B”, “A is to B what C is to D”. We can also hold items in working memory and shuffle them around, understand little stories involving multiple people, etc. I think that these kinds of cognitive faculties must involve gating, buffering and muxing in some part of the brain. I’d be very surprised if the brain does not implement such a thing as a multiplexer anywhere, but we’ll only be able to prove or falsify this once we have a better mapping of our brain’s circuits.

  3. tristanls permalink

    I think it would be helpful to consider what we’ve learned from Hierarchical Temporal Memory (HTM). It is actually based on how the neocortex works, so may provide more insight into the brain than mathematically-originated approaches.

    It actually demonstrates a mechanism for how the brain … “perceives?”(computes? it’s hard to have a verb for this) … semantically similar words.

    Here is a useful short video series that teaches HTM concepts:

    • I’ve read Jeff Hawkins’ book. I’m not at all convinced. I haven’t heard of any major results coming out of HTM work. The idea that “the brain’s intelligence algorithm is the same everywhere” also seems unsupported and bogus. There is clearly a lot of specialization in the brain. I think that this specialization is necessary for the kind of versatile intelligence we have.

      • tristanls permalink

        Perhaps I should have been more precise in my comment?

        The large vectors are like HTM’s Sparse Distributed Representations (SDRs). This would be supporting evidence for “I hope this doesn’t seem too far-fetched, but I’m going to suggest that it’s highly likely that such semantic vectors are used to convey meaning and transfer information between different representations inside the human brain”. Since SDRs were derived from the structure and operation of the neocortex, I thought that would be supporting evidence and a pointer towards explanations of why the vector approach works, and how such thing is modeled in the brain.

        My next thought was that since the HTM approach independently derived SDRs, then I made a leap thinking its other insights may be useful. For example, HTM implicitly works with SDRs (vectors), but it doesn’t model similarity of A to B explicitly. In HTM model, similarity is an emergent property of spatial and temporal mechanisms of operation.

  4. I wasn’t familiar with Word2vec. Interesting stuff.

    I recall my lecturer in a course on logic design saying that the brain is an analog – not a digital – computer and therefore we shouldn’t disparage analog computers.

  5. Jon Bond permalink

    I think you may be interested in the this paper:

    Click to access 1410.5401v2.pdf

    2.1 Psychology and Neuroscience

    • I was actually thinking of the neural turing machine paper when I wrote this blog post. It seems to me that it should be possible to use reinforcement learning to control the flow of information between neural registers, and the application of various operations to their contents. In essence. It should be possible to use reinforcement learning to teach an AI how to think at a higher level.

Trackbacks & Pingbacks

  1. Java Web Weekly, Issue 157 | Baeldung

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: