science >> Wetenschap >  >> Elektronica

AI voor code stimuleert samenwerking, open wetenschappelijke ontdekking

Semantische stroomgrafiekweergave die automatisch wordt geproduceerd op basis van een analyse van gegevens over reumatoïde artritis. Krediet:IBM

We hebben recentelijk aanzienlijke vooruitgang gezien in patroonanalyse en machine-intelligentie toegepast op afbeeldingen, audio- en videosignalen, en natuurlijke taal tekst, maar niet zozeer toegepast op een ander artefact dat door mensen is geproduceerd:de broncode van computerprogramma's. In een paper die zal worden gepresenteerd tijdens de FEED Workshop op KDD 2018, we demonstreren een systeem dat vooruitgang boekt in de richting van de semantische analyse van code. Door het zo te doen, we bieden de basis voor machines om echt over programmacode te redeneren en ervan te leren.

Het werk, ook onlangs gedemonstreerd op IJCAI 2018, is bedacht en geleid door IBM Science for Social Good fellow Evan Patterson en richt zich specifiek op data science software. Data science-programma's zijn een speciaal soort computercode, vaak vrij kort, maar vol semantisch rijke inhoud die een reeks gegevenstransformatie specificeert, analyse, modellering, en tolkoperaties. Onze techniek voert een data-analyse uit (stel je een R- of Python-script voor) en legt alle functies vast die in de analyse worden aangeroepen. Het verbindt die functies vervolgens met een datawetenschap-ontologie die we hebben gecreëerd, voert verschillende vereenvoudigingsstappen uit, en produceert een semantische stroomgrafiekrepresentatie van het programma. Als voorbeeld, de onderstaande stroomgrafiek wordt automatisch geproduceerd op basis van een analyse van gegevens over reumatoïde artritis.

De techniek is toepasbaar op alle keuzes van programmeertaal en pakket. De drie codefragmenten hieronder zijn geschreven in R, Python met de NumPy- en SciPy-pakketten, en Python met de Panda's en Scikit-leerpakketten. Ze produceren allemaal precies dezelfde semantische stroomgrafiek.

  • Krediet:IBM

  • Krediet:IBM

We kunnen de semantische stroomgrafiek die we extraheren beschouwen als een enkel gegevenspunt, net als een afbeelding of een alinea tekst, waarop verdere taken op een hoger niveau kunnen worden uitgevoerd. Met de representatie die we hebben ontwikkeld, we kunnen verschillende nuttige functionaliteiten inschakelen voor praktiserende datawetenschappers, inclusief intelligent zoeken en automatisch aanvullen van analyses, aanbeveling van vergelijkbare of complementaire analyses, visualisatie van de ruimte van alle analyses uitgevoerd op een bepaald probleem of dataset, vertaling of stijloverdracht, en zelfs het machinaal genereren van nieuwe gegevensanalyses (d.w.z. computationele creativiteit) - allemaal gebaseerd op het echt semantische begrip van wat de code doet.

De Data Science Ontology is geschreven in een nieuwe ontologietaal die we hebben ontwikkeld, genaamd Monoidal Ontology and Computing Language (Monocl). Deze lijn is in 2016 gestart in samenwerking met het Accelerated Cure Project for Multiple Sclerosis.

Dit verhaal is opnieuw gepubliceerd met dank aan IBM Research. Lees hier het originele verhaal.