Ray Kurzweil Responds to "Ray Kurzweil does not understand the brain"
kurzweilai.net
kurzweilai.net
If we are so very intelligent, then shouldn't we be smart enough to see that ad hominem attacks result in emotional responses overriding the rational desire to open our minds and learn, instead replacing those instincts with the knee-jerk defensive reaction of tightening our hold on our existing beliefs, right or wrong?
I understand that we're all passionately devoted to truth and understanding, and we take umbrage when we perceive that someone is damaging those virtues. But the kind of thinly-veiled high school drama aired in these two posts is what disappoints me more than anything.
He comes off a lot worse in this circumstance. Kurzweil may in fact be wrong, but not in a way that makes him deserve the Wrath of Myers. Myers' method of "getting personal" simply isn't appropriate in this case.
In this case, the situation is reversed: he's writing about subjects (artificial intelligence, information theory, and self-reproducing systems in general) that he knows very little about, and that Kurzweil knows a great deal about.
It's unfortunate that he didn't bother to find out what Kurzweil was actually claiming, instead relying on some dumb-ass "science journalist", before launching his little jeremiad. You'd think Myers, of all people, would know better than to trust science journalists.
It's not difficult to know more evolution than creationists, as most of evolutionary theory is just logic and facts, something lacking in most creationist reasoning.
This is not the first time that he uses his mob-leadership to attack someone, and it won't be the last. He is not a scientist anymore, he's just a blogger, that for better or worse has cult followers.
Human rationality and human intelligence does not alway meet each other. Human that are selected by evolution tend to use cognitive shortcuts as a matter of survival. It is not so useful for finding the truth, however.
So we're going to trip and make mistake. That's OK. As long as somebody point it out.
I think I see what you are saying, and agree that it is necessary to draw distinctions between obviously biologically useful prejudices (fire hurts) and less obviously useful ones (purple people are stupid), but my point was that they are borne by the same mechanism of "educated" preconception.
How is your definition of "prejudice" different from something simpler like "knowledge"?
I beg to disagree.
Such verbal slinging IMO serves the important sociological purpose of publicly provoking the other person to react and calling everyone else's attention to the issue. I'd even venture to say that we're all basically watching the discussion primarily because of the jabs.
Insults would perhaps be unbecoming if this were a clinical and professional exchange in an academic journal. But when our opinions compete to survive in the wild, a little verbal spice helps.
Speaking for myself at least, the primary value of this exchange is entertainment. Any knowledge or insight is merely a bonus.
For most part, people are only passionately devoted to their ideas/ideals (which they perceive as truth often enough)
Myers argument only shows that the decompression algorithm, i.e. the route from the genome to brain, is insanely complex, but it doesn't say anything about the actual complexity of the brain. So in essence, yes, if we would choose to model the brain in a highly compressed form like the human genome we would potentially need a computer that could model it's own subatomic physics, but that's not likely the way we would want to approach this.
Anyways, this doesn't mean that the brain isn't very complex and impossible for us to model at the moment. They main question is how long it will take for us until this complexity is manageable (if ever).
This is where both Kurzweil and you are wrong. A very complex compression/decompression scheme can achieve much better compression. Intuitively, you can encode some of the information in the decompressor itself, even if it is in a very abstract form. This is the reason why compression competitions include size of the decompressor code, e.g. http://prize.hutter1.net/
The laws of physics and biochemistry are irrelevant, unless you're claiming that a substantial fraction of the information needed to build intelligence (we're talking tens of megabytes here) is encoded in the laws of physics or in the biochemistry we share with snottites.
The brain is a product of not just the genome but the environment in which it develops. You are not just the product of your genome. You are the product of your genome and the womb in which you were incubated, and the environmental stressors on your mother.
You can't go from genome => organism without a WHOOOOOLE lot of Ceteris Paribus to fill in the gaps. Information theory is really pretty irrelevant to the subject of developing a biological model of the brain.
To clarify (having read Kurzweil's post more carefully), a lot of the interesting features of the brain are specified in the configuration and connections of the brain. The base building blocks and types of neurons might be specified in the genome (i'm not positive about that, i'm not a geneticist), but even if that were to be the case, Kurzwiel would have to demonstrate that environmental factors were not critical in the development of the structures of the brain that make us thinking beings.
I don't think he can do that. Biologists and computer scientists have spent a long time doing research on the building blocks of neural networks, and not only do the fields still face some difficult and fundamental challenges, but for the time being, it's very clear that we do not have the tools necessary to interrogate the brain in the manner we would need in order to be able to map interesting things out.
Perhaps things have changed in the 5 years since i graduated university, but... i haven't heard anything earth shattering that would indicate we do have the level of sophistication to computationally model the brain in an accurate manner, or even promising starts to such an endeavor.
Additional Edit:
Kurzweils assertion that we can't predict how technology will change is correct. Neither can he. Progress is a discontinuous non-linear process. It may be that we'll be able to track all the particles in the brain and watch them as the develop over time, but... then again it very well be that we won't be able to. Tinkering with brains in invasive ways is difficult, let alone non-invasive ways.
"It is true that the brain gains a great deal of information by interacting with its environment – it is an adaptive learning system."
Where does he say that the brain is only the product of its genome?
What he meant is that we need to model everything that happens to the brain before it becomes a brain. That is, how the proteins interact with each other in the physical world to form the brain. Meyers' analogy was that the genome is the data, and the physical laws of the universe are the program. People are modeling how proteins fold and interact in the physical world, but it's a hard problem, and we're far from being able to do it for an entire organ.
[We meander midstream into a heated discussion between Kurzweil and PZ Myers...]
Kurzweil: ...able to live...FOREVER!
Kurzweil: ...
Kurzweil: ...?
Myers: FFS, Kurzweil, you dimwit, we're the only two people in the room, and you can't possibly think you're going to get your standing ovation from me...
Kurzweil: Enhh...whoops, I guess my muscle memory kicked in, I've given that speech an awful lot of times, sorry about that...back to my main point, I guess: The Kolmogorov complexity of any "intelligence algorithm" is, with high probability, bounded from above by the size of the DNA string that picked that algorithm out of the entire universe of algorithms.
Myers: Kurzweil, you fucking idiot, if we want to build a brain, we need a lot more than just the bits of information in the DNA. There's an entire developmental pathway leading from DNA to its ultimate expression in a human brain, and you can't just pretend that we could write a simple algorithm to collapse that into one step.
Kurzweil: But I'm not saying that we want to build a brain by translating the DNA. I'm saying that the amount of information necessary to pick the brain's particular neural algorithm out of a full lineup of all possible neural algorithms (most of which would do nothing useful at all) must be coming from the DNA. Since the universe of all possible neural algorithms that can be expressed by DNA is highly unlikely to be have a disproportionate representation of useful neural algorithms, it's a matter of simple probability to see that the amount of information necessary to pick out a useful neural algorithm in any sufficiently large and random universe of neural algorithms is likely to be the same as the amount of information necessary to make that selection out of the DNA-expressible neural algorithms.
Myers: But you can't just translate from DNA to a brain, GODDAMN it, this is basic biology we're talking about! There's a lot of stuff that happens between DNA and a brain, and you can't just ignore it!
Kurzweil: Who said we were talking about biology?
Myers: I'M A F$@KING BIOLOGIST, OF COURSE WE'RE TALKING ABOUT BIOLOGY!!!
But to say that Kurzweil is an optimist is to completely miss his perpetual argument. As drug companies dump billions USD annually into both complex protein research and sequencing technologies, we advance the state of the art in both of these classes. And while we have a long way to go, automation will get us there faster every year. If Meyers were to show that Kurzweil's estimation of complexity was off by 1000-fold, Kurzweil would still win because we would reach the goal 12 years later than expected, and "off by 12 years" isn't as wrong as "never".
I think this is where most everyone really is missing the power of exponential growth, to use Kurzweil's language.
The difference between "surprisingly low" and spot-on is +-5 years in Moore's law time. Really what it boils down to is how long Moore's law continues.
Perhaps the disconnect here is that Kurzweil, operating from an information theory perspective, is neglecting the possibility that the biological environment in which a brain grows effectively adds a ton of "data" to the system. That is, it's not as if brains can spring fully formed from the genome itself, and a few basic rules--it requires a very complex environment. So we're probably talking far, far more than 50MB of "data" here.
Please realize, despite the fact that pretty much everyone on HN is repeating this argument (the "data gets added to the system" argument), it is an extraordinary claim, and should require correspondingly extraordinary evidence if we're to consider it.
I'm going to justify this in excruciating detail, because the claim has now come up so many times.
But first, let's nail down the context, because if we can't agree on that then we really shouldn't even be discussing the topic (and I suspect the whole problem here is that Myers thinks they're arguing about something other than what Kurzweil is actually claiming) - we're discussing the amount of information that we would need to construct an effective intelligent algorithm. Not one particular algorithm, but any effective intelligent algorithm.
Here goes, a pseudo-mathematical breakdown of why this "data gets added" argument is so hideously wrong:
There's an entire infinite universe of "possible intelligence algorithms" (for the moment, we won't define this too precisely, but we'll hand wave and say that this universe consists of all algorithms that take the right inputs and provide the right outputs, whatever those are), most of which are utterly useless, and are certainly not intelligent. Let's call this universe U0.
Step one: let's cut U0 down to a finite practical size, eliminating ridiculous algorithms that we could never expect to implement. We can do this in a million ways, it doesn't really matter; for now, let's just say that we're cutting it down to algorithms that have possible physical realizations using the resources on our planet. That's still a huge number of algorithms. Call this U1.
Step two: Let's now trim U0 in a different way, picking out only the algorithms that we consider actually intelligent, however you want to define "intelligent". Name this (still infinite) set Z.
Step three: Take the intersection of Z (intelligent algorithms) with U1 (practical algorithms), call this set P. P is all the practical algorithms that qualify as "intelligent".
Now let Prob(I) = (size of P / size of U1), the probability that a randomly selected practical algorithm will be intelligent. This is an extremely small probability, but it's finite and non-zero (human intelligence suffices to prove that it's non-zero).
Step four: Now we slice up U1 in a different way, and create a set D_N: the set of all algorithms that can be specified by growing a human from a string of DNA of length N (and that ultimately run within the space constraints).
Step five: Set P(D_N) = intersection of D_N and P, all intelligent algorithms satisfying the space constraints that can be grown from a DNA string of length N.
Ok, that's a lot of sets, but it's okay, we don't need most of them. One last calculation:
Prob(D_N) = (size of P(D_N) / size of D_N), the probability that a randomly selected practical DNA-created algorithm will be intelligent.
No more set-fu, I promise. We've boiled it down to two probabilities, Prob(I), and Prob(D_N). These probabilities are proxies for the information content needed to pick an intelligent algorithm out of the corresponding sets of algorithms.
The "information gets added" claim has a very simple mathematical expression:
Prob(D_N) > Prob(I) when N = the length of human DNA
i.e. a randomly selected DNA-created algorithm with DNA length N has a greater probability of qualifying as intelligent than a randomly selected algorithm in general. And not just a little bit greater - you're saying that the fact that it's implemented via DNA makes the probability much higher, corresponding to the data difference you're claiming with the statement 'far, far more than 50MB of "data" here'.
Perhaps now you see the trouble: in order for me to consider the "data gets added" argument plausible, I need to hear an argument that suggests that a random construction based on DNA is far more likely to lead to an intelligent algorithm than a random construction in general.
Myers has not offered an argument in this direction. Neither has anyone else. Until someone does, the odds are overwhelmingly in Kurzweil's favor; statistically speaking, Myers is flat out wrong.
So I put the question to everyone: what's so special about the DNA construction process that makes it so much more likely to create intelligence than any other construction process we might conceive of?
This assumes that during the billions of years on earth before DNA, lots of different chemicals came together, but if any self-replicating one came together, it would grow and still be around. Exceptions are if it wasn't very good at it and died out, or that DNA-based life attacked it or grew faster, crowding it and starving it (or bad luck wiped it out - but it could arise again.)
The fact that DNA did survive shows that DNA is indeed specially suited to encoding life. One might even try to estimate how specialized it is, by estimating how improbably it is, based on how long it took for a planet of experiments to arrive at it.
The details of how it's special could be in terms of protein folding, eg. that you can specify some really cool and useful folds, crucial for life, in surprisingly short DNA sequences. It's as if the search space of encoding schemes was scoured for schemes that in effect included a handy collection of library functions.
But this lovely (I think) argument doesn't apply to intelligence at all; nor even to mammals, or indeed animals - just for basic life. Once life existed, all the extra features were just hacked on.
If that's the question, then sure, I agree with you. In fact, I imagine something intelligent code be encoded with much less data.
My point was about the information content required for the human brain itself, and that seems to be what Kurzweil is talking about, at least:
The amount of information in the genome (after lossless compression, which is feasible because of the massive redundancy in the genome) is about 50 million bytes (down from 800 million bytes in the uncompressed genome). It is true that the information in the genome goes through a complex route to create a brain, but the information in the genome constrains the amount of information in the brain prior to the brain’s interaction with its environment.
It's a shame, because his argument is fully defensible if it's stated correctly and applied to the general problem of AI instead of to Kurzweil's pet theory that full brain simulation is the One True Way.
The amount of computation, and program expressibility involved in folding a protein is far far far more than you would expect from just counting the DNA that made that protein.
Similarly, "simulate shallow wave dynamics" is in the class of algorithms that a water tank is pretty near optimal for, and the "find local minima" problem is handled with remarkable ease by gravity and a rolling ball; we'd be hard pressed to write computer programs that solve any of these problems using fewer bits than we can get by with by using the real world to solve them instead.
But most algorithms are not made that easy by any of these computational substrates; in fact, vanishingly few of them are, and an algorithm is only likely to be "easy" relative to vanishingly few systems.
What would let us assume that "Do intelligence" is a member of the subset of problems that are made easy by the detailed workings of biology? Because the a priori probability that it falls into that class is just about zero...
However, those 2⁶⁰⁰ sequences of bases are immediately reduced to 20¹⁰⁰ ≈ 2⁴³² possible sequences of amino acids (ignoring the start and stop codons, which are presumed to lie just before and just after the 300-base sequence in question).
Are you suggesting that these 2⁴³² different peptides somehow express many more than the 2⁶⁰⁰ different three-dimensional structures, or rather, probability distributions over them? Because that seems like a highly implausible claim, on the face of it.
Or are you going to answer, "Fucking arithmetic. How does it work?"
IMO, it does not say much. I can't comprehend the limits of 50MB of heavily macroed and slightly buggy LISP code. It's simply not a meaningful metric. Edit: Also, in theory we could write a program which would simulate human level intelligence, but run far too slowly to be useful in any meaningful context.
PS: Findman had a wonderful description of chemistry as the search for rules of thumb to let people simplify the problem of simulating the physical equations.
I don't know if what I said even makes sense but I really don't believe that we need something that simulates the brain at the cell level to replicate some of the processes.
You do not need to understand how every last cell of the brain was created in order to build a machine that works like the brain. To reverse engineer the flight of a bird, you don't clone the bird, you build an airplane.
If that's not the case then we will most likely have to revise our view of biology drastically.
Kurzweil is giving a lines-of-code metric, but lines-of-code is only one piece of the puzzle. Kurzweil is calling LOC analogous to DNA. Chemistry is analogous to the actual hardware (of which there will undoubtedly be a lot) and classical 'experience' is just that. I'm beginning to feel like the people who understand the biology are misunderstanding the computer science.
I do understand that eventually we will be able to simulate the brain of an adult without having to simulate all the development that created that adult brain and all the minute chemical mechanisms that enable fat and protein to think. You can simulate important parts of the basic components and get the same output as a real brain doing the same thing.
However, I think that since many computer scientists see the brain as a chemical computer, they misunderstand how close we are to knowing how it actually works. We have conceptual holes in our understanding in how the brain actually processes input. We are not at the point where we can start simplifying: if we want to truly simulate what we know about the brain, we have to include the activity of every molecule, since we don't yet know what activity we can ignore.
We want a Newtonian physics simulator, but we only know subatomic interactions — we have to simulate the entire universe even though F=ma is underlying it all. [Edit: yeah we understand a lot more than that but I think the analogy still applies.]
Wouldn't it be simpler to say "put 10^80 hydrogen atoms really close to each other and wait a few billion years". Simpler, and just as useless (insofar as it doesn't get anyone closer to simulating a brain in the next 10 years).
The human genome, on the other hand, succeeds in growing intelligent brains a more or less measurable fraction of the time, in only a couple of years: at least 5%, if we assume that 94.9% or so of all zygotes fail to implant or otherwise miscarry, and another 0.1% suffer some kind of disability that forecloses the development of intelligence.
This is observably different from the development of most similar-sized chunks of matter, even biological tissue, over similar timescales. For example, my body has contained about 100kg of biological tissue for the past 15 years. That's enough time for each 10kg chunk of it to develop intelligence about 7 times. But I'm not aware of any new intelligent entities in my body during that time. Some might doubt the existence of any intelligent entities in my body at all.
Well, no, of curse you wouldn't be. Insensitive clod.
(Signed, The bacteria in your bowels. P.S. stop it with the random antibiotics, or we'll give you a good run).
(And forgive me if I think understanding it should be considered a prerequisite to refuting it. Most commenters here are skipping that step. He may yet be wrong, but surely we can at least do him the courtesy of engaging with his actual argument and not dim reflections from a funhouse mirror?)
Find the formula and you have a shot at computing the end result but we're very far away from being able to trace the path from DNA to deep brain structure. Right now we're stuck solidly on being able to figure out the structure of the proteins fast enough (Anton?), once that's more easily done we can move on to the next level of the problem, the interactions of large numbers of proteins in a soupy environment.
It's almost by definition interdisciplinary and I doubt there is any one person that really has the whole view.
Is that a meaningful statement? What does that actually imply?
If you look at the sort of neurological problems that humans exhibit, particularly due to developmental defects, the genome actually encodes a wide variety of possible brains. It may very well be that the human genome encodes for all sorts of general neurological matter. I think that we really are giving short shrift to the importance of brian development.
The majority of human beings who survive to birth eventually develop some form of intelligence, despite wide variation in their environments. Even children raised by wolves show substantial ability to learn, even though they rarely develop language. By contrast, treating a chimpanzee or a dog like a human child will not result in the development of fluent language or super-dog intelligence.
This suggests strongly that much of what we call "intelligence" is encoded in our genes, not acquired from our environment.
Additionally, though, if we could develop a robot that could acquire culture as easily as a human baby (or even five times more slowly), we could raise it as a human baby and claim success.
So what if all we can put together is a feral child? It still implies we've built a brain.
I think you underestimate the degree of development and learning that takes place in the womb (language starts developing for instance). Feral children were still incubated by a mother.
If you were to mash together a bunch of neurons, you won't get a brain. You'll get a mess of neurons and random firing. That's the thing, that development of the brain and the arrangement of and connections between neurons is the critical component. They're dictated by genome, yes, but also by biological environmental factors (hormones), but also by external environmental factors (auditory through the womb).
Maybe you can grow a bunch of neural structures that look like a human brain, but it's just as likely that you'll only get an undifferentiated mass that's as smooth and intelligent as a bowling ball.
But if you looked at it in a different way, think about us as a collection of cells that all happen to have roughly the right environment to survive in, hooked up in roughly the right way to their neighbours. a series of inter-dependent colonies forming a symbiotic ecology then the picture changes dramatically.
It suggests that it is possible that intelligence is emergent if you have something that is roughly that structure, create something that is organized along the lines of a human brain with computational elements in it that can connect in the same way our nerve cells do and such a colony would have the potential to develop intelligence.
If you phrase it like that I think you get the closest to Kurzweils argument without any roundabout through the messy workings of biology.
What Meyers suggests is that the biological part is a requirement. I'm not qualified either way, but I think it is very well possible that they both have a valid point, and that the end solution will contain a portion of both.
The point is this parenthetical dwarfs the information in the genome to the point of irrelevance.
At least, that is Myer's argument, as I understood it.
Of course not. Likewise, if all you had was the binary of a Linux distro, and you didn't have a computer or any other associated hardware, it would be very hard to get that code running.
On the other hand, if you were trying to recode the distribution from scratch, without trying to decompile anything, a good ball park estimate for the size of your source code would be the size of the original distribution.
That's Kurzweil's point: he's simply trying to measure the complexity of the system, to get a rough estimate for how complex the model will need to be.
The easiest way to bootstrap a self-compiling compiler from bare metal is probably by writing a Forth inner interpreter in machine code, which is a few hundred bytes; a Forth outer interpreter in threaded code, which is a few hundred cells; and then an interpreter for the language of your compiler in Forth, which is likely to be a few dozen to a few thousand lines of code, depending on the language. (I don't know if Forth is good for anything else, but it's optimal for this.)
I don't know how to estimate this task properly, but I doubt it's more than a few weeks of work for a skilled person.
While I may be a product of my genome plus a specific womb with specific stressors (which affected that womb), we're not trying to duplicate me.
It's sufficient to generate a brain from a genome and some womb, aka "development environment".
Next? ;)
Either way, I don't see you or any other naysayers giving any numbers. Just a vague "it's all too complex we'll never get it". Maybe, maybe not - but it is just a claim, which hardly seems enough to justify trashing Kurzweil.
I did not see anything in that response that indicated that Kurzweil is basing his beliefs on anything more than his 2001 adaptation of Moore's law to all things technological; to me, the brain's biology and particularly its physiology fall outside our current notions of technology.
http://foratv.vo.llnwd.net/o33/rss/Long_Now_Podcasts/podcast...
Add in Moore's Law and an underestimate of the complexity of the brain, and stir.
I think the much more interesting question here isn't "Can hardware simulate the brain or not?" We'll figure that one out eventually. The interesting question is "As hardware and software begin simulating the brain (already happening), and integrating with it (already happening), what are the implications for the species?"
What's a half-singularity look like? Because that's very well how this century might turn out, and instead of arguing at the extremes, it's probably much better to focus on the immediate practical implications of what's already happening.
I imagine this is ridiculous to anyone working in Machine Learning, Applied Statistics, AI or what it is called at the moment.
Point me to the algorithms that have the potential of resembling the human brain, and I will have a look. Talk a lot about "computers are becoming smarter" and namedrop some brain region names and a lot of technically minded people will zone out.
http://en.wikipedia.org/wiki/Hierarchical_temporal_memory http://onintelligence.org/ http://www.numenta.com/Numenta_HTM_Concepts.pdf
I'm a technically minded person, and I definitely don't zone out when people are talking about the future. Sure, some kook might suggest we already have those algorithms and then I'd zone out. But that's not what's happening.
Kurzweil says "The genome can be compressed into X bytes, so that's an upper limit on the complexity needed to simulate the human brain."
Meyers says: "No. The genome says 'make a protein with this shape'. We don't understand the full complexity of the brain until we understand all of the physics (including potential quantum effects) that go into protein folding + all the different environmental effects. Further, the information in the physics and protein folding stuff is much much greater than information in the genome".
"It is true that the brain gains a great deal of information by interacting with its environment – it is an adaptive learning system. But we should not confuse the information that is learned with the innate design of the brain."
He is misunderstanding Myers here - Myers is talking about the physical ontogenesis of the brain during development (in utero), proteins interacting with proteins (and the environment and such) during its development, not the development of the brain through "adaptive learning"
"But we can take a much more direct route to understanding the amount of information in the brain’s innate design, which I also discussed: to look at the brain itself. There, we also see massive redundancy. Yes there are trillions of connections, but they follow massively repeated patterns."
"Yes, the system learns and adapts to its environment..."
Again, Kurzweil is failing to address the crux of Myers argument, that the design of the brain is not only in the genetic code, but in the intricate "playing out" of cells during brain development. Myers did not talk about the brain adapting to a system in the holistic or psychological sense, but on a much more fine-grained biological level.
This is false. Genotype-phenotype is not general purpose compression algorithm so there is no limit. You could theoretically compress all information about the universe in single bit. Algorithm for that would be: If you see one then you should return full information about universe and if zero then you should throw exception: "Error in input data."
Not every phenotype can be compressed to genotype. There is no DNA for animal on 17 wheels or for a cheese-cake.
It is more similar to fractal compression or procedural generation where huge (even infinite) amount of data can be "compressed" into simple rule.
If simple math can do something like that then complex machine of physical interactions can do much more.
In fairness, I'll also explain why Kurzweil's main thesis appears to be unassailably correct - albeit mainly because, in the end, he makes only quite weak and uncontroversial claims.
(For biological criticisms of Kurzweil, see "knowtheory"'s comment.)
Kurzweil seeks to establish an upper bound on a quantity he calls "the amount of information in the brain prior to the brain’s interaction with its environment."
He is not terribly precise about how that quantity is to be defined. He does tell us that his upper bound will show that the "design" of the brain isn't very complicated and that it will not require "trillions of lines of code to create a comparable system".
To establish his "amount of information" upper bound he looks at the number of "bits" in a complete human genome. A human genome contains about three billion base pairs. Each base pair position can have one of four possible values (e.g., contains two bits of information). Thus he comes up 6 billion bits overall, around 715 Megabytes (he says 800), and he points out that genomes are far from random and asserts that the whole thing can be compressed down to, perhaps, 50 Megabytes.
Apparently we are to believe that the amount of "code" needed to build a system "comparable" to the brain can not possibly be "trillions of lines" because the genome does it in less than 50 megabytes.
A zygote, in other words is a machine. It runs the code in the DNA. The code tells how to build a brain. Our simulator will be some kind of programmable system. We'll supply it with code. The code will tell it how to make or simulate a brain-like thing. If a zygote does it with a mere 50MB of code, our machine will as well.
It is just there, in that last step, that Kurzweil invokes a fallacy. In general, if you have two different kinds of machines, and you want to program each to compute the same result -- upper bounds on the program size on machine tell you nothing about the the upper bounds on the other machine.
That is why, for example, when Chaitin lectures about Omega he is always mumbling "relative to some choice of turing machine" (at least initially, until it is then understood to apply throughout the talk).
If all you know is that the zygote machine and our simulator machine are two machines - program size on the zygote tells you nothing about program size on the simulator.
There is, in other words, no abstract quantity that describes "the complexity of the design of the brain". Information theory does not recognize any such concept. There is no such thing as the irreducible complexity of a program other than relative to a particular machine.
The upper bound from the zygote could actually translate to our simulation machine if we agree that the simulator will operate on principles essentially the same as the zygote. Alas, Kurzweil says the opposite: "I did not present studying the genome as even part of the strategy for reverse-engineering the brain. [....] It is not a proposed strategy for accomplishing reverse-engineering [....]"
Kurzweil has to give up either the relevancy of the size of the genome, or his denial that we'll build a machine that operates on similar principles to a zygote (or on principles that can be proved computationally similar to a zygote). Either way, he should not be looking down at Myers' understanding of information theory.
All of that said, if you strip out his hype his only substantial claims seem to be that we'll build hardware that can run neural network software very efficiently (perhaps in real time for brain-scale networks) and that we'll get clues about useful network topologies from looking at brains.
That, my friends, is a perfect message for a "futurist" to deliver to a dazzled audience because, well, to many of us it is what you call "very old, somewhat boringly obvious news".
Not true! Worst case scenario, one machine can emulate the other machine, running that input. Therefore an upper bound on one machine can be used to derive an upper bound on the other. These upper bounds are not perfect, but they are indicative.
Indicative is good enough for the argument that Kurzweil is attempting. His argument has other flaws, but this is not one of them.
That is why, for example, when Chaitin lectures about Omega he is always mumbling "relative to some choice of turing machine" (at least initially, until it is then understood to apply throughout the talk).
Not so fast. Omega is the probability of a randomly chosen machine halting. Suppose that an upper bound on machine A predicted that for machine B within just 50 bytes of data. Then all of the programs of length n on machine A get translated on machine B to a list of programs that is 2400 times bigger, and the rest have unknown behavior. In this case Omega for machine A says very, very little about Omega for machine B.
Therefore "indicative" is very much not good enough for what Gregory Chaitin is talking about.
"If you wish to create a brain in 50 MB of code, you must first implement the universe"?
It is, of course, conceivable that the brain contains some kind of computational processes that can be implemented/emulated much more quickly on a biochemical substrate than in doped semiconductors — some kind of quantum computation or something. However, all the evidence we have at the moment points in the opposite direction, and there's no particular reason to believe that the universe is designed to give biochemical systems such an advantage.
The CPU may be physical, but software on it runs on the abstraction which is the CPU's instruction set. The underlying physical nature of the processor is irrelevant.
He was talking about having one machine emulate another - I was pointing out that that means your i7 emulating all of physics.
Very nice try. (I mean that sincerely.) However, you must also have a proof about the complexity of the emulation and the encoding of programs to emulate. Without that proof - which basically means you are no longer talking about two arbitrary machines but rather about two which are deeply related - the mere possibility of emulation tells you nothing other than that one machine is of equal or greater computational power than the other.
[Edit: in context - sure, our fancy big super computer from IBM can emulate the zygote (let's say) but.. what's that gonna take? Trillions of lines of code? 10 lines?]
And, maybe I need another cup of coffee but I am actually having trouble parsing the syntax of your comment about Omega.
If we're talking about Turing machines, all of the machines are of equal computational power, and are also able to emulate each other.
If we're talking about real machines, the take away is that moving from one machine to the other doesn't require much code, but does require that the other machine be powerful enough. Thus leading to Ray Kurzweil's argument that the real challenge is getting a powerful enough machine, and not in the amount of code needed to run on that machine. (He further argues that Moore's law will provide us with that machine.)
And, maybe I need another cup of coffee but I am actually having trouble parsing the syntax of your comment about Omega.
Basically I was saying that if you offer some facility to translate programs from machine A to machine B, only a very small portion of the programs on machine B will turn out to be programs that were translated from machine A. Therefore the probability of programs halting on machine A tells us nothing about what the majority of programs on machine B are likely to do, and therefore tells us very little about the probability of a random program on machine B halting.
Does that make more sense?
We aren't necessarily talking about Turing machines but let's suppose that we are. We're talking about machines powerful enough to compute anything that any Turing machine can compute. You are correct that any one of these machines can emulate any of the others.
What's relevant to Kurzweil's argument is two-fold:
If I tell you about Turing-class machine A and give you Turing-class machine B, we know right away that you can write an A emulator that runs on B. We know that because they are both Turing class. What we don't know is how big that emulator program is. It might take a trillion lines of code just to write the emulator.
Next, I have told you about machine A but now I also give you a 50 Megabyte program (called "GENOME") that runs on machine A. Now you must write your emulator, encode GENOME for your emulator, and run it on B. We know you can do that since these are both Turing class machines. What we do not know is how many bits it will take to encode GENOME. It could be 50 Megabytes. Or it could be 50 Terabytes. You just can't tell without proving things about the specific details of machines A and B and your emulator.
Kurzweil makes an argument analogous to "Hey, GENOME only takes 50MB on machine A. There's no way it takes 50TB on machine B. Information theory at work, man! Use your head!" Problem is, "information theory" says no such thing. Actually, it says "If that's all we've been told, hell it could easily take 50TB on machine B. It could take 5 bytes. Who knows? There's not enough said about machines A and B or the program GENOME to tell!"
Basically I was saying that if you offer some facility to translate programs from machine A to machine B, only a very small portion of the programs on machine B will turn out to be programs that were translated from machine A. Therefore the probability of programs halting on machine A tells us nothing about what the majority of programs on machine B are likely to do, and therefore tells us very little about the probability of a random program on machine B halting.
Yes. You are correctly observing that Omega is not really a constant - it is a class of constants. For machine A there is Omega_A. For machine B, Omega_B. That is why Chaitin lectures about Omega but only after several reminders that it's really "Omega_X for some specific machine X -- but I'm mostly just going to say Omega and let X be understood."
So, now, think that through with Kurzweil goggles on. In Kurzweil's world, a program of 50MB on one machine can't be 50TB on the next machine -- that's just silly, right? Well, if he were correct then, in general, Omega_A and Omega_B, for any machines A and B, would have to be somewhat close in value. We know that Omega_A and Omega_B don't have to be close (other than that they both come from the same (0,1) interval). By contradiction we conclude that we don't live in the world Kurzweil is describing.
If your emulator requires substantially different space to encode the raw description of the program than the original, then the emulator sucks. So if GENOME takes 50 MB to encode in one place, it should take 50 MB to encode in another. Certainly in any emulator written for real computers, it wouldn't take more than that.
But we're lacking the emulator. That's important because nobody knows how big or little that will be. The point that the biologist made boils down to saying that the emulator is an incredibly complex thing that has to encode an environment whose complexity is much, much more than that of the genome. So one flaw in that line of reasoning from Kurzweil is that we have no known upper limit on the size of the emulator itself. The biologist's argument basically comes down to, "The emulator itself needs to be much, much bigger than GENOME, and we have no idea how to write it."
(Note that I'm not arguing that Kurzweil is correct, but merely that your arguments against him were not correct.)
Yes. You are correctly observing that Omega is not really a constant - it is a class of constants. For machine A there is Omega_A. For machine B, Omega_B. That is why Chaitin lectures about Omega but only after several reminders that it's really "Omega_X for some specific machine X -- but I'm mostly just going to say Omega and let X be understood." So, now, think that through with Kurzweil goggles on. In Kurzweil's world, a program of 50MB on one machine can't be 50TB on the next machine -- that's just silly, right? Well, if he were correct then, in general, Omega_A and Omega_B, for any machines A and B, would have to be somewhat close in value. We know that Omega_A and Omega_B don't have to be close (other than that they both come from the same (0,1) interval). By contradiction we conclude that we don't live in the world Kurzweil is describing.
Not so fast. As I pointed out, even if the emulator was just a ridiculously small 50 bytes, then Omega_A would tell us very little about Omega_B because only about 1 program in 10120 on machine B would be programs that are emulated from machine A. You know nothing about the halting probability of the rest, and so Omega_A says very little about Omega_B.
(Obviously that 50 bytes is ridiculously small. But in http://www.cs.auckland.ac.nz/~chaitin/lisp.html Chaitin has an interesting example of a Lisp variant that can run a theorem prover against itself with only 410 bytes of overhead. So with pairs of machines, you can get away with surprisingly little.)
The complexity of a Turing machine is a function of the number of states that it can encode, in programming languages we call that 'expressiveness'. You can write a smaller program in a language that is more expressive. A Turing machine that allows more states is going to require a shorter tape (fewer cells) to do its work but will be more complex.
The argument I think that Kurzweil makes with his 50 MB figure is that once you take out all the redundancy you've taken out the expressiveness factor. Whatever emulator you use to interpret that 50 MB you'll end up with some 3D structure (if you simulate the embryology properly) that will resemble a brain.
The part where the analogy goes wrong according to me is by postulating a machine that this stuff should run on. The 'emulator' is nothing but the endless repetition of ribosomes threading RNA in order to produce more polypeptide chains which then fold up in order to become proteins.
Your 'emulator' in this case is a physics program, and not even a very complicated one, albeit with an absolutely astronomical data set for any size organism.
In order to avoid having to deal with that data set we try to achieve a higher level model of what the brain does, instead of trying to model what it is.
But that does not change the fact that the principle of the emulator (a 'mere' matter of programming) and the code that governs the construction are what gives rise to the brain and through there to intelligence.
So the upper bound of the problem in terms of complexity is the 50 M + whatever you need in terms of physics to (theoretically) run the simulation of the single fertilized ovum from start to finish, or as much as you need to verify that you have indeed succeeded in your simulation goal.
It can't get more complex than that, even if the generated structure is orders of magnitude more complex at first glance than the input data + the program. Think of it as 'output'. Thought is not the output of that program. Thought is the state changes within the produced (or simulated) brain.
The organic soup and all the proteins arising from it are the nuts and bolts the machinery is made of. That doesn't mean that we can't make similar machinery without those particular nuts and bolts.
I hope that all makes sense.
For instance http://www.nature.com/nature/journal/v441/n7092/full/nature0... has an example of RNA-based inheritance that is not in the genome. Also http://en.wikipedia.org/wiki/Genomic_imprinting shows that what genes you have and what genes you express are two different stories entirely.
That said, the effort of transcribing the 50 MB of genomic information into the final program is simply not a problem. And if we wanted to transcribe a much larger genome, the additional effort for that is again bounded.
This is all, of course, ignoring the excellent point that one would never want to actually do this given how slow this emulator would have to be. If we create AI in the next few decades, I can guarantee that it won't be a physics emulation of a human brain.
When you argue that a simple (just a few rules of physics) emulator could, in principle, do the job -- quite right. Unfortunately for your point, Kurzweil is making a much, much stronger claim. For, surely, you agree that that physics emulation isn't going to result in a practical program in 20 years, yes?
The way you are using "upper bound of the problem in terms of complexity" there... I could use your same logic to argue that the design of a brain can be encoded in exactly 1 bit.
The design of a brain, by your logic, contains 1 bit of information. (In particular, that 50 MB of compressed genome data? I'll give you a better compression algorithm for this purpose and it will, indeed, compress a particular human genome down to 1 bit.)
Since all Turing complete machines are functionally equivalent I don't think it is quite that irrelevant.
if the brain can be simulated by any Turing machine at all it figures that a 2-d tape Turing machine can do the same thing.
The question then becomes how big is the total information content of both Turing machine + tape.
The rules of physics are Turing complete, we use them to build computers with and nature uses them to build the physical universe, including computers and brains.
Kurzweil is not making such a strong claim at all I think, he merely argues that there must be some upper boundary to the starting configuration from which you should be able to arrive at a working brain.
And much as I would like to I can't find fault with that other than that the embryotic development is chaotic in nature and that a very small change in input conditions can easily produce nothing of interest on the output side.
The conclusion that we can draw from that is that the brain (and in fact probably every cell in our bodies) must contain a great deal of machinery to make sure that the process stays on track and does not veer off in to chaos and unpredictable outcomes. For the most part, it works, most of the fetuses carried to term are able to think.
> For, surely, you agree that that physics emulation isn't going to result in a practical program in 20 years, yes?
Some people claim even shorter times than that (which I think is highly irresponsible):
http://www.dailymail.co.uk/health/article-1201724/Artificial...
Personally I would put the time required for such a project in the multiple decades, probably 50 years at a minimum, maybe much more assuming that it can be done and that there is no quantum component (as proposed by Penrose, rather weakly) to intelligence.
As for your 1 bit description, you are not taking in to account the information content of the guts of the compression algorithm, and you'd find that algo+compressed data would work out to a nearly constant amount of information.
That 50MB has been created in a way that the size of the algorithm required to compress it and decompress it is relatively small compared to the size of the data.
As soon as you start embedding codebooks inside your algorithm the size of the data will go down but the size of the algorithm goes up correspondingly. Also the algorithm loses its universal character, it's ability to encode multiple data sets with roughly equal characteristics in terms of information content in to roughly equally sized output.
I can't try to help you any further. You have a conceptual bug in your understanding of the relevant math / CS.
Last I'll say is that your emulator doesn't necessarily "suck" - it may be that it is the best that is theoretically possible and still result in exponential growth in emulated program size.
And, you also don't seem to be following a relatively simple argument about Omega.
It's interesting stuff and we started down this thread on an interesting foot... I only mean here to explicitly sign off and note that, in my opinion, you're just not getting a few basic things I'm not too sure how better to present to you (which is not to say I'm normally particularly good at explaining such things -- only that for whatever reason, in this case, it ain't working).
About the emulator, the length of the emulated program is the length of the emulator plus the length of the representation of the program. On standard machine architectures you can represent binary data directly with little overhead. (Somewhere you have to declare the length of the binary data, so there is some overhead.) If you're encoding binary data within a programming language you may have a constant factor of encoding overhead because of your need to avoid reserved characters, etc. This is typically a small constant factor. I'm aware of no practical examples where that overhead is exponential, or even super-linear.
About Omega, I understand the argument that you're trying to make. Your argument is that if Omega_A and Omega_B are to vary, then some programs from A have to go to much longer programs on B. My point is that this is not true, all that is necessary is that the programs from A have to be lost in a much larger sea of valid programs in B. Given that the number of programs of length n varies exponentially in the size of n, there are enough programs that this will happen even if all programs in A go to programs that are just a fixed number of bytes larger in B. Therefore Omega_A tells you very little about Omega_B.
Yes, right there you are demonstrating a deep misunderstanding of what you are replying to or how it relates to Kurzweil's arguments.
On Omega, you say: all that is necessary is that the programs from A have to be lost in a much larger sea of valid programs in B
You left out that we're comparing sets of A and B programs of similar length -- the "sea" is not so large. Actually you kind of acknowledge this but then say bogus things about what it implies.
You are confused or else just b.s.'ing on purpose. It's been fun. We're done, please.
You left out that we're comparing sets of A and B programs of similar length -- the "sea" is not so large. Actually you kind of acknowledge this but then say bogus things about what it implies.
In this case "similar" was "differs by a constant". Thanks to exponential growth, even if said constant is something small like 50 bytes, the pool of programs on machine B would be 2^400 times as big as the pool of programs on machine A. That's about a factor of 10^120.
If you think that a factor 2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493376 difference is "not so large", then you've got a very different impression of what "large" means than most people do.
Anyways now I think we're going around in circles. Unless you make a point of some substance in your next reply, I'm not going to bother replying. And no, insults do not count as points.
Well, you know, part of the other half of the "source code" in the genome explains how to build a zygote. It doesn't explain how to build a universe, but there's no particular reason to believe that the universe is designed to make zygotes easy to build.
The encoding scheme isn't particularly problematic; it's a constant factor on the efficiency, and a small additive increment to the source code.
It is just there, in that last step, that Kurzweil invokes a fallacy. In general, if you have two different kinds of machines, and you want to program each to compute the same result -- upper bounds on the program size on machine tell you nothing about the the upper bounds on the other machine.
Right on, upper bounds on program size do not directly translate from one machine to another. So we can't set a hard bound, and we always need to speak about information content relative to a given machine - too few people have noticed this.
However, science doesn't give up when hard bounds prove impossible. There's always statistics to fall back on.
And statistically speaking, we can absolutely translate information content claims across machine boundaries if we're careful, as long as we have no reason to believe that the machine in question is somehow "special".
A priori, knowing nothing else about machines A or B, we would expect that if we observe an upper complexity bound on an algorithm relative to machine A, there's better than a 50/50 shot that the same upper complexity bound will also hold relative to machine B (it's greater than 50% because it's almost certain that our observation did not pick out the best theoretical upper complexity bound).
As good Bayesians, exactly how this all translates into a best estimate for the bound relative to machine B depends on a lot of stuff (all our prior distributions - in fact, in cases like this talking about upper bounds is silly, it's far better to talk about the distribution of upper bounds, but I digress).
But it's simply wrong not to adjust your complexity estimates relative to machine B in some manner based on an observation of machine A, unless you know something special about machine A that differentiates it from all machines in such a way that it's well-suited to express the algorithm under consideration.
So I ask you this: do you know a fact about "zygote machines" that makes them much better suited to constructing intelligence algorithms than most other machines? Do you have some reason to suspect that their dynamics are more likely to lead to intelligent computations than, for instance, normal computers?
Because otherwise, Kurzweil is a hell of a lot closer to the "right" estimate than you are.
(Edit) FWIW, I posted a more detailed argument elsewhere in this thread (http://news.ycombinator.com/item?id=1621053) that more carefully boils Myers' claim down to just about the same question I asked you.
So, we agree that Kurzweil's "information theory" snobbery is wrong. His real argument is "C'mon... look, the genome's small. Under a microscope the brain looks like it has many parts but very regularly arranged. How hard can it be? Trillions of lines? Please!"
That's not an information theory argument. That's a vague, hand-wave argument to an underspecified but compelling-sounding conclusion. "Reverse engineer the brain." "Build something similar." WTF could possibly happen that would prove him wrong? How exactly could Kurzweil's "predictions" here be falsified?
Put another way, if he changed his rebuttal to Meyers to be "I made no substantive argument or claim. Myers responded as if I had. Therefore Myers has erred." -- I could accept that. It then does raise the question of why Kurzweil was not more explicit about making no substantive argument or claim but that's a separate matter. It's moot because Kurzweil isn't making that rebuttal.
To your statistical argument, which is quite interesting...
I think the meat of your case is here:
So I ask you this: do you know a fact about "zygote machines" that makes them much better suited to constructing intelligence algorithms than most other machines?
Rather than quibble over what "intelligence algorithms" mean I am going to pretend you said "human brains or things very similar to such".
The answer is "Yes, I know quite a few facts that strongly support the hypothesis that human zygotes are, among the machine-like entities in the world, uniquely well suited to building human brains -- and very difficult to replace by any substantially different kind of machine."
At this point I would basically just repeat Myers' argument, perhaps adding in more specific but randomly selected details.
If you want to rescue Kurzweil by leaving the abstract "information theory" b.s. he offered and looking at the specifics -- then we've gone full circle. Kurzweil doesn't understand the brain.
Now there is an exception to all this. A different way of looking at it. I think that if you scrape off layers of hype and clouds of obfuscation, Kurzweil will consider himself to be proved correct if, in say 20 years, -- and just for example:
You can buy a box that has at least stereo video inputs and that, using an artificial neural net, does exquisitely accurate facial recognition. Or that can look at visualization of architectural CAD drawings -- millions of variations per hour -- and select a few with a high percentage chance of being pleasing to most people. Or that, in combination with the tactile-feedback neural net, can manipulate agonizingly capable microscopic tools for very delicate surgeries or for building nanotech or ...
I think it's f'ing obvious that (unless civilization fails - not out of the question) we have all that in 20 years and maybe sooner. I think that was f'ing obvious about 30 years ago, and to some, pretty clear even before that.
I don't think those devices count, in any reasonable way, as "reverse engineering the brain" but I guess they count as "reverse engineering a few select aspects of useful computational tricks that brains do in real time, quite efficiently".
I don't think those inevitable advances offer much support to Kurzweil's "exponential" technology - they are straight up incremental, boringly predictable advances. I don't think they're a real challenge to ordinary human predictive powers: we've seen this stuff coming for decades. Don't even get me started on how "the singularity" is dangerous, meaningless, new-age clap-trap.
But, Kurzweil dresses up such banal observations to make it sound like, any day now, massive machine mega-brains will take over the world. Hopefully they'll love us and kindly upload our consciousness and.....
So it is, to repeat my original point, with some delight that I take on Kurzweil's "information theory" sniping at Meyers.
I think this pretty well illuminates the source of our "disagreement" (and resolves it), apart from this we're on the same page about the details, I think.
To me, there's a very big difference between what I would qualify as successful AGI (artificial general intelligence) and "human brains or things very similar to such", in that successful AGI could work very differently from a human brain (and IMO, probably will, if/when we ever get there) and still qualify as a bulls-eye hit.
Taking that as our (relatively wide) target, I don't think protein folding and all that fun stuff adds much information.
However, if our target is narrower, simulating a brain or something close to that, then I agree, the details of biology do shift the estimates considerably.
Looking over one of Kurzweil's actual statements:
It is true that the information in the genome goes through a complex route to create a brain, but the information in the genome constrains the amount of information in the brain prior to the brain’s interaction with its environment.
...it appears that you're right, he's talking more about creating an actual brain than creating some algorithm that solves the same problem (possibly in a different way). Mea culpa: I unwittingly altered his argument before defending it, so I've really been arguing about what he should have said rather than what he actually said.
Not all is lost, though: the fact that his claim can be fixed up so that it's got some actual teeth is still worth noting, and I think Myers criticism is a bit too broad (he essentially claims that you can't say anything useful based on the length of a DNA string, which is not true). I think the real lesson here is that if we want to use DNA length as a proxy for information content, we need to be exquisitely careful about what "information content" means relative to the systems we're discussing, and nail down exactly what systems those are and how we're defining our problem.
It may not add information at all, just as the physical structure of a transistor does not add much information to what a computer can or can not do. In a computer the 'smarts' however are not even embedded in the connections (like what's being posited is the case for the brain), but in the software. Software is state, and software is, to all intents an purposes as good as invisible, unless you find a way to do a dump of what sits inside a running brain.
And then you still have to reverse engineer the computer that that software was running on in order to be able to resume.
Myers DNA length argument is easily disproved by reducing to extremes, if DNA length would be an irrelevant item then you could encode a brain with an arbitrarily short length of DNA, the fact that it takes up as much as it does proves that it is from an information processing perspective not a simple structure. So length is relevant, maybe not the whole story, but definitely a factor.
Part of me wonders if we are going to find one day that the genome does not just contain proteins but also contains the 'boot strap' state required to power up a brain after its initial configuration is complete.
That's highly speculative but there is a lot more data in the genome than what seems to be used and nature never was that inefficient, even if there are many things that could be improved on with the function oriented hindsight that we have.
But the methods are as far as I understand well understood and it is more of an optimization problem than something unsolved.
Edit: or did you mean 'solved' in an analytical way?
EDIT: I endorse all of ewjordan's other replies too. There's no need for me here.
The simple fact of not having seen something is totally baseless as evidence to whether or not that something is possible.
Question: this does mean he can say something like "there exists at least one machine that can do it in 50MB" which gives us a signpost for the size of the problem, no? Why does it follow that any other machine would have to take the same approach to hit the same order of magnitude?
As for the last, it may be obvious to you, but I don't think it's obvious to everyone. Part of Kurzweil's mission is getting that message out to more people. The controversial part is that once we have those efficient neural networks, we're that much closer to making devices that approximate, at least, what we experience as "thinking." I don't know that anyone here can say for sure whether he's right or wrong -- we'll have to wait 30 years and see.
If not, then the size of the genome is irrelevant -- a nontrivial amount of information could potentially be being passed on by the gestation process itself, and that may indeed involve trillions of lines of code.
If you assuming that there exist machines with properties which cannot in any way, shape or form be emulated by digital computers, then you are declaring that the Church-Turing Thesis is a priori false.
But the complexity of the zygote derives mostly from that 50MB of genome data, so Kurzweil's main point remains the same: the genome gives a rough estimate as to the maximum complexity of the human brain, which in this case includes the mechanism needed to build the brain.
Wait.. does it? I'm rather tempted to think you are right, but here is my worry. I know that the data in the genome encodes proteins that are able to function through their interactions and feed-backs yadda yadda, so as to perform the following tasks: growing a cell, splitting a cell, altering cell structure/function. But notice that "creating a cell" wasn't on that list.
The genome needs some minimally functional, pre-existing cell to be working in. That is something that the genome probably doesn't have the needed complexity to build "from scratch" as it were; it never has to do that job. So that pre-existing structure has some complexity, right? How does that compare to the 50MB?
Uh.. no. There's at least 650 Million years worth of initializing the process memory and other threads into which the zygote is fork / exec'ed.
What "state" that makes sense of the human genome is stored in, say, symbiotic bacteria that we host?
Does that make sense to you?
Like the human genome, the human memome is already available (in natural language) and the challenge is interpreting it. I don't believe the state of the art is good enough to create an upper ontology that can capture human experience, but sectors of ontology that capture chunks of it can be built from the bottom up now and merged as necessary.
Think of it this way. I know something about quantum physics and I know something about french lit crit. I don't need a general theory that encompasses both of them until I actually need that general theory -- at that point I'm going to build out as much of that theory as I need by an appeal to thought, experience and experiment.
The immediate term strategy is to find areas in which "unreasonably effective" strategies make it possible to extract facts and partially solve the "grounding problem". It's important to recognize that this is essentially a finite task: like the Earth's atmosphere, the Earth's noosphere has no perfectly defined 'edge'... However, there's a principle of interconnection and attraction of concepts that causes it to form a 'main body' that is essentially finite. The game of 20 questions shows that, more or less, the scale of human shared reality is 10^6 or so terms.
(The other number estimated was how many lines of source code the compressed 50MB or 25MB might correspond to. In the last thread I couldn't get this number to work either, though it came closer; and I actually know something about programs.)
Specifically, i believe that he assumes that intelligence and computation are the same thing. At least, he asserts that both are equimaterial --- that a sufficient powerful calculating machine is bound to be able to generate intelligence.
I do not know if intelligence == computation.
I do accept that, in many domains, the two things are interchangeable. Like, for example, if you are interviewing for a programming job and you can't do division in your head, that is a bad sign.
But if we are looking to build intelligence from computation, then i think we will bump into any differences that exist.
If computation and intelligence are equal or at least similar, that would be an interesting fact. It would teach us a lot about ourselves. To my taste it is a very interesting line of questioning. But it is not proven.
Really, we can't even really define intelligence! (As a sidenote, i think that is exactly the point of the "Turing Test", not to prove AI, but to show that intelligence is not clearly defined.)
If intelligence is a kind of computation, then Moore's Law means AI, definitely. And in that case, Kurzweil estimate of 2 decades is as good as any. If intelligence != computation, then some completely unrelated discovery has to intervene.
There is one thing that makes me doubt the assumption of equality, though. Namely, computers are already extremely better at computation than we are. I am 30yo and i can't recall a time when i didn't have available calculators way more powerful and fast than myself. If the translation from computation to intelligence was straightforward, my feeling is that the exponential nature of Moore's should have already made AI a reality before i went out of college.
Yes, that's an idea; it just so happens to be (at least outside the world of philosophy, where it's still easy to find people that don't believe in special relativity...) a fringe, unpopular one with pretty much no evidence whatsoever to back it up, because there's still no consensus on what "consciousness" even means, or whether it's definable even in principle, let alone measurable.
But in any case, consciousness has absolutely nothing to do with strong AI, which is defined in terms of what the AI can do, not whether its internal states are conscious or not.
it seems unlikely that we'll be modeling human brains well enough in 20 years to reproduce conscious human thought
Sure thing, I can agree with that, practically as a matter of definition.
Luckily, in the practical AI community "conscious human thought" is not what anyone's trying to create. They'd be perfectly happy with non-conscious, non-human thought that can learn a wide variety of things, regardless of how it's implemented.
I guess I don't understand what non-conscious thought is supposed to be, exactly.
Let's take the genome (DNA) as a program + data, and the phenome (the organism) as an output (and assume the mother is in adequate health, and development proceeds normally.) Then the number of different possible phenomes is limited to the number of different genomes (it could be fewer, if there are non-significant regions of the genome, because then more than one genomes could produce the same phenome. That is, the function G->P is not necessarily injective.)
While this doesn't directly describe the complexity of a phenome, the argument is that the complexity of a thing is no greater than the means of defining it, and that any additional complexity in the resulting thing must contain redundancies (perhaps very hidden) that can be eliminated. A simple case is a program to print hello 1000 times. The program is short, and though the output is long, it contains redundancies. What about from chaotic systems and fractals, or 'normal' numbers like pi, where great complexity arises from simple rules? The argument is that this is merely apparent complexity, and in reality contains great redundancy. Big output changes from small input changes doesn't disprove this; consider changing 1000 to 2000 in the above. While a particular sequence of pi digits, or a particular fractal frame, might seem complex, there is also the input to consider of the specification of that part (eg which digits) also takes information.
---
Here's the theoretical flaw: considering a genome as a program, what if the entire program isn't really listed in the genome, but it calls library functions? Obviously, it becomes much shorter, but we're not measuring the library code, so it's cheating. Or, what if the program is written in a highlevel language rather than a lowlevel one (like assembly) - this is equivalent, if you consider the syntax of the language as causing in function calls. Clearly, we still have the same mapping of program->results, and the number of different results is still limited, but those results are much more complex than the program; they programs don't represent the complexity of the output.
How does this apply to the development of a phenome from a genome? Does anything add information, like standard libraries? One might say that the mother is like a standard library - but little information seems to be input in this way (consider development of a chicken egg); and fundamentally, the mother is also a phenome that can be specified by the very genome in question: it's self-hosting.
Does protein folding add information? It is very complex, but is that just how it operates (the way that the implementation runs), or does it also add information to the output? Remarks on this seem to say only that it's complex and unknown and therefore hard to simulate. I'm talking about whether the complexity of action adds information to the output. If so, how much complexity? Is it significant, comparable to a standard library, or is it more like a trivial macro?
I don't know how much information is added to the phenome by protein folding; this is a question for the biologists. I think addressing it squaring in these terms would defuse much of the emotion in the discussion. But I'll guess:
If we assume protein folding is dictated by quite a long sequence (ie. it's not a context of one, like G->down, U->up, A->left, C->right, but a function of say 100s of bases -- and of course the fold direction is not always 90 degrees), then there is scope for an (almost) arbitrarily complex function, from sequence->fold. The complexity is limited by the input (number of bases involved) and output (the actual fold).
If we then assume that the shape of the protein is the crucial thing for its interaction with raw materials and other proteins (eg. as an enzyme), then complexity of protein folding does directly translate into complexity of results - even at this, the finest-grain level of operation.
Although protein folding potentially adds complexity, I find it hard to imagine that it would add information comparable to a standard library, such as, say 50 bases specifying an eye or a liver (which a standard library might do, like Python's SimpleHttpServer). That would be miraculous, if the laws of physics were so favourable to the particular needs of organisms (like a programming language that is customized to a particular application, as modern libraries contain code for TCP/IP and HTTP.) I find it easy to believe that it's more like the variation in syntax between (say) lisp, java and assembly.
So, I don't think protein folding adds much complexity to the result; it's more like a general purpose programming language than a set of specialized library functions (I think this question is the crucial issue in the debate.)
---
To conclude, I think the complexity of the genome does estimate the complexity of the phenome: I agree with Kurzeil that the brain is (roughly) as complex as the sections of the genome necessary for its development.
This is dead on.
The reason that library functions enable great code compression at higher levels is that they are designed specifically to enable code compression for the expected high level uses. Library designers pick out a small subset of all possible programs, and write their library code so that those programs can be expressed efficiently.
Unless protein folding has, by sheer chance, ended up working just right to make wiring up an intelligent brain especially easy (and I'm not talking about the physical wiring, but the logical wiring), then it's silly to expect that it adds much information.
On the other hand, the complexity of protein folding is vitally important for efficient evolution of any structure, and this is something that we need to take to heart: even if the complexity doesn't add much information, it allows small differences in the genotype to create massive differences in the phenotype. This shuffles regions of the fitness landscape around, so that in certain areas evolution is not so much climbing a hill as it is bouncing around atop a frothy unpredictable fractal. It's a fantastically clever way to avoid getting stuck in local maxima while still retaining a lot of the advantages of local search, as long as your fitness landscape has enough high points on it and the shuffling is not too severe.
Also if you think about protein folding like about calling library functions don't expect sane interface and clear separation of abstraction layers there or in any other place. It rarely happens with intelligent designers. Evolution used every dirty hack in every place it could. Everything is so heavily interlocked that I think we will be able simulate living organism right after programmers will become obsolete.