13

Tengo una buena base en algoritmos evolutivos, así que ahora comencé a leer sobre redes neuronales artificiales. Me encuentro con este tutorial en http://www.ai-junkie.com/ann/evolved/nnt2.html, que muestra cómo usar una ANN para desarrollar tanques que recolectan minas. Utiliza un GA para desarrollar los pesos de entrada en cada Neuron.Diferencia entre la red neuronal y el algoritmo evolutivo

Sé que podría usar GA (sin la ANN) para resolver el mismo problema. Ya creé un Tetris Bot utilizando solo GA para optimizar los pesos en la función de evaluación de la grilla (consulte mi blog http://www.bitsrandomicos.blogspot.com.br/).

Mi pregunta es: ¿cuál es la diferencia conceptual/práctica entre el uso de un ANN + GA en una situación en la que podría usar solo GA? Quiero decir, ¿mi Tetris Bot es ANN? (No lo creo).

Hay varias preguntas relacionadas acerca de esto, pero no pude encontrar una respuesta:

Are evolutionary algorithms and neural networks used in the same domains?

When to use Genetic Algorithms vs. when to use Neural Networks?

Gracias!

Respuesta

18

A algoritmo genético es un algoritmo de optimización.

Un red neuronal artificial es un aproximador de función. Para aproximar una función necesita un algoritmo de optimización para ajustar los pesos. Una ANN se puede utilizar para el aprendizaje supervisado (clasificación, regresión) o el aprendizaje de refuerzo, y algunos incluso se pueden utilizar para el aprendizaje no supervisado.

En el aprendizaje supervisado, un algoritmo de optimización libre de derivados como un algoritmo genético es más lento que la mayoría de los algoritmos de optimización que usan información de gradiente. Por lo tanto, solo tiene sentido desarrollar redes neuronales con algoritmos genéticos en el aprendizaje de refuerzo. Esto se conoce como "neuroevolución". La ventaja de redes neuronales como perceptrones multicapa en esta configuración es que pueden aproximar cualquier función con precisión arbitraria cuando tienen un número suficiente de nodos ocultos.

Cuando crea un tetris bot no necesariamente tiene que usar un ANN como un aproximador de función. Pero necesita algún tipo de aproximación de función para representar la política de su bot. Supongo que era simplemente más simple que una ANN. Pero cuando quiera crear una política no lineal compleja, puede hacerlo e. gramo. con una ANN.

+1

Entonces, en mi Tetris Bot tengo una heurística donde un GA ajusta el peso de cada parámetro de la tabla (como la altura de la grilla, el número de agujeros, etc.). En el ejemplo de Tanques-Minas, ¿puedo considerar cada Neurona como un "parámetro anónimo" (es decir, alguna característica que influirá en el comportamiento del Tanque pero que no ha sido nombrada?) - ¡Simplemente una analogía, gracias! – Fernando

+1

Sí, puedes hacer eso. Las redes neuronales se consideran aproximaciones de funciones de blackbox. Eso significa que generalmente no puede entender lo que hace la ANN al mirar sus valores de peso. Es difícil extraer cualquier 'regla' simple. :) – alfa

0

no soy un experto, pero en base a lo que sé por el campo ..

Una red neuronal artificial tiene una base sobre la neurociencia en última instancia. Intenta simular/modelar su comportamiento mediante la construcción de estructuras neuronales en el algoritmo. Hay un fuerte énfasis en la naturaleza académica del problema que el resultado. Por lo que entiendo, es por esta razón que las ANN no son muy populares desde el punto de vista de la ingeniería. La base estadística del aprendizaje automático (HMM y redes bayesianas) produce mejores resultados.

En resumen, siempre que tenga un guiño hacia algún tema de neurociencia subyacente, puede ser una ANN, incluso si usa alguna forma de GA.

Si utiliza una GA, no es necesariamente una ANN.

+1

Existen algunos paralelismos entre las redes neuronales y la neurociencia, pero las redes neuronales no intentan modelar las neuronas naturales, en general. –

6

La respuesta de alfa es perfecta. Aquí es sólo una imagen para ilustrar lo que dijo:

enter image description here Meta-Optimizer = Ninguno (pero podría ser)
Optimizer = Algoritmo Genético
Problema = Tetris Bot (por ejemplo ANN)

2

Se utilizan evolutiva Algoritmo si todavía tiene no conoce la respuesta pero puede calificar de alguna manera a los candidatos y proporcionar mutaciones significativas.

La red neuronal es excelente si ya tiene respuestas (y entradas) y quiere "entrenar la computadora" para que pueda "adivinar" las respuestas para entradas desconocidas. Además, no tienes que pensar mucho sobre el problema, la red lo resolverá solo.

Comprobar este ejemplo "IA del juego": https://synaptic.juancazala.com/#/
(tenga en cuenta lo fácil que es, todo lo que tiene que hacer es darles suficiente entrenamiento, usted no tiene que saber nada de juego AI - y una vez que se es suficiente todo lo que tienes que hacer es "descargar" la memoria y ejecutarla cuando sea necesario)

Cuestiones relacionadas