Hacker News new | past | comments | ask | show | jobs | submit login
Ray Kurzweil Responds to "Ray Kurzweil does not understand the brain" (kurzweilai.net)
125 points by ankeshk on Aug 20, 2010 | hide | past | favorite | 160 comments



I wish bloggers could have these kinds of debates without all of the butthurt jabs like "... which so-and-so clearly does not understand..." or "I'm surprised anyone actually pays attention to that kook."

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.


Kurzweil, I think, comes off better in that respect, using phrases like "some of my critics claim that I underestimate the complexity of the problem" which neatly remove the personal jabs while still responding directly to the argument. Myers's style is to get personal and it does occasionally get a bit tired, but usually he gets away with it because he's right. Probably they'd both get on a bit better if they actually met and had a reasonable discussion, rather than relying on reports of what the other said.


Myers can usually get away with it because he's right, but also because he's often arguing with nutjobs who nobody feels sympathy for. When he's telling off some guy who thinks Genesis 1 is scientifically useful, there's a sense that the other guy deserves to be taken down a few notches, and we're willing to tolerate his abrasive personality in the process.

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.


I don't think Myers is always right. Surely, it always seems that his assessments are correct, until you look at the right angle.


Not always, but usually. In part this is because he's usually writing about subjects (like evolution) that he knows a lot more about than his interlocutors (like creationists).

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.


I agree with you. I can only add that PZ Myers, unfortunately, for Science and scientific blogging has become a buffoon, and some of his posts are just as detrimental to the scientific community than most of his opposition.

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.


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?

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.


It's funny how much we demonize prejudice (racism) while simultaneously relying on it for survival (don't stick your hand in the fire). Whoever designed this whole "evolution" nonsense clearly wasn't thinking about social communication at the outset... ;-)


I am not sure you can classify "prejudice" as biologically useful in such a general sense as to include both racism and not sticking your hand in the fire


I disagree! Prejudice is simply, "Any preconceived opinion or feeling, whether positive or negative." If we are brought up by our parents to believe that Jewish people have horns, we are prejudiced. If we stick our hand in the fire, and thus form the "cognitive shortcut" (to use kiba's extremely apt term) that fire is not something to put our extremities close to, we are prejudiced.

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.


I am not sure you used a full definition of prejudice there. For example wikipedia defines it as : A prejudice is a prejudgement: i.e. a preconceived belief, opinion, or judgment made without ascertaining the facts of a case and wordnet as _ preconception (a partiality that prevents objective consideration of an issue or situation)*

How is your definition of "prejudice" different from something simpler like "knowledge"?


Racism (well, tribalism) was the ancient's way of remembering to keep safe from potentially violent rival bands.


> "... which so-and-so clearly does not understand..." or "I'm surprised anyone actually pays attention to that kook."

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.


> I understand that we're all passionately devoted to truth and understanding

For most part, people are only passionately devoted to their ideas/ideals (which they perceive as truth often enough)


What I got from the previous article (admittedly as my own synthesis, not afaict from the original text as such) was, sure, the program to build a brain is only X Megabytes, but the computer that runs that program is the human body growing in the physical universe. If you want to be able to run that program, you're going to need to emulate at least the relevant instruction subset of the physical universe. It's hard to know how large is the relevant subset or if computers will ever plausibly get there. If the subset turns out to be quite large, you'd need a computer that could model its own subatomic physics.


I want to stress that we have the math to do that...and on regular chipsets, its just rather slow..which is inherent to the key to kurzwiel's points, that we're building faster and faster computers, and that brains (and likely the universe) are not the simplest possible expressions of themselves.


That is what I got from the previous article as well. However, from reading Kurzweil's article get that this point is irrelevant, because he never suggested to reverse engineer the brain in that way. He used the genome argument as an estimate on how complex the brain is, basically viewing the genome as a data compression of the brain.

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).


> 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

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/


Even if the "decompression algorithm" is somehow optimized for making intelligent brains easy to encode, the "source code" for it is still present in the other half of the genome, so this doesn't affect the argument much.


It's not in the other half of the genome. All cells in an organism share the same DNA, but different cells develop in a very differentiated manner depending on the cells around them (e.g. should it be a neuron or a connecting tissue?). The "decompression algorithm" is in the laws of physics, biochemistry, and the way life works in general. Since we don't understand these well enough, we can't make reasonable information-theoretic claims about the "decompressed" genome.


