0203. Introduction to Artificial Intelligence

Learning: Evolutionary

 

1. Genetic algorithm

Genetic algorithm (GA) gets its inspiration from the evolution process, where adaptation (learning on a species level) happens as the result of natural selection of genes.

In a sense, the evolution process can be seen as a search process for an optimal solution of a given problem by testing and evaluating. The difficulty is that the search space can be very complicated. One does not know where to look for the solution and where to start or stop.

Roughly speaking, genetic algorithm works like this: it keeps a population of individuals, each of which corresponds to a different solution to the same problem, and is represented by a sequence of "genes". For each generation, each individual is evaluated according to a fitness function, indicating how good it is as a solution to the problem. When a next generation is produced, individuals with higher score have more chance to become a parent. Each pair of parents produces their children by crossover their gene sequence, so that the children inherit some, but not all, of each parent. Also, random mutations happen in some gene during reproduction, so that each new generation consists of some novel solutions. Due to resource restriction, the size of the population has an upper bound, so that individuals with low fitness score will be removed. In the long run, the fitness scores usually get higher and higher, because good genes have better chance to survive from generation to generation. This process continues until a termination condition is reached.

A typical representation of genetic algorithm is to code the genes as binary strings, crossover as partial replacement of a pair of strings, and mutation as value change in the string.

An online demo of GA is here. Two examples of GA application are discussed in the Subsection 12.1.1 of the textbook.

When searching a large state-space, a genetic algorithm may offer significant benefits over more typical search or optimization techniques (such as heuristic search), partly because it explores multiple paths in parallel (with different speed), and allows "jumps" to happen in the search process.

Problems of GA:

Further readings at AAAI and Wikipedia.

 

2. Genetic programming

Genetic Programming is a special case of genetic algorithm, where each individual is a program, represented as a tree. Typically, the program is in a functional language (such as Lisp), because such a program can be naturally represented as a tree.

Genetic programming uses four steps to solve problems:

  1. Generate an initial population of random compositions of the functions and terminals of the problem.
  2. Execute each program in the population and assign it a fitness value according to how well it solves the problem.
  3. Create a new population of computer programs by copy, crossover, and mutation, according to fitness values of the programs.
  4. The best computer program that appeared in any generation, the best-so-far solution, is designated as the result.
An on-line tutorial. Also see Subsection 12.2.2 of the textbook.

Further readings: Wikipedia, links.

 

3. Artificial life

A related research domain is Artificial Life (AL or Alife), a new discipline that studies natural life by attempting to recreate biological phenomena from scratch within computers and other artificial media.

It is often described as attempting to understand high-level behavior from low-level rules; for example, how the simple rules of Darwinian evolution lead to high-level structure, or the way in which the simple interactions between ants and their environment lead to complex trail-following behavior. Understanding this relationship in particular systems promises to provide novel solutions to complex real-world problems, such as disease prevention, stock-market prediction, and data-mining on the Internet.

Further reading: website.

Intelligence and evolution are closely related, though not exactly the same. Typically, the former is observed in an individual, while the latter in a species. Both are forms of adaptation, though following different procedures and principles.

 

4. Soft computing

Under the name "soft computing" is a loose union of fuzzy logic, probabilistic reasoning, neural network, and evolutionary computing. Though these approaches have very different technical details, they share the common motivation as an reaction against the traditional "symbolic approach" towards AI, represented by heuristic search and reasoning in first-order predicate logic.

"The guiding principle of soft computing is: Exploit the tolerance for imprecision, uncertainty and partial truth to achieve tractability, robustness and low solution cost." (Zadeh)

Common themes:

Combinations of these approaches are also being explored.

Further reading: website.