Jump to content

Популяционное дополнительное обучение

В информатике и обучении машинном инкрементное обучение на основе населения ( PBIL ) представляет собой оптимизации алгоритм и алгоритм оценки распределения . Это тип генетического алгоритма , в котором генотип всей популяции ( вероятности ), а не отдельных ее членов. вектор развивается [1] Алгоритм был предложен Шумитом Балуджей в 1994 году. Алгоритм проще стандартного генетического алгоритма и во многих случаях приводит к лучшим результатам, чем стандартный генетический алгоритм. [2] [3] [4]

Алгоритм

[ редактировать ]

В PBIL гены представлены в виде реальных значений в диапазоне [0,1], что указывает на вероятность появления какой-либо конкретной аллели в этом гене .

Алгоритм PBIL следующий:

  1. Популяция генерируется из вектора вероятности.
  2. Физическая подготовка каждого участника оценивается и ранжируется.
  3. Обновите генотип популяции (вектор вероятности) на основе наиболее приспособленного человека.
  4. Мутировать.
  5. Повторите шаги 1–4.

Исходный код

[ редактировать ]

Это часть исходного кода, реализованная на Java . В статье используются LearnRate = 0,1, negLearnRate = 0,075, mutProb = 0,02 и mutShift = 0,05. N = 100 и ITER_COUNT = 1000 достаточно для небольшой задачи.

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;
            }
        }
    }
}

См. также

[ редактировать ]
  1. ^ Каррай, Фахреддин О.; де Сильва, Кларенс (2004), Программные вычисления и проектирование интеллектуальных систем , Аддисон Уэсли, ISBN  0-321-11617-8
  2. ^ Балуджа, Шумит (1994), «Популяционное дополнительное обучение: метод интеграции оптимизации функций на основе генетического поиска и конкурентного обучения», Технический отчет , вып. CMU–CS–94–163, Питтсбург, Пенсильвания: Университет Карнеги-Меллон, CiteSeerX   10.1.1.61.8554
  3. ^ Балуджа, Шумит; Каруана, Рич (1995), Удаление генетики из стандартного генетического алгоритма , Morgan Kaufmann Publishers, стр. 38–46, CiteSeerX   10.1.1.44.5424
  4. ^ Балуджа, Шумит (1995), Эмпирическое сравнение семи эвристик оптимизации итеративных и эволюционных функций , CiteSeerX   10.1.1.43.1108
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 247a2a3adaf2623437a1a2fa690cb5ea__1606800960
URL1:https://arc.ask3.ru/arc/aa/24/ea/247a2a3adaf2623437a1a2fa690cb5ea.html
Заголовок, (Title) документа по адресу, URL1:
Population-based incremental learning - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)