# Neuroevolució

La neuroevolució, o neuro-evolució, és una forma d'intel·ligència artificial que utilitza algorismes evolutius per generar xarxes neuronals artificials (ANN), paràmetres i regles. S'aplica amb més freqüència a la vida artificial, jocs generals i robòtica evolutiva. El principal avantatge és que la neuroevolució es pot aplicar més àmpliament que els algorismes d'aprenentatge supervisat, que requereixen un pla d'estudis de parells d'entrada-sortida correctes. En canvi, la neuroevolució només requereix una mesura del rendiment d'una xarxa en una tasca. Per exemple, el resultat d'un joc (és a dir, si un jugador va guanyar o va perdre) es pot mesurar fàcilment sense proporcionar exemples etiquetats d'estratègies desitjades. La neuroevolució s'utilitza habitualment com a part del paradigma d'aprenentatge de reforç, i es pot contrastar amb les tècniques convencionals d'aprenentatge profund que utilitzen el descens de gradient en una xarxa neuronal amb una topologia fixa.

## Característiques

S'han definit molts algorismes de neuroevolució. Una distinció comuna és entre algorismes que evolucionen només la força dels pesos de connexió per a una topologia de xarxa fixa (de vegades anomenada neuroevolució convencional) i algorismes que evolucionen tant la topologia de la xarxa com els seus pesos (anomenats TWEANNs, per a la topologia i l'evolució del pes artificial d'algorismes de xarxes neuronals).
Es pot fer una distinció a part entre els mètodes que desenvolupen l'estructura de les ANN paral·lelament als seus paràmetres (els que apliquen algorismes evolutius estàndard) i els que els desenvolupen per separat (a través d'algorismes memètics).

## Comparació amb el descens en gradient

La majoria de xarxes neuronals utilitzen el descens del gradient en lloc de la neuroevolució. Tanmateix, cap al 2017, els investigadors d'Uber van declarar que havien descobert que els algorismes de neuroevolució estructural senzills eren competitius amb els sofisticats algorismes d'aprenentatge profund de descens de gradients estàndard de la indústria, en part perquè es va trobar que la neuroevolució tenia menys probabilitats de quedar atrapada en els mínims locals. A Science, el periodista Matthew Hutson va especular que part de la raó per la qual la neuroevolució té èxit allà on havia fallat abans es deu a l'augment de la potència computacional disponible als anys 2010.
Es pot demostrar que hi ha una correspondència entre la neuroevolució i el descens del gradient.

## Codificació directa i indirecta

Els algorismes evolutius operen sobre una població de genotips (també anomenats genomes). En la neuroevolució, un genotip s'assigna a un fenotip de xarxa neuronal que s'avalua en alguna tasca per obtenir la seva aptitud.
En els esquemes de codificació directa, el genotip es mapeja directament amb el fenotip. És a dir, cada neurona i connexió de la xarxa neuronal s'especifica directament i explícitament en el genotip. En canvi, en els esquemes de codificació indirecta, el genotip especifica indirectament com s'ha de generar aquesta xarxa.
Les codificacions indirectes s'utilitzen sovint per aconseguir diversos objectius:
* modularitat i altres regularitats;
* compressió del fenotip a un genotip més petit, proporcionant un espai de cerca més petit;
* mapejar l'espai de cerca (genoma) al domini del problema.

## Exemples