It all starts from a single zygote. Every material in that zygote is either an essential nutrient, a peptide made according to its DNA (including mitochondrial DNA), or catalyzed from essential nutrients by those peptides.

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.


Amusingly i think that Kurzweil demonstrates his ignorance all the more clearly in this post.

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.


You're mis-characterizing his post:

"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?


That exact line illustrates that he does not understand Meyers' objections. He thinks Meyers meant that we need to also model all of the information that the brain gains as it interacts with its environment. That is not what Meyers meant.

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.


That is not what Meyers meant.

[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!!!


You owe me a new keyboard.


Lets separate "modeling the brain" into two classes of work: modeling the interaction of complex proteins in large systems, and modeling the physiochemical structure of the brain. The first is very difficult, and we have been working on it for a some time already. Meyers' argument is that this is an astoundingly intensive job that will take an prohibitive amount of time. The later relies on both the former, and an understanding of how the most complex biological structure that we are aware of is constructed. Kurzweil suggests a (surprisingly low) bound on the complexity of this structure (which builds on complex proteins and should be seen as multiplicative of the former complexity).

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".


>Kurzweil suggests a (surprisingly low) bound on the complexity of this structure (which builds on complex proteins and should be seen as multiplicative of the former complexity).

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.


A (the?) key point of Kurzweil's work is to show that the exponential growth of technological leverage is independent of Moore's law. His prediction is that when Moore's law runs out (being tied to transistor density, it must), something else of the same shape will replace it. That is obviously yet to be proven, but there are some nice historical graphs at http://en.wikipedia.org/wiki/Accelerating_change.


Just for context, PZ Myers is a evolutionary developmental (“evo-devo”) biology researcher, which explains the thrust of his criticism. That kind of stuff (developmental processes in embryos, i.e. how the darn animal is built) is right up his alley.


we need to model everything that happens to the brain before it becomes a brain

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.


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

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?


I think there's an argument that DNA is more likely to lead to life (not intelligence) than an arbitrary coding scheme; that is, that with DNA it's easier to create life than you'd expect for a vanilla encoding scheme.

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.


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.

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.


You're absolutely right - looking at that quote (and looking through the original one that Myers responded to), he's overstated what we can conclude based on DNA length by a good amount (though Myers argument doesn't disprove the upper bound, by any means; it merely points out that Kurzweil's "proof" doesn't hold). The problematic phrase, which makes this argument pretty ambiguous, is "simulate the brain" - neither party has really pinned down what they mean by that, so it's hard to know what would qualify. In retrospect, I think I cut Kurzweil a little too much slack when deciding what he meant, esp. in light of his other writings on the topic...

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.


Protein folding.

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.


Yes, "fold proteins" is a member of a distinguished class of algorithms that DNA is exceptionally well suited to handle.

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...


From "counting the DNA", you would expect that the family of hundred-amino-acid-long peptides, which are encoded in strings of 300 bases, would have 4³⁰⁰ = 2⁶⁰⁰ possible three-dimensional conformations, or rather probability distributions over conformations, since many peptides have multiple stable conformations.

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?"


Chemistry is a "solved problem" granted we don't have a computer that can run the simulation for large organic molecules, but it has ZERO secrets. Now, DNA runs on the cellular machinery, but that is also running on the well known chemistry rules so adding up the instructions required to define a cell + DNA = something of a lower bound on the required complexity to create a brain. The idea is if you know how complex a solution to the problem is, then you can use that complexity even if you are using a different approach to the problem.

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.


Is that even required? I mean, to simulate a brain, would you really need to go all the way down to simulating every cell or could an averaging of the interactions be enough?

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.


We don't know, which I think is Meyers' point. That is, until we understand all of these interactions, we don't know what the brain actually is.


Based on this post (and more so what I've been able to find of the original discussion) I don't think he's overlooking this at all; if anything it's so obvious that he's not calling it out literally, like saying "I'm building an automobile"; you don't expect to have to say it's going to have wheels...


That's because we already know how a car works. We know that wheels and an engine are necessary, but a cupholder is not. Meyers' point, as I understand it, is our understanding of the brain is not yet sophisticated to know what we can exclude from simulation.


When Wilbur and Orville Wright went to go build a bird, they did not endow it with a beak and talons.


A lot of this discussion seems to be confusing reverse engineering with cloning. To reverse engineer something, you look at it as a black box and determine all of the capabilities and characteristics that you are interested in, and then you implement them in your own way.

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.


The human brain does not need to store all the information in the environment in the genome to develop fully, so why should an AI need to? I expect an AI would include that data in the development of it's brain just as a human does, by being put in an environment to learn from and absorb that data. In other words, design and development are different kinds of data here, and a human's and an AI's initial brain design can be stored in ~50MB of data.


You sidestep the whole embryology problem like that. The 50 megs of data we're talking about encodes the basic building blocks, the scaffolding, and some of the process, but not the end result. DNA encodes proteins, not brains.


You sidestep the whole hardware problem like that. Computer code encodes software programs, not computers.


Correct, all this is premised on the fact that we think that we can simulate a brain by using nothing but software.

If that's not the case then we will most likely have to revise our view of biology drastically.


I thought that comment was still a little inaccurate — "the environment" in biology is not only what the brain actually processes and learns, it includes the chemical environment as well. The genome does not explicitly describe how the cells should develop, and this is different from how the brain changes in response to neural input.


Presumably when we're talking about this task the first simulation would take place on a very large cluster, with a lot of human data as input.

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 think the debate is this: The CS people see the biologists as overcomplicating the problem while the biologists see the CS people as oversimplifying.

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.]


The big thing I think Kurzweil is absolutely right on is that if Moore's law continues (even in its current crippled parallel-only form) until 2045, we can't help but have the ability to simulate a human brain. Am I convinced that will happen? No. But no one has made any money betting against Moore's law since decades before I was born. It's a fact of my life until proven otherwise.


Here: "the brain prior to learning and adaptation". Unfortunately there's no such thing.


Yeah, apologies, i've edited my post to clarify


Here's something to think about. What does the bitwise encoding of the "brain related" part of the genome actually mean then? Say it's 50 megabytes. Does this mean nothing? Why is it 50 and not 500 nor 5? Surely there's meaning in the amount of bits necessary to encode the genomic information to create a brain. Kurzweil is simply throwing this figure out as food for thought, that from an information perspective this is the kernel of knowledge necessary (with sufficient simulation of the environment) to "grow" a brain.


"this is the kernel of knowledge necessary (with sufficient simulation of the environment) to "grow" a brain."

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).


Well, there's no guarantee that doing that will generate brains. It might turn out that the vast majority of such simulated universes would fail to contain intelligence.

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.


> I'm not aware

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).


