¿Cuándo debo usar algoritmos genéticos en lugar de redes neuronales? [cerrado]


¿Hay una regla general (o un conjunto de ejemplos) para determinar cuándo usar algoritmos genéticos en lugar de redes neuronales (y viceversa) para resolver un problema?

Sé que hay casos en los que se pueden mezclar ambos métodos, pero estoy buscando una comparación de alto nivel entre los dos métodos.

Author: nbro, 2009-09-10

8 answers

De wikipedia:

Un algoritmo genético (GA) es una técnica de búsqueda utilizada en la computación para encontrar soluciones exactas o aproximadas a problemas de optimización y búsqueda.

Y:

Las redes neuronales son herramientas de modelado de datos estadísticos no lineales. Se pueden usar para modelar relaciones complejas entre entradas y salidas o para encontrar patrones en datos.

Si tiene un problema donde puede cuantifique el valor de una solución, un algoritmo genético puede realizar una búsqueda dirigida del espacio de la solución. (Por ejemplo, encontrar la ruta más corta entre dos puntos)

Cuando tiene un número de elementos en diferentes clases, una red neuronal puede "aprender" a clasificar elementos que no ha "visto" antes. (Por ejemplo, reconocimiento facial, reconocimiento de voz)

También se deben considerar los tiempos de ejecución. Un algoritmo genético tarda mucho tiempo en encontrar una solución. Una red neuronal tarda mucho tiempo en" aprender", pero luego puede clasificar casi instantáneamente nuevas entradas.

 112
Author: Dawie Strauss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-15 20:01:43

GAs genera nuevos patrones en una estructura que defina.

NNs clasifica (o reconoce) patrones existentes basados en los datos de entrenamiento que usted proporciona.

El gas se desempeña bien en la búsqueda eficiente de un gran espacio de estado de soluciones, y converge en una o más soluciones buenas, pero no necesariamente la "mejor" solución.

Los NNS pueden aprender a reconocer patrones (a través del entrenamiento), pero es notoriamente difícil averiguar lo que han aprendido, es decir, extraer el conocimiento de ellos una vez entrenados, y reutilizar el conocimiento en algún otro (no-NN).

 34
Author: Steven A. Lowe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 19:18:46

Un algoritmo genético (a pesar de su nombre atractivo) es, para la mayoría de los propósitos, una técnica de optimización . Principalmente se reduce a tener un número de variables y querer encontrar la mejor combinación de valores para estas variables. Solo toma prestadas técnicas de la evolución natural para llegar allí.

Las redes neuronales son útiles para reconocer patrones. Siguen un modelo simplista del cerebro, y cambiando un número de pesos entre ellos, intentan predecir salidas basadas en entradas.

Son dos entidades fundamentalmente diferentes, pero a veces los problemas que son capaces de resolver se solapan.

 34
Author: zenna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 19:24:53

Estás comparando dos cosas totalmente diferentes aquí.

Las redes neuronales se utilizan para la regresión/clasificación: dado un conjunto de ejemplos (x, y), desea retroceder la y desconocida para alguna x dada.

Los algoritmos genéticos son una técnica de optimización. Dada una función f (x), desea determinar la x que minimiza/maximiza f(x).

 22
Author: bayer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-19 17:15:44

Hay muchas similitudes entre ellos, así que solo trataré de esbozar sus diferencias.

Redes neuronales

Son capaces de analizar patrones en línea (aquellos que cambian con el tiempo). En general, esta es una muestra que varía en el tiempo y que necesita ser emparejada y predicha.

Ejemplos:

  • Extrapolación gráfica
  • Reconocimiento facial

Algoritmos genéticos

Se usa cuando puedes codificar atributos que crees que pueden contribuir a un problema específico que no cambia. El énfasis está en ser capaz de codificar estos atributos (a veces sabes lo que son) y que el problema es en gran medida inmutable (de lo contrario, las evoluciones no convergen).

Ejemplos:

  • Programación de aviones/envío
  • Horarios.
  • Encontrar las mejores características para un agente simple en un entorno artificial
  • Representación de una aproximación de una imagen con aleatorio polígonos
 19
Author: Unknown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 19:22:24

Puede utilizar algoritmos genéticos como alternativa al algoritmo de backpropagación para actualizar los pesos en las redes neuronales. Para un ejemplo de esto, consulte: http://www.ai-junkie.com/ann/evolved/nnt1.html .

 13
Author: Amro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 19:20:38

Los algoritmos genéticos (generalmente) funcionan con datos discretos (enum, rangos enteros, etc.). Una aplicación típica de GAs es buscar en un espacio discreto una solución "suficientemente buena" cuando la única alternativa disponible es una búsqueda de fuerza bruta (evaluando todas las combinaciones).

Las redes neuronales, por otro lado, (generalmente) funcionan con datos continuos (flotadores, etc.). Una aplicación típica para NNs es aproximación de función, donde tienes un conjunto X de entradas y un conjunto Y de salidas relacionadas, pero el función analítica f: X → Y.

Por supuesto, hay miles de variantes de ambos, por lo que la línea entre ellos es algo borrosa.

 6
Author: nbro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 19:23:51

No hay una regla general. En muchos casos se puede formular su problema para hacer uso de cualquiera de ellos. El aprendizaje automático sigue siendo un área activa de investigación y qué modelo de aprendizaje usar puede ser discutible.

GA's tomar sexy idiomas de la evolución, pero usted está esperando a que su equipo para tropezar con una solución a través de un proceso aleatorio. Estudie sus datos, haga buenas suposiciones, trate de saber lo que quiere y elija un enfoque que pueda hacer un buen uso de estos. Si su primera opción da resultados pobres, saber por qué fue así, y mejorar el algoritmo en sí o elegir uno mejor.

 4
Author: tilish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-16 17:20:18