On the Mind

When you look at the study of echolocation in bats, that has advanced and been advanced by work on SONAR and RADAR. Similarly the study of the flight of birds and insects has advanced and been advanced by work on fluid dynamics. The point I am making is that systems assembled by the process of evolution or of engineering are usually similar, and that an increased understanding of one can usually be converted into an increased understanding of the other.

I just finished reading Steven Pinker‘s book How the Mind Works. The human Mind is a software system which “runs” on the hardware of the brain. Studying the mind in isolation might well ultimately result in a complete understanding of its structure and operation, but I assert (without proof) that the process would be accelerated by asking some software engineers how they would structure a system to perform its operations. No doubt this is already being done.

I am a software engineer, and if I have given some thought to how I would design the architecture for a software system to perform the operations of the human mind. The structure I would give my mind software would result in self-awareness and sentience.

The job of the human mind is to decide what the human body which it is a part of should do now. Some important factors in that decision are:

  • What it will cause me to do later; and
  • What it will cause other humans to do.

One way to solve this problem is to have separate modules for all three tasks: this method allows each module to be highly specialised and is probably the fastest possible way to solve the problem, but is very expensive and inflexible because you need to build a module for every possibility well in advance.

The route I would pursue is to re-use the same module for all three tasks as they require almost exactly the same processing: this means the module must be made more general and that more time will be required to reach a decision, but it is very cheap to build and very flexible. The reason it is slower is that a mechanism is needed to save the module’s state when it needs to get a result from itself, and a mechanism to restore that state with the addition of the result then resume execution.

Structuring the software of the mind in this way necessarily means that there is a loose coupling between the decision-making module and the rest of the mind. The reason for this is that when the decision-making module needs to predict a different decision it must be executed in the environment in which that other decision will be made.

In software engineering terms this means that an ideal decision-making module is a recursive pure function.

Thus far, what I have asserted can probably be tested. If it is true, then a sufficiently accurate functional neuroimaging record of a person’s brain as they make a sufficiently complex decision should show a distinctive activation pattern as the mind uses the start-decide/save/start-decide/save/start-decide/end-decide/restore-with-result/end-decide/restore-with-result/end-decide componentry. One caution: remember that brain scans are looking at the hardware not the software of the mind, and there is no particular locality requirement on the execution of software: so the components I have been talking about will not necessarily be very distinct from each other. Indeed, since these components are heavily used by each other, you would expect to find them all mixed in with each other to reduce the time taken for signals to get from one to the next.

This structure means that your immediate decisions, your speculations about what you will do in the future, and the decisions made by other minds are all arrived-at in the same way and consequently can be placed on the same level. This structure makes self-awareness easy to build, and once built it would persist provided it gave a competitive advantage over not having it.

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>