At our universe's speeds, but how fast can you simulate it?


Think of it as the input to a fractal generator that will expand that input seed in to a physical structure many orders of magnitudes larger than the seed.


For everybody else having trouble with the information theory aspect of this argument: Pop quiz, how many bits of information are contained in the Mandelbrot set? When you figure out the answer to that question, and really internalize the answer, you'll be in a much better position to understand Kurzweil's argument here.

(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?)


That was sort of the point, given that the mandelbrot set contains very little real information and that you can express the whole set in one line of math you can take a stab at thinking about the complexity of the structures that you can generate when your input is substantially larger than that.

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.


By "everybody else", I mean "everybody else not jacquesm", sorry. I am frustrated that you seemed to be the only other commenter understanding it. I was trying to amplify, not criticize. A lot of people are making arguments (without realizing it) that equally well prove we can never compute anything about the Mandelbrot set because look at the amazing staggering complexity it has, except that A: obviously we have and B: the information content is actually quite small.


I think that's rooted in the number of disciplines that cross in bio-informatics. Code, reverse-engineering, information theory, math, genetics, chemistry, physics and so on.

It's almost by definition interdisciplinary and I doubt there is any one person that really has the whole view.


I mean, Kurzweil is making the same sort of statement that Stephen Wolfram made, claiming that the entire universe is probably one or two lines in mathematica.

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.


Kurzweil has had noticeably more success simulating intelligent processes in software than Wolfram has had simulating the universe.

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.


People keep saying this about any project to build a synthetic brain, and it has a huge level of merit...but its putting the buggy before the horse. You have to be able to build a brain before differences in its experience start to matter, and you have to be able to build the software before the hardware matters. There'd be no point in building experience sets before you built the brain, much as there's little point discussing their importance on a brain as a reason for being unable to build one.

