¿Cómo debo codificar la estructura de una red neuronal en un genoma?


14

Para un espacio de problema determinista, necesito encontrar una red neuronal con el nodo óptimo y la estructura de enlace. Quiero usar un algoritmo genético para simular muchas redes neuronales para encontrar la mejor estructura de red para el dominio del problema.

Nunca he usado algoritmos genéticos para una tarea como esta antes. ¿Cuáles son las consideraciones prácticas? Específicamente, ¿cómo debo codificar la estructura de una red neuronal en un genoma?

Respuestas:


12

La sección 4.2 de "Fundamentos de la metaheurística" tiene una gran cantidad de información sobre formas alternativas de codificar estructuras gráficas a través de algoritmos genéticos.

Con particular atención a la evolución de los ANN, personalmente no estaría inclinado a implementar este tipo de cosas 'desde cero':

El campo de la neuroevolución ha existido durante algún tiempo, y la implementación de algunos de los métodos, como la Neuroevolución de las topologías aumentadas ( NEAT ) ahora incorpora los resultados de mucha experiencia práctica.

De acuerdo con el enlace anterior:

También desarrollamos una extensión para NEAT llamada HyperNEAT que puede desarrollar redes neuronales con millones de conexiones y explotar regularidades geométricas en el dominio de la tarea. La página HyperNEAT incluye enlaces a publicaciones y una explicación general del enfoque.


¡Que "Essentials of Metaheuristics" se ve muy interesante! Esto es algo que está realmente en la hoja de ruta para los autómatas M, ya que MCTS puro nunca es óptimo en los juegos M. Desde el wiki metaheurístico : "En informática y optimización matemática, un metaheurístico es un procedimiento de nivel superior o heurístico diseñado para encontrar, generar o seleccionar un heurístico (algoritmo de búsqueda parcial) que pueda proporcionar una solución suficientemente buena para un problema de optimización, especialmente con información incompleta o imperfecta o capacidad de cálculo limitada ".
DukeZhou

4

El uso de algoritmos evolutivos para desarrollar redes neuronales se llama neuroevolución .

Algunos algoritmos de neuroevolución optimizan solo los pesos de una red neuronal con topología fija. Eso no suena como lo que quieres. Otros algoritmos de neuroevolución optimizan tanto los pesos como la topología de una red neuronal. Este tipo de algoritmos parecen más apropiados para sus objetivos, y a veces se denominan TWEANN (redes neuronales de evolución de peso y topología).

Un algoritmo popular se llama NEAT , y es probablemente un buen lugar para comenzar, aunque solo sea porque hay una multitud de implementaciones, una de las cuales con suerte está escrita en su idioma favorito. Eso al menos te daría una línea de base para trabajar.

NEAT codifica un genoma de red neuronal directamente como una estructura gráfica. Las mutaciones pueden operar en la estructura de la red agregando nuevos enlaces (conectando dos nodos no conectados previamente) o nuevos nodos (dividiendo una conexión existente), o pueden operar solo al cambiar los pesos asociados con los bordes en los gráficos (llamados mutantes los pesos). Para darle una idea del orden de magnitud de los tamaños de los ANN con los que trabaja este algoritmo en particular, es probable que tenga dificultades con más de 100 o 200 nodos.

Hay TWEANN más escalables, pero son más complejos y hacen suposiciones sobre los tipos de estructuras que generan que no siempre son productivos en la práctica. Por ejemplo, otra forma de codificar la estructura de una red neuronal es como el producto de un patrón de semillas que se expande repetidamente por una gramática (por ejemplo, un sistema L). Puede explorar mucho más fácilmente estructuras más grandes, pero debido a que son generadas por una gramática, tendrán una sensación característica de repetición automática. HyperNEAT es una extensión popular de NEAT que hace un tipo diferente de suposición (que los patrones de pesos se pueden expresar fácilmente en función de la geometría) y puede escalar a ANN con millones de conexiones cuando esa suposición se ajusta bien a un dominio particular.

Hay algunos documentos de encuesta vinculados en el enlace superior si desea observar una mayor variedad de técnicas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.