fbpx
Wikipedia

Population-based incremental learning

In computer science and machine learning, population-based incremental learning (PBIL) is an optimization algorithm, and an estimation of distribution algorithm. This is a type of genetic algorithm where the genotype of an entire population (probability vector) is evolved rather than individual members.[1] The algorithm is proposed by Shumeet Baluja in 1994. The algorithm is simpler than a standard genetic algorithm, and in many cases leads to better results than a standard genetic algorithm.[2][3][4]

Algorithm edit

In PBIL, genes are represented as real values in the range [0,1], indicating the probability that any particular allele appears in that gene.

The PBIL algorithm is as follows:

  1. A population is generated from the probability vector.
  2. The fitness of each member is evaluated and ranked.
  3. Update population genotype (probability vector) based on fittest individual.
  4. Mutate.
  5. Repeat steps 1–4

Source code edit

This is a part of source code implemented in Java. In the paper, learnRate = 0.1, negLearnRate = 0.075, mutProb = 0.02, and mutShift = 0.05 is used. N = 100 and ITER_COUNT = 1000 is enough for a small problem.

public void optimize() {  final int totalBits = getTotalBits();  final double[] probVec = new double[totalBits];  Arrays.fill(probVec, 0.5);  bestCost = POSITIVE_INFINITY;    for (int i = 0; i < ITER_COUNT; i++) {  // Creates N genes  final boolean[][] genes = new [N][totalBits];  for (boolean[] gene : genes) {  for (int k = 0; k < gene.length; k++) {  if (rand_nextDouble() < probVec[k])  gene[k] = true;  }  }  // Calculate costs  final double[] costs = new double[N];  for (int j = 0; j < N; j++) {  costs[j] = costFunc.cost(toRealVec(genes[j], domains));  }  // Find min and max cost genes  boolean[] minGene = null, maxGene = null;  double minCost = POSITIVE_INFINITY, maxCost = NEGATIVE_INFINITY;  for (int j = 0; j < N; j++) {  double cost = costs[j];  if (minCost > cost) {  minCost = cost;  minGene = genes[j];  }  if (maxCost < cost) {  maxCost = cost;  maxGene = genes[j];  }  }  // Compare with the best cost gene  if (bestCost > minCost) {  bestCost = minCost;  bestGene = minGene;  }  // Update the probability vector with max and min cost genes  for (int j = 0; j < totalBits; j++) {  if (minGene[j] == maxGene[j]) {  probVec[j] = probVec[j] * (1d - learnRate) +  (minGene[j] ? 1d : 0d) * learnRate;  } else {  final double learnRate2 = learnRate + negLearnRate;  probVec[j] = probVec[j] * (1d - learnRate2) +  (minGene[j] ? 1d : 0d) * learnRate2;  }  }  // Mutation  for (int j = 0; j < totalBits; j++) {  if (rand.nextDouble() < mutProb) {  probVec[j] = probVec[j] * (1d - mutShift) +  (rand.nextBoolean() ? 1d : 0d) * mutShift;  }  }  } } 

See also edit

References edit

  1. ^ Karray, Fakhreddine O.; de Silva, Clarence (2004), Soft computing and intelligent systems design, Addison Wesley, ISBN 0-321-11617-8
  2. ^ Baluja, Shumeet (1994), "Population-Based Incremental Learning: A Method for Integrating Genetic Search Based Function Optimization and Competitive Learning", Technical Report, no. CMU–CS–94–163, Pittsburgh, PA: Carnegie Mellon University, CiteSeerX 10.1.1.61.8554
  3. ^ Baluja, Shumeet; Caruana, Rich (1995), Removing the Genetics from the Standard Genetic Algorithm, Morgan Kaufmann Publishers, pp. 38–46, CiteSeerX 10.1.1.44.5424
  4. ^ Baluja, Shumeet (1995), An Empirical Comparison of Seven Iterative and Evolutionary Function Optimization Heuristics, CiteSeerX 10.1.1.43.1108

population, based, incremental, learning, computer, science, machine, learning, population, based, incremental, learning, pbil, optimization, algorithm, estimation, distribution, algorithm, this, type, genetic, algorithm, where, genotype, entire, population, p. In computer science and machine learning population based incremental learning PBIL is an optimization algorithm and an estimation of distribution algorithm This is a type of genetic algorithm where the genotype of an entire population probability vector is evolved rather than individual members 1 The algorithm is proposed by Shumeet Baluja in 1994 The algorithm is simpler than a standard genetic algorithm and in many cases leads to better results than a standard genetic algorithm 2 3 4 Contents 1 Algorithm 2 Source code 3 See also 4 ReferencesAlgorithm editIn PBIL genes are represented as real values in the range 0 1 indicating the probability that any particular allele appears in that gene The PBIL algorithm is as follows A population is generated from the probability vector The fitness of each member is evaluated and ranked Update population genotype probability vector based on fittest individual Mutate Repeat steps 1 4Source code editThis is a part of source code implemented in Java In the paper learnRate 0 1 negLearnRate 0 075 mutProb 0 02 and mutShift 0 05 is used N 100 and ITER COUNT 1000 is enough for a small problem public void optimize final int totalBits getTotalBits final double probVec new double totalBits Arrays fill probVec 0 5 bestCost POSITIVE INFINITY for int i 0 i lt ITER COUNT i Creates N genes final boolean genes new N totalBits for boolean gene genes for int k 0 k lt gene length k if rand nextDouble lt probVec k gene k true Calculate costs final double costs new double N for int j 0 j lt N j costs j costFunc cost toRealVec genes j domains Find min and max cost genes boolean minGene null maxGene null double minCost POSITIVE INFINITY maxCost NEGATIVE INFINITY for int j 0 j lt N j double cost costs j if minCost gt cost minCost cost minGene genes j if maxCost lt cost maxCost cost maxGene genes j Compare with the best cost gene if bestCost gt minCost bestCost minCost bestGene minGene Update the probability vector with max and min cost genes for int j 0 j lt totalBits j if minGene j maxGene j probVec j probVec j 1d learnRate minGene j 1d 0d learnRate else final double learnRate2 learnRate negLearnRate probVec j probVec j 1d learnRate2 minGene j 1d 0d learnRate2 Mutation for int j 0 j lt totalBits j if rand nextDouble lt mutProb probVec j probVec j 1d mutShift rand nextBoolean 1d 0d mutShift See also editEstimation of distribution algorithm EDA Learning Classifier System LCS References edit Karray Fakhreddine O de Silva Clarence 2004 Soft computing and intelligent systems design Addison Wesley ISBN 0 321 11617 8 Baluja Shumeet 1994 Population Based Incremental Learning A Method for Integrating Genetic Search Based Function Optimization and Competitive Learning Technical Report no CMU CS 94 163 Pittsburgh PA Carnegie Mellon University CiteSeerX 10 1 1 61 8554 Baluja Shumeet Caruana Rich 1995 Removing the Genetics from the Standard Genetic Algorithm Morgan Kaufmann Publishers pp 38 46 CiteSeerX 10 1 1 44 5424 Baluja Shumeet 1995 An Empirical Comparison of Seven Iterative and Evolutionary Function Optimization Heuristics CiteSeerX 10 1 1 43 1108 Retrieved from https en wikipedia org w index php title Population based incremental learning amp oldid 991682302, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.