Thursday 14 April 2011

10 Important Differences between Brains and Computers


In March 2007 Chris Chatham posted 10 Important Cifferences Between Brains and Computers  on the Developing Intelligence Blog. Over three years later, exploring Science Blogs for the first time I discovered the post and wrote a detailed response - without realising that the Blog was then inactive and no-one would see what I had said. I have decided to reproduce the relevant part of my comments here.


OK – some good points, and I will comment on each in turn – but first the most important difference .

The essence of a stored program computer is that in addition to the “processor” and “memory” you need a program that needs to be created – and I would suggest that the intelligence of the creator (i.e. the god-like programmer or team of programmers) always greatly exceeds the effective intelligence of the resulting programs. If you consider an evolutionary approach devoid of “Intelligent Design” the stored program model must be considered totally inappropriate before you consider any other factors.
The problem is that after the war computers took off at an enormous pace – with potential manufacturers falling over one another to try and capture the “clever programmable calculator market”. No one – but no one - had time to stop and do any blue sky research to see if there were other ways of organising electronics to build a human-friendly information processor. After 20-30 years of this mad rush to make money and build careers everyone knew that:
      (1) You had to be very clever to program a computer
      (2) There was a vast establishment of people whose careers and/or income depended on stored program computers and
      (3) Computers were so wonderful the underlying theory MUST BE RIGHT.
People started to look at the Human-Computer Interface – but this was not fundamental research – it was technology to find better ways of hiding the incomprehensible “black box” in the heart of a stored program computer.
Over 40 years ago, as a “naive novice” in the computer industry I was looking at a major commercial system (say 250,000 customers, 5,000 product lines, 25,000 transactions a day – and a dynamically changing market.). Not knowing any better I decided that the communication chain involving programmers and systems analysts were a liability – and that one could provide a sales staff friendly system which could dynamically change with changing requirements. Of course my boss threw the whole idea into the waste paper basket and I decided to change jobs. I ended up in the Future Large Computer marketing research department with a small but imaginative computer company. I quickly realised (1) that there were many other tasks with similar requirements and (2) talks to hardware designers showed me it was easy to redesign the central processor if you had a good reason to do so. I concluded it was possible to build a “white box” information processor which could be be used by normal humans to help them work on dynamic open-ended tasks. When I mentioned this to my boss, a “TOP SECRET” label was stuck on the idea, patents were taken out, and I was put in charge of a team which, two years later showed the basic idea was sound.
So why haven't you heard of it? Well at this point the company was taken over and as my idea was incompatible with the “stored program computer “ approach I was declared redundant. I found what turned out to be a most unfriendly hole to try and continue the research but after 20 years, a family suicide and a bullying head of department I gave up “fighting the computer establishment” from sheer exhaustion, Selling the idea became harder and harder as even school children were being brainwashed to believe that computers are the ultimate technology and you need to be clever to program them. The idea that it might be possible to built a simple human-friendly processor was deemed ridiculous – as demonstrated by the millions of people whose careers were dependant on the fact that stored computers worked..
So what I will do is to answer your questions in terms of the kind of processor I was researching.
Difference # 1: Brains are analogue; computers are digital
My initial proposals – and all subsequent experiments – involved sets defined by text strings, but in theory all the processor needed was a mechanism to say if two set elements were (at least approximately) identical. It was not concerned with how these set were represented. In principal the system I proposed would be quite happy with the idea of a “cat” being represented as the written word “cat”, the sound of someone saying “cat”, the sound of purring, visual images of a cat or parts of a cat, the feel of stroking cat fur, etc., or any combinations. What is important in understanding the processes involved is not the media in which the information is stored but the ability to make a comparison in that media.
Difference # 2: The brain uses content-addressable memory
The whole basis of my proposals were based on content addressable memory – because that is how people think and what they can understand. In fact one of difficulties of my approach was that if you had a task which was best analysed mathematically in terms of a regular grid, such as a chess board, it was at a disadvantage compared with a stored program computer – which after all was designed to handle mathematically regular problems. [Comment - how relevant is the precisely predefined and unchanging rules of chess, and the fixed an unchanging dimensions of a chess board, to the kinds of mental activities needed to be a hunter gatherer.]
Difference # 3: The brain is a massively parallel machine; computers are modular and serial
My proposals are based to the idea of having one comparatively simple processor which operates recursively – i.e. it is continually re-using itself. This is an economic way of building the processor if you are working in electronics (or at least the electronics of the 1970's, which was the time the first commercial hardware might have been built if it had got that far.) Another way of looking at recursions is that you have one processor which passes subsidiary tasks on to itself. If you had millions of identical processors it could just as easily work by passing subsidiary tasks onto other identical processors to work in parallel. While I never looked at the problem of parallel working seriously my approach should be equally valid with either serial or parallel processing.
[Comment – of course neural nets (as developed by the A.I. community) are parallel – but they are not inherently user-friendly – as my approach tried to be.]
Difference # 4: Processing speed is not fixed in the brain; there is no system clock
Of course the stored program computer has an electronic clock to ensure that all components work as fast as possible in synchronisation. However I feel that is really saying no more than that a circuit board and a brain used different mechanisms to order to do what they do.  In one sense this relates to the difference between serial and parallel processing (#3) in that with serial processing you must have a very robust sequence of operations which can be executed rapidly. With parallel processing you can have many multiple processes going on simultaneously and it doesn't matter if they are not perfectly synchronised as long as there is some mechanism to bring the combined results together.
Difference # 5 - Short-term memory is not like RAM
An important feature of my system was a   “working area” which I called “The Facts” and which I considered to be equivalent to human short term memory. While there were some practical implementation features the difference between the Facts and any other information in the knowledge base was that the Facts were the active focus of attention. The Facts were, of course, context addressed.
However there was a very interesting feature about the Facts – the number of active items in the Facts at any one time way very small and one of the first observations when I tried out a variety of application was that the number of active items in the Facts at any one time was often around 6 or 7 [Miller's Magic Number 7?] and I don't think I every found an application that genuinely needed as many as a dozen. (In electronics terms there was no reason why I shouldn't have had a system that could work with a thousand or more such items.) The reason for the number being small that in order to make the approach human-friendly I needed to find a way that would not overwhelm the human with too many active facts. It seemed important that, to be understandable, the number of Facts items should match the number of items in a human short term memory if the human was doing the same tack in their head. In other words the processing architecture I was proposing could work just as easily with very much more complex problems in terms of the number of Facts being simultaneously considered – but humans would have difficulty following what was going on because of the limited capacity of the human short term memory.
(It should be noted that if the same tasks were implemented using conventional programming techniques they would need a very much larger number of named variables. This is due to the difference between the linear addressing of the stored program computer and an associative system. In an associative system the same things are given the same name where-ever they occur so that the processor can see they are the same. In a conventional programming language the addressing needs to be able to distinguish between related entities by giving each occurrence a different name because they are held at different addresses.)
Difference # 6: No hardware/software distinction can be made with respect to the brain or mind
You mis-identify the problem. On one hand you have a cell with information stored within. On the other hand you have a processor with two different kinds of information – program and data – stored in the memory. The real difference is that the brain does not distinguish between program and data while the stored program computer does.
My system does not distinguish between program and date – it simply stores information which can be used in subtly different ways. What I called the “Decision Making Unit” simply compared items from the knowledge base (i.e. Long term memory) with the currently activated Facts (the short term memory) and as a result the Facts might be changed or become part of the knowledge base. That was all the processor could do if you excluded (1) new information was added to the Facts from the “outside world” or (2) some combinations of Facts triggered an action in the “outside world”.
This is a critical distinction. The information in a unit of memory in a stored program computer is meaningless except implicitly in that it is defined by a series of complex predefined “program” instructions somewhere else in the computer. In the brain, and in my system, the meaning is embedded in the memory unit and so can be used meaningfully without reference to a separate task specific program.
Difference # 7: Synapses are far more complex than electrical logic gates
We are back to the biological against electronic hardware situation. The driver mechanism in my system is remarkably simple (in stored computer terms) and produces very different effects with superficially small changes in context. I suspect that synapses behave differently with minor changes in context – but I would not want to explore the analogy further at this stage.
Difference #8: Unlike computers, processing and memory are performed by the same components in the brain
I doubt that that the brain uses exactly the same proteins and other chemicals in exactly the same way for both processing and memory. If you concede this point – and that the brains cells have different mechanisms operating in the same “box” - the analogy is with a computer on a single chip – which also has everything in the same box.
Difference # 9: The brain is a self-organizing system
At the processor level the stored program computer is not designed to be self-organising – so one would not expect it to be!
My system was designed to model the way the human thought about his problems and the processing of the facts was completely automatic in that the decision making unit mechanism organised information is a way which was independent of the task. This is a very important distinction between what I was proposing and a stored program computer. The computer requires a precise pre-definition of the task it has to perform before it can do anything. My approach involves the decision making unit scanning and comparing structured sets in a way that solutions happen to fall out in the process [would you condiser this to be self-organising?]. The human brain similarly can handle information from a vast number of different contexts without having to be pre-programmed for each particular context that might occur.
The final version of my system had several features which could be called directed self-organisation of the knowledge base – allowing information to become more or less easy to find depending on its usage history. Because I was looking at a system to help humans I felt it was important that the triggering such a process should be under human control. I must admit I had never thought of implementing it in a way that it reorganised the user's information without the user being in control – If the system worked this was I suppose you might call that “Free Will”.
Difference # 10: Brains have bodies
This relates to the input and output of stimuli with the outside world – and I would not expect there to be close similarities between a biological and electronic system.

No comments:

Post a Comment