Monday, 24 February 2014

The Human Computer

This Blog looks at the intriguing question of whether we can now, in the light of recent discoveries about our DNA coding, be considered to be just another computer system. It's a question that begs two deeper questions:
- What is a computer and how does it work?
- How are humans programmed and how do we work?

When we have some sort of handle on the answers to these questions we can start to compare the two types of 'machine' and see how much of human nature can be explained by our 'programs'. And more interestingly, how much can't.

What is a computer?
Well, the simple answer is that it's something that computes. But for our purposes we will limit this to the electronic digital variety that we are all familiar with.

But before looking at what makes modern digital computers tick, we should be aware that not so long ago there were machines around called Analogue Computers. These didn't use digital techniques but used continuously varying signals with feedback loops. A close analogy is the old AM radio (an analogue system very prone to noise) and the modern DAB radio (a digital system that's totally noise free).

Analogue Computer with patch panel - its program - on the right

The human body is really an analogue computer that operates under constraints imposed by a digital program (our set of genes) and our environment (what we eat, our exposure to hazards). Our Analogue Computer is our biological system, an incredibly complex cocktail of organic chemicals that function together with a myriad feedback systems to allow our body to carry out all the tasks necessary for us to live long enough to reproduce. That may seem a limited objective but from an evolutionary standpoint it makes total sense. Yes, we do other things apart from reproducing ourselves but these are really ancillary. In the grand scheme of things we are but gene carriers, redundant once we've spread our genes to the next generation.

The fundamental point here is that success breeds success, genes that get passed on are those genes that are good at getting passed on. And the converse is true - if someone has a genetic flaw that renders them incapable of reproducing then that flaw will not get passed on. Fairly obviously. The fact that someone may be, say, a virtuoso musician, is in evolutionary terms of no merit whatsoever unless it somehow increases his powers of fecundity.

Computers Coding
Digital computers as we know them today haven't changed much over the last 60 years in terms of their basic operation. What has changed is their speed, memory size, memory type, packaging style and sophisticated architecture. But they are still electronic, albeit using transistors on silicon chips rather than valves - but still electronic.

Software has also moved on. Early machines would have been programmed in the low level code that the computer itself interprets (machine code). This machine code is basically a sequence of zeros and ones, often grouped into groups of four simply for the convenience of we humans. Such a grouping is called hexadecimal. Today we would program in a high level language such as Java, C++, Python etc. But the program written in these languages will always be translated down to machine code before being run through the central processing unit (CPU) of the computer.  So if we understand a bit about how machine code works we understand a lot about what makes computers useful.

Here is an imaginary bit of simple machine code. The hex codes in bold type are the instructions, other hex code is data.

PROGRAM TO MULTIPLY TWO NUMBERS
1000  get a number from a memory location defined by the following two hex characters
0011
1001
0100 multiply that number by the number defined by the next hex character
0100
0110 store the result in the memory location defined by the following two hex characters
1111
0111

The above is a simple multiply & store result. The 0s and 1s would be fed into the computer heart under control of a clock, typically 5GHz, and the instructions decoded to use the data in the right way. Each instruction has a different hex code and invokes different actions from the instruction decoder. The decoding takes place at the computer's clock speed (around 4Ghz in a modern machine)
......................
PROGRAM TO CARRY OUT A BRANCH TEST
1000  get a number from a memory location defined by the following two hex characters
0011
1011
1111 test the number, if greater than zero skip next instruction
0011 jump to instruction location defined by next two hex characters
0011
1111

.... continue running main program from here

1001 decrement the test number
1110 jump back to the test point and continue the program from that point

The above snippet shows two important things:
- is shows a CONDITIONAL instruction, a branch option. This is what makes computers behave in a pseudo-intelligent manner.
- it demonstrates how the conditional instruction can be used to create a LOOP, a routine that causes a set of actions to be repeated again and again until the test number reaches zero.

Loops capitalise on the computer's ability to do simple jobs very fast. It can do the same task a million times say in a fraction of a second.

So that's it - the basics of what a computer does and why it's so powerful. All the rest is detail!


Human Coding
This will be as simplistic as the above computer section was but will nonetheless explain the basics, in this case of how we, and all other creatures for that matter as we all work the same way, manage to survive.

So, here we go. The decription applies to humans but applies equally to all living things.

Inside each and every one of a human's 15 trillion cells is a set of chromosomes, strings of DNA code. For humans there are 23 pairs, one in each pair coming from each parent.
Chromosomes arranged in conventional order

Electron Microscope photo of Human Chromosomes


The Chromosomes carry a long double helix string of code in the form of four bases, chemicals Adenine (A), Cytosine (C), Thymine (T), and Guanine (G). The two strings lock together at all points such that A always locks together with T and C with G. So in a way one string is the mirror image of the other. When a cell splits in two the DNA helix is unzipped, each of the bases picks up it's correct partner from the surrounding soup of material and hey presto we have two Sets of  DNA strings, each identical to the original. A very neat system.



The bases are grouped in threes to define the 20 amino acids that are assembled into proteins, complex chemicals that perform a wide range of tasks throughout the body. The strings that define proteins are delineated with STOP codes.

PROGRAM FOR A PROTEIN
TAC - make amino acid Tyrocine 
CTC-  make amino acid Leucine
GTG - make amino acid Valine
.
.make hundreds more amino acids
.
CTC-  make amino acid Leucine
TCA - make amino acid Serine
TAG - stop

For humans the total length of the DNA strings is around 3 billion bases. Only about 3% of the DNA codes for proteins, the rest is a mix of various sorts of junk although it is thought that not all the junk is worthless.