So what if all we can put together is a feral child? It still implies we've built a brain.


I don't agree.

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.


A big part of the problem here is that people tend to think of us humans with our intelligence as something with purpose.

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.


Also, you're born with a lot of neurons that are then pruned off during childhood. Newborns have more neurons than adults. Adults have more glial cells.


"(with sufficient simulation of the environment)"

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.


>You can't go from genome => organism without a WHOOOOOLE lot of Ceteris Paribus to fill in the gaps.

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.


Recreating the source code by itself does not, in this case, constitute a "model". In order to actually run that binary, you also need to create a virtual computer for it to inhabit.


The genome is the source code for that, too.


True, but that fact only becomes useful after you already have it running on a virtual machine. Chicken-and-egg problem.


The chicken-and-egg problem can take a certain amount of effort to solve, but it's not a major engineering obstacle.

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.


But the claim wasn't that having the genome is directly useful, rather that it's a decent approximation of the upper bound on the irreducible complexity.


You could probably recode the Linux distribution in 10% of its current size just from knowing where you were going and having an arbitrary amount of time to finish the job, or 1% or less if you didn't have to interoperate with any hardware or software already in the wild. It's full of Greenspunning and other forms of code duplication.


> 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.

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".


Decider: Behaviours and abilities of feral children. Winner: Myers.

Next? ;)


Well how much information is encoded in the brain making process? Isn't most of it the same that is used for manufacturing all other living tissue?

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.


While I don't have the knowledge to dismiss Kurzweil's theories outright (I only have a gut feeling), I must say that this response did not achieve a refutation of the statement that "Ray Kurzweil does not understand the brain".

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.


It sounds like it's time once again to link to Bruce Sterling's entertaining, comprehensive review of the Singularity movement:

http://foratv.vo.llnwd.net/o33/rss/Long_Now_Podcasts/podcast...


It basically comes down to this: Kurzweil's paralyzing fear of death demands that the human brain be simulated soon, before he dies, so that his consciousness can be preserved in silicon.

Add in Moore's Law and an underestimate of the complexity of the brain, and stir.


I agree — we can't simulate something we don't understand, and it's nearly impossible to estimate how long it will take to understand anything. We don't even know what consciousness is, so how can we even begin to simulate it?


Really? Generally I mostly simulate things whose macroscopic behaviour I don't understand, and I simulate them so that I can understand them better.


It's true that we do that, but we at least understand the framework. Simulated models are the basis of a lot of neuro research, but we need to do so much more biology before we can begin to even try to simulate the brain in any useful way on a macro level.


I'm a singularian, but much more long-term that Kurzweil. Like 500 years, instead of 20.

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.


The borg is one example of a half half. Star trek truly invented the future ;p


"Something amazing will happen and it will resemble the human brain".

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.


There is strong evidence that the neocortex works on a common algorithm; vision, hearing, touch, language, behavior, and most everything else the neocortex does are manifestations of a single algorithm applied to different modalities of sensory input.

http://en.wikipedia.org/wiki/Hierarchical_temporal_memory http://onintelligence.org/ http://www.numenta.com/Numenta_HTM_Concepts.pdf


Where does that quote come from? Anyway, note the future tense! You then ask for the algorithms that perform those tasks. Well, I think the point is that none of this exists yet but in the future we have a good chance at building it.

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.


To make the argument more clear:

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".


I at least agree with him that you don't need a trillion lines of code. A couple of lisp macros should do it.


Kurzweil's retort falls apart in several places:

"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.


> [...] 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 [...]

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.


Kurzweil snipes "It is an argument from information theory, which Myers obviously does not understand." With some delight, I would like to explain how Kurzweil incorrectly uses information theory and arrives at a false conclusion.

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".


upper bounds on the program size on machine tell you nothing about the the upper bounds on the other machine.

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.


>Not true! Worst case scenario, one machine can emulate the other machine, running that input.

"If you wish to create a brain in 50 MB of code, you must first implement the universe"?


You already have a universe to run your machine in.

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.


>You already have a universe to run your machine in.

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.


That was a flippant Sagan reference.

