Neuroevoluce rozšiřujících topologií - Neuroevolution of augmenting topologies - Wikipedia
Neuroevoluce rozšiřujících topologií (ELEGANTNÍ) je genetický algoritmus (GA) pro generování vyvíjejících se umělé neuronové sítě (A neuroevoluce technika), kterou vyvinul Ken Stanley v roce 2002, zatímco v Texaská univerzita v Austinu. Mění parametry vážení i struktury sítí a pokouší se najít rovnováhu mezi vhodností vyvinutých řešení a jejich rozmanitostí. Je založen na použití tří klíčových technik: sledování genů se značkami historie umožňujícími křížení mezi topologiemi, aplikace speciace (evoluce druhů) k zachování inovací a vývoj topologií postupně z jednoduchých počátečních struktur („komplexifikace“).
Výkon
U jednoduchých řídicích úkolů se algoritmus NEAT často dostává k efektivním sítím rychleji než jiné současné neuroevoluční techniky a posilování učení metody.[1][2]
Algoritmus
Experiment s člověkem si tradičně vybírá topologii neuronové sítě a efektivní hodnoty hmotnosti připojení se naučí tréninkovým postupem. Tím se získá situace, kdy může být nezbytný proces pokusu a omylu k určení vhodné topologie. NEAT je příkladem umělé neuronové sítě vyvíjející topologii a váhu (TWEANN), která se pokouší současně naučit hodnoty hmotnosti a vhodnou topologii pro neuronovou síť.
Aby bylo možné kódovat síť do fenotypu pro GA, NEAT používá schéma přímého kódování, což znamená, že každé spojení a neuron jsou výslovně zastoupeny. To je na rozdíl od schémat nepřímého kódování, která definují pravidla, která umožňují konstrukci sítě, aniž by explicitně představovala každé připojení, a neuron umožňující kompaktnější reprezentaci.
Přístup NEAT začíná a perceptron - jako dopředná síť pouze vstupních neuronů a výstupních neuronů. Jak evoluce postupuje prostřednictvím samostatných kroků, složitost topologie sítě může růst, a to buď vložením nového neuronu do cesty připojení, nebo vytvořením nového spojení mezi (dříve nespojenými) neurony.
Konkurenční konvence
Problém konkurenčních konvencí nastává, když existuje více než jeden způsob reprezentace informací ve fenotypu. Například pokud genom obsahuje neurony A, B a C a je reprezentován [ABC], pokud je tento genom křížen se stejným genomem (pokud jde o funkčnost), ale objednané křížení [CBA] přinese dětem, kterým chybí informace ([ABA] nebo [CBC]), ve skutečnosti 1 / V tomto příkladu byly ztraceny 3 informace. NEAT tento problém řeší sledováním historie genů pomocí globálního inovačního čísla, které se zvyšuje s přidáváním nových genů. Když přidáte nový gen, globální inovační číslo se zvýší a přiřadí se tomuto genu. Čím vyšší je tedy počet, tím nověji byl gen přidán. Pro konkrétní generaci, pokud se identická mutace vyskytne ve více než jednom genomu, je jim dáno stejné číslo, kromě toho však počet mutací zůstane nezměněn po neomezenou dobu.
Tato čísla inovací umožňují NEAT srovnat geny, které lze navzájem křížit.[1]
Implementace
Původní implementace Kena Stanleyho je zveřejněna pod GPL. Integruje se do Lstivost GNU systém tlumočník. Tato implementace NEAT je považována za konvenční základní výchozí bod pro implementaci algoritmu NEAT.
Rozšíření
rtNEAT
V roce 2003 navrhl Stanley rozšíření NEAT, které umožňuje evoluci probíhat v reálném čase, nikoli prostřednictvím iterace generací, jak je používá většina genetických algoritmů. Základní myšlenkou je podrobit populaci neustálému hodnocení pomocí „celoživotního“ časovače na každého jednotlivce v populaci. Když vyprší časovač sítě, prozkoumá se její aktuální fitness opatření, aby se zjistilo, zda spadá blízko dna populace, a pokud ano, je vyřazeno a nahrazeno novou sítí od dvou rodičů s vysokou kondicí. Pro novou síť je nastaven časovač, který je umístěn do základního souboru pro účast na průběžných hodnoceních.
První aplikací rtNEAT je videohra s názvem Neuro-Evolving Robotic Operatives nebo NERO. V první fázi hry jednotliví hráči nasazují roboty na „pískovišti“ a trénují je na požadovanou taktickou doktrínu. Jakmile byla vycvičena kolekce robotů, druhá fáze hry umožňuje hráčům postavit své roboty v boji proti robotům vycvičeným jiným hráčem, aby zjistili, jak dobře jejich tréninkové režimy připravily své roboty na bitvu.
Fázované prořezávání
Rozšíření NEAT od Ken Stanley, vyvinuté Colinem Greenem, přidává periodické prořezávání síťových topologií kandidátských řešení během procesu evoluce. Tento dodatek se zabýval obavou, že neomezený automatizovaný růst by vytvořil zbytečnou strukturu.
HyperNEAT
HyperNEAT se specializuje na vývoj struktur ve velkém měřítku. Původně byl založen na CPPN teorie a je aktivní oblastí výzkumu.
cgNEAT
Content-Generating NEAT (cgNEAT) vyvíjí vlastní obsah videohry na základě preferencí uživatele. První videohra, která implementuje cgNEAT, je Galactic Arms Race, vesmírná střílečka, ve které se vyvíjejí jedinečné částicové zbraně na základě statistik využití hráčů.[3] Každá zbraň částicového systému ve hře je ovládána vyvinutým CPPN, podobně jako evoluční technika v NEAT částice interaktivní umělecký program.
odNEAT
odNEAT je online a decentralizovaná verze NEAT určená pro systémy s více roboty.[4] odNEAT se během provádění úkolu provádí přímo na palubních robotech, aby neustále optimalizovali parametry a topologii řadičů založených na umělé neuronové síti. Tímto způsobem mají roboti provádějící odNEAT potenciál přizpůsobit se měnícím se podmínkám a naučit se nové chování při plnění svých úkolů. Online evoluční proces je implementován podle fyzicky distribuovaného modelu ostrova. Každý robot optimalizuje interní populaci kandidátských řešení (variace uvnitř ostrova) a dva nebo více robotů si vymění kandidátní řešení, když se setkají (migrace mezi ostrovy). Tímto způsobem je každý robot potenciálně soběstačný a evoluční proces vydělává na výměně ovladačů mezi více roboty pro rychlejší syntézu účinných ovladačů.
Viz také
Reference
- ^ A b Kenneth O. Stanley a Risto Miikkulainen (2002). "Vývoj neuronových sítí prostřednictvím rozšiřujících topologií". Evoluční výpočet 10 (2): 99-127
- ^ Matthew E. Taylor, Shimon Whiteson a Peter Stone (2006). "Porovnání metod evolučních a časových rozdílů v oblasti učení výztuže". GECCO 2006: Sborník konferencí o genetických a evolučních výpočtech.
- ^ Erin J. Hastings, Ratan K. Guha a Kenneth O. Stanley (2009). "Automatické generování obsahu ve videohře závodu Galactic Arms". Transakce IEEE o výpočetní inteligenci a AI ve hrách, svazek 4, číslo 1, strany 245-263, New York: IEEE Press, 2009.
- ^ Silva, Fernando; Urbano, Paulo; Correia, Luís; Christensen, Anders Lyhne (2015-09-15). "odNEAT: Algoritmus pro decentralizovanou online evoluci robotických ovladačů". Evoluční výpočet. 23 (3): 421–449. doi:10.1162 / evco_a_00141. hdl:10071/10504. PMID 25478664. S2CID 20815070.
Bibliografie
- Kenneth O. Stanley a Risto Miikkulainen (2002). „Vyvíjení neuronových sítí prostřednictvím rozšiřujících topologií“ (PDF). Evoluční výpočet. 10 (2): 99–127. CiteSeerX 10.1.1.638.3910. doi:10.1162/106365602320169811. PMID 12180173. S2CID 498161.
- Kenneth O. Stanley a Risto Miikkulainen (2002). „Efektivní učení výztuže prostřednictvím vývoje topologií neuronových sítí“ (PDF). Sborník konferencí o genetických a evolučních výpočtech (GECCO-2002).
- Kenneth O. Stanley; Bobby D. Bryant a Risto Miikkulainen (2003). „Vyvíjení adaptivních neuronových sítí s adaptivními synapsi a bez nich“ (PDF). Sborník příspěvků z kongresu IEEE 2003 o evolučních výpočtech (CEC-2003).
- Colin Green (2004). „Fázované vyhledávání s NEAT: střídání složitosti a zjednodušení“. Citovat deník vyžaduje
| deník =
(Pomoc) - Kenneth O. Stanley; Ryan Cornelius; Risto Miikkulainen; Thomas D’Silva & Aliza Gold (2005). „Učení v reálném čase ve videohře NERO“ (PDF). Sborník přednášek z konference Umělá inteligence a interaktivní digitální zábava (AIIDE 2005).
- Matthew E. Taylor; Shimon Whiteson a Peter Stone (2006). „Porovnání metod evolučních a časových rozdílů v doméně učení výztuže“ (PDF). GECCO 2006: Sborník konferencí o genetických a evolučních výpočtech.
- Shimon Whiteson a Daniel Whiteson (2007). „Stochastická optimalizace pro výběr kolize ve fyzice vysokých energií“ (PDF). IAAI 2007: Sborník z devatenáctého ročníku konference o inovativních aplikacích umělé inteligence. arXiv:hep-ex / 0607012. Bibcode:2006hep.ex .... 7012W. Archivovány od originál (PDF) dne 2015-10-28.
Implementace
- Stanleyho originál, mtNEAT a rtNEAT pro C ++
- ESD, JNEAT, NEAT 4J, ANJI pro Jáva
- SharpNEAT pro C#
- MultiNEAT a mtNEAT pro C ++ a Krajta
- čistý python pro Krajta
- Udržovaná vidlice čistý python pro Krajta
- Encog pro Jáva a C#
- hrášek pro Krajta
- RubyNEAT pro Rubín
- neatjs pro Javascript
- Ne přesná implementace, ale Neataptic pro Javascript
- Synaptický pro Javascript
- Čistý-Ex pro Elixír
externí odkazy
- NEAT Domovská stránka
- „Evolutionary Complexity Research Group at UCF“ - současná výzkumná skupina Kena Stanleye
- NERO: Neuro-Evolving Robotic Operatives - příklad aplikace rtNEAT
- GAR: Galactic Arms Race - příklad aplikace cgNEAT
- „PicBreeder.org“ - Online, společné umění vytvořené CPPN se vyvinulo s NEAT.
- „EndlessForms.com“ - 3D verze Picbreeder, kde interaktivně vyvíjíte 3D objekty, které jsou kódovány pomocí CPPN a vyvíjeny pomocí NEAT.
- BEACON Blog: Co je neuroevoluce?
- MarI / O - strojové učení pro videohry, a Youtube video demonstrující implementaci NEAT učení se hrát Svět Super Mario
- „GekkoQuant.com“ - Vizuální výuková řada na NEAT, včetně řešení problému klasického vyvažování pólů pomocí NEAT v R
- „Umělá inteligence se učí úroveň Mario za pouhých 34 pokusů NEAT vysvětleno prostřednictvím programu MarI / O