The program above shows a sequence of code, a gene, that a protein to be manufactured. There are other genes called Hox Genes that define how the body is contructed. Control is shared between the brain and the genes. The brain can cause hormones to be produced which can activate certain genes which can generate more chemicals to activate more genes in a complex chain reaction , all with feedback systems. The DNA may define the body but it doesn't always work autonomously.


Comparing  Digital Computer and Human Information Systems 

Organisation & Corruption

Computer programs comprise  single 'bit' that can take two values ( 0 and 1). Early computers arranged the bits in groups of 4 as shown in the Hex code software example above. Modern computers arrange the bits into groups of 64.(64 bit machine)

DNA arranges the bases or 'bits', each of which can take four values (C,G,A,T), into groups of 3.

Computer programs operate in a strictly sequential order doing one instruction at a time. If the program is corrupted (or badly designed) it will simply 'crash' ie. stop completely, or die. There are however error detection algorithms built into most systems and some programs can even self correct to some extent.

DNA is decoded in parallel, each of our 15 trillion cells has a copy of the program (DNA) and 'executes' parts of the DNA program (genes) according to where the cell is in the body and what the body's requirements are at any point in time. Most  functions are carried out automatically (eg digestion) but some are initiated by chemical signals from the brain. (eg emotions). If the program is corrupted, by a mutation say, it may well have no detrimental effect, it depends on what the corrution is. However it may on occasion have extremely serious consequences, cancerous growth  being an example. So the error detection mechanism can be quite brutal, you may well die.

Some errors will be weeded out by natural selection. For example if a corruption occurs at an early age so as to prevent the generation of offspring it will not be passed on. A form of error correction! Corruptions that leave the next generation with some advantage will thrive, those that give it a disadvantage will tend to be weeded out. (It is debatable how effective this last mechanism is in advanced societies.)

Corruptions that still allow offspring and are not seriously detrimental will accumulate - there is no mechanism to delete these corruptions once they creep in. Diseases of old age accumulate!

Computer programs can be copied very faithfully by other computer programs - that can produce virtually 100% error free copies. Subsequent checks can confirm the copy.

Human DNA is copied by splitting the double helix but errors can and do creep in. There is no checking mechanism. Indeed errors, or mutations are essential for life to evolve. We are here as a results of a myriad fortuitous errors.
----------

Computer programs generally come complete. Programs can store data in memory, for example in databases, but this data is additional to the program. 

Humans come with a completely programmed DNA section for building and operating the human 'machine' but an almost empty memory section (the brain). The DNA program allows data, in the form of recollections and skills, such as language, to be added to the memory section. Individuals vary by a combination of different inherited genes and different acquired skills.


Memory Size

The human brain consists of about one billion neurons. Each neuron forms about 1,000 connections to other neurons, amounting to more than a trillion connections. Neurons combine so that each one helps with many memories at a time, exponentially increasing the brain’s memory storage capacity to something closer to around 2 petabytes (or two million gigabytes). For comparison, if the brain worked like a digital video recorder, 2 petabytes would be enough to hold three million hours of TV. That's enough for 300 years of viewing.

High capacity computer storage is currently provided by hard disc, a terabyte (thousand gigabytes) is the current top size for home use and costs about £60. The brain's capacity is around a thousand times that.


Viral Attacks

Both systems are vulnerable to parasitic invasion, viral attacks. For both, the virus makes use of the system's infrastructure to further its own ends, which in the case of the computer virus means the ends of its human designer.

For the computer the ends may simply be annoying or could be terminal (for example wiping the hard disc). The virus may or may not reproduce, if it does it often does so by generating emails using the computer's email address list. There is often nothing the computer system itself can do to eradicate the virus, some extra software may do the trick, or manual intervention may be required to seek out and destroy the intruder. Protection, immunity, to known viruses can be added to the system but when a new virus comes along that immunity is of no value.

For the biological system the virus, simply a DNA string in a suitable package, gets the cell to decode it and generate the chemical entities that are its calling card. It will also get the cell to cause it to reproduce, invade more cells, and also get itself propagated onto another host. It may also get itself added to the host's DNA where it can lie dormant for some time before springing in to life again. An example of this is the Herpes virus. Fortunately the body has a defence mechanism to counter most viruses although it can take some days for it to be effective. Once a particular virus has been suppressed the body will be much quicker to respond next time the same virus intrudes, it will have developed immunity.  The virus has no agenda, it simply does what it does because it does what it does. Some viruses cause no harm to the host, they just reproduce - for no reason, they just do.

Some 70% of the human DNA is made up of debris left over from virus intrusions, many dating back thousands or millions of years, and sequences whose only trick is that they can replicate themselves. One known sequence has copied itself 100,000 times throughout our genome and occupies 14% of the DNA, much more than the 3% that's useful. Once in the DNA the host will duplicate it forever more with each cell division, the cell doesn't know which are useful bits and which aren't.


 Incidentally, DNA fingerprinting uses the junk sequences, not the 3% that codes for something useful, there's not that much variation in the useful section.

Computers can get rid of junk (disk and registry cleanups, virus checkers - but not defrags) but DNA corruption is forever - unless the corruption is serious enough to prevent the host from reproducing in which case it won't get passed on. Likewise a virus that kills its host before the host's system has time to generate and release copies of the virus won't survive as a strain. So death if it has to come as a result of an attack, has to be slow. Viruses don't have a lot of heart!

---------------------

Discussion Points

Comparing humans to machines is certainly interesting and entertaining, but is that all we are, just very complex machines? It's obviously not an easy one to answer and everyone will have their own take on it. But as a starting point it's worth asking the question 'What makes us human?' 

Here are a few suggestions:of my own:
- self awareness
- language ability
- complex thought processes
- compassion
- appreciation of art, music & beauty
- and for many, a need for something extra, something supernatural, a god  or two perhaps?

Can all this be explained by a complex net of neuron connections?

Feel free to contribute via the Comments box.