16.01.2013 Views

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 2: <strong>Genetic</strong> <strong>Algorithms</strong> in Problem Solving<br />

this simplified potential−energy function for the amino acid sequence of Crambin.<br />

In Schulze−Kremer's GA, crossover was either two−point (i.e., performed at two points along the<br />

chromosome rather than at one point) or uniform (i.e., rather than taking contiguous segments from each<br />

parent <strong>to</strong> form the offspring, each "gene" is chosen from one or the other parent, with a 50% probability for<br />

each parent). Here a "gene" consisted of a group of 10 <strong>to</strong>rsion angles; crossover points were chosen only at<br />

amino acid boundaries. Two mutation opera<strong>to</strong>rs designed <strong>to</strong> work on real numbers rather than on bits were<br />

used: the first replaced a randomly chosen <strong>to</strong>rsion angle with a new value randomly chosen from the 10 most<br />

frequently occurring angle values for that particular bond, and the second incremented or decremented a<br />

randomly chosen <strong>to</strong>rsion angle by a small amount.<br />

The GA started on a randomly generated initial population of ten structures and ran for 1000 generations. At<br />

each generation the fitness was calculated (here, high fitness means low potential energy), the population was<br />

sorted by fitness, and a number of the highest−fitness individuals were selected <strong>to</strong> be parents for the next<br />

generation (this is, again, a form of rank selection). Offspring were created via crossover and mutation. A<br />

scheme was used in which the probabilities of the different mutation and crossover opera<strong>to</strong>rs increased or<br />

decreased over the course of the run. In designing this scheme, Schulze−Kremer relied on his intuitions about<br />

which opera<strong>to</strong>rs were likely <strong>to</strong> be most useful at which stages of the run.<br />

The GA's search produced a number of structures with quite low potential energy—in fact, much lower than<br />

that of the actual structure for Crambin! Unfortunately, however, none of the generated individuals was<br />

structurally similar <strong>to</strong> Crambin. The snag was that it was <strong>to</strong>o easy for the GA <strong>to</strong> find low−energy structures<br />

under the simplified potential energy function; that is, the fitness function was not sufficiently constrained <strong>to</strong><br />

force the GA <strong>to</strong> find the actual target structure. The fact that Schulze−Kremer's initial experiments were not<br />

very successful demonstrates how important it is <strong>to</strong> get the fitness function right—here, by getting the<br />

potential−energy model right (a difficult biophysical problem), or at least getting a good enough<br />

approximation <strong>to</strong> lead the GA in the right direction.<br />

Schulze−Kremer's experiments are a first step in the process of "getting it right." I predict that fairly soon GAs<br />

and other machine learning methods will help biologists make real breakthroughs in protein folding and in<br />

other areas of molecular biology. I'll even venture <strong>to</strong> predict that this type of application will be much more<br />

profitable (both scientifically and financially) than using GAs <strong>to</strong> predict financial markets.<br />

2.3 EVOLVING NEURAL NETWORKS<br />

Neural networks are biologically motivated approaches <strong>to</strong> machine learning, inspired by ideas from<br />

neuroscience. Recently some efforts have been made <strong>to</strong> use genetic algorithms <strong>to</strong> evolve aspects of neural<br />

networks.<br />

In its simplest "feedforward" form (figure 2.16), a neural network is a collection of connected activatable units<br />

("neurons") in which the connections are weighted, usually with real−valued weights. The network is<br />

presented with an activation pattern on its input units, such a set of numbers representing features of an image<br />

<strong>to</strong> be classified (e.g., the pixels in an image of a handwritten letter of the alphabet). Activation spreads in a<br />

forward direction from the input units through one or more layers of middle ("hidden") units <strong>to</strong> the output<br />

units over the weighted connections. Typically, the activation coming in<strong>to</strong> a unit from other units is multiplied<br />

by the weights on the links over which it spreads, and then is added <strong>to</strong>gether with other incoming activation.<br />

The result is typically thresholded (i.e., the unit "turns on" if the resulting activation is above that unit's<br />

threshold). This process is meant <strong>to</strong> roughly mimic the way activation spreads through networks of neurons in<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!