Exemples de mètodes de neuroevolució (els que tenen codificacions directes són necessàriament no embriogènics):
| Mètode | Tipus codificació | Algorisme evolutiu |
| Evolució neurogenètica per E. Ronald, 1994 | Directe | Algorisme genètic |
| Codificació cel·lular (CE) per F. Gruau, 1994 | Indirecte, embriogènic (arbre gramatical amb expressions S) | Programació genètica |
| GNARL d'Angeline et al., 1994 | Directe | Programació evolutiva |
| EPNet de Yao i Liu, 1997 | Directe | Programació evolutiva (combinada amb retropropagació i recuit simulat) |
| NeuroEvolution of Augmenting Topologies (NEAT) per Stanley i Miikkulainen, 2002 | Directe | Algorisme genètic. Rastreja els gens amb marques històriques per permetre l'encreuament entre diferents topologies, protegeix la innovació mitjançant l'especiació. |
| NeuroEvolution of Augmenting Topologies basada en hipercubs (HyperNEAT) per Stanley, D'Ambrosio, Gauci, 2008 | Indirecte, no embriogènic (els patrons espacials generats per una xarxa productora de patrons composicionals (CPPN) dins d'un hipercub s'interpreten com a patrons de connectivitat en un espai de dimensions inferiors) | Algorisme genètic. L'algoritme NEAT (a dalt) s'utilitza per fer evolucionar el CPPN. |
| NeuroEvolution of Augmenting Topologies (ES-HyperNEAT) de Risi, Stanley 2012 | Indirecte, no embriogènic (els patrons espacials generats per una xarxa productora de patrons composicionals (CPPN) dins d'un hipercub s'interpreten com a patrons de connectivitat en un espai de dimensions inferiors) | Algorisme genètic. L'algoritme NEAT (a dalt) s'utilitza per fer evolucionar el CPPN. |
| Adquisició evolutiva de topologies neuronals (EANT/EANT2) per Kassahun i Sommer, 2005 / Siebel i Sommer, 2007 | Directes i indirectes, potencialment embriogèniques (codificació genètica comuna) | Programació evolutiva / Estratègies d'evolució |
| Interactively Constrained Neuro-Evolution (ICONE) de Rempis, 2012 | Direct, inclou màscares de restricció per restringir la cerca a varietats de topologia/paràmetres específiques. | Algorisme evolutiu. Utilitza màscares de restricció per reduir dràsticament l'espai de cerca mitjançant l'explotació del coneixement del domini. |
| Deus Ex Neural Network (DXNN) de Gene Sher, 2012 | Directe/Indirecta, inclou restriccions, sintonització local i permet l'evolució per integrar nous sensors i actuadors. | Algorisme memètic. Evoluciona l'estructura i els paràmetres de la xarxa en diferents escales de temps. |
| Arquitectura de neuroevolució unificada amb diversitat d'espectres (SUNA) de Danilo Vasconcellos Vargas, Junichi Murata (Codi de descàrrega) | Direct, presenta la representació neuronal unificada (representació que integra la majoria de les característiques de la xarxa neuronal de la literatura). | L'algoritme genètic amb un mecanisme de preservació de la diversitat anomenat Spectrum-diversity que s'escala bé amb la mida del cromosoma, és independent del problema i se centra més en l'obtenció de diversitat de comportaments/enfocaments d'alt nivell. Per aconseguir aquesta diversitat s'introdueix el concepte d'espectre cromosòmic i s'utilitza juntament amb un mapa de població novetat. |
| Modular Agent-Based Evolver (MABE) de Clifford Bohm, Arend Hintze i altres. (Codi de descàrrega) | Codificació directa o indirecta de xarxes Markov, xarxes neuronals, programació genètica i altres controladors personalitzables arbitràriament. | Proporciona algorismes evolutius, algorismes de programació genètica i permet algorismes personalitzats, juntament amb l'especificació de restriccions arbitràries. |
| Adaptació de la matriu de covariància amb l'algoritme de quadrícula adaptativa ordenada per hipervolum (CMA-HAGA) de Shahin Rostami i altres. | Direct, inclou una funció d'atavisme que permet que els trets desapareguin i tornin a aparèixer en diferents generacions. | Estratègia d'evolució multiobjectiu amb articulació de preferències (direcció computacional) |

## Referències

* ↑ Risi, Sebastian; Togelius, Julian IEEE Transactions on Computational Intelligence and AI in Games, 9, 2017, pàg. 25–41. arXiv: 1410.7326. DOI: 10.1109/TCIAIG.2015.2494596.
* ↑ Togelius, Julian. «Countering Poisonous Inputs with Memetic Neuroevolution». A: Parallel Problem Solving from Nature – PPSN X (en anglès). 5199, 2008, p. 610–619 (Lecture Notes in Computer Science). DOI 10.1007/978-3-540-87700-4_61. ISBN 978-3-540-87699-1.
* ↑ Hutson, Matthew Science, 11-01-2018. DOI: 10.1126/science.aas9715.
* ↑ Whitelam, Stephen; Selin, Viktor; Park, Sang-Won; Tamblyn, Isaac Nature Communications, 12, 1, 02-11-2021, pàg. 6317. arXiv: 2008.06643. Bibcode: 2021NatCo..12.6317W. DOI: 10.1038/s41467-021-26568-2. PMC: 8563972. PMID: 34728632.
* ↑ Gruau, Frédéric. Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm. (en anglès), 1994.
* ↑ Clune, J.; Stanley, Kenneth O.; Pennock, R. T.; Ofria, C. IEEE Transactions on Evolutionary Computation, 15, 3, 6-2011, pàg. 346–367. DOI: 10.1109/TEVC.2010.2104157. ISSN: 1089-778X.
* ↑ Risi, Sebastian; Stanley, Kenneth O. Artificial Life, 18, 4, 10-2012, pàg. 331–363. DOI: 10.1162/ARTL_a_00071. PMID: 22938563 [Consulta: free].
* ↑ Gruau, Frédéric. Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm. (en anglès), 1994.
* ↑ Angeline, P.J.; Saunders, G.M.; Pollack, J.B. IEEE Transactions on Neural Networks, 5, 1, 1-1994, pàg. 54–65. DOI: 10.1109/72.265960. PMID: 18267779.
* ↑ Yao, X.; Liu, Y. IEEE Transactions on Neural Networks, 8, 3, 5-1997, pàg. 694–713. DOI: 10.1109/72.572107. PMID: 18255671.
* ↑ Stanley, Kenneth O. «Real-Time Neuroevolution in the NERO Video Game» (en anglès), 01-12-2005.
* ↑ Stanley, Kenneth O.; Miikkulainen, Risto Evolutionary Computation, 10, 2, 6-2002, pàg. 99–127. DOI: 10.1162/106365602320169811. PMID: 12180173.
* ↑ Risi, Sebastian; Stanley, Kenneth O. Artificial Life, 18, 4, 10-2012, pàg. 331–363. DOI: 10.1162/ARTL_a_00071. PMID: 22938563 [Consulta: lliure].
* ↑ Siebel, Nils T.; Sommer, Gerald International Journal of Hybrid Intelligent Systems, 4, 3, 17-10-2007, pàg. 171–183. DOI: 10.3233/his-2007-4304.
* ↑ Sher, Gene I. Handbook of Neuroevolution Through Erlang (en anglès), 2013. DOI 10.1007/978-1-4614-4463-3. ISBN 978-1-4614-4462-6.
* ↑ Vargas, Danilo Vasconcellos; Murata, Junichi IEEE Transactions on Neural Networks and Learning Systems, 28, 8, 2019, pàg. 1759–1773. arXiv: 1902.06703. Bibcode: 2019arXiv190206703V. DOI: 10.1109/TNNLS.2016.2551748. PMID: 28113564.
* ↑ Edlund, Jeffrey; Chaumont, Nicolas; Hintze, Arend; Koch, Christof; Tononi, Giulio PLOS Computational Biology, 7, 10, 2011, pàg. e1002236. arXiv: 1103.1791. Bibcode: 2011PLSCB...7E2236E. DOI: 10.1371/journal.pcbi.1002236. PMC: 3197648. PMID: 22028639 [Consulta: free].
* ↑ Rostami, Shahin; Neri, Ferrante Swarm and Evolutionary Computation, 34, 6-2017, pàg. 50–67. DOI: 10.1016/j.swevo.2016.12.002.
* ↑ Shenfield, Alex. «Multi-objective evolution of artificial neural networks in multi-class medical diagnosis problems with class imbalance». A: 2017 IEEE Conference on Computational Intelligence in Bioinformatics and Computational Biology (CIBCB) (en anglès), 2017, p. 1–8. DOI 10.1109/CIBCB.2017.8058553. ISBN 978-1-4673-8988-4.