DeepCoder gaat zijn eigen programma’s schrijven
Onderzoekers van de University of Cambridge en Microsoft Research zeggen dat ze bijna zover zijn dat ze machines kunnen maken die zelf computerprogramma’s schrijven. Een voorbeeld van zo'n machine is hun zelflerende, op kunstmatige intelligentie gebaseerde, ‘DeepCoder’. Het onderzoeksrapport ‘DeepCoder: Learning to write programs’ werd geschreven door Matej Balog, University of Cambridge, en Alexander Gaunt, Marc Brockschmidt, Sebastian Nowozin en Daniel Tarlow van Microsoft Research.
Onderzoekers van de University of Cambridge en Microsoft Research zeggen dat ze bijna zover zijn dat ze machines kunnen maken die zelf computerprogramma’s schrijven. Een voorbeeld van zo'n machine is hun zelflerende, op kunstmatige intelligentie gebaseerde, ‘DeepCoder’. Het onderzoeksrapport ‘DeepCoder: Learning to write programs’ werd geschreven door Matej Balog, University of Cambridge, en Alexander Gaunt, Marc Brockschmidt, Sebastian Nowozin en Daniel Tarlow van Microsoft Research.
DeepCoder maakt gebruik van programmasynthese, dat wil zeggen het creëren van nieuwe programma’s door regels code afkomstig uit andere programma’s aan elkaar te plakken – net zoals een programmeur zou kunnen doen als je hem van voldoende pizza’s en bier voorziet. Voor DeepCoder geldt daarentegen dat deze uit een lijst met inputs en outputs van ieder codefragment kan leren welke codegedeelten nodig zijn om het gewenste resultaat te bereiken.
De auteurs geven aan dat ze zich in hun werk richten op twee belangrijke doelen:
1. Het aanleren van inductie van programma’s, dat wil zeggen doormiddel van inductie uit een groep voorbeeldprogramma’s een algemene oplossingsstrategie aanleren.
2. Zoektechnieken integreren in neurale netwerkarchitecturen inplaats van deze afzonderlijk van elkaar toe te passen.
De voorbeeldprogramma’s zijn gebaseerd op eenvoudige taken afkomstig van websites met programmeerwedstrijden, en illustreren de uitdrukkingskracht van de door de onderzoekers ontwikkelde Domain Specific Language (DSL). In het onderzoeksrapport is een apart hoofdstuk gewijd aan deze voorbeeldprogramma’s in DSL, compleet met input- en outputvoorbeelden en beschrijvingen.
Aangezien de praktische toepassing van de nieuwe kunstmatige-intelligentievorm volgens de Cambridge-onderzoekers ‘op dit moment nog beperkt is’, wordt geadviseerd om zelf nog even niet te stoppen met programmeren...
DeepCoder maakt gebruik van programmasynthese, dat wil zeggen het creëren van nieuwe programma’s door regels code afkomstig uit andere programma’s aan elkaar te plakken – net zoals een programmeur zou kunnen doen als je hem van voldoende pizza’s en bier voorziet. Voor DeepCoder geldt daarentegen dat deze uit een lijst met inputs en outputs van ieder codefragment kan leren welke codegedeelten nodig zijn om het gewenste resultaat te bereiken.
De auteurs geven aan dat ze zich in hun werk richten op twee belangrijke doelen:
1. Het aanleren van inductie van programma’s, dat wil zeggen doormiddel van inductie uit een groep voorbeeldprogramma’s een algemene oplossingsstrategie aanleren.
2. Zoektechnieken integreren in neurale netwerkarchitecturen inplaats van deze afzonderlijk van elkaar toe te passen.
De voorbeeldprogramma’s zijn gebaseerd op eenvoudige taken afkomstig van websites met programmeerwedstrijden, en illustreren de uitdrukkingskracht van de door de onderzoekers ontwikkelde Domain Specific Language (DSL). In het onderzoeksrapport is een apart hoofdstuk gewijd aan deze voorbeeldprogramma’s in DSL, compleet met input- en outputvoorbeelden en beschrijvingen.
Aangezien de praktische toepassing van de nieuwe kunstmatige-intelligentievorm volgens de Cambridge-onderzoekers ‘op dit moment nog beperkt is’, wordt geadviseerd om zelf nog even niet te stoppen met programmeren...