At Science earlier this year, we were told that “Researchers have created software that borrows concepts from Darwinian evolution, including ‘survival of the fittest,’ to build AI programs that improve generation after generation without human input.” Critics say it’s not that easy.
On April 1, 2016 Dr. Yampolskiy posted the following to his social media accounts: “Google just announced major layoffs of programmers. Future software development and updates will be done mostly via recursive self-improvement by evolving deep neural networks”. The joke got a number of “likes” but also, interestingly, a few requests from journalists for interviews on this “developing story”. To non-experts the joke was not obvious, but why? Why don’t we evolve software? A quick search produced no definitive answers, and so this paper was born.– Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
From early on in the history of computer science, programmers have tried to simply evolve software, taking their ultimate inspiration from Charles Darwin’s On the Origin of Species (1859). Yampolskiy asks why these simulations, called Evolutionary Algorithms (EA), are still “orders of magnitude less complex” than the natural world around us.
Generally, evolutionary computation works by automating optimization and problem-solving, on the assumption that enormous computer speed will make up for the lack of billions of years of evolution. Genetic Programming (GP) has become a large subfield of computation with 19 books by 2016 and it has generated high hopes, for example these quoted by Yampolskiy,
“We will (before long) be able to run genetic algorithms on computers that are sufficiently fast to recreate on a human timescale the same amount of cumulative optimization power that the relevant processes of natural selection instantiated throughout our evolutionary past … ” (Shulman, C, Bostrom, N. How hard is artificial intelligence? evolutionary arguments and selection effects. J Consciousness Stud. 2012;19:103–130) and
“We believe that in about fifty years’ time it will be possible to program computers by means of evolution. Not merely possible but indeed prevalent.” (Koza, JR. Human-competitive results produced by genetic programming. Genet Program Evol M. 2010;11:251–284).
So what has happened since then? Well, nothing much. Yampolskiy offers,
Although, on the surface, the results may seem impressive, deeper analysis shows complete absence of success in evolving nontrivial software from scratch and without human assistance…
One quickly realizes that most improvements in the field simply come from using more compute to search progressively larger parts of the solutions space, a result similar to the one expected for random search algorithm.– Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
He summarizes, “ On close examination, all “human-competitive” results turn out to be just optimizations, never fully autonomous programming leading to novel software being engineered.” But why not?
He considers a number of explanations, most of which he rejects. For example incompetent programmers and misunderstanding the theory of evolution can’t be the reason for failure after all this time and effort. Other explanations, such as inadequate fitness functions, Turing’s halting problem, and inappropriate solutions are issues for programmers too but they haven’t been a ceiling on progress.
Two, more promising, possibilities are
● Software design is not amenable to evolutionary methods—Space of software designs may be discreet with no continues path via incremental fitness to the desired solutions. This is possible, but this implies that original goals of GP are unattainable and misguided. In addition, because a clear mapping exists between solutions to problems and animals as solutions to environmental problems, this would also imply that current explanation for the origin of the species is incorrect.
● Darwinian algorithm is incomplete or wrong—Finally, we have to consider the possibility that the inspiration behind evolutionary computation, the Darwinian algorithm itself is wrong or at least partially incomplete. If that was true, computer simulations of such algorithm would fail to produce results comparable with observations we see in nature and a search for an alternative algorithm would need to take place. This would be an extraordinary claim and would require that we discard all the other possible explanations from this list.– Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
Yampolskiy then asks, could an immensely powerful computer succeed where all the others have failed? One way of approaching the question, he suggests, is by asking, what is the computational power of biological evolution? Some truly impressive figures result:
If all the DNA in the biosphere was being transcribed at these reported rates, taking an estimated transcription rate of 30 bases per second, then the potential computational power of the biosphere would be approximately 1015 yottaNOPS (yotta = 1024), about 1022 times more processing power than the Tianhe-2 supercomputer . . ., which has a processing power on the order of 105 teraFLOPS (tera = 1012)…
If we were to simulate 1025 neurons over a billion years of evolution (longer than the existence of nervous systems as we know them) in a year’s run time these figures would give us a range of 1031-1044 FLOPS.39– Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
These are not small numbers, even in the computing world. But even if these numbers were available, we need not assume that anything like human intelligence would necessarily result, via purely Darwinian means, if we ran only one simulation:
As Shulman and Bostrom39 put it, “However, reliable creation of human-level intelligence through evolution might require trials on many planets in parallel, with Earth being one of the lucky few to succeed.” Conceivably, “Evolution requires extraordinary luck to hit upon a design for human-level intelligence, so that only 1 in 101000 planets with life does so.”39– Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
So, to evolve a computer that can program itself without programmers, we must run a simulation of biological evolution taking place on huge numbers of planets in the hope of producing one which features sufficient intelligence to replace the programmer altogether. Yampolskiy concludes, “In fact, depending on some assumptions we make regarding multiverse, quantum aspects of biology, and probabilistic nature of Darwinian algorithm such compute may never be available.”
Although hill-climbing heuristic–based evolutionary computations are excellent at solving many optimization problems, they fail in the domains of noncontinuous fitness. This is also the reason we do not evolve complex alife or novel engineering designs.Yampolskiy RV. Why We Do Not Evolve Software? Analysis of Evolutionary Algorithms. Evolutionary Bioinformatics. January 2018. doi:10.1177/1176934318815906
So replicating Darwinian evolution is not a shortcut to human-like computer intelligence at all.
Its success might also depend on another factor: whether Darwinian theory is even the final account of evolution. The theory is undergoing considerable modification, as a recent article in New Scientist makes clear: “Evolution is evolving: 13 ways we must rethink the theory of evolution.”
Whether a different approach to evolution might succeed with less computing power than Darwinism requires is a story for another day. For now, evolutionary computing remains useful for solving specific, well-defined problems such as those posed by games like Sudoku. The rest is science fiction, so far as we know.
Can AI really evolve into superintelligence all by itself? We can’t just turn a big computer over to evolution and go away and hope for great things. Perpetual Innovation Machines tend to wind down because there is no universally good search. Computers are powerful because they have limitations.