Tuesday, 29 May 2007

Levels of abstraction

A review by Jerry Fodor in the LRB (of Consciousness and Its Place in Nature by Galen Strawson) brings to mind an issue I've been meaning to write about for ages: the importance of a tall tower of abstraction for some kinds of emergent behaviours.

Fodor says:

The third of Strawson’s leading theses is a good deal more tendentious than the first two; namely, that emergence isn’t possible. ‘For any feature Y of anything that is correctly considered to be emergent from X, there must be something about X and X alone in virtue of which Y emerges, and which is sufficient for Y.’

Assuming for a moment this is a correct account of Strawson's views (I haven't read the book), this is an error, and a common one for people who have not studied systems that have a lot of different levels. Let me try to explain.

How many different levels are there in thinking about reading this post? There's the level of your hardware: transistors and gates. There's the level of hardware design: functional modules and so on. In fact (and I'll skim this part as this isn't the hardware blog) there are three or four levels here, roughly going from thinking about groups of 10-20 transistors to thinking about blocks of hundreds of thousands. Microcode runs on this, so now we are at the hardware/software boundary. Beyond this is the microcode interpreter, instruction optimisation, pipelining and so on. Then up to true machine code, as spit out by a compiler. From there we move up to programming languages. Finally there's your browser and it's internal architecture.

No one understands all of this in detail. A good hardware designer might span the five or six levels of abstraction needed to design a working chip, but most working within one or two levels with some knowledge of the ones above and below. A good software designer might occasionally be willing and able to delve into the compiler output -- very occasionally. But it's just too hard to understand all of the ten or more levels involved in something as simple as a web browswer running on a modern PC. Its behaviour might be determined by its code which in turn relies on an implementation in machine code running on a pipeline processor implemented using... but it might as well be emergent as far as any single person knows.

Now suppose that there are a lot more levels of abstraction involved in a brain than in a PC. We have no idea whether this is true or not, but certainly there is a big gap between the detailed hardware as revealed by neurophysiology and the architecture conjectured by cognitive psychology. It could be that in order to understand that gap we need not one or two levels of abstraction but twenty. Consciousness could be a feature of a program X running on Y running on Z running on A and so on down a long, long way. Just because you can't see how a bunch of transistors is able to grant you access to www.hornyyoungphilosophers.com (register this now if it hasn't gone already - it has to be a money spinner) doesn't mean they can't - just that it is too hard for any single person to understand all the steps necessary for it to happen.

Fodor's article is excellent and it really makes me want to read Strawson's book. But he posits something that seems at least unnecessary (although it may well be true): a law of emergence. Perhaps we don't need it simply because emergence can be like a good joke -- it takes a lot of setting up, and all the pieces are needed to make it work, but once you have all those pieces, the punch line is pretty much inevitable.

Labels: ,


Post a Comment

Links to this post:

Create a Link

<< Home