Neuroevolución , o neuro-evolución , es una forma de inteligencia artificial que utiliza algoritmos evolutivos para generar redes neuronales artificiales (ANN), parámetros, topología y reglas. [1] Se aplica más comúnmente en la vida artificial , el juego general [2] y la robótica evolutiva . El principal beneficio es que la neuroevolución se puede aplicar más ampliamente que los algoritmos de aprendizaje supervisado., que requieren un plan de estudios de pares de entrada-salida correctos. En contraste, la neuroevolución requiere solo una medida del desempeño de una red en una tarea. Por ejemplo, el resultado de un juego (es decir, si un jugador ganó o perdió) se puede medir fácilmente sin proporcionar ejemplos etiquetados de las estrategias deseadas. La neuroevolución se usa comúnmente como parte del paradigma del aprendizaje por refuerzo y se puede contrastar con las técnicas convencionales de aprendizaje profundo que usan el descenso de gradiente en una red neuronal con una topología fija.
Características
Se han definido muchos algoritmos de neuroevolución . Una distinción común es entre algoritmos que evolucionan solo en la fuerza de los pesos de conexión para una topología de red fija (a veces llamada neuroevolución convencional), en contraposición a los que evolucionan tanto en la topología de la red como en sus pesos (llamados TWEANN, para Topología y Peso Evolución de los algoritmos de redes neuronales artificiales.
Se puede hacer una distinción separada entre los métodos que desarrollan la estructura de las RNA en paralelo a sus parámetros (los que aplican algoritmos evolutivos estándar) y los que los desarrollan por separado (a través de algoritmos meméticos ). [3]
Comparación con el descenso de gradientes
La mayoría de las redes neuronales utilizan el descenso de gradientes en lugar de la neuroevolución. Sin embargo, alrededor de 2017, los investigadores de Uber declararon que habían descubierto que los algoritmos de neuroevolución estructural simples eran competitivos con los sofisticados algoritmos modernos de aprendizaje profundo de descenso de gradientes estándar de la industria , en parte porque se descubrió que era menos probable que la neuroevolución se atascara en los mínimos locales. En Science , el periodista Matthew Hutson especuló que parte de la razón por la que la neuroevolución está teniendo éxito donde antes había fallado se debe al aumento de la potencia computacional disponible en la década de 2010. [4]
Codificación directa e indirecta
Los algoritmos evolutivos operan sobre una población de genotipos (también denominados genomas ). En la neuroevolución, un genotipo se asigna a un fenotipo de red neuronal que se evalúa en alguna tarea para derivar su aptitud .
En los esquemas de codificación directa, el genotipo se asigna directamente al fenotipo. Es decir, cada neurona y conexión de la red neuronal se especifica directa y explícitamente en el genotipo. Por el contrario, en los esquemas de codificación indirecta, el genotipo especifica indirectamente cómo se debe generar esa red. [5]
Las codificaciones indirectas se utilizan a menudo para lograr varios objetivos: [5] [6] [7] [8] [9]
- modularidad y otras regularidades;
- compresión del fenotipo a un genotipo más pequeño, proporcionando un espacio de búsqueda más pequeño;
- mapeo del espacio de búsqueda (genoma) al dominio del problema.
Taxonomía de sistemas embriogénicos para codificación indirecta
Las codificaciones tradicionalmente indirectas que emplean embriogenia artificial (también conocida como desarrollo artificial ) se han categorizado según las líneas de un enfoque gramatical frente a un enfoque de química celular . [10] El primero desarrolla conjuntos de reglas en forma de sistemas de reescritura gramatical. Este último intenta imitar cómo emergen las estructuras físicas en biología a través de la expresión génica. Los sistemas de codificación indirecta a menudo utilizan aspectos de ambos enfoques.
Stanley y Miikkulainen [10] proponen una taxonomía para sistemas embriogénicos que pretende reflejar sus propiedades subyacentes. La taxonomía identifica cinco dimensiones continuas, a lo largo de las cuales se puede colocar cualquier sistema embriogénico:
- Destino celular (neurona) : las características finales y el papel de la célula en el fenotipo maduro. Esta dimensión cuenta el número de métodos utilizados para determinar el destino de una celda.
- Orientación : el método mediante el cual las conexiones se dirigen desde las células de origen a las células de destino. Esto va desde la orientación específica (la fuente y el destino se identifican explícitamente) hasta la orientación relativa (por ejemplo, según la ubicación de las celdas entre sí).
- Heterocronía : el momento y el orden de los eventos durante la embriogenia. Cuenta el número de mecanismos para cambiar la sincronización de eventos.
- Canalización : qué tan tolerante es el genoma a las mutaciones (fragilidad). Varía desde requerir instrucciones genotípicas precisas hasta una alta tolerancia a mutaciones imprecisas.
- Complejificación : la capacidad del sistema (incluido el algoritmo evolutivo y el mapeo de genotipo a fenotipo) para permitir la complejación del genoma (y por lo tanto del fenotipo) a lo largo del tiempo. Va desde permitir solo genomas de tamaño fijo hasta permitir genomas de longitud muy variable.
Ejemplos de
Ejemplos de métodos de neuroevolución (aquellos con codificación directa son necesariamente no embriogénicos):
Método | Codificación | Algoritmo evolutivo | Aspectos evolucionados |
---|---|---|---|
Evolución neurogenética de E. Ronald, 1994 [11] | Directo | Algoritmo genético | Pesos de la red |
Codificación celular (CE) de F. Gruau, 1994 [7] | Indirecto, embriogénico (árbol gramatical usando expresiones-S ) | Programación genética | Estructura y parámetros (simultáneos, complexificación) |
GNARL de Angeline et al., 1994 [12] | Directo | Programación evolutiva | Estructura y parámetros (simultáneos, complexificación) |
EPNet de Yao y Liu, 1997 [13] | Directo | Programación evolutiva (combinada con retropropagación y recocido simulado ) | Estructura y parámetros (mixto, complexificación y simplificación) |
NeuroEvolution of Augmenting Topologies (NEAT) por Stanley y Miikkulainen, 2002 [14] [15] | Directo | Algoritmo genético . Rastrea genes con marcas históricas para permitir el cruce entre diferentes topologías, protege la innovación a través de la especiación. | Estructura y parámetros |
Neuroevolución basada en hipercubo de topologías aumentadas (HyperNEAT) por Stanley, D'Ambrosio, Gauci, 2008 [6] | Indirecto, no embriogénico (los patrones espaciales generados por una red productora de patrones de composición (CPPN) dentro de un hipercubo se interpretan como patrones de conectividad en un espacio de menor dimensión) | Algoritmo genético . El algoritmo NEAT (arriba) se utiliza para desarrollar el CPPN. | Parámetros, estructura fija (funcionalmente completamente conectado) |
NeuroEvolución de topologías aumentadas basada en hipercubo de sustrato evolutivo (ES-HyperNEAT) por Risi, Stanley 2012 [9] | Indirecto, no embriogénico (los patrones espaciales generados por una red productora de patrones de composición (CPPN) dentro de un hipercubo se interpretan como patrones de conectividad en un espacio de menor dimensión) | Algoritmo genético . El algoritmo NEAT (arriba) se utiliza para desarrollar el CPPN. | Parámetros y estructura de la red |
Adquisición evolutiva de topologías neuronales (EANT / EANT2) por Kassahun y Sommer, 2005 [16] / Siebel y Sommer, 2007 [17] | Directa e indirecta, potencialmente embriogénica (Codificación genética común [5] ) | Programación evolutiva / Estrategias de evolución | Estructura y parámetros (por separado, complexificación) |
Neuroevolución interactivamente restringida (ICONE) de Rempis, 2012 [18] | Directo, incluye máscaras de restricción para restringir la búsqueda a variedades de topología / parámetros específicos. | Algoritmo evolutivo . Utiliza máscaras de restricción para reducir drásticamente el espacio de búsqueda mediante la explotación del conocimiento del dominio . | Estructura y parámetros (por separado, complexificación, interactivos) |
Deus Ex Neural Network (DXNN) de Gene Sher, 2012 [19] | Directo / Indirecto, incluye restricciones, ajuste local y permite la evolución para integrar nuevos sensores y actuadores. | Algoritmo memético . Evoluciona la estructura y los parámetros de la red en diferentes escalas de tiempo. | Estructura y parámetros (por separado, complexificación, interactivos) |
Arquitectura de neuroevolución unificada de espectro diverso (SUNA) por Danilo Vasconcellos Vargas, Junichi Murata [20] ( Código de descarga ) | Directo, introduce la Representación Neural Unificada (representación que integra la mayoría de las características de la red neuronal de la literatura). | El algoritmo genético con un mecanismo de preservación de la diversidad llamado diversidad de espectro que escala bien con el tamaño de los cromosomas, es independiente del problema y se enfoca más en obtener diversidad de comportamientos / enfoques de alto nivel. Para lograr esta diversidad, se introduce el concepto de espectro cromosómico y se utiliza junto con un mapa de población novedoso . | Estructura y parámetros (mixto, complexificación y simplificación) |
Evolver modular basado en agentes (MABE) de Clifford Bohm, Arend Hintze y otros. [21] ( Código de descarga ) | Codificación directa o indirecta de redes de Markov , redes neuronales, programación genética y otros controladores personalizables arbitrariamente. | Proporciona algoritmos evolutivos, algoritmos de programación genética y permite algoritmos personalizados, junto con la especificación de restricciones arbitrarias. | Los aspectos evolucionables incluyen el modelo neuronal y permite la evolución de la morfología y la selección sexual entre otros. |
Adaptación de la matriz de covarianza con el algoritmo de cuadrícula adaptativa ordenada por hipervolumen (CMA-HAGA) de Shahin Rostami y otros., [22] [23] | Directo, incluye una función de atavismo que permite que los rasgos desaparezcan y reaparezcan en diferentes generaciones. | Objetivo-Multi estrategia de evolución con Articulación Preferencia ( Computacional de dirección ) | Estructura, ponderaciones y sesgos. |
Ver también
- Aprendizaje automático automatizado (AutoML)
- Computación evolutiva
- NeuroEvolución de topologías aumentadas (NEAT)
- Noogénesis
- HyperNEAT (una versión generativa de NEAT)
- Adquisición evolutiva de topologías neuronales (EANT / EANT2)
Referencias
- ↑ Stanley, Kenneth O. (13 de julio de 2017). "Neuroevolución: un tipo diferente de aprendizaje profundo" . O'Reilly Media . Consultado el 4 de septiembre de 2017 .
- ^ Risi, Sebastián; Togelius, Julian (2017). "Neuroevolución en juegos: estado del arte y desafíos abiertos". Transacciones IEEE sobre inteligencia computacional e IA en juegos . 9 : 25–41. arXiv : 1410.7326 . doi : 10.1109 / TCIAIG.2015.2494596 . S2CID 11245845 .
- ^ Togelius, Julian; Schaul, Tom; Schmidhuber, Jurgen; Gomez, Faustino (2008), "Contrarrestar las entradas venenosas con neuroevolución memética" (PDF) , Solución de problemas paralelos desde la naturaleza
- ^ "La inteligencia artificial puede 'evolucionar' para resolver problemas" . Ciencia | AAAS . 10 de enero de 2018 . Consultado el 7 de febrero de 2018 .
- ^ a b c Kassahun, Yohannes; Sommer, Gerald; Edgington, Mark; Metzen, Jan Hendrik; Kirchner, Frank (2007), "Codificación genética común para codificaciones directas e indirectas de redes", Conferencia de Computación Genética y Evolutiva , ACM Press, pp. 1029–1036, CiteSeerX 10.1.1.159.705
- ^ a b Gauci, Stanley (2007), "Generación de redes neuronales a gran escala mediante el descubrimiento de regularidades geométricas" (PDF) , Conferencia de computación genética y evolutiva , Nueva York, NY: ACM
- ^ a b Gruau, Frédéric; Yo, L'universite Claude Bernard-lyon; Doctorado, de A. Diplome De; Demongeot, M. Jacques; Cosnard, examinadores M. Michel; Mazoyer, M. Jacques; Peretto, M. Pierre; Whitley, M. Darell (1994). Síntesis de redes neuronales mediante la codificación celular y el algoritmo genético . CiteSeerX 10.1.1.29.5939 .
- ^ Clune, J .; Stanley, Kenneth O .; Pennock, RT; Ofria, C. (junio de 2011). "Sobre el rendimiento de la codificación indirecta a través del continuo de regularidad". Transacciones IEEE sobre Computación Evolutiva . 15 (3): 346–367. CiteSeerX 10.1.1.375.6731 . doi : 10.1109 / TEVC.2010.2104157 . ISSN 1089-778X . S2CID 3008628 .
- ^ a b Risi, Sebastián; Stanley, Kenneth O. (2012). "Una codificación basada en hipercubos mejorada para la evolución de la ubicación, la densidad y la conectividad de las neuronas" (PDF) . Vida artificial . 18 (4): 331–363. doi : 10.1162 / ARTL_a_00071 . PMID 22938563 . S2CID 3256786 .
- ^ a b Stanley, Kenneth O .; Miikkulainen, Risto (2003). "Una taxonomía para la embriogenia artificial" (PDF) . Vida artificial . 9 (2): 93–130. doi : 10.1162 / 106454603322221487 . PMID 12906725 . S2CID 2124332 .
- ^ Ronald, Edmund; Schoenauer, March (1994), "Genetic Lander: Un experimento en el control neurogenético preciso", PPSN III 1994 Programación paralela Resolución de la naturaleza , págs. 452–461, CiteSeerX 10.1.1.56.3139
- ^ Angeline, Peter J .; Saunders, Gregory M .; Pollack, Jordan B. (1994). "Un algoritmo evolutivo que construye redes neuronales recurrentes" (PDF) . Transacciones IEEE en redes neuronales . 5 (5): 54–65. CiteSeerX 10.1.1.64.1853 . doi : 10.1109 / 72.265960 . PMID 18267779 .
- ^ Yao, Xin; Liu, Yong (mayo de 1997). "Un nuevo sistema evolutivo para la evolución de redes neuronales artificiales" (PDF) . Transacciones IEEE en redes neuronales . 8 (3): 694–713. doi : 10.1109 / 72.572107 . PMID 18255671 .
- ^ Stanley, Kenneth O .; Bryant, Bobby D .; Miikkulainen, Risto (diciembre de 2005). "Neuroevolución en tiempo real en el videojuego NERO" (PDF) .
- ^ Stanley, Kenneth O .; Miikkulainen, Risto (2002). "Evolución de las redes neuronales mediante el aumento de topologías" (PDF) . Computación evolutiva . 10 (2): 99-127. CiteSeerX 10.1.1.638.3910 . doi : 10.1162 / 106365602320169811 . PMID 12180173 . S2CID 498161 .
- ^ Kassahun, Yohannes; Sommer, Gerald (abril de 2005), "Aprendizaje por refuerzo eficiente a través de la adquisición evolutiva de topologías neuronales" (PDF) , XIII Simposio Europeo sobre Redes Neuronales Artificiales , Brujas, Bélgica, págs. 259-266
- ^ Siebel, Nils T .; Sommer, Gerald (octubre de 2007). "Aprendizaje por refuerzo evolutivo de redes neuronales artificiales" (PDF) . Revista Internacional de Sistemas Inteligentes Híbridos . 4 (3): 171–183. doi : 10.3233 / his-2007-4304 . Archivado desde el original (PDF) el 2008-09-05.
- ^ Rempis, Christian W. (octubre de 2012). "Neurocontroladores complejos en evolución con neuroevolución restringida interactivamente" (tesis doctoral). Universidad de Osnabrück. urna: nbn: de: gbv: 700-2012101710370
- ^ Sher, Gene I. (noviembre de 2012). Manual de neuroevolución a través de Erlang . Springer Verlag. ISBN 9781461444626.
- ^ Vargas, Danilo Vasconcellos; Murata, Junichi (2019). "Neuroevolución de espectro diverso con modelos neuronales unificados". Transacciones IEEE en redes neuronales y sistemas de aprendizaje . 28 (8): 1759-1773. arXiv : 1902.06703 . Código bibliográfico : 2019arXiv190206703V . doi : 10.1109 / TNNLS.2016.2551748 . PMID 28113564 . S2CID 206757620 .
- ^ Edlund, Jeffrey; Chaumont, Nicolas; Hintze, Arend; Koch, Christof; Tononi, Giulio; Adami, Christoph (2011). "La información integrada aumenta con la aptitud en la evolución de los animats" . PLOS Biología Computacional . 7 (10): e1002236. arXiv : 1103.1791 . Código bibliográfico : 2011PLSCB ... 7E2236E . doi : 10.1371 / journal.pcbi.1002236 . PMC 3197648 . PMID 22028639 .
- ^ Rostami, Shahin; Neri, Ferrante (1 de junio de 2017). "Un mecanismo de selección rápido impulsado por hipervolumen para problemas de optimización de muchos objetivos" (PDF) . Computación enjambre y evolutiva . 34 (Suplemento C): 50–67. doi : 10.1016 / j.swevo.2016.12.002 . hdl : 2086/13102 .
- ^ "Evolución multiobjetivo de redes neuronales artificiales en problemas de diagnóstico médico de clases múltiples con desequilibrio de clases - Publicación de la conferencia IEEE" (PDF) . doi : 10.1109 / CIBCB.2017.8058553 . S2CID 22674515 . Cite journal requiere
|journal=
( ayuda )
enlaces externos
- "Evolución 101: Neuroevolución | BALIZA" . beacon-center.org . Consultado el 14 de enero de 2018 .
- "Áreas NNRG - Neuroevolución" . nn.cs.utexas.edu . Universidad de Texas . Consultado el 14 de enero de 2018 . (tiene artículos descargables sobre NEAT y aplicaciones)
- "Marco de neuroevolución SharpNEAT" . sharpneat.sourceforge.net . Consultado el 14 de enero de 2018 .Proyecto maduro de neuroevolución de código abierto implementado en C # /. Net.
- ANNEvolve es un proyecto de investigación de IA de código abierto (código fuente descargable en C y Python con un tutorial y varios escritos e ilustraciones
- "Nils T Siebel - EANT2 - Aprendizaje por refuerzo evolutivo de redes neuronales" . www.siebel-research.de . Consultado el 14 de enero de 2018 . Página web sobre aprendizaje evolutivo con EANT / EANT2] (información y artículos sobre EANT / EANT2 con aplicaciones al aprendizaje de robots)
- Kit de herramientas NERD. El kit de herramientas de desarrollo de neurodinámica y robótica evolutiva. Una colección de software de código abierto gratuito para varios experimentos sobre neurocontrol y neuroevolución. Incluye un simulador programable, varios algoritmos de neuroevolución (por ejemplo, ICONE), soporte de clústeres, diseño de redes visuales y herramientas de análisis.
- "CorticalComputer (Gene)" . GitHub . Consultado el 14 de enero de 2018 . Código fuente del sistema neuroevolucionario DXNN.
- "Página de usuarios de ES-HyperNEAT" . eplex.cs.ucf.edu . Consultado el 14 de enero de 2018 .