Исходные параметры генетического программирования - PullRequest
9 голосов
/ 06 мая 2010

Я немного поработал в колледже (примечание: очень мало), и недавно с этим играл. Мой вопрос касается начальных настроек пробега (размер популяции, количество поколений, минимальная / максимальная глубина деревьев, минимальная / максимальная глубина исходных деревьев, проценты для использования в различных операциях воспроизведения и т. Д.). Какова нормальная практика для установки этих параметров? Какие документы / сайты люди используют в качестве хорошего руководства?

Ответы [ 5 ]

3 голосов
/ 15 мая 2010

Вы обнаружите, что это очень сильно зависит от вашей проблемной области - в частности, от природы фитнес-функции, вашей реализации DSL и т. Д.

Некоторый личный опыт:

  • Большая численность населения, кажется, работает лучше, когда у вас есть шумный фитнес функция, я думаю, это потому, что рост подгрупп в населении на протяжении последующих поколений актов дать больше выборки фитнес-функция. Я обычно использую 100 для менее шумных / детерминированных функций, 1000+ для шумных.
  • Для ряда поколений лучше всего измерить улучшения в фитнес-функция и остановка, когда это соответствует вашим целевым критериям. Обычно я провожу несколько сотен поколений и вижу, какие ответы приходят, если они не показывают улучшения, то у вас, вероятно, есть проблема в другом месте.
  • Требования к глубине дерева действительно зависят от вашего DSL. Я иногда пытаюсь сделать реализация без явного ограничивает, но наказывает или устраняет программы, которые работают слишком долго (что, вероятно, что тебя действительно волнует ....). Я также обнаружил, что общее число узлов ~ 1000 является довольно полезным жестким ограничением.
  • Проценты для разных операторов мутации / рекомбинации не кажутся иметь значение все это так много. Пока у вас есть полный набор мутаций, любой разумно сбалансированный Распределение будет обычно работать. Я думаю, что причина этого в том, что вы в основном делаете поиск благоприятных улучшений, поэтому основная цель - просто убедиться, что пробные улучшения достаточно хорошо распределены по всем возможностям.
2 голосов
/ 15 мая 2010

Почему бы вам не попробовать использовать генетический алгоритм для оптимизации этих параметров для вас? :)

Любая проблема в информатике может быть решено с другим слоем косвенность (за исключением слишком многих слои косвенности.)

- Дэвид Дж. Уилер

1 голос
/ 12 мая 2010

Когда я начал изучать генетические алгоритмы, у меня возник тот же вопрос.

Я хотел собрать изменяющиеся параметры данных для очень простой задачи и связать данные операторы и значения параметров (такие как частота мутаций и т. Д.) С данными результатами в зависимости от размера популяции и т. Д.

Как только я начал понимать GA, я понял, что, учитывая огромное количество переменных, это огромная задача, а обобщение чрезвычайно сложно.

Исходя из моего (ограниченного) опыта, если вы решите упростить проблему и использовать фиксированный способ для реализации кроссовера, выбора и просто поиграть с численностью населения и частотой мутаций (реализованных определенным образом), пытаясь придумать общие результаты, вы скоро поймете, что слишком много переменных по-прежнему в игре, потому что в конце дня число поколений, после которого статистически вы получите достойный результат (каким бы способом вы ни хотели определить приличный ) очевидно, что это зависит в первую очередь от проблемы, которую вы решаете, и, следовательно, от размера генома (представление одной и той же проблемы разными способами, очевидно, приведет к разным результатам с точки зрения влияния данных параметров GA!).

Конечно, можно разработать набор руководящих принципов - как доказывает (редкая, но хорошая) литература - но вы сможете эффективно обобщать результаты в статистических терминах только тогда, когда рассматриваемая проблема может быть закодирована точно так же способ и приспособленность оцениваются каким-то эквивалентным образом (что чаще всего означает, что вы сталкиваетесь с очень похожей проблемой).

0 голосов
/ 11 декабря 2011

Существуют очень разные школы мысли даже в сообществе врачей общей практики - Некоторые считают, что численность населения в (малых) тысячах достаточна, в то время как Коза и другие часто не считают, стоит ли начинать пробег с общей численностью менее миллиона человек в группе населения; -)

Как упоминалось ранее, это зависит от вашего личного вкуса и опыта, ресурсов и, вероятно, используемой системы GP!

Ура, Jan

0 голосов
/ 06 мая 2010

Посмотрите на объемные тома Козы по этим вопросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...