Neuroevolúcia (NE) je technika umelej inteligencie, ktorá využíva evolučné algoritmy na generovanie umelých neurónových sietí, parametrov, topológie a pravidiel.Stanley, Kenneth O. (2017-07-13). "Neuroevolution: A different kind of deep learning". O'Reilly Media. Retrieved 2017-09-04. Inšpiruje sa vývojom biologických nervových systémov v prírode. V porovnaní s inými metódami učenia neurónovej siete je neuroevolúcia veľmi všeobecná. Umožňuje učenie bez explicitných cieľov, s malou spätnou väzbou a s ľubovoľnými neurónovými modelmi a sieťovými štruktúrami. Neuroevolúcia je efektívny prístup k riešeniu problémov spätnoväzobného učenia, čo môže byť v kontraste s konvenčnými technikami hlbokého učenia využívajúce klesajúci gradient na neurónovej sieti s pevnou topológiou. Najbežnejšie je aplikovaná v evolučnej robotike, v hraní hier a v umelom živote. Hlavnou výhodou je, že neuroevolúcia sa dá aplikovať viac zo široka ako riadené učebné algoritmy, ktoré vyžadujú osnovu správnych párov vstup-výstup. Neuroevolúcia naopak vyžaduje iba mieru výkonu siete v úlohe. Napríklad, výsledok hry (či hráč vyhral alebo prehral) môže byť ľahko meraný bez poskytnutia príkladov požadovaných stratégií.
Prehľad Neuroevolučný prístup k umelej inteligencii je motivovaný vývojom biologických nervových systémov. Neuroevolúcia aplikuje abstrakcie prirodzenej evolúcie (tzv. evolučné algoritmy) na konštrukciu abstrakcií biologických neurónových sietí (tzv. umelých neurónových sietí). Celkový cieľ je vyvinúť komplexné umelé neurónové siete schopné inteligentného správania. Výsledkom je, že na neuroevolúciu sa dá pozerať ako na prostriedok skúmania vývoja inteligencie v prírode ako aj na praktickú metódu navrhovania umelých neurónových sietí na vykonávanie požadovaných úloh.
Podobne ako pri prirodzenom výbere v prírode, ktorý je poháňaný iba spätnou väzbou z reprodukčného úspechu, neuroevolúcia sa riadi určitou mierou celkového výkonu. Zatiaľ čo najbežnejšie algoritmy umelého učenia neurónovej siete fungujú prostredníctvom kontrolovaného učenia a teda závisia od označeného korpusu párov vstup-výstup, hlavnou výhodou neuroevolúcie je to, že umožňuje učenie aj keď nie sú k dispozícii korpusy, iba na základe malej spätnej väzby. Napríklad, pri hraní hier, riadení vozidla, či v robotike nie sú v každom časovom okamihu vždy známe optimálne činnosti, je možné len pozorovať ako dobre fungovala postupnosť krokov, napr., čo má za následok výhru alebo prehru v hre. Neuroevolúcia umožňuje nájsť neurónovú sieť, ktorá optimalizuje správanie dané iba malou spätnou väzbou, bez priamych informácií o tom, čo presne by mala robiť.
Naviac, neuroevolúcia sa zovšeobecňuje na širokú škálu sieťových architektúr a neurónových modelov. Jej uplatnenie vyžaduje iba to, aby sa výkonnosť sietí mohla hodnotiť v priebehu času a aby sa správanie sietí mohlo meniť v priebehu evolúcie. Zatiaľ čo sa väčšina metód neurónového učenia zameriava iba na modifikáciu silných stránok neurónových spojení (napr. na váhu ich prepojení), neuroevolúcia môže dodatočne optimalizovať ďalšie parametre ako napríklad štruktúru siete (napr. pridávanie neurónov alebo spojení), typ výpočtu vykonávaného jednotlivými neurónmi a aj pravidlá učenia, ktoré upravujú sieť počas hodnotenia. Je zaujímavé, že integrácia takýchto pravidiel celoživotného vzdelávania (napr. Hebbská alebo neuromodulovaná plasticita) umožňuje vyvinutým neurónovým sieťam učiť sa zo skúseností. Týmto spôsobom môže neuroevolúcia uľahčiť skúmanie biologickej adaptácie na viacerých časových mierkach.
Najbežnejšie aplikácie sú v spätnoväzobnom učení, evolučnej robotike a umelom živote. Vzorové aplikácie zahŕňajú vývoj správania v stolných hrách a videohrách, kontrolu pohyblivých robotov a skúmanie vývoja biologicky relevantného správania.
Základný algoritmus V neuroevolúcii sa typicky vyvíja populácia genetického kódovania neurónových sietí s cieľom nájsť sieť, ktorá rieši danú úlohu. Väčšina metód sa riadi obvyklou generačnou a testovacou slučkou evolučných algoritmov. Každé kódovanie v populácii (genotyp) sa vyberie postupne a dekóduje sa do zodpovedajúcej neurónovej siete (fenotyp). Táto sieť sa potom použije v úlohe a meria sa jej výkon v priebehu času, čím sa získa vhodná hodnota pre zodpovedajúci genotyp. Po vyhodnotení všetkých členov populácie sa genetické operátory použijú na vytvorenie ďalšej generácie populácie. Tie kódovania, ktoré sú najvhodnejšie sa zmutujú a vzájomne sa prekrížia. Výsledný potomok následne nahradí genotypy s najnižšou vhodnosťou v populácii. Tento proces preto predstavuje inteligentné paralelné hľadanie lepších genotypov a pokračuje až kým sa nenájde dostatočne vhodná sieť.
Existuje niekoľko metód pre vývoj neurónových sietí v závislosti od toho ako sú siete kódované. Najpriamejšie kódovanie, niekedy nazývané konvenčná neuroevolúcia (po angl. conventional neuroevolution - CNE), sa vytvára zreťazením číselných hodnôt pre sieťové váhy. Toto kódovanie umožňuje vývoju optimalizovať váhy architektúry pevnej neurónovej siete, čo je prístup, ktorý sa ľahko implementuje a je praktický v mnohých doménach. Avšak, prístup CNE môže konvergovať do falošného lokálneho optima, vyžaduje, aby si experimentátori vybrali vhodne veľkú a štrukturovanú topológiu siete a zle škáluje zložitejšie problémy, pretože počet parametrov, ktoré sa vyvíjajú rastie lineárne alebo kvadraticky s veľkosťou siete.Schaffer, J. David; Whitley, Darrell and Eshelman, Larry J. (1992). Combinations of genetic algorithms and neural networks. In: COGANN-92, pp. 1-37.Yao, Xin (1999). Evolving artificial neural networks. Proceedings of the IEEE 87:9: 1423-1447. doi:10.1109/5.784219.
Na zmiernenie týchto problémov boli navrhnuté sofistikovanejšie kódovania. Jeden z prístupov je zvážiť vývoj na úrovni komponentov riešenia namiesto úplných riešení.Moriarty, David E. and Miikkulainen, Risto (1995). Discovering complex Othello strategies through evolutionary neural networks. Connection Science 7(3): 195-210. doi:10.1080/09540099550039228. To znamená, že namiesto populácie kompletných neurónových sietí sa vyvinula populácia sieťových fragmentov, neurónov alebo váh spojov. Každý jednotlivec je hodnotený ako súčasť úplnej siete a jeho vhodnosť odráža ako dobre spolupracuje s ostatnými jednotlivcami na konkrétnych riešeniach. Týmto spôsobom je zložitý problém pri hľadaní siete riešení rozdelený do niekoľkých menších problémov.Potter, Mitchell A. and De Jong, Kenneth A. (2000). Cooperative coevolution: An architecture for evolving coadapted subcomponents. Evolutionary Computation 8(1): 1-29. doi:10.1162/106365600568086.
Ďalším prístupom je rozvíjať topológiu siete pridaním váh. Výber vhodných topológií je pre experimentátorov zložitý, ale môže mať veľký vplyv na výsledky experimentu.Angeline, Peter J. and Saunders, Gregory M. (1994). An evolutionary algorithm that constructs recurrent neural networks. IEEE Transactions on Neural Networks 5: 54-65. doi:10.1109/72.265960. Navyše, vyvíjajúce sa topológie môžu dosahovať lepšiu výkonnosť ako vyvíjajúce sa váhy. Jedným potenciálne výhodným prístupom je začať s vývojom jednoduchých riešení a postupne ich komplikovať. Takýto proces prebieha v biológii a vo všeobecnosti predstavuje účinný prístup v strojovom učení.
Všetky vyššie uvedené metódy mapujú genetické kódovanie priamo pre príslušnú neurónovú sieť. Každá časť kódovania zodpovedá jednej časti siete a naopak. Nepriame kódovanie však špecifikuje proces, prostredníctvom ktorého je sieť budovaná ako napríklad delenie buniek, priestorové vkladanie alebo generovanie prostredníctvom rozširovania gramatických pravidiel. Takéto kódovanie môže byť vysoko kompaktné (veľké množstvo pripojení môže byť kódovaných s niekoľkými parametrami) a môže tiež využívať modulárne riešenia. Modularita znamená, že rovnaké štruktúry sa môžu opakovať s malými modifikáciami, ako sa často vyskytuje v biológii. Priblíženie neuroevolúcie úrovni biologickej komplexnosti (napr. miliónom alebo miliardám neurónov) pravdepodobne závisí od vývoja sofistikovanejších nepriamych kódovaní a preto sú dôležité pre budúci výskum.
Priame a nepriame kódovanie Evolučné algoritmy pracujú na populácii genotypov (označovaných aj ako genómy). V neuroevolúcii je genotyp mapovaný na fenotyp neurónovej siete, ktorý je hodnotený na nejakej úlohe, aby sa odvodila jeho fitness.
V schémach priameho kódovania genotyp priamo mapuje fenotyp. To znamená, že každý neurón a spojenie v neurónovej sieti je priamo a explicitne špecifikované v genotype. Naopak, v schémach nepriameho kódovania genotyp nepriamo špecifikuje ako by sa mala táto sieť generovať.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.705
Nepriame kódovanie sa často používa na dosiahnutie niekoľkých cieľov:Gauci, Stanley (2007), "Generating Large-Scale Neural Networks Through Discovering Geometric Regularities", Genetic and Evolutionary Computation Conference, New York, NY: ACMGruau, 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.Risi, Sebastian; Stanley, Kenneth O. (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.
modularita a ďalšie zákonitosti, kompresia fenotypu na menší genotyp, čím sa poskytne menší priestor na vyhľadávanie, mapovanie vyhľadávacieho priestoru (genómu) do problémovej domény.
Taxonómia embryogénnych systémov pre nepriame kódovanie Nepriame kódovanie, ktoré využíva umelé embryogenézy (tiež známe ako umelý vývoj), bolo kategorizované podľa gramatického prístupu a podľa prístupu bunkovej chémie.Stanley, Kenneth O.; Miikkulainen, Risto (2003). "A Taxonomy for Artificial Embryogeny". Artificial Life. 9 (2): 93–130. doi:10.1162/106454603322221487. PMID 12906725. Prvý prístup vyvíja súbory pravidiel vo forme gramatických systémov prepisovania. Druhý prístup sa pokúša napodobniť ako sa v biológii objavujú fyzikálne štruktúry prostredníctvom génovej expresie. Systémy nepriameho kódovania často využívajú aspekty oboch prístupov.
Stanley a Miikkulainen navrhujú taxonómiu pre embryogénne systémy, ktorá má odrážať ich základné vlastnosti. Taxonómia identifikuje päť súvislých rozmerov, pozdĺž ktorých je možné umiestniť akýkoľvek embryogénny systém:
Osud buniek (neurónov): konečná charakteristika a úloha bunky v rozvinutom fenotype. Táto dimenzia počíta počet metód použitých na určenie osudu bunky. Zameranie: metóda, ktorou sú spojenia nasmerované zo zdrojových buniek na cieľové bunky. Toto sa pohybuje od špecifického zamerania (zdroj a cieľ sú explicitne identifikované) po relatívne zameranie (na základe vzájomných umiestnení buniek). Heterochrónia: načasovanie a usporiadanie udalostí počas embryogenézy. Počíta počet mechanizmov na zmenu načasovania udalostí. Kanalizácia: ako tolerantný je genóm k mutáciám (krehkosť). Rozsah od vyžadovania presných genotypových pokynov po vysokú toleranciu nepresnej mutácie. Zložitosť: schopnosť systému (vrátane vývojového algoritmu a mapovania genotypu na fenotyp) umožniť komplexifikáciu genómu (a teda fenotypu) v čase. Rozsah od povolenia genómov iba s pevnou veľkosťou po povolenie genómov s veľmi premenlivou dĺžkou.
Aplikácie