Neuroevolution av förstärkande topologier

NeuroEvolution of Augmenting Topologies ( NEAT ) är en genetisk algoritm (GA) för generering av utvecklande artificiella neurala nätverk (en neuroevolutionsteknik ) utvecklad av Kenneth Stanley och Risto Miikkulainen 2002 vid University of Texas i Austin . Det förändrar både viktningsparametrarna och strukturerna för nätverk, och försöker hitta en balans mellan lämpligheten hos utvecklade lösningar och deras mångfald. Det bygger på att tillämpa tre nyckeltekniker: spåra gener med historiemarkörer för att tillåta korsning mellan topologier, tillämpa artbildning (arternas utveckling) för att bevara innovationer och utveckla topologier stegvis från enkla initiala strukturer ("komplexifierande").

Prestanda

På enkla kontrolluppgifter kommer NEAT-algoritmen ofta fram till effektiva nätverk snabbare än andra samtida neuro-evolutionära tekniker och förstärkningsinlärningsmetoder .

Algoritm

Traditionellt väljs en neural nätverkstopologi av en mänsklig experimenter, och effektiva anslutningsviktsvärden lärs in genom en träningsprocedur. Detta ger en situation där en trial and error process kan vara nödvändig för att bestämma en lämplig topologi. NEAT är ett exempel på ett topologi- och viktutvecklande artificiellt neuralt nätverk (TWEANN) som försöker lära sig samtidigt viktvärden och en lämplig topologi för ett neuralt nätverk.

För att koda nätverket till en fenotyp för GA använder NEAT ett direktkodningsschema vilket innebär att varje anslutning och neuron är explicit representerad. Detta i motsats till indirekta kodningsscheman som definierar regler som gör att nätverket kan konstrueras utan att explicit representera varje anslutning och neuron vilket möjliggör en mer kompakt representation.

NEAT-metoden börjar med ett perceptronliknande feed-forward-nätverk av endast ingångsneuroner och utgångsneuroner. När evolutionen fortskrider genom diskreta steg, kan komplexiteten i nätverkets topologi växa, antingen genom att infoga en ny neuron i en anslutningsväg eller genom att skapa en ny koppling mellan (tidigare oanslutna) neuroner.

Tävlande konventioner

Problemet med konkurrerande konventioner uppstår när det finns mer än ett sätt att representera information i en fenotyp. Till exempel, om ett genom innehåller neuronerna A , B och C och representeras av [ABC], om detta genom korsas med ett identiskt genom (när det gäller funktionalitet) men ordnad [CBA] korsning kommer att ge barn som saknar information ( [ABA] eller [CBC]), i själva verket har 1/3 av informationen gått förlorad i detta exempel. NEAT löser detta problem genom att spåra geners historia genom att använda ett globalt innovationsnummer som ökar när nya gener läggs till. När en ny gen läggs till ökas det globala innovationsnumret och tilldelas den genen. Ju högre siffra, desto mer nyligen lades genen till. För en viss generation om en identisk mutation förekommer i mer än ett genom får de båda samma nummer, utöver det kommer mutationsnumret dock att förbli oförändrat på obestämd tid.

Dessa innovationssiffror tillåter NEAT att matcha gener som kan korsas med varandra.

Genomförande

Den ursprungliga implementeringen av Ken Stanley publiceras under GPL . Den integreras med Guile , en GNU- schematolkare . Denna implementering av NEAT anses vara den konventionella grundläggande utgångspunkten för implementeringar av NEAT-algoritmen.

Tillägg

rtNEAT

2003 utarbetade Stanley en förlängning av NEAT som gör att evolution kan ske i realtid snarare än genom iterationen av generationer som används av de flesta genetiska algoritmer. Grundtanken är att sätta befolkningen under ständig utvärdering med en "livstids" timer på varje individ i befolkningen. När ett nätverks timer löper ut undersöks dess nuvarande konditionsmått för att se om det hamnar nära botten av populationen, och i så fall kasseras det och ersätts av ett nytt nätverk som fötts upp från två vältränade föräldrar. En timer ställs in för det nya nätverket och den placeras i befolkningen för att delta i de pågående utvärderingarna.

Den första tillämpningen av rtNEAT är ett videospel som heter Neuro-Evolving Robotic Operatives, eller NERO. I den första fasen av spelet distribuerar enskilda spelare robotar i en "sandlåda" och tränar dem till någon önskad taktisk doktrin. När en samling robotar har tränats, tillåter en andra spelfas spelare att sätta sina robotar i en kamp mot robotar som tränats av någon annan spelare, för att se hur väl deras träningsprogram förberedde sina robotar för strid.

Fasvis beskärning

En förlängning av Ken Stanleys NEAT, utvecklad av Colin Green, lägger till periodisk beskärning av nätverkstopologierna för kandidatlösningar under utvecklingsprocessen. Detta tillägg tog upp oro för att obegränsad automatiserad tillväxt skulle generera onödig struktur.

HyperNEAT

HyperNEAT är specialiserat på att utveckla storskaliga strukturer. Det baserades ursprungligen på CPPN -teorin och är ett aktivt forskningsfält.

cgNEAT

Content-Generating NEAT (cgNEAT) utvecklar anpassat videospelsinnehåll baserat på användarens preferenser. Det första videospelet att implementera cgNEAT är Galactic Arms Race , ett rymdskjutningsspel där unika partikelsystemvapen utvecklas baserat på spelaranvändningsstatistik. Varje partikelsystemvapen i spelet styrs av en utvecklad CPPN , på samma sätt som evolutionstekniken i det interaktiva konstprogrammet NEAT Particles .

odpNEAT

odNEAT är en online och decentraliserad version av NEAT designad för multirobotsystem. odNEAT exekveras ombord på robotar själva under uppgiftsexekveringen för att kontinuerligt optimera parametrarna och topologin för de artificiella neurala nätverksbaserade kontrollerna. På så sätt har robotar som kör odNEAT potentialen att anpassa sig till förändrade förhållanden och lära sig nya beteenden när de utför sina uppgifter. Den online evolutionära processen implementeras enligt en fysiskt distribuerad ö-modell. Varje robot optimerar en intern population av kandidatlösningar (variation mellan öarna), och två eller flera robotar utbyter kandidatlösningar när de möts (migrering mellan öarna). På detta sätt är varje robot potentiellt självförsörjande och den evolutionära processen drar nytta av utbytet av styrenheter mellan flera robotar för snabbare syntes av effektiva styrenheter.

Se även

Bibliografi

Genomföranden

externa länkar