- 1 What is Evolutionary Computation?
- 2 History of Evolutionary Computation:
- 3 Role of AI in Evolutionary Computation?
- 4 Algorithms of Evolutionary Computation:
- 5 Conclusion:
What is Evolutionary Computation?
Evolutionary Computation refers to a branch of Computer Science that is draws inspiration from natures evolutionary process. Evolution, the process of change, whereby living creatures have survived and adapted to their ever-changing surroundings. Evolutionary Computation is a name given to the group of algorithms and problem-solving techniques inspired by the evolutionary process, to provide solutions for highly complex problems which cannot be solved in polynomial time.
Similar to the evolutionary process, where undesirable traits are filtered out in future generation through the means of natural selection, in order to produce the best solution, i.e. the fittest generation, an Evolutionary algorithm generates an initial set of solutions which are iteratively updated by introducing small random changes while removing less desired solutions to produce newer more apt generations. As in nature a population of organisms gradually evolves to better fit in, the population of solutions also ‘evolves’.
This process of Evolutionary Computing can be summarized as to having four integral steps: initialization, selection, genetic operators, and termination. This whole process can be analogous to the process natural selection, survival of the fittest. Similarly, in for computations the best solutions are further ‘evolved’ to provide the best possible solution.
History of Evolutionary Computation:
It was during the mid-1950s that the concept of automated problem solving using ‘evolution’ in computations was coined, in the articles by Friedberg (1958) and Friedberg et al (1959). Which is attributed as some of the earliest work in machine learning, along with the use of an evolutionary algorithm.
Some other note worthy authors during this time were, Bremermann who presented some of the first attempts to apply simulated evolution to numerical optimization problems involving both linear and convex optimization as well as the solution of nonlinear simultaneous equations (Bremermann 1962) and Box who developed his evolutionary operation (EVOP) ideas which involved an evolutionary technique for the design and analysis of (industrial) experiments (Box 1957, Box and Draper 1969).
However, the bases of what today considered as the three main forms of Evolutionary Computation laid in the mid-1960s in three different places. The roots of evolutionary programming (EP) laid by Lawrence Fogel in San Diego, California (Fogel et al 1966), while John Henry Holland at the University of Michigan in Ann Arbor called his method a genetic algorithm. And across the Atlantic Ocean, in Germany, Berlin Ingo Rechenberg and Hans-Paul Schwefel introduced evolution strategies.
Till the early nineties these areas continued development separately, until they unified as different ‘flavors’ of one technology, called evolutionary computing.
Role of AI in Evolutionary Computation?
Most of what we regard as Artificial Intelligence (AI) is what we know and understand, i.e. a set path through the forest to the next town, in contrast to what we hope to achieve by Evolutionary Computation, i.e. finding new routes to the next town that do not necessarily venture through the forest. In simpler terms, the present state of Artificial Intelligence is limited to what our knowledge deems right or wrong, e.g. 1 + 1 = 2.
With the rise in Deep learning, we have witnessed some of the vast potential of the automated behavior of modern AI, ranging from Big Data Computations, self-driving cars, robotics, automatic game playing etc.
Difference that separates Evolutionary Computation from Deep Learning:
The biggest difference that separates Evolutionary Computation from Deep Learning is that evolutionary computation focused on creating solutions that do not yet exist in a sense it thinks and develops a new solution to solve the give problem while Deep Learning supervised training on an existing data set, coming up with solutions we know to the best. Thus, Evolutionary Computation can considered to be the next step in the ‘evolution’ of Artificial Intelligence. Where our next step would be to move towards computers internet and AI that can deviate from what known and understood and venture into uncharted domains.
Examples of AI in Evolutionary Computation
Some examples of AI in Evolutionary Computation include:
- OpenAI using Evolution Strategies as a Scalable
Alternative to Reinforcement Learning, which can rival the performance of
standard Reinforcement Learning techniques on modern RL benchmarks (e.g.
Atari), while overcoming many of RL’s inconveniences.
- The Uber.ai group also demonstrated how neural
networks optimized through evolutionary algorithms, are an effective method to
train deep neural networks for reinforcement learning (RL) problems.
- Google Brain display of how evolutionary
architecture search can improve the image classification benchmark tasks.
- Evolutionary Algorithms for Protein Structure
These examples are first steps towards the research and development of more efficient and capable Artificial Intelligence systems. AI based and driven by Evolutionary Computation might just be stepping stone towards every sci-fi enthusiast computer scientist dream of sentient or at the very least thinking computers.
Algorithms of Evolutionary Computation:
Evolutionary Computation or Computing the name given to a group algorithm. These algorithms were classified as such by the distinct ability to provide ever evolving solutions inspired by biological evolution. However, this distinction in some cases can merely seen as an abstract after thought to the algorithm.
A list of some Evolutionary Algorithms:
- Genetic Algorithm
- Genetic Programming
- Differential Evolution
- Evolution Strategy
- Swarm Intelligence
- Multi modal Optimization
As with any exploration into any previously uncharted domain, this trip into Evolutionary Computation is but a simple ‘Hello’ as to what lies beneath its numerous complex layers. We still have a long way to go into understanding the ins and outs of Evolutionary Computation.
You may also know Approach of Artificial Intelligence and Medical Diagnosis