Why it’s difficult to understand the brain

on

I’ve recently been working on a programming project, and one of my considerations during development has been coupling. Like many programming concepts, coupling is an analogy to real-world systems, although I’m not sure it’s supposed to reference any specific thing. The term is used in various science and engineering domains where it refers to two systems interacting.

When two modules interact, they fall onto a spectrum from “loosely coupled” to “tightly coupled”. Ideally, modules should be very self-contained and only loosely coupled with other modules. When modules are tightly coupled, the internal workings of one depend upon the precise structure of the other. There are several reasons why this is undesirable.

First, this can result in the logic of the program being split across two different locations in the code, making it difficult to tell what’s going on; this in turn can lead to bugs or it can make it more difficult to fix bugs. Second, if changes need to be made within a tightly coupled module, then that necessitates changes to other modules. There are a couple ways in which this can be especially troublesome. If a program consists of many tightly coupled, “tangled” modules, a small change can cause a domino effect that ultimately requires rewriting the program (this situation is called spaghetti code). Additionally, this is a problem for modules in public libraries or APIs where programs that were built to accommodate its precise structure are broken by updates that should be trivial. (Keep in mind that code coupling is not symmetric because it arises from dependencies.)

Third, tightly coupled modules are specialized in how they deal with the other module. In contrast, loosely coupled modules can be reused in different situations, swapped out for different versions, and so on. This is perhaps most important in software testing. In order to diagnose a problem quickly, it’s vital to be able to isolate the code that is causing the problem. A test that tells you, “Something went wrong somewhere in the program,” isn’t helpful. In order to isolate code for testing, loosely coupled modules can be substituted for dummy modules that do nothing or test modules that provide specific test values.

What this has to do with the brain

The more we learn about the human brain, the more it seems to be a part of the body and not something that “controls” the body. I believe the philosophical idea of mind-body dualism probably led past scientists to assume that the brain as an organ functioned rather independently (though I also think they assumed each organ functions more independently than it does). This is where we get “brain in a vat” or “brain transplant” ideas from in narratives. The belief was that the brain alone carried the entire personality and psyche of that person. Now, it seems that that is actually far from true, and this is just one of the ways in which the brain is more complex than we thought.

There are relatively few things that happen in the brain where we completely understand the mechanism of what is happening. Instead, we get a lot of unexplained correlations: people with this disorder typically have elevated levels of this hormone; people who take this drug typically see these symptoms reduced; that kind of thing. This leaves a lot of room for pseudoscientists to speculate, but we truly just do not know what is going on in many cases.

What I’ve been thinking about is how the brain is so tightly coupled with other body systems and the difficulty that presents in trying to understand how it works. It seems like a lot of things are overloaded, too, with the same chemical doing one thing in the brain and something else somewhere else in the body, and so on. If fact, this is really not limited to the brain, nor even to the human body. Many organisms are tightly coupled with their environment and with other organisms. Just as changing one thing in spaghetti code can cause the whole house of cards to collapse, small changes to an environment or the extinction of a single species can cause an entire ecosystem to break down.

I think this is a very nice illustration of how evolution works, and in particular why and how it’s different from things humans engineer. No one ever had to understand the brain in order for it to come about, and selective pressure prioritizes efficiency. Recall that the brain uses a significant ~20% of daily calories as it is. And of course, brains didn’t evolve separately, they always evolved as part of an animal’s body. It is really the body as a whole that needs to function for survival, and it is the body as a whole (or rather the genome as a whole) that evolves. Evolution works with what it has, and at any given time, the “resources” evolution has to work with to develop a brain function is all of the body’s systems. It’s no wonder, then, that the most adaptive strategy is for the brain to heavily rely on other body systems and vice-versa. Completely separate systems that merely communicate back and forth would be far and away less efficient.

Strangely enough, this principle also applies to code. Because humans need to at least somewhat understand the code they are writing, there will always be some efficiency loss. (There are people who can write code as CPU instructions but it’s unfeasible to create a sophisticated program doing this without resorting to organizational strategies.) Of course, this efficiency loss is not usually an issue for performance. On the other hand, the more performance-demanding code is, the harder it typically is to understand. There is a general tradeoff between comprehensibility and efficiency in programming. In fact, this can also be related to why neural nets are so mysterious and why we can’t explain in meaningful terms what they’re doing.

It is interesting that the way our brains work inhibits our ability to understand how our brains work, not that we should have any expectation to the contrary.


Further reading:

The geometry of body plans – the brain’s early evolution

(A little bit of) the math of AI – what neural nets are and what they do

Featured image: photo by Polina Tankilevitch

Leave a comment