http://www.youtube.com/watch?v=7s664NsLeFM


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.

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.


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.

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?


If we're talking about Turing machines, all of the machines are of equal computational power, and are also able to emulate each other.

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.


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.

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.)


I'm sick and tired of the downvote barrage lately. That aside, let me try a completely different tack, maybe that sheds some light on the problem.

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.


Right. And this gets at what I see as Kurzweil's flaw. The emulator you need for his argument to work is the physics engine, a specification of the cell, and the necessary imitation of the surrounding emvironment. This is far, far more information than GENOME. And we know that some of this complexity matters.

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.


You are apparently talking about "Turing machines" by which you mean finite automata connected to a 2-d tape or things very close to that. That class of machines is a tiny subset of turing complete machines and that class of machines you refer to is irrelevant to the arguments to which you are responding.

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.)


> You are apparently talking about "Turing machines" by which you mean finite automata connected to a 2-d tape or things very close to that. That class of machines is a tiny subset of turing complete machines and that class of machines you refer to is irrelevant to the arguments to which you are responding.

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.


If your emulator requires substantially different space to encode the raw description of the program than the original, then the emulator sucks.

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).


I suggest that you come back and re-read the thread tomorrow. Hopefully you'll come to a different opinion.

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.


On standard machine architectures

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 know, your response is basically content free insults. We know that you think I have a deep misunderstanding, but you haven't specified what said misunderstanding is. You say I'm saying bogus things, but you haven't said what was bogus. And you really haven't tried to explain your reasoning.

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.


> sure, our fancy big super computer from IBM can emulate the zygote (let's say) but.. what's that gonna take?

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.


Sigh...where's Eliezer when we need him? :)

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.


I endorse this reply.

EDIT: I endorse all of ewjordan's other replies too. There's no need for me here.


I know a fact about "zygote machines": they are the only machines we know of that have ever successfully constructed intelligence algorithms.


A few centuries ago, europeans had only ever seen white swans.


even with the obligatory "so far" tacked on the end, I think that's pretty significant


We can't know if it's significant at all based only on the fact that we haven't seen it yet. It seemed pretty significant that Europeans had only seen white swans, to the point where the concept of 'black swans' was a jest, like "when pigs fly!". Then they got to Australia and found black swans. The black swans had been there before English was even a language.

The simple fact of not having seen something is totally baseless as evidence to whether or not that something is possible.


Absence of evidence is evidence of absence. No-one has ever observed electric blue swans. How likely do you think it is that they exist? If this seems like an unfair question, that's kind of my point.


ewjordan: That's beautiful. Let me sort it out slightly and offer a counter argument or at least response to part.

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.


Rather than quibble over what "intelligence algorithms" mean I am going to pretend you said "human brains or things very similar to such".

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.


> Taking that as our (relatively wide) target, I don't think protein folding and all that fun stuff adds much information.

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.


It just occurred to me that Ray Kurzweil's claim entails that we can solve protein folding.


We can solve protein folding, we're doing that on a daily basis. We just can't do it fast enough (yet) because we're using (somewhat constrained) brute force for a search space with a very large number of dimensions. As a consequence of that the computations with the current algorithms are for practical reasons limited to relatively small proteins.

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?


This is one of the more intelligent posts I've seen on the topic so far. Thanks.

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.


I think one problem with the idea of the 'zygote machine' is that it leaves out the fact that zygote machines only make brains in the environment of the womb, which is an environment controlled by the whole system of another human being. Can we concretely say that a zygote machine has enough information about making a human body (and brain) that it can reliably do it without hormonal signals from the brain of the mother?

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 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.

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.

http://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis


"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."

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.


> "But the complexity of the zygote derives mostly from that 50MB of genome data..."

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?


True, but my guess is that the extra-genomic data, the preexisting cell, is a trivial amount, since it's always only interpreting the genome and is itself built on an interpretation of a genome. Selection pressure has no reason to store a huge among of complexity outside of the genome after all. The bare minimum will do. As to how exactly that compares to the known 50MB, I've no answer but I'd guess it's an almost flat-rate amongst all species built by evolution.


But the complexity of the zygote derives mostly from that 50MB of genome data,

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.


Selection pressure creates the complexity. Aside from what is selected for (the ~50MB of genome), where does the extra complexity come from? Why is it there? There's no reason why selection pressure would concentrate any complexity in the extra-genomic data rather than the genome itself. In other words, most of the complexity of the initiator mechanisms is redundant in the genome itself, aside from that crucial bit to translate from genome to vehicle which is simply carried over trivially from one generation to the next. The rest is probably the substrate data, I.E. behavior of molecules in general.


As an example: What "state" that makes sense of the genome is encoded in, say, mitochondria?

What "state" that makes sense of the human genome is stored in, say, symbiotic bacteria that we host?

Does that make sense to you?


It is a reasonable assumption that the other genomes involved in human development are selected for as well, but don't drastically multiply the overall complexity of humans and especially not for the brain's design. Thus the issue is still how complex extra-genomic data is such as the preexisting cells which actuate DNA, which is what I addressed.


I believe that when it comes to things in nature that look impossibly complex, that they are really constructed using a series of simple patterns. Understanding the strategies nature employs to create a thinking human brain will yield much more usable results than understanding the bio-mechanical processes which transform genes into a fully functioning brain.


I've made an "all in" bet that AGI is going to be attained by the "human memome project" long before Kurzweil's biomimetic boondoggle achieves anything -- the biomimetic boondoggle is appealing to many, however, because the whole society is accustomed to flushing hundreds of billions a year down the drain on biomedical technology without any accountability.


"human memome project" - do you mean top down symbolic AI projects like CYC?


CYC is an important development in that direction, but a modern memomic approach doesn't privilege top-down over bottom-up approaches.

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.


Did that 50MB figure derive from just the protein-coding part of the genome? I just tried out the sequence from http://hgdownload.cse.ucsc.edu/downloads.html#human. After converting it to binary, 2 bits per base pair, bzip2 compresses it down to about 650MB (from 715MB uncompressed). I'd like to know what assumptions give you an order of magnitude greater compression, and how probable they are. I suppose the biggest factor has got to be junk DNA, since species can vary so much in genome length -- but I get the impression there's a lot of uncertainty still about functional noncoding DNA.

(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.)


I have this kinda particular interpretation that "the best science is the one that makes fewer assumptions", or that, at least, is better equipped to access and deal with its own assumptions. In that vein, what bothers me about Kurzweil is that he seems to be just taking some assumptions and running with them.

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.


There may be only 1 bit of information describing the brain, it doesn't matter, the bits of information do not have a one to one correlation with logical gates or anything else for that matter. It is silly to compare genes with "lines of code", you also need a machine to parse, and eval those lines of code so you should also include the instructions for that machine as well.


Given the idea that consciousness is related to complex quantum interactions at the molecular level, and the fact that computing power hits hard limits with regard to physical complexity at nano-scale, it seems unlikely that we'll be modeling human brains well enough in 20 years to reproduce conscious human thought.


Given the idea that consciousness is related to complex quantum interactions at the molecular level

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.


Fair enough.

I guess I don't understand what non-conscious thought is supposed to be, exactly.


It would be great if there was an algorithm that would pick out the best 15 HN comments for me to read each morning, instead of relying on other people's votes. That algorithm would necessarily have to process human language at a high enough level to distinguish good from bad. But would it necessarily have to be self-aware, considering the absurdity of its existence in its off-hours? We don't know. Certainly there are programs today doing many tasks that once we would have thought required a self-aware entity; composing listenable music, translating badly between human languages, and part-of-speech tagging, to name a few.


That quantum-mumbo-jumbo brain thing was just that: an idea. I don't think Penrose has many serious followers with that one.


He may have actually lost some credibility there.



So to some up: "Yes, the brain is very complex, but you don't understand the power of exponential growth in information technology!" Surprising.


That should be "to sum up".


Exponential growth in IT is great, until you run into a problem that is exponentially harder than you originally estimated.


This whole argument seems to be about whether you need to include the design of the factory in the specifications for the chip.


I'm writing this to try to clarify my understanding. I think this is the essence of Kurzeil's argument on estimating complexity:

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.


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 specific library functions.

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.


Folding is easy in comparison with precisely simulating protein interactions that make cell work. I think we have only satellite view on that and are largely unaware of many emergent elusive but necessary phenomenons that occur in that network of interactions.

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.


I'd be more impressed if Ray Kurzweil's AI responded to it.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: