Uber komt met open-source dev library voor evolutionaire algoritmes

Evolutionary computing is het inzetten van biologische evolutietheorie in het ontwikkelen van algoritmes. Uber heeft een open-source dev library geïntroduceerd voor deze techniek, genaamd EvoGrad.

Het creëren van evolutionaire algoritmes is het doel van evolutionary computing, waarbij een groot aantal varianten voor de oplossing van een probleem getest wordt en de best presterende varianten behouden worden. Dit wordt ook wel aangeduid met natural evolution strategies (NES). Een soort survival of the fittest, dus. Het klinkt ingewikkeld en dat is het ook. Het is ontzettend complex om een prototype te creëren voor dit soort algoritmes, doordat er weinig tools beschikbaar zijn die specifiek hiervoor zijn bedoeld.

VentureBeat meldt dat onderzoekers bij Uber een library hebben ontwikkeld voor de open-source Python-programmeertaal. Deze Python-library moet onderzoekers gaan helpen om sneller het NES-proces te doorlopen. “Het idee is om varianten van NES sneller te onderzoeken, vergelijkbaar met hoe het Google TensorFlow machine learning-framework deep learning mogelijk maakt,” schreven projectmedewerkers Alex Gajewski, Jeff Clune, Kenneth O. Stanley, en Joel Lehman in een blogbericht. “Wij geloven dat er nog veel interessante algoritmes in dit veld te ontdekken zijn en we hopen dat deze dev library zal leiden tot vooruitgang in de machine learning community.

Versimpeling van wiskundige aanpak

Bij de complexe NES-techniek krijgen de beste evoluerende algoritmes ‘nakomelingen’, dit zijn gemodificeerde versies van de zogenaamde ‘ouders’, of combinaties van twee van deze ouders. De algoritmes met mindere prestaties worden uit de populatie gehaald. Vervolgens wordt bij NES de populatie als een wiskundige waarschijnlijkheidsverdeling bekeken, om de kwaliteit van de oplossing die een algoritme bereikt te maximaliseren. Deze wiskundige aanpak wordt door de Python-library van Uber een stuk eenvoudiger gemaakt. Developers hoeven zo namelijk veel minder specifieke wiskundige kennis te hebben om NES te kunnen uitvoeren. Zo kunnen ze bijvoorbeeld kiezen welke eigenschappen belangrijker zijn voor een bepaalde populatie (denk aan de diversiteit van gedrag of de gemiddelde kwaliteit van oplossingen).