I challenge you: your best alternate to materialism

1. All of the computational functions of the brain use correct code that has been established through trial and error over the evolutionary process.
...
2. New code is actively debugged by the brain.
You probably know this, but your post suggests otherwise:

The brain is a network of neural networks; it doesn't run code the way a conventional electronic digital computer does, which makes it far more flexible, adaptable, and resilient to damage than a conventional electronic digital computer running directly functionally equivalent code.

However, you can construct a network of neural networks out of conventional electronic digital computers connected and programmed to function as such a network. This would also be flexible, adaptable, and resilient to damage. This has been done, and they are - albeit at a far smaller scale than a brain.

If there's some fundamental reason why an electronic network of neural networks structured like a biological brain couldn't function in a similar fashion to a biological brain, please explain it.
 
I've never understood the halting problem, myself, even though I'm a computer programmer. I guess I've never had to deal with it in the past nor was it taught in my college. I suppose a computer can't check for an infinite loop unless it runs into one itself.

...but this, however, baffles me. I've debugged code before and I've always thought it was a simple matter of determining whether anything ever changes in the loop itself.

Can you clarify this one for me ?


The halting problem does not mean that a computer or other machine can never figure out or prove that a given algorithm will or will not halt. It only means that no such machine can reliably figure that out for all possible cases.

The same is true for the brain, as far as we know. There are many instances where one can examine code and easily identify an endless loop. For example, a loop that's broken by a certain variable exceeding a certain constant, and no operation within the loop can possibly result in that variable's value increasing.

That's an easy one. A program could also detect many such cases, simply by evaluating characteristics of the code (e.g. whether the loop variable is referenced at all inside the loop).*

A slightly more difficult case would be a loop where the loop variable is incremented within the loop, but then decremented again later in the same loop. That would be a bit more difficult to find, for either a programmer or a code-evaulatiing program.

Ultimately, there is no limit to the complexity of the questions that must potentially be answered in order to figure out "is this code an endless loop?" I gave the example above of a routine that tests successive even integers for being a Goldbach number (the sum of two primes). That routine is an infinite loop if the Goldbach Conjecture is true, but not if it is false. Since proving or disproving the Goldbach Conjecture is an unsolved number theory problem that mathematicians have spent lifetimes working on, a hypothetical endless loop detector program would have to be very ingenious indeed to give a reliable answer in that case.

(Of course, it's possible that a proof or disproof of the Goldbach Conjecture will be accomplished eventually, by a brain or by a program. It just shows that any claim that brains cannot be subject to the same limitations as universal machines because "humans can find endless loops in programs while computers can't" is not validated by evidence; there are a great number of programs that humans cannot yet, despite considerable effort, determine whether or not they halt. A huge number of arbitrarily difficult mathematical questions, from "does this statement of number theory have a proof?" to "does this 817th-order Diophantine equation have any integer solutions?" can be translated into an equivalent question of the form "is this routine an endless loop?")


*Note that testing by simulating the running of the loop itself runs into the obvious problem that if the loop is endless, so will the simulation be. Such a simulator can be programed to run for some finite but possibly large number of operations and warn of a possible endless loop if the operations limit is reached. That can be practically useful in many cases but it does not dent the halting problem.

Human programmers are not limited to simulated test-running; they can often reason on a higher level to prove that many specific loops are or are not endless. Computer programs can do that too, though. A fallacious hidden assumption that a computer program can only evaluate a loop by running it often underlies the "brains exceed computers because brains don't get caught in loops" claim.
 
The Halting Problem is part of a larger class of problems. Just as you can't always predict that a given program will halt you also cannot always predict that code will give the correct answer or won't crash. So, based on established theory it would be impossible for the brain to determine ahead of time that a given computation was correct.


No. That's the same misconception I just addressed for Belz. The Halting Problem doesn't prove or claim that it's never possible for a machine to determine ahead of time whether a program will halt or otherwise run correctly. Only that no machine can do so in all cases.

So, again, if we apply computational theory to the brain then we only have a few possibilities:

1. All of the computational functions of the brain use correct code that has been established through trial and error over the evolutionary process.

This does have an obvious evolutionary problem because the rate of error would be so large compared to correct code that not enough offspring would survive. You would end up with less than 1 in a trillion chance of survival. We could try to claim that the speculative code is so small that it wouldn't impose a fitness burden however then it also wouldn't give a fitness advantage. In other words, there doesn't seem to be any way to create this code in an evolutionary setting.

2. New code is actively debugged by the brain.

This also has an obvious problem. In order to debug code you have to know what it is supposed to do. However, there is no mechanism for the brain to determine this ahead of time.


Possibility 3.: The brain is full of "code" that is "incorrect" but works well enough (having been established by trial and error during evolution) for survival purposes. Optical illusions are one example: you mistake the physical interpretation of what you see even after you're aware of the illusion and its general mechanism.

Brains get tired, they get distracted, they get bored. The hardware itself fatigues when repetitively over-used. That probably helps avoid getting into real-world endless loops. But it's also a limitation on the range of computations they can accomplish, which is one reason we started building mechanical computers in the first place. We could build or program computers that do similar things (e.g. a programming language that monitors the symbol table at runtime and halts execution if the same symbol is referenced too frequently for too long) but that would make them unreliable for the sorts of tasks we use them for.
 
It might also be worth pointing out that determinism doesn't imply predictability.
 
You probably know this, but your post suggests otherwise:

The brain is a network of neural networks; it doesn't run code the way a conventional electronic digital computer does, which makes it far more flexible, adaptable, and resilient to damage than a conventional electronic digital computer running directly functionally equivalent code.

However, you can construct a network of neural networks out of conventional electronic digital computers connected and programmed to function as such a network. This would also be flexible, adaptable, and resilient to damage. This has been done, and they are - albeit at a far smaller scale than a brain.

If there's some fundamental reason why an electronic network of neural networks structured like a biological brain couldn't function in a similar fashion to a biological brain, please explain it.
It is also very vulnerable to errors and bugs.
:)
 
How do I know that animals don't freeze in an infinite loop?

No. The brain is capable of running multiple computations (or, if you prefer, programs) at once. How do you know that some of these do not - indeed, are not intended to - loop infinitely?

That a certain program within the brain might loop forever does not in any way imply that the organism will freeze forever. This implies a cartoonishly simplified idea of how computers work.

This reduces to a simple tautology: consciousness is a product of consciousness.

No, it doesn't.

Information processing is done by computers all the time without consciousness.

I have never said otherwise.

An insect's brain is not conscious.

Yes, it is.

What is the source of the experience?

The integrated nature of the system. Again, you would be best served reading the article yourself, which I linked above.

I suppose I could be more precise. The 6502 processor uses 8 bit opcodes. So, it could not have more than 256 instructions. I believe it actually only uses 56. So, anyway for any given instruction you have one correct bit arrangement and 255 incorrect ones. That's for one instruction. So, let's say that a section of brain code is equivalent to one hundred 6502 instructions. That would be one correct arrangement out of 6.67 x 10240. So, my suggestion that it was one in a trillion was a bit light. To get one in a trillion you would be limited to five instructions. Can you see the problem?

You really have no idea at all how evolution works, do you? The issue is not and has never been "if I roll a bunch of dice, can I come up with this result?" (or, if you prefer, pattern of switches), but "if I roll a bunch of dice, keep the ones that sort of look right, and then just reroll the ones that don't fit, over and over and over, forever, can I eventually come up with this result?"

See Myriad's post for a further explanation.

BTW, my assertion about brain code is not a restatement of the typical claim by Creationists that DNA sequences could not have evolved purely by chance.

It is, actually. That is exactly what you are doing.

Exactly.
 
No. The brain is capable of running multiple computations (or, if you prefer, programs) at once. How do you know that some of these do not - indeed, are not intended to - loop infinitely?

That a certain program within the brain might loop forever does not in any way imply that the organism will freeze forever. This implies a cartoonishly simplified idea of how computers work.


Just to give one example, I certainly hope that the part of my brain that keeps me breathing when I'm not paying any attention to breathing continues to run in as endless a loop as possible.

The part of my email program that checks for new mail every few minutes is roughly comparable. It too is an endless loop, unless interrupted from the OS level.
 
Yeah, but a flexible, adaptable, and resilient system can cope with errors and bugs and their consequences far better than a functionally hard-coded system.

most assuredly, part of the is the redundancy, and the other part is the shared processing.

Bugs in the human cognitive process don't usually cause the whole system to fault or engage in some secret loop.
 
The halting problem does not mean that a computer or other machine can never figure out or prove that a given algorithm will or will not halt. It only means that no such machine can reliably figure that out for all possible cases.

The same is true for the brain, as far as we know. There are many instances where one can examine code and easily identify an endless loop. For example, a loop that's broken by a certain variable exceeding a certain constant, and no operation within the loop can possibly result in that variable's value increasing.

That's an easy one. A program could also detect many such cases, simply by evaluating characteristics of the code (e.g. whether the loop variable is referenced at all inside the loop).*

A slightly more difficult case would be a loop where the loop variable is incremented within the loop, but then decremented again later in the same loop. That would be a bit more difficult to find, for either a programmer or a code-evaulatiing program.

Ultimately, there is no limit to the complexity of the questions that must potentially be answered in order to figure out "is this code an endless loop?" I gave the example above of a routine that tests successive even integers for being a Goldbach number (the sum of two primes). That routine is an infinite loop if the Goldbach Conjecture is true, but not if it is false. Since proving or disproving the Goldbach Conjecture is an unsolved number theory problem that mathematicians have spent lifetimes working on, a hypothetical endless loop detector program would have to be very ingenious indeed to give a reliable answer in that case.

(Of course, it's possible that a proof or disproof of the Goldbach Conjecture will be accomplished eventually, by a brain or by a program. It just shows that any claim that brains cannot be subject to the same limitations as universal machines because "humans can find endless loops in programs while computers can't" is not validated by evidence; there are a great number of programs that humans cannot yet, despite considerable effort, determine whether or not they halt. A huge number of arbitrarily difficult mathematical questions, from "does this statement of number theory have a proof?" to "does this 817th-order Diophantine equation have any integer solutions?" can be translated into an equivalent question of the form "is this routine an endless loop?")


*Note that testing by simulating the running of the loop itself runs into the obvious problem that if the loop is endless, so will the simulation be. Such a simulator can be programed to run for some finite but possibly large number of operations and warn of a possible endless loop if the operations limit is reached. That can be practically useful in many cases but it does not dent the halting problem.

Human programmers are not limited to simulated test-running; they can often reason on a higher level to prove that many specific loops are or are not endless. Computer programs can do that too, though. A fallacious hidden assumption that a computer program can only evaluate a loop by running it often underlies the "brains exceed computers because brains don't get caught in loops" claim.

Thank you for the explanation, Myriad. As usual your posts are informative.

Since humans and computers seem to share this issue, however, it doesn't seem to be that terrible a problem, however. :)
 
That's a very important point to make, especially on the topic of free will.
It may be no coincidence that chaotic behaviour has been observed both in neurons and some brain activity - but too early to say for sure.
 
... Bugs in the human cognitive process don't usually cause the whole system to fault or engage in some secret loop.
Although when things do go wrong, it can be much harder to figure out why, and how to fix them... swings & roundabouts ;)
 
No. That's the same misconception I just addressed for Belz. The Halting Problem doesn't prove or claim that it's never possible for a machine to determine ahead of time whether a program will halt or otherwise run correctly. Only that no machine can do so in all cases.
Why do you pretend to disagree with me and then repeat what I already said? Pretty much by definition when you say the same thing I said you are agreeing whether that appeals to you or not.

There's not enough in the rest to comment on.
 
I think it's kind of a losing battle trying to explain to people what they don't know so I'm not going to continue with that. And since the typical reaction to my posts is knee-jerk disagreement I'm also going to move away from my opinions.

The year is 2012: IBM and LBNL achieved an unprecedented scale of 2.084 billion neurosynaptic cores containing 53×1010 (530 billion) neurons and 1.37×1014 (100 trillion) synapses running only 1542 times slower than real time.

The cerebral cortex of the human brain contains about 20 billion neurons with about 10,000 synapse each. The entire human brain is about 80 billion neurons. So, 530 billion would be about six brains worth or 26 of just the cortex alone. So, you should end up with about 1 human brain power at about 1.7% the speed of a human brain. That was 2012. If there were international headlines about a neural network comprehending, say, the works of Shakespeare, I seem to have missed it.

Now, that was the old IBM neural chip. It was only 256 leaky integrate-and-fire neurons, 1024 axons, and 256×1024 synapses using an SRAM crossbar memory. It fit in a 4.2mm square area, using a 45nm SOI process.

IBM has had a new one since August last year. TrueNorth contains one million neurons and 256 million synapses implemented by an on-chip 64 by 64 mesh array (4096) of neurosynaptic cores. It fits 5.4 billion transistors in a 4.3 square centimeter die using a 28nm process. This chip only needs 72 milliwatts at full power.

A rat only has about 20 million neurons in its cerebral cortex. So, twenty of these chips should give you 1 rat brain power in terms of neurons--you might need 100 of these to get enough synapse. Although, like the first example perhaps it doesn't operate in similar time. So, where are the AI rat brains?
 
Last edited:
Why do you pretend to disagree with me and then repeat what I already said? Pretty much by definition when you say the same thing I said you are agreeing whether that appeals to you or not.


You said, "So, based on established theory it would be impossible for the brain to determine ahead of time that a given computation was correct."

I disagree with your transition from something being not necessarily possible for every possible instance, as computing theory dictates, to the "it would be impossible" in your claim above. Maybe you just omitted some necessarily qualifiers, but you have not shown that predicting the "correctness" of the particular brain computations you're talking about would be impossible.
 
The year is 2012: IBM and LBNL achieved an unprecedented scale of 2.084 billion neurosynaptic cores containing 53×1010 (530 billion) neurons and 1.37×1014 (100 trillion) synapses running only 1542 times slower than real time.

The cerebral cortex of the human brain contains about 20 billion neurons with about 10,000 synapse each. The entire human brain is about 80 billion neurons. So, 530 billion would be about six brains worth or 26 of just the cortex alone. So, you should end up with about 1 human brain power at about 1.7% the speed of a human brain. That was 2012. If there were international headlines about a neural network comprehending, say, the works of Shakespeare, I seem to have missed it.

Now, that was the old IBM neural chip. It was only 256 leaky integrate-and-fire neurons, 1024 axons, and 256×1024 synapses using an SRAM crossbar memory. It fit in a 4.2mm square area, using a 45nm SOI process.

IBM has had a new one since August last year. TrueNorth contains one million neurons and 256 million synapses implemented by an on-chip 64 by 64 mesh array (4096) of neurosynaptic cores. It fits 5.4 billion transistors in a 4.3 square centimeter die using a 28nm process. This chip only needs 72 milliwatts at full power.

A rat only has about 20 million neurons in its cerebral cortex. So, twenty of these chips should give you 1 rat brain power. Although, like the first example perhaps it doesn't operate in similar time. So, where are the AI rat brains?


Amazing! They've had a whole three years to figure out how to interconnect and calibrate 530 billion neurons and 100 trillion synapses, and they haven't produced C-3PO yet. Obviously they're on a fool's errand!
 
And since the typical reaction to my posts is knee-jerk disagreement I'm also going to move away from my opinions.

"The Church-Turing thesis is incorrect" is not an opinion.

The year is 2012: IBM and LBNL achieved an unprecedented scale of 2.084 billion neurosynaptic cores containing 53×1010 (530 billion) neurons and 1.37×1014 (100 trillion) synapses running only 1542 times slower than real time.

The cerebral cortex of the human brain contains about 20 billion neurons with about 10,000 synapse each. The entire human brain is about 80 billion neurons. So, 530 billion would be about six brains worth or 26 of just the cortex alone. So, you should end up with about 1 human brain power at about 1.7% the speed of a human brain. That was 2012. If there were international headlines about a neural network comprehending, say, the works of Shakespeare, I seem to have missed it.

Now, that was the old IBM neural chip. It was only 256 leaky integrate-and-fire neurons, 1024 axons, and 256×1024 synapses using an SRAM crossbar memory. It fit in a 4.2mm square area, using a 45nm SOI process.

IBM has had a new one since August last year. TrueNorth contains one million neurons and 256 million synapses implemented by an on-chip 64 by 64 mesh array (4096) of neurosynaptic cores. It fits 5.4 billion transistors in a 4.3 square centimeter die using a 28nm process. This chip only needs 72 milliwatts at full power.

A rat only has about 20 million neurons in its cerebral cortex. So, twenty of these chips should give you 1 rat brain power in terms of neurons--you might need 100 of these to get enough synapse. Although, like the first example perhaps it doesn't operate in similar time. So, where are the AI rat brains?

So even though it's demonstrably possible and progress is being made, the fact that work hasn't completed yet is enough for you to assume that it is impossible.

I would say that this explains a lot, but it really just confirms what we already knew.
 
You said, "So, based on established theory it would be impossible for the brain to determine ahead of time that a given computation was correct."
It was in your own quote:

barehl said:
you can't always predict that a given program will halt you also cannot always predict that code will give the correct answer or won't crash.
Are you still going to pretend that I said something different in the part that you, yourself quoted?
 
Are you still going to pretend that I said something different in the part that you, yourself quoted?


What you said is wrong.

"One can't always go to the movies."

"Going to the movies is therefore impossible."

No objection to the first part, but the second part doesn't follow.

ETA: better example

"It's not always possible to lift a given rock, because they can be arbitrarily large."

"Building Stonehenge would require lifting rocks, which I've already shown to be impossible."
 
Last edited:

ISF - Join now!

Every member here is approved by hand. No bots, no spam, just people who care about evidence and honest debate.

Membership is free!

Create your free account

Back
Top Bottom