The basic Thesis that I will argue in this post is that a physical
process in nature is not equal to a simulation of such a process in a
computer using floating point numbers. After establishing this fact
using several examples, I will tie it back into AI and
Computationalism. My end goal will be to show that, in this
newsgroup, there is a clutter of confusion over what the word
"Computationalism" actually means. It is my hope that this post will
finally lay the issue to rest.
I am aware that there are many educated people in this newsgroup but
despite this I am going to write this post up in great mathematical
detail, as if I am addressing high school kids. I am going to do this
to ensure that everyone reading this post will be on the same page.
An idealized Turing Machine is an infinite tape with binary digits on
it. It has a read/write head that can write or read the digits from
this infinite tape. This is a mathematical model of what computers
do. It is highly inefficient and unrealistic to build a computer this
way, so instead CPUs are given all sorts of logic gates and other
stock-circuitry such as multiplexors and adders. Modern CPUs have
entire sections for computing floating-point numbers. This section of
the processer is called an FPU. Floating point numbers simply mean
that the computer can handle numbers that are decimals which can be
very large or very small in scientific notation. eg 3.49x10^-40 or
1.4523x10^12
And idealized turing machine (TM) is a mathematical IDEA, and it has
infinite speed and infinite amount of tape to perform scratch space.
Real computers have a finite amount of memory and a finite amount of
scratch space. Anything any computer can do, (including parrallel
supercomputers) can be done on an idealized TM. The idealized TM
represents the very upper bound for any kind of computation performed
on a computer.
One can consider a function performed by a TM. Such a function can
refer to itself as well, which is called recursion. One can imagine
the set of all functions that could be hypothetically performed on a
TM. These are called, variously, "computable functions" or
"Turing-computable functions". In mathematics, they are called
the Class of Recursive Functions.
Now that the groundwork is layed down for everyone, let us return to
the topic of Computationalism. I need to state some undeniable facts
first.
Fact 1: Atoms and molecules in the world do not compute
floating-point computations inside of them to decide what to do next.
They are not little computers floating around. Atoms and molecules in
the world obey "Laws" which humans sometimes write down as symbolic
equations.
Fact 2: No computer can perform a division by zero, even in
floating-point notation. An idealized TM cannot divide by zero
either, even when it has infinite scratch space.
Fact 3: If a floating-point number contains a finite error in its
representation, then subsequent calculations on that number will
result in larger and larger errors. So basically, if you start with a
number whose error is tiny (2.0x10^-7), after multiplying it many
times, this error will be much larger at the end. If you raise this
number to a high power, such as taking it to the 10th power, the error
is much larger it is 1.02x10^-3. So with a single calculation, we
went from a tiny error of 0.0000002 to a more serious error of
0.00102. If this number is used in further calcs, the error will grow
even more!
Fact 4: Precise numbers in your data do not make other numbers
nearby "more precise" than they already were. The largest error in
your floating-point data nullifies the accuracy of any other data you
have. If X contains an error that is very small, and W contains an
error that is very large, then the number A = X*W will contain an
error equal to that in W, essentially wiping out any of the precise
digits in X.
I will now talk about simulating natural processes in a computer and
some of the issues that arrise. I will give 3 case studies, and then
afterwards, tie what we have learned back into AI and
Computationalism.
Case Study in Simulations Part I: Precision-guided missiles.
================================
The military had to hire mathematicians to solve the problem of
precision-guided missiles that never hit their targets. The reason
they would always go astray was because the missiles had controllers
in them using floating-point numbers. The FP numbers had errors in
them that grew during each calculation, resulting in large errors by
the time the missile got close to its target. One mathematician hired
to do this has a funny anecdote. He remarks that he simply changed a
few of the registers in the missile from 16 bits wide to 32 bits wide,
and that completely solved the problem!
Case Study in Simulations Part II: Weather
===============================
Massively parallel supercomputers have been used to successfully model
weather formations such as storm clouds. Nooone has ever made the
absurd claim that storm clouds "perform computations" on water
molecules. In fact, this cannot take place since in the equations
for the fluidic flow of heat in a gas cloud, one often gets
infinities. These infinites are known to not actually take place in
reality (just from a common-sense view of things) but why they do not
happen is because heat is actually brownian motion of water and air
molecules. The computer simulations of weather most certainly DO NOT
consider the motions of single atoms in a storm cloud. (In fact,
supercomputers struggle to simulate things as small as viruses, at the
molecular level. Consider the difference in size between a virus and a
tornado system in the sky to get the idea of how many molecules one
would be dealing with.) The massive simulations of weather on
powerful computers make all sorts of unrealistic assumptions about
water, heat, and air, not because the scientists are ignorant, but
because you simply must make these assumptions. The code which runs
these simulations has tricks to trap the computer from getting numbers
that are too large (overflows) or too small (underflows rounded to
zero).
Ask any meteorologist about how storm clouds "Trap" funny cases like
division by zero and the infinites of thermodynamic flux. They simply
do not do this because they are SIMPLY NOT COMPUTERS. A storm cloud
is actually made of water molecules undergoing actual brownian motion,
it is not a list of floating point numbers being fed into a CPU.
Case Study III: Candlelight
===================
Say you are in a dark room and you have lit a single candle flame and
you are holding a flat brick. Say you want to SIMULATE ON A COMPUTER
how brightly lit the face of the brick will be if you hold it some
distance from the candle flame. The equation for luminuos flux is
given by this
--> L = E/(r^2)
Where E is the "irradiance" of the candle flame, and r is the distance
to the brick. Now hold the brick into the flame. How brightly lit is
the brick now? Well, lets calculate it
L = E/(0.0^2) or L = E/0.0
Yeh so what exactly does this mean? The brick has "infinite"
brightness? Of course it does not, and this can be verified easily in
your own home. What the equation needs to read is actually this:
L = (AE) * (1/r^2)
Where A is the area of a "patch" on the surface of the brick. The
idea is that when you get closer to the flame the area of the "patch"
will also get smaller, and as the 1/(r^2) grows to infinity, the (AE)
term will shrink to zero.
Okay? So what is the point? The point is what we are expected to
imagine that the shrinking AE term will "cancel out" the exploding
1/r^2 term. It turns out this is impossible to simulate on a
computer. Using floating point numbers, you will NEVER, EVER get a
tiny term to "Cancel out" a term that is exploding to infinity. You
are essentially dealing with zero over zero, and expecting a finite
answer to "converge". This cannot be done with floating-point
numbers in any way at all. Yet this process happens seamlessly in
nature all the time. Why? Because natural processes are NOT processes
simulated on a computer, and that's precisley the point of this entire
post.
(aside: People who actually write graphics programs that simulate this
have to "trap" the case of r getting too small. Does nature "trap"
this case? What do you think? )
Computationalism Revealed
=========================
Lets jump back into Computationalism now, and apply what we have
learned above. Consider the following statement, lauded as
"computationalism" by some people in this newsgroup:
[P] "Any natural process in nature can be simulated on a computer
using floating point numbers stored and calculated by a CPU. The
brain is a natural process in nature, therefore the brain can be
simulated on a computer."
Now consider this one:
[Q] "The neurons of a brain operate on signals which can be
considered data. At base, the brain is performing turing-computable
functions on this data. The brain is a computer instantiated on the
substrate of organic cells."
Q is Computationalism. P is NOT.
Q is commensurate with the motto "cognition IS computation". (It
depends on what "is" is. -Clinton) P makes no concessions as to
wether such natural processes are themselves turing-computable. The
argument is only that OUR SIMULATION will be turing-computable. And
that our simulation will be "really close" to what happens in the real
world.
Q is what you will get if you google the word "Computationalism".
Usually the website will say something on the order of "The brain does
the same thing a laptop does." You will not find P outside of
newsgroups. P is some sort of esoteric argument having to do with the
simulation of natural processes on computers, which as this post
demonstrates, is a whole area of study to itself.
I would like to suggest to all of my readers here that there exists no
umbrella method for converting a natural process seen in nature into
something that a computer can simulate using floating-point numbers
(with all their inherent quirks). Any simulation so built will make
assumptions about the model that are innaccurate. These assumptions
will be like the candlelight case study above, or the weather case
study. These assumptions will be made in such a way that the
scientist will not experience "angst" over how far away his model is
from nature.
In any case, from a scientific standpoint, a computer simulation is
only some consequential evidence that a model is correct, not a
DEFINITIVE PROOF of such a model. Everyone knows computers are
cutting corners and "Trapping" cases that are simply not computable
using floating-point numbers. (division by zero, zero over zero, etc
etc). There are places in nature where the "infinities cancel" such
as light falling on a brick. There are places in nature where the
infinities do not cancel, such as black holes and fusion.
I guess the question I will leave at the end of this post is this one:
Is it really the case that any natural process in nature can be
simulated using floating point numbers in a computer? (A discussion
for another thread!).
[...]
> Is it really the case that any natural process in nature
> can be simulated using floating point numbers in a computer?
> (A discussion for another thread!).
I don't think that is relevant to building AI.
I don't see AI as being about trying to simulate a human
(or animal) brain on a computer.
I see it about building a machine which produces the
same kind of "intelligent" behavior that a human or
animal might produce.
The inability of a computer (or brain for that matter)
to simulate something else, like the weather, to any
degree of accuracy is not what is being attempted.
A machine that produced "intelligent" behaviors would not
be simulating anything. It would, as a result of what it was,
behave in a way we would call intelligent in a human.
I think the term "artificial" in artificial intelligence
causes the confusion. I think we are looking for *real*
intelligence in a system that is not made of neurons.
If you build a machine that walks would you call that
artificial walking? Or a machine that is simulating the
behavior we call walking? Or would you say that you
have built a machine that really does walk?
--
JC
Have you gotten the impression that I am a Computationalist?
I discuss it because, how can you not, and that slogan is
found all over the internet, it is a catchy phrase that gives
people who don't know, an idea of what Computationalism means.
My opinion of Computationalism from another post goes like this:
SH: "I was going to post this to "What Compuationalism Means" because
the nebulous nature of the Comp. theory and the various presentations
by AI philosophers don't produce a coherent plausible structure."
I think this Subject may be a good idea.
Regards,
Stephen
It has been suggested that "Synthetic Intelligence" might have been a less
misleading name for the field. But McCarthy named it AI in 1956, and that's
the name we're stuck with.
> If you build a machine that walks would you call that artificial walking?
> Or a machine that is simulating the behavior we call walking? Or would you
> say that you have built a machine that really does walk?
I like your analogy.
Reminds me a little of this quote:
The question of whether a computer can think is no more interesting
than the question of whether a submarine can swim. (Edsger W. Dijkstra)
_______________________________________________________________________________
Don Geddis http://don.geddis.org/ d...@geddis.org
When aiming for the common denominator,
be prepared for the occasional division by zero.
I agree with you.
> Is it really the case that any natural process in nature can be
> simulated using floating point numbers in a computer?
I think that Chaos Theory
http://en.wikipedia.org/wiki/Chaos_theory
suggests that the answer is no.
Minor discrepancies in the initial conditions of a chaotic system grow to
exponential differences with the passage of linear time. While the final
conclusion is subjective, that suggests that any approximate "simulation"
would not be useful.
-- Don
_______________________________________________________________________________
Don Geddis http://don.geddis.org/ d...@geddis.org
The earth may spin faster on its axis due to deforestation. Just as a figure
skater's rate of spin increases when the arms are brought in close to the body,
the cutting of tall trees may cause our planet to spin dangerously fast.
It took me a while to figure out why you thought that was
important. Cognition is done by the brain and mind and
computation by the computer. That motto does not mean they
are accomplished by the same physical means. IOW, you can
add the numbers 2 + 7 + 5 in you head and come up with 14.
You have performed a computation. You can have your computer
add up the same numbers and it will output 14. The computer
has performed a computation. Physically, the methods are
quite different, your brain uses neurons and the computer
uses a cpu and memory. "Cognition is computation." means
that cognition is the right kind of process so that a
computer can produce the same function as the brain.
Functionalism says the physical substrate doesn't matter,
what matters is that there are equivalent functions that
produce the same answer and it doesn't matter how that is
done. The physical part of how a computer does it, with
floating point numbers, has nothing to do with how the
brain physically accomplishes the same result. What matters
is if they are both functionally equivalent or I think of
it as both being logically equivalent.
(Comp.) The functions whose values are generated by brains
are Turing-computable. [Comp. = Computationalism]
All the programs that run on a PC or Turing Machine are
computable, meaning they are effective procedures. So if
all the functions of the brain (the premise) are Turing-
computable functions, that means all of those functions
can run on the PC or TM too. So if all the functions of
the brain are accounted for on the PC program, then why
can't the right PC program instantiate a mind, since the
PC has all the functionality of a brain which does produce
a mind. This is the idea behind Computationalism which is
more specific than thinking Comp. means the brains neurons
are producing computations in a physical fashion like a PC.
> Computationalism Revealed
> =========================
> Lets jump back into Computationalism now, and apply what we have
> learned above. Consider the following statement, lauded as
> "computationalism" by some people in this newsgroup:
>
You are the one who introduced floating point numbers because
you thought that guy was making a physical analogy rather than
a functional analogy when he said all the neurons work like
CPUs to make computations. Neurons do work together to make
computations, which is why you can add in your head. But Comp.
goes beyond that description.
> [P] "Any natural process in nature can be simulated on a computer
> using floating point numbers stored and calculated by a CPU. The
> brain is a natural process in nature, therefore the brain can be
> simulated on a computer."
>
The first part of the first sentence is like the Church-Turing
Thesis, which also is not a description of Computationalism, but
is often used to support Comp. In this case you picked a controversial
version called the Church-Turing Principle(CTP) which is claiming that
all physical processes are turing computable functions; that is what
Comp. claims as its fundamental premise. If you have this assumption
in hand,then of course it will work just like a PC with cpu etc.,
because that is how PCs work. The claim that every physical system
is composed so that turing-computable functions can be extracted
doesn't mean that the physical system is a Turing Machine. So the brain
is a system in nature according to CTP which can realize turing-
computable functions, and so can a PC, but they don't have to realize
them in the same physical way (the brain doesn't need floating point).
> P is NOT.
>
>If you would look closely, you would see that nobody is talking about
>single CPU. The actual analogy of human brain is as a network of
>millions of independent CPUs running in parallel and in communication
>with each other, from which majority are units specialized
>on solving specific problems.
Beagle: Again. Neurons are analog devices which are not storing floating
point numbers and manipulating them with math operations. What you
[SH: Well you are right, but that is not what his analogy is claiming
as far as your claim that his analogy pertains to Computationalism. I
don't see this paragraph relating to Computationalism, so it is not a
failed description of Computationalism, it is your misinterpretation.]
are suggesting is SIMULATING a neuron in each CPU in your grid. This
is fundamentally different from building an analog device which "does
the same thing" as a neuron. In any case, you would not use Pentiums
or AMDs. Those are general-purpose processors and therefore would be
sluggish compared to a CPU specially made to sum up and perform a
transfer function (and nothing else). Perhaps you are beginning
to see what I mean when I say AI is an engineering problem, not a
problem of mere lack of FLOPS. (more on this below)
SH: Nor did he say that the brain neurons are as simple as the
ones which run on computer neural networks. I am not disputing
the rest of your argument with Evgenij. I won't discuss that.
But what he says doesn't represent a (failed) description of
Comp. or make the physical conclusions (FPNs) that you drew from it.
You are right about FPNs, but that is not what Evgenij meant, he was
saying that functionally, neurons and cpus are capable of computation,
not that the cpus were physically equivalent to neurons.
Well, this most should be remarkably uncontroversial.