Neuroevolución
La neuroevolución es una forma de inteligencia artificial que utiliza algoritmos evolutivos para generar redes neuronales artificiales (RNA), parámetros y reglas.[1] Se aplica más comúnmente en la vida artificial, los juegos en general[2] y la robótica evolutiva. La principal ventaja es que la neuroevolución se puede aplicar de forma más amplia que los algoritmos de aprendizaje supervisado, que requieren un programa de pares de entrada-salida correctos. Por el contrario, la neuroevolución solo requiere una medida del rendimiento 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 utiliza comúnmente como parte del paradigma del aprendizaje por refuerzo, y se puede contrastar con las técnicas convencionales de aprendizaje profundo que utilizan la retropropagación (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 los algoritmos que solo evolucionan la fuerza de los pesos de conexión para una topología de red fija (a veces llamada neuroevolución convencional) y los algoritmos que evolucionan tanto la topología de la red como sus pesos (llamados TWEANN, por algoritmos de redes neuronales artificiales con evolución de topología y peso).
Se puede hacer una distinción separada entre los métodos que evolucionan la estructura de las ANN en paralelo a sus parámetros (los que aplican algoritmos evolutivos estándar) y los que las desarrollan por separado (a través de algoritmos meméticos).[3]
Comparación con el descenso de gradiente
La mayoría de las redes neuronales utilizan el descenso de gradiente en lugar de la neuroevolución. Sin embargo, alrededor de 2017, investigadores de Uber afirmaron que habían descubierto que los algoritmos simples de neuroevolución estructural eran competitivos con los sofisticados algoritmos de aprendizaje profundo de descenso de gradiente estándar de la industria moderna, en parte porque se descubrió que la neuroevolución era menos propensa a quedarse atascada en 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 fracasado se debe al aumento de la potencia computacional disponible en la década de 2010.[4]
Se puede demostrar que existe una correspondencia entre la neuroevolución y el descenso de gradiente.[5]
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 debe generarse esa red.[6]
Las codificaciones indirectas se utilizan a menudo para lograr varios objetivos:[6][7][8][9][10]
- modularidad y otras regularidades;
- compresión del fenotipo a un genotipo más pequeño, lo que proporciona un espacio de búsqueda más reducido;
- asignación del espacio de búsqueda (genoma) al dominio del problema.
Taxonomía de los sistemas embriogénicos para la codificación indirecta
Tradicionalmente, las codificaciones indirectas que emplean la embriogénesis artificial (también conocida como desarrollo artificial) se han clasificado según un enfoque gramatical frente a un enfoque de química celular.[11] El primero desarrolla conjuntos de reglas en forma de sistemas de reescritura gramatical. El segundo intenta imitar cómo surgen las estructuras físicas en la biología a través de la expresión génica. Los sistemas de codificación indirecta suelen utilizar aspectos de ambos enfoques.
Stanley y Miikkulainen[11] proponen una taxonomía para los sistemas embriogénicos que pretende reflejar sus propiedades subyacentes. La taxonomía identifica cinco dimensiones continuas, a lo largo de las cuales se puede situar cualquier sistema embriogénico:
- Destino celular (neuronal): las características y la función finales 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 célula.
- Direccionamiento: el método por el cual las conexiones se dirigen desde las células de origen a las células de destino. Esto abarca desde el direccionamiento específico (el origen y el destino se identifican explícitamente) hasta el direccionamiento relativo (por ejemplo, basado en la ubicación de las células entre sí).
- Heterochronía: el momento y el orden de los eventos durante la embriogénesis. Cuenta el número de mecanismos para cambiar el momento de los eventos.
- Canalización: la tolerancia del genoma a las mutaciones (fragilidad). Va desde la necesidad de instrucciones genotípicas precisas hasta una alta tolerancia a las mutaciones imprecisas.
- Complejización: la capacidad del sistema (incluido el algoritmo evolutivo y la correspondencia entre genotipo y fenotipo) para permitir la complejizació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
Ejemplos de métodos de neuroevolución (los que tienen codificaciones directas son necesariamente no embriogénicos):
| Método | Codificación | Algoritmo evolutivo | Aspectos evolucionados |
|---|---|---|---|
| Evolución neurogenética, por E. Ronald, 1994[12] | Directo | Algoritmo genético | Ponderación de la red |
| Codificación celular (CE) por F. Gruau, 1994[8] | Indirecto, embriogénico (árbol gramatical utilizando expresiones S) | Programación genética | Estructura y parámetros (simultáneos, complejización) |
| GNARL por Angeline et al., 1994[13] | Directo | Programación evolutiva | Estructura y parámetros (simultáneos, complejización) |
| EPNet por Yao y Liu, 1997[14] | Directo | Programación evolutiva (combinada con retropropagación y recocido simulado) | Estructura y parámetros (mixtos, complejización y simplificación) |
| Neuroevolución de topologías aumentativas (NEAT) por Stanley y Miikkulainen, 2002[15][16] | Directo | Algoritmo genético. Rastrea genes con marcas históricas para permitir el cruce entre diferentes topologías y protege la innovación mediante | Estructura y parámetros |
| Neuroevolución basada en hipercubos de topologías aumentadas (HyperNEAT) por Stanley, D'Ambrosio, Gauci, 2008.[7] | Indirecto, no embriogénico (los patrones espaciales generados por una red composicional generadora de patrones (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 totalmente conectada) |
| Neuroevolución basada en hipercubos de sustratos evolutivos de topologías aumentadas (ES-HyperNEAT) por Risi, Stanley 2012[10] | Indirecto, no embriogénico (los patrones espaciales generados por una red composicional generadora de patrones (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 red |
| Adquisición evolutiva de topologías neuronales (EANT/EANT2) por Kassahun y Sommer, 2005[17] / Siebel y Sommer, 2007[18] | Directo e indirecto, potencialmente embriogénico (codificación genética común)[6] | Programación evolutiva/Estrategias evolutivas | Estructura y parámetros (por separado, complejización) |
| Neuroevolución con restricciones interactivas (ICONE) por Rempis, 2012.[19] | Directo, incluye máscaras de restricción para limitar la búsqueda a topologías/variedades de parámetros específicas. | Algoritmo evolutivo. Utiliza máscaras de restricción para reducir drásticamente el espacio de búsqueda mediante el aprovechamiento del conocimiento del dominio. | Estructura y parámetros (por separado, complejización) |
| Red neuronal Deus Ex (DXNN) por Gene Sher, 2012.[20] | Directo/indirecto, incluye restricciones, ajuste local y permite la evolución para integrar nuevos sensores y actuadores. | Algoritmo memético. Evoluciona la estructura de la red y los parámetros en diferentes escalas de tiempo. | Estructura y parámetros (por separado, complejización) |
| Neuroevolución con restricciones interactivas (ICONE) por Rempis, 2012.[21] | Directo, incluye máscaras de restricción para limitar la búsqueda a topologías/manifolds de parámetros específicos. | Algoritmo evolutivo. Utiliza máscaras de restricción para reducir drásticamente el espacio de búsqueda mediante el aprovechamiento del conocimiento del dominio. | Estructura y parámetros (por separado, complejización, interactivo) |
| Red neuronal Deus Ex (DXNN) por Gene Sher, 2012.[22] | 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, complejización, interactivo) |
| Arquitectura de neuroevolución unificada con diversidad espectral (SUNA) por Danilo Vasconcellos Vargas, Junichi Murata[23][24](Descargar código) | Directo, introduce la Representación Neural Unificada (representación que integra la mayoría de las características de las redes neuronales de la bibliografía). | Algoritmo genético con un mecanismo de preservación de la diversidad denominado «diversidad espectral», que se adapta bien al tamaño de los cromosomas, es independiente del problema y se centra 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 novedad de la población. | Estructura y parámetros (mixto, complejización y simplificación) |
| Modular Agent-Based Evolver (MABE) de Clifford Bohm, Arend Hintze y otros.[25](Descargar código) | Codificación directa o indirecta de redes de Markov, redes neuronales, programación genética y otros controladores personalizables de forma arbitraria. | 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 permiten la evolución de la morfología y la selección sexual, entre otros. |
| Fast-DENSER, de Assunção et al.[26] y otros.[27][28] | Indirecta | Evolución gramatical (evolución gramatical estructurada dinámica)[29] | Estructura y optimizador utilizados para el entrenamiento. |
Véase también
Referencias
- ↑ Stanley, Kenneth O. (2017-07-13). "Neuroevolution: A different kind of deep learning". O'Reilly Media. Consultado 2017-09-04.
- ↑ Risi, Sebastian; Togelius, Julian (2017). "Neuroevolution in Games: State of the Art and Open Challenges". IEEE Transactions on Computational Intelligence and AI in Games. 9: 25–41. arXiv:1410.7326. doi:10.1109/TCIAIG.2015.2494596. S2CID 11245845.
- ↑ Togelius, Julian; Schaul, Tom; Schmidhuber, Jürgen; Gomez, Faustino (2008). "Countering Poisonous Inputs with Memetic Neuroevolution". Parallel Problem Solving from Nature – PPSN X. Lecture Notes in Computer Science. Vol. 5199. pp. 610–619. doi:10.1007/978-3-540-87700-4_61. ISBN 978-3-540-87699-1.
- ↑ Hutson, Matthew (11/01/2018). "Artificial intelligence can 'evolve' to solve problems". Science. doi:10.1126/science.aas9715.
- ↑ Whitelam, Stephen; Selin, Viktor; Park, Sang-Won; Tamblyn, Isaac (2/11/2021). "Correspondence between neuroevolution and gradient descent". Nature Communications. 12 (1): 6317. arXiv:2008.06643. Bibcode:2021NatCo..12.6317W. doi:10.1038/s41467-021-26568-2. PMC 8563972. PMID 34728632.
- ↑ a b c Kassahun, Yohannes; Sommer, Gerald; Edgington, Mark; Metzen, Jan Hendrik; Kirchner, Frank (2007), "Common genetic encoding for both direct and indirect encodings of networks", Genetic and Evolutionary Computation Conference, ACM Press, pp. 1029–1036, CiteSeerX 10.1.1.159.70
- ↑ a b Gauci, Stanley (2007), "Generating Large-Scale Neural Networks Through Discovering Geometric Regularities" (PDF), Genetic and Evolutionary Computation Conference, New York, NY: ACM
- ↑ a b Gruau, Frédéric; I, L'universite Claude Bernard-lyon; Doctorat, Of A. Diplome De; Demongeot, M. Jacques; Cosnard, Examinators M. Michel; Mazoyer, M. Jacques; Peretto, M. Pierre; Whitley, M. Darell (1994). Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm. CiteSeerX 10.1.1.29.5939
- ↑ Clune, J.; Stanley, Kenneth O.; Pennock, R. T.; Ofria, C. (June 2011). "On the Performance of Indirect Encoding Across the Continuum of Regularity". IEEE Transactions on Evolutionary Computation. 15 (3): 346–367. CiteSeerX 10.1.1.375.6731. doi:10.1109/TEVC.2010.2104157. ISSN 1089-778X. S2CID 3008628.
- ↑ a b Risi, Sebastian; Stanley, Kenneth O. (October 2012). "An Enhanced Hypercube-Based Encoding for Evolving the Placement, Density, and Connectivity of Neurons". Artificial Life. 18 (4): 331–363. doi:10.1162/ARTL_a_00071. PMID 22938563. S2CID 3256786.
- ↑ a b Stanley, Kenneth O.; Miikkulainen, Risto (Abril 2003). "A Taxonomy for Artificial Embryogeny". Artificial Life. 9 (2): 93–130. doi:10.1162/106454603322221487. PMID 12906725. S2CID 2124332.
- ↑ Ronald, Edmund; Schoenauer, Marzo (1994), "Genetic Lander: An experiment in accurate neuro-genetic control", PPSN III 1994 Parallel Programming Solving from Nature, pp. 452–461, CiteSeerX 10.1.1.56.3139
- ↑ Angeline, P.J.; Saunders, G.M.; Pollack, J.B. (Enero 1994). "An evolutionary algorithm that constructs recurrent neural networks". IEEE Transactions on Neural Networks. 5 (1): 54–65. CiteSeerX 10.1.1.64.1853. doi:10.1109/72.265960. PMID 18267779. S2CID 44767.
- ↑ Yao, X.; Liu, Y. (Mayo 1997). "A new evolutionary system for evolving artificial neural networks". IEEE Transactions on Neural Networks. 8 (3): 694–713. doi:10.1109/72.572107. PMID 18255671.
- ↑ Stanley, Kenneth O.; Bryant, Bobby D.; Miikkulainen, Risto (Diciembre 2005). "Real-Time Neuroevolution in the NERO Video Game" (PDF).
- ↑ Stanley, Kenneth O.; Miikkulainen, Risto (Junio 2002). "Evolving Neural Networks through Augmenting Topologies". Evolutionary Computation. 10 (2): 99–127. CiteSeerX 10.1.1.638.3910. doi:10.1162/106365602320169811. PMID 12180173. S2CID 498161.
- ↑ Kassahun, Yohannes; Sommer, Gerald (Abril 2005), "Efficient reinforcement learning through evolutionary acquisition of neural topologies" (PDF), 13th European Symposium on Artificial Neural Networks, Bruges, Belgium, pp. 259–266
- ↑ Siebel, Nils T.; Sommer, Gerald (17 Octobre 2007). "Evolutionary reinforcement learning of artificial neural networks". International Journal of Hybrid Intelligent Systems. 4 (3): 171–183. doi:10.3233/his-2007-4304.
- ↑ Rempis, Christian Wilhelm (2012). Evolving Complex Neuro-Controllers with Interactively Constrained Neuro-Evolution (Thesis).
- ↑ Sher, Gene I. (2013). Handbook of Neuroevolution Through Erlang. doi:10.1007/978-1-4614-4463-3. ISBN 978-1-4614-4462-6. S2CID 21777855.
- ↑ Vargas, Danilo Vasconcellos; Murata, Junichi (2019). "Spectrum-Diverse Neuroevolution With Unified Neural Models". IEEE Transactions on Neural Networks and Learning Systems. 28 (8): 1759–1773. arXiv:1902.06703. Bibcode:2019arXiv190206703V. doi:10.1109/TNNLS.2016.2551748. PMID 28113564. S2CID 206757620.
- ↑ Edlund, Jeffrey; Chaumont, Nicolas; Hintze, Arend; Koch, Christof; Tononi, Giulio; Adami, Christoph (2011). "Integrated Information Increases with Fitness in the Evolution of Animats". PLOS Computational Biology. 7 (10): e1002236. arXiv:1103.1791. Bibcode:2011PLSCB...7E2236E. doi:10.1371/journal.pcbi.1002236. PMC 3197648. PMID 22028639.
- ↑ Rostami, Shahin; Neri, Ferrante (Junio 2017). "A fast hypervolume driven selection mechanism for many-objective optimisation problems". Swarm and Evolutionary Computation. 34: 50–67. doi:10.1016/j.swevo.2016.12.002. hdl:2086/13102.
- ↑ Shenfield, Alex; Rostami, Shahin (2017). "Multi-objective evolution of artificial neural networks in multi-class medical diagnosis problems with class imbalance" (PDF). 2017 IEEE Conference on Computational Intelligence in Bioinformatics and Computational Biology (CIBCB). pp. 1–8. doi:10.1109/CIBCB.2017.8058553. ISBN 978-1-4673-8988-4. S2CID 22674515.
- ↑ Di Biasi, Luigi; De Marco, Fabiola; Auriemma Citarella, Alessia; Barra, Paola; Piotto Piotto, Stefano; Tortora, Genoveffa (2023). "Hybrid Approach for the Design of CNNS Using Genetic Algorithms for Melanoma Classification". In Rousseau, Jean-Jacques; Kapralos, Bill (eds.). Pattern Recognition, Computer Vision, and Image Processing. ICPR 2022 International Workshops and Challenges. Lecture Notes in Computer Science. Vol. 13643. Cham: Springer Nature Switzerland. pp. 514–528. doi:10.1007/978-3-031-37660-3_36. ISBN 978-3-031-37660-3
- ↑ Assunção, Filipe; Lourenço, Nuno; Ribeiro, Bernardete; Machado, Penousal (June 2021). "Fast-DENSER: Fast Deep Evolutionary Network Structured Representation". SoftwareX. 14: 100694. Bibcode:2021SoftX..1400694A. doi:10.1016/j.softx.2021.100694. hdl:10316/100856.
- ↑ Vinhas, Adriano; Correia, João; Machado, Penousal (2024-06-20), Towards evolution of Deep Neural Networks through contrastive Self-Supervised learning, arXiv:2406.14525
- ↑ Cortês, Gabriel; Lourenço, Nuno; Machado, Penousal (2024), Smith, Stephen; Correia, João; Cintrano, Christian (eds.), "Towards Physical Plausibility in Neuroevolution Systems", Applications of Evolutionary Computation, vol. 14635, Cham: Springer Nature Switzerland, pp. 76–90, doi:10.1007/978-3-031-56855-8_5, ISBN 978-3-031-56854-1, Consultado 2024-06-21
- ↑ Lourenço, Nuno; Assunção, Filipe; Pereira, Francisco B.; Costa, Ernesto; Machado, Penousal (2018), Ryan, Conor; O'Neill, Michael; Collins, JJ (eds.), "Structured Grammatical Evolution: A Dynamic Approach", Handbook of Grammatical Evolution, Cham: Springer International Publishing, pp. 137–161, doi:10.1007/978-3-319-78717-6_6, ISBN 978-3-319-78717-6, Consultado 2024-06-21
Enlaces externos
- "Evolution 101: Neuroevolution | BEACON". beacon-center.org. Recuperado 2018-01-14.
- "NNRG Areas - Neuroevolution". nn.cs.utexas.edu. University of Texas. Recuperado 2018-01-14. (contiene documentos descargables sobre NEAT y sus aplicaciones)
- "SharpNEAT Neuroevolution Framework". sharpneat.sourceforge.net. Recuperado 2018-01-14. Maduro proyecto de neuroevolución de código abierto implementado en C#/.Net.
- ANNEvolve is an Open Source AI Research Project (Código fuente descargable en C y Python con un tutorial y diversos escritos e ilustraciones)
- "Nils T Siebel – EANT2 – Evolutionary Reinforcement Learning of Neural Networks". siebel-research.de. Recuperado 2018-01-14. Página web sobre aprendizaje evolutivo con EANT/EANT2]. (información y artículos sobre EANT/EANT2 con aplicaciones al aprendizaje de robots)
- NERD Toolkit. The Neurodynamics and Evolutionary Robotics Development Toolkit. Colección de software libre y de código abierto para diversos experimentos sobre neurocontrol y neuroevolución. Incluye un simulador programable, varios algoritmos de neuroevolución (por ejemplo, ICONE), soporte para clústeres, diseño visual de redes y herramientas de análisis.
- "CorticalComputer (Gene)". GitHub. Recuperado el 2018-01-14. Código fuente del sistema neuroevolutivo DXNN.
- "ES-HyperNEAT Users Page". eplex.cs.ucf.edu. Recuperado 2018-01-14.