artificial-intelligence - pronosticos - redes neuronales inteligencia artificial
¿Cuándo usar algoritmos genéticos y cuándo utilizar las redes neuronales? (8)
De hecho, puede usar Algoritmos genéticos como alternativa al algoritmo Backpropagation para actualizar los pesos en Neural Nets. Para un ejemplo de esto, consulte:
http://www.ai-junkie.com/ann/evolved/nnt1.html
¿Existe una regla empírica o un conjunto de ejemplos para determinar cuándo usar Algoritmos Genéticos versus cuándo usar Redes Neuronales para resolver un problema?
Sé que hay casos en los que puede tener ambos métodos mezclados, pero estoy buscando un razonamiento de alto nivel entre los dos métodos.
De la wikipedia:
Un algoritmo genético (GA) es una técnica de búsqueda utilizada en informática 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 los datos.
Si tiene un problema donde puede cuantificar el valor de una solución, un algoritmo genético puede realizar una búsqueda dirigida en el espacio de la solución. (Por ejemplo, encuentre la ruta más corta entre dos puntos)
Cuando tiene una cantidad 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)
Los tiempos de ejecución también deben ser considerados. Un algoritmo genético toma mucho tiempo para encontrar una solución aceptable. Una red neuronal tarda mucho tiempo en "aprender", pero luego puede clasificar casi de manera inmediata nuevas entradas.
Estás comparando dos cosas totalmente diferentes aquí.
Las redes neuronales se utilizan para la regresión / clasificación: dado un conjunto de (x, y) ejemplos, se desea retroceder el desconocido y para alguna x dada.
Los algoritmos genéticos son una técnica de optimización. Dada una función f (x), quiere determinar la x que minimiza / maximiza f (x).
Hay muchas similitudes entre ellos, así que solo trataré de delinear sus diferencias.
Redes neuronales
Pueden analizar patrones en línea (aquellos que cambian con el tiempo). En general, esta es una muestra variable en el tiempo que necesita ser igualada y predicha.
Ejemplos : Extrapolación de gráficos. 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 poder codificar estos atributos (a veces uno sabe cuáles 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 imagen con polígonos aleatorios.
Los algoritmos genéticos (generalmente) trabajan en datos discretos (enumeraciones, rangos enteros, etc.). Una aplicación típica para GA es buscar un espacio discreto para una solución "suficientemente buena" cuando la única alternativa disponible es una búsqueda de fuerza bruta (evaluando todas las combinaciones).
Redes neuronales, por otro lado (por lo general) trabajan en datos continuos (flotadores, etc.). Una aplicación típica para NN es la aproximación de funciones en la que tiene un conjunto X de entradas y un conjunto Y de salidas relacionadas pero la función analítica f: X → Y.
Por supuesto, hay miles de variantes de ambos, por lo que la línea que los separa es algo borrosa.
No hay una regla empírica En muchos casos, 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 utilizar puede ser discutible.
Los GA toman idiomas sexys de la evolución, pero estás esperando que tu computadora tropiece con una solución a través de un proceso aleatorio. Estudie sus datos, haga buenas suposiciones, intente saber lo que quiere y elija un enfoque que pueda hacer un buen uso de estos. Si su primera elección da resultados pobres, sepa por qué fue así, y mejore el algoritmo en sí mismo o elija uno mejor.
Un algoritmo genético, a pesar de su nombre sexy, es para la mayoría de los propósitos solo una técnica de optimización. Principalmente se reduce a que tengas una serie de variables y desees encontrar la mejor combinación de valores para estas variables. Simplemente 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, al cambiar una cantidad de pesos entre ellos, intentan predecir los resultados en función de las entradas.
Son dos entidades fundamentalmente diferentes, pero a veces los problemas que son capaces de resolver se superponen.
GA genera nuevos patrones en una estructura que usted define
Los NN clasifican / reconocen los patrones existentes en función de la capacitación que brindas
Los GA se desempeñan bien en la búsqueda eficiente de un gran espacio de estado de soluciones y convergen en una o más soluciones buenas, pero no necesariamente la "mejor" solución
Los NN pueden aprender a reconocer patrones (a través del entrenamiento), pero es notoriamente difícil descubrir lo que han aprendido, es decir, extraer el conocimiento de ellos una vez entrenados, y reutilizar el conocimiento en algún otro (no NN).