2009-07-02 12 views
5

Algunos marcos Algoritmo Genético, como http://www.aforgenet.com/ requiere muchos parámetros, tales como la tasa de mutación, tamaño de la población, etc.¿Cómo encontrar los mejores parámetros para un algoritmo genético?

Hay mejores números universales para estos parámetros? Creo que depende del problema (retraso de la función de acondicionamiento físico, retraso de la mutación, retraso de recombinación, índice de evolución, etc.). Mi primer pensamiento fue usar un GA para configurar otro GA.

¿Alguna idea mejor?

+0

Por favor, verifique mi respuesta, podría ser de su interés. – chutsu

Respuesta

5

La única vez que programé un algoritmo genético, incluí esos valores en los valores para mutar, básicamente como dijiste usando un GA para configurarse. Funcionó sorprendentemente bien, especialmente porque considero que es beneficioso para esos valores cambiar en el transcurso de su cálculo.

+0

¡Genial! ¡La auto mutación debería funcionar mejor que mi idea! –

+0

Para ser más elaborado, lo que ha descubierto es un método de control de parámetros, para las personas interesadas en diferentes formas de encontrar los mejores parámetros de GA, eche un vistazo a mi respuesta. – chutsu

4

Realmente no hay una manera automática de hacerlo para un conjunto de datos determinado. Si lo hubiera, no expondrían esos parámetros. Usar un segundo GA para sintonizar los parámetros del primer GA es peligroso. ¿Utiliza un tercer GA para sintonizar los parámetros del segundo? Incluso si lo hicieras, es una receta para el sobreajuste de todos modos.

Mi consejo sería jugar con los parámetros, y ver cómo afectan la distribución de su población en cada generación, cuántas generaciones se necesitan para llegar a una respuesta aceptable, etc. Si tiene demasiada mutación, su población nunca estabilizar. Demasiado poco y terminarás con homogeneidad.

Es un sucio secreto de GA que afinarlos es un arte, no una ciencia.

+0

No estoy de acuerdo. Ajustar las GA no es un arte, se puede hacer científicamente, hay algo llamado GA Adaptativas (vea este artículo científico [aquí] (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber = 286385 & tag = 1)) que no es específico del problema, y ​​es lo suficientemente general como para ser utilizado en cualquier problema que pueda poner en un GA. – chutsu

15

Encuentro que es útil pensar en estos problemas como un paisaje, donde se trata de encontrar el punto más bajo.

Los métodos como los algoritmos genéticos se utilizan cuando el paisaje es demasiado grande para probar todos los puntos, y la "forma" del paisaje es tal que métodos como el descenso en pendiente te atascarán en los mínimos locales.

Un buen ejemplo es la función de Rastrigin (image ref): alt text:

Las opciones son:

tamaño Generación:

  • demasiado grande: vas a tener un larga tiempo de época, restringiendo cuántas oportunidades de cada individuo tiene para explorar su vecindario .
  • Demasiado pequeño: no obtiene una buena cobertura del espacio de búsqueda.

tasa de mutación:

  • demasiado alto: corre el riesgo de los individuos "saltar" sobre una solución que estaban cerca de .
  • Demasiado bajo: todos van a quedar atrapados en mínimos locales.

Por lo tanto, realmente depende de su espacio de búsqueda particular. Experimenta con los parámetros y trata de encontrar la combinación óptima.Estoy de acuerdo en que usar otro GA para optimizar los parámetros no va a resolver el problema.

+4

Hago mucho trabajo con algoritmos genéticos. Esta es una excelente descripción y visualización. Buen trabajo. –

7

No es fácil.

¿Por qué? Debido al teorema No Free Lunch. Esto básicamente indica que no hay general algoritmo de búsqueda que funciona bien para todos los problemas.

Lo mejor que puedes hacer es personalizar la búsqueda de un espacio problemático específico. Tendrás que modificar manualmente tus parámetros para adaptarlos a tu solución. Lo siento.

El uso de un GA para encontrar parámetros GA se complica. ¿Cómo se encuentran los parámetros óptimos para su búsqueda GAGA? Otra GA ...?

+0

No es cierto en lo que respecta al ajuste manual de un GA, hay algo llamado GA adaptable. (Ver [aquí] (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=286385&tag=1) – chutsu

+0

@chutsu Sí, hay muchos GA adaptativos. Los uso mucho, pero solo funcionan para casos específicos. (por lo general sin problemas) espacios problemáticos. No son generales. – Ray

+0

¿Puedo solicitar amablemente una fuente? Sería útil para mí, gracias :) – chutsu

2

Como todos los demás dijeron, no hay una sola respuesta. Aunque existe cierta tendencia a utilizar la tasa de cruce en el nivel 0.7-0.9 y la mutación en 0.1-0.3 realmente depende. Depende del problema, puede depender de la función de aptitud, y definitivamente depende del Algoritmo Genético en sí mismo. Hay muchas variaciones de GA, los parámetros óptimos para el mismo problema pueden variar.

En cuanto a usar GA para ajustar los parámetros del objetivo GA, hay enfoques como ese, pero, como se señaló, ¿cómo ajustar los parámetros del primer GA? Tenga en cuenta que, tal vez, la tasa de mutación debería ser mayor al principio, y que debería disminuir mientras que la tasa de cruce debería aumentar. Es un problema de exploración versus explotación. Existen enfoques para que GA sea más adaptable y le permita cambiar sus parámetros a medida que busca soluciones. Los controladores difusos a veces se utilizan para manipular los parámetros de GA. También hay otros enfoques.

Si desea obtener más información al respecto, compre algunos libros o consulte los documentos de investigación académica.
Si necesita configurar su propio GA sin una extensa investigación, pruebe algunos valores de otros y experimente con ellos.

7

Me resulta bastante decepcionante hay tantas respuestas que suponen que no puede encontrar los mejores parámetros para el algoritmo genético de forma automática. Acepto que los parámetros dependen del problema; sin embargo, existen métodos para encontrarlos.

Además, el No Free Lunch Theorem de ninguna manera hace que deje de encontrar los mejores parámetros, como ya ha habido discusión que discute el hecho de:

Hay dos tipos de configuración de parámetros:

  • afinamientos de parámetros (parámetro de búsqueda en línea - antes de que el GA se ejecuta)
  • de control de parámetro (parámetro de ajustes en línea - durante la carrera GA)
    • adaptativa
    • Auto Adaptativo
    • determinista

Hay mucha literatura disponible allí que describen cómo uno puede encontrar estos parámetros óptimos, depende de si desea realizar la búsqueda de parámetros fuera de línea o en línea. La creencia popular es que fuera de línea es más adecuado para la mayoría de los casos porque los métodos de control de parámetros en línea agregarían demasiada complejidad a fuera de línea.

Éstos son algunos ejemplos para encontrar la "mejor" parámetros:

parámetro de ajuste:

control de parámetros:

y muchos más, sólo la búsqueda de la literatura utilizando palabras clave utilizadas anteriormente. ¡Existen métodos científicos para encontrar parámetros adecuados para cualquier problema en particular!

Cuestiones relacionadas