Identifying potentiating events in evolutionary search using replay experiments
Dit artikel introduceert experimenten met analytisch herstel binnen evolutionaire computing, waarbij een methodologie en een demonstratief voorbeeld worden geboden om aan te tonen hoe het historische traject van een populatie toekomstig probleemoplossend succes kan versterken, onafhankelijk van directe verbeteringen in fitness.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je naar een videogame kijkt waarin een personage probeert een enorme puzzel op te lossen. Je ziet ze de code eindelijk kraken en winnen, maar je hebt geen idee hoe ze daar gekomen zijn. Hebben ze op een gelukkig trucje gestuit? Hebben ze halverwege de game een geheim talent geleerd dat de rest van het spel makkelijker maakte? In de wereld van de informatica is er een vakgebied genaamd Evolutionary Computing (evolutionaire computing). Het is als een digitale petrischaal waar we computerprogramma's kweken in plaats van bacteriën. We laten deze programma's "evolueren" over een bepaalde tijd, door ze te mengen en te muteren om te zien of ze beter worden in het oplossen van problemen, zoals het repareren van bugs in software of het ontwerpen van bewegingen voor robots.
Meestal vieren we gewoon de overwinning wanneer een computerprogramma eindelijk een moeilijk probleem oplost. Maar wetenschappers zijn nieuwsgierig: Waarom werkte het deze keer wel en de vorige keer niet? Was het een specifieke verandering in de code die een succes later mogelijk maakte? Hier komt het idee van potentiatie kijken. Denk aan een "power-up" in een videogame. Je ziet de power-up misschien niet direct iets doen, maar het verandert het personage zodat ze later, wanneer ze een specifieke sleutel vinden, een deur kunnen openen waar ze voorheen niet doorheen konden. De vraag die dit artikel aanpakt is: Hoe kunnen we terugkijken naar de geschiedenis van een computer om die verborgen power-ups te vinden die een oplossing mogelijk maakten, zelfs als de computer er op dat moment niet "slimmer" uitzag?
De tape van het digitale leven terugspoelen
In dit artikel introduceren Austin Ferguson en Alexander Lalejini een coole nieuwe manier om deze digitale evoluties te bestuderen met behulp van iets dat ze replay-experimenten noemen. Je kunt dit zien als het indrukken van de "rewind"-knop op een film, maar in plaats van alleen dezelfde film opnieuw te bekijken, pauzeer je hem op verschillende momenten, maak je een kopie van de personages op dat exacte punt en start je een hele reeks nieuwe films vanaf dat punt.
In de echte wereld hebben wetenschappers dit gedaan met bacteriën. Ze vriezen monsters van bacteriën in vanuit een laboratoriumexperiment op verschillende dagen. Later ontdooien ze de monsters en laten ze opnieuw evolueren om te zien of ze nog steeds een nieuwe eigenschap kunnen ontwikkelen, zoals het eten van een nieuw type voedsel. Als dat kan, betekent dit dat de bacteriën zichzelf al eerder met verborgen veranderingen hadden "voorbereid".
De auteurs brengen dit idee naar de wereld van computerprogramma's. Ze stellen dat we hetzelfde kunnen doen met software. In plaats van alleen één programma te laten evolueren en op het beste te hopen, kunnen we "snapshots" van het programma op elke stap opslaan. Vervolgens kunnen we die snapshots nemen en honderden nieuwe, licht afwijkende versies van de evolutie vanaf dat punt voortzetten. Door te kijken hoe vaak deze nieuwe versies slagen, kunnen we de potentie (of "potentiatie") van het programma meten om het probleem op te lossen.
De grote verrassing: Succes gaat niet altijd over "sterker" worden
De auteurs voerden een demonstratie uit met een eenvoudig type computerprogramma genaamd Genetic Programming. Ze stelden 1.000 verschillende groepen van deze programma's op en lieten ze proberen een specifieke puzzel op te lossen: het sorteren van getallen in "klein", "groot" of "geen van beide".
Hier is de wending die ze ontdekten, en dit is het belangrijkste deel van hun verhaal: Beter worden in het probleem betekent niet altijd dat je dichter bij de overwinning bent.
In hun experiment volgden ze twee dingen:
- Fitness: Hoe goed het programma op dat moment presteert (zoals een score in een spel).
- Potentiatie: De kans dat het programma uiteindelijk de puzzel perfect zou oplossen als ze zouden blijven evolueren.
In een van hun testgroepen (Populatie A) bereikten de programma's een "lokaal optimum". Dit is als een speler die vast komt te zitten op een plateau in een videogame. Hun score stopte met verbeteren en bleef een lange tijd steken op 75%. Voor een waarnemer leek het alsojd de programma's maar wat rondjes draaiden zonder resultaat. Maar toen drukte de auteur op "rewind" en draaide de replays af.
Ze ontdekten dat op een specifiek moment in de geschiedenis van die groep de potentiatie plotseling sprong van 1% naar 40%. De programma's waren plotseling veel waarschijnlijker in staat om de puzzel perfect op te lossen, zelfs terwijl hun score (fitness) helemaal niet was veranderd! Ze zaten nog steeds vast op 75%, maar ze hadden stiekem een "power-up" verworven die een perfecte oplossing mogelijk maakte.
Dit is een grote zaak omdat het suggereert dat je niet alleen naar de huidige score kunt kijken om te weten of je aan het winnen bent. Een programma kan erbij lijken alsof het faalt of vastzit, maar het kan op een goudmijn aan potentieel zitten dat nog niet zichtbaar is in de score.
Hoe ze het deden (De "engineered" replay)
Om dit te bewijzen, gebruikten de auteurs een slimme truc genaamd een engineered replay. Stel je voor dat je twee versies van een personage hebt: één met een rode hoed en één met een rode hoed en een blauwe sjaal. Je wilt weten welk item hen heeft geholpen om te winnen.
In een normale replay zou je gewoon nieuwe games starten vanaf de "rode hoed"-versie en de "rode hoede + blauwe sjaal"-versie. Maar om super precies te zijn, maakten de auteurs "engineered" versies. Ze maakten een nieuw personage met alleen de blauwe sjaal (die nooit echt in de oorspronkelijke geschiedenis had bestaan) en draaiden ook daar replays vanaf. Dit hielp hen om precies te achterhalen welke kleine verandering in de code de geheime power-up was.
Wat dit betekent voor de toekomst
Het artikel beweert niet dat het alle mysteries van de evolutie heeft opgelost, maar suggereert dat replay-experimenten een krachtig hulpmiddel zijn dat we nog niet genoeg hebben gebruikt. Het laat zien dat:
- Verborgen geschiedenis ertoe doet: De weg die een programma heeft afgelegd om tot een oplossing te komen, is net zo belangrijk als de oplossing zelf.
- Fitness is een leugenaar: Een hoge score betekent niet altijd dat een programma klaar is om de moeilijkste problemen op te lossen, en een lage score betekent niet dat het hopeloos is.
- We kunnen het "waarom" vinden: Door terug te spoelen en te herhalen, kunnen we het exacte moment aanwijzen waarop een programma de "power-up" kreeg die het nodig had.
De auteurs hopen dat wetenschappers in de toekomst deze replay-experimenten zullen gebruiken om te begrijpen waarom sommige computercruises falen en andere slagen. Misschien kunnen we ooit betere algoritmen ontwerpen die weten wanneer ze moeten doorgaan, zelfs als de score er slecht uitziet, omdat ze kunnen aanvoelen dat er een verborgen power-up vlak om de hoek is. Voor nu is dit artikel echter een geweldige herinnering dat in de digitale jungle de belangrijkste veranderingen misschien wel de veranderingen zijn die je niet kunt zien op het scorebord.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.