Вопрос по – Как найти лучшие параметры для генетического алгоритма?

5

Некоторые структуры генетического алгоритма, такие какhttp://www.aforgenet.com/ требует много параметров, таких как частота мутаций, размер популяции и т. д.

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

Есть идеи получше?

Пожалуйста, проверьте мой ответ, он может вас заинтересовать. chutsu

Ваш Ответ

6   ответов
17

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

Такие методы, как генетические алгоритмы, используются, когда ландшафт слишком велик для того, чтобы просто проверить все точки, и "shape" ландшафта таков, что такие методы, как градиентный спуск, застрянут в локальных минимумах.

Одним хорошим примером является функция Растригина (ссылка на изображение): alt text:

Ваш выбор:

Размер поколения:

Too large: you're going to have a long epoch time, restricting how many chances each individual has to explore it's neighbourhood. Too small: you don't get good coverage of the search space.

Скорость мутации:

Too high: you risk the individuals "jumping" over a solution they were close to. Too low: they're all going to get stuck in local minima.

Так что это действительно зависит от вашего собственного пространства поиска. Поэкспериментируйте с параметрами и постарайтесь найти оптимальную комбинацию. Я согласен, что использование другого GA для оптимизации параметров не решит проблему.

Я много работаю с генетическими алгоритмами. Это отличное описание и визуализация. Хорошая работа.
9

что есть так много ответов, которые предполагают, что вы не можете автоматически найти лучшие параметры для генетического алгоритма.I agree that the parameters does depend on the problem however there are methods where you can find them.

ДополнительноТеорема о бесплатном обеде ни в коем случае не мешает вам найти лучшие параметры, так как уже было обсуждение, которое оспаривает факт:

Practically it does not hold Description length may dispute the theorem Coevolution can make the theorem irrelevant

Существует два типа настройки параметров:

Parameter Tuning (offline parameter search - before the GA is run) Parameter Control (online parameter tweaking - during the GA run) Adaptive Self Adaptive Deterministic

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

Вот несколько примеров, чтобы найти «лучший» параметры:

Parameter Tuning:

Simple parameter sweep (try everything) Meta-GA ontop of a GA Racing strategy to find best parameters Meta-GA and Racing together

Parameter Control:

Adaptive probabilities for mutation and crossover Self adaptive popuation size Deterministic Genetic Operators

И многое другое, просто ищите литературу по ключевым словам, использованным выше. Существуют научные методы поиска подходящих параметров для любой задачи!

2

нет единого ответа. Хотя существует некоторая тенденция использовать частоту кроссовера на уровне 0,7-0,9 и мутацию на уровне 0,1-0,3, это действительно зависит. Зависит от проблемы, может зависеть от фитнес-функции и определенно зависит от самого генетического алгоритма. Существует множество вариаций GA, оптимальные параметры для одной и той же задачи могут отличаться.

Что касается использования GA для настройки параметров целевого GA, существуют такие подходы, но, как было отмечено, как настроить параметры первого GA? Имейте в виду, что, возможно, частота мутаций должна быть выше в начале, и чем она должна уменьшаться, тогда как частота перехода должна увеличиваться. Это вопрос разведки против эксплуатации. Существуют подходы, позволяющие GA быть более адаптивным и позволять ему изменять свои параметры при поиске решения. Нечеткие контроллеры иногда используются для манипулирования параметрами GA. Есть и другие подходы.

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

5

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

Большой! Сам мутация должна работать лучше, чем моя идея! Jader Dias
Если быть более сложным, то, что вы обнаружили, это метод контроля параметров, для людей, заинтересованных в различных способах нахождения «лучших». Параметры GA посмотрим на мой ответ.
4

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

Мой совет - поиграть с параметрами и посмотреть, как они влияют на распределение вашего населения в каждом поколении, сколько поколений требуется, чтобы получить приемлемый ответ, и т. Д. Если у вас слишком много мутаций, ваша популяция никогда не стабилизируется. Слишком мало, и вы в итоге получите однородность.

Это грязный секрет ГА, что их настройка - это искусство, а не наука.

Я не согласен. Настройка GA 's не искусство, это может быть сделано с научной точки зрения, есть то, что называется адаптивными GA (см. Эту научную статьюhere), которая не является специфической для проблемы и является достаточно общей для использования в любых задачах, которые вы можете поместить в GA.
7

Зачем? Из-заНет бесплатного обеда теорема. Это в основном утверждает, что нетgeneral алгоритм поиска, который хорошо работает дляall проблемы.

Лучшее, что вы можете сделать, это адаптировать поискspecific проблемное пространство. Вам придется вручную настроить параметры в соответствии с вашим решением. Сожалею.

Использование GA для поиска параметров GA становится сложным. Как вы находите оптимальные параметры для поиска в GAGA? Еще один ГА ...?

Не верно в отношении ручной настройки GA, есть то, что называется Adaptive GA? (Увидетьhere
У вас есть один: «Нет бесплатного обеда» Теорема.
@chutsu Да, есть много адаптивных ГА. Я их часто использую. Но они работают только для определенных (обычно гладких) проблемных пространств. Они не общие.
На самом деле, имея время пересмотреть теорему об отсутствии бесплатного обеда, бывают случаи, когда ее можно смягчить. А именно использование Coevolution Meta-GAfor example, Кроме того, были статьи, в которых оспаривалось, что реально теорема об отсутствии бесплатного обеда не выполняется (см.here)! Поэтому неверно предполагать, что использование простой эвристики, подобной той, которую я дал, не подходит для поиска параметров.
Могу ли я попросить источник? Это было бы полезно для меня, спасибо :)

Похожие вопросы