250 likes | 354 Views
Machine Learning 1. Genetic Algorithms. Who’s This?. Charles Darwin (1809-1882). What’s This?. HMS Beagle The Voyage of the Beagle (1839) (1831-1836). Darwin’s Finches.
E N D
Machine Learning 1 Genetic Algorithms
HMS Beagle The Voyage of the Beagle(1839) (1831-1836)
“The most curious fact is the perfect gradation in the size of the beaks in the different species of Geospiza…. Seeing this gradation and diversity of structure in one small, intimately related group of birds, one might really fancy that from an original paucity of birds in this archipelago, one species had been taken and modified for different ends” Charles Darwinfrom The Voyage of the Beagle
The Tragic Tale of Green Beetles Differential Reproduction
Developed • John Holland, University of Michigan (~1975) • Widely Applied • Daniel Goldberg (1989) • Metaphor of natural selection applied to optimization problems The Genetic Algorithm
Minimize the Volume of the Truss • sum(X-Sectional Areaof Member X Length) • NP-Complete* *Overbay, S., Ganzerli, S., De Palma, P, Brown, A., Stackle, P. (2006). Trusses, NP- Completeness, and Genetic Algorithms. Proceedings of the 17th Analysis and Computation Specialty Conference. St. Louis, MO. Optimize?
User thinks of a word • Passes the word to the GA Keeper • GA guesses the word A Simpler Problem: Word Guess
Idea: Representation selects key items of object for computation • Chromosome • Representation of a candidate solution • Specs for an individual truss • A word • Gene • An element of a chromosome • Specs for a member • A letter • Population • Set of chromosomes • Specs for a set of trusses • Set of letter strings representing candidate solutions Elements of GA
Idea: Starting point for speciation • Randomly generate a set of chromosomes • Randomly generate specifications for trusses • Randomly generate letter strings of the given size Initialize the Population
Large Enough to Incorporate Genetic Diversity • Divisible by 2 • 64 seems to work How Large?
Idea: Members of the population have characteristics that better suit them for reproduction • Function over the population used to rank the population • Truss: The smaller the cross-sectional area, the higher the fitness • Word Guess: Proximity to correct word Rank Fitness
match.com for trusses or words (or whatever) Pair
Idea: Food supply (and memory) cannot tolerate unlimited population growth • Suppose current population is max: m • Current population produces n offspring • Reduce m + n candidate solutions to m • Example: m = 64 • Select 32 population members to survive • Group them into 16 breeding pairs • Allow each to produce 2 children Zero Population Growth
Idea: Differential Reproduction • Random: Any PP (potential parent) could reproduce • Truncation Selection • Top half: survive and reproduce • Bottom half: die • Stochastic: • Spin a roulette wheel • Each element has a slot • Size of slot is proportional to 1) fitness 2) probability of being chosen to reproduce Selecting Mating Population
Idea: Maximize the fitness of offspring • Top-Down • Tournament While ( < 16 mating pairs) { Do twice: • Randomly selectsubset of the population • Select 1 parent at random from subset Add parents to set of mating pairs } • Many Others Pairing
Idea: Children preserve parents’ genetic information • Genetic Recombination • Target: Chipolte • Many Algorithms • Illustrated: single point crossover PA: CHIP OTLEPB: CHIX LOTL CA: CHIP LOTLCB: CHIX OTLE Mate
Idea: Population can get stuck in a local minimum • Simulates: • chemical mutagens • radiation • copying errors • random loss of population members • Randomly perturb a fraction of the population Mutation (and genetic drift)
Idea: No further improvement is possible (within acceptable cost) • Stop after a fixed number of iterations • Stop when a known solution is found • Stop when m% of the population is within n standard deviations of the mean fitness Convergence
GA(population) { Initialize(population) //generate population ComputeCost(population) //compute fitness Sort(population) //rank while (population not converged on a good-enough solution) { SelectBreeders(population) //who reproduces? Pair(breeders) //love and marriage Mate(population) //genetic recombination Mutate(population) //jar from local minima Sort(population) //rank TestConvergence(population) //stop? } } Putting It Together: The GA Loop