• Home
  • Kemi
  • Astronomien
  • Energi
  • Naturen
  • Biologi
  • Fysik
  • Elektronik
  • Mot artificiell intelligens som lär sig skriva kod

    Forskare har utvecklat ett flexibelt sätt att kombinera djupinlärning och symboliskt resonemang för att lära datorer att skriva korta datorprogram. Här, Armando Solar-Lezama (vänster), professor vid CSAIL, talar med doktoranden Maxwell Nye. Upphovsman:Kim Martineau

    Att lära sig koda innebär att man känner igen hur man strukturerar ett program, och hur man fyller i varje detalj på rätt sätt. Inte konstigt att det kan vara så frustrerande.

    En ny programskrivande AI, SketchAdapt, erbjuder en väg ut. Utbildad på tiotusentals programexempel, SketchAdapt lär sig att skriva kort, program på hög nivå, medan du låter en andra uppsättning algoritmer hitta rätt delprogram för att fylla i detaljerna. Till skillnad från liknande metoder för automatiserad programskrivning, SketchAdapt vet när man ska byta från statistisk mönstermatchning till en mindre effektiv, men mer mångsidig, symboliskt resonemangsläge för att fylla i luckorna.

    "Neurala nät är ganska bra på att få strukturen rätt, men inte detaljerna, "säger Armando Solar-Lezama, professor vid MIT:s datavetenskapliga och artificiella intelligenslaboratorium (CSAIL). "Genom att dela upp arbetet-låta neurala nät hantera strukturen på hög nivå, och med hjälp av en sökstrategi för att fylla i ämnena - kan vi skriva effektiva program som ger rätt svar. "

    SketchAdapt är ett samarbete mellan Solar-Lezama och Josh Tenenbaum, professor vid CSAIL och MIT:s centrum för hjärnor, Tankar och maskiner. Arbetet kommer att presenteras vid den internationella konferensen om maskininlärning 10-15 juni.

    Programsyntes, eller lära datorer att koda, har länge varit ett mål för AI -forskare. En dator som kan programmera sig själv är mer benägna att lära sig språk snabbare, prata flytande, och till och med modellera mänsklig kognition. Allt detta drog Solar-Lezama till fältet som doktorand, där han lade grunden för SketchAdapt.

    Solar-Lezamas tidiga arbete, Skiss, är baserad på tanken att ett programs lågnivådetaljer kan hittas mekaniskt om en struktur på hög nivå tillhandahålls. Bland andra applikationer, Skissinspirerade spinoffs för att automatiskt betygsätta programmering av läxor och konvertera handritade diagram till kod. Senare, som neurala nätverk växte i popularitet, studenter från Tenenbaums computational cognitive science lab föreslog ett samarbete, ur vilket SketchAdapt bildades.

    Istället för att förlita sig på experter för att definiera programstrukturen, SketchAdapt räknar ut det med djupinlärning. Forskarna lade också till en twist:När de neurala nätverken är osäkra på vilken kod som ska placeras var, SketchAdapt är programmerat att lämna platsen tom för sökalgoritmer att fylla i.

    "Systemet bestämmer själv vad det vet och inte vet, "säger studiens huvudförfattare, Maxwell Nye, en doktorand vid MIT:s institution för hjärna och kognitiva vetenskaper. "När det fastnar, och har inga bekanta mönster att dra på, det lämnar platshållare i koden. Den använder sedan en gissa-och-kontrollera-strategi för att fylla hålen. "

    Forskarna jämförde SketchAdaps prestanda med program som modellerats efter Microsofts proprietära programvara RobustFill och DeepCoder, efterföljare till Excel FlashFill -funktionen, som analyserar intilliggande celler för att erbjuda förslag när du skriver - lär dig att omvandla en kolumn med namn till en kolumn med motsvarande e -postadresser, till exempel. RobustFill använder djupinlärning för att skriva högnivåprogram från exempel, medan DeepCoder specialiserar sig på att hitta och fylla i detaljer på låg nivå.

    Forskarna fann att SketchAdapt överträffade deras återimplementerade versioner av RobustFill och DeepCoder vid sina respektive specialuppgifter. SketchAdapt överträffade RobustFill-liknande program vid strängtransformationer; till exempel, skriva ett program för att förkorta personnummer till tre siffror, och förnamn med deras första bokstav. SketchAdapt gjorde det också bättre än det DeepCoder-liknande programmet för att skriva program för att omvandla en lista med siffror. Utbildad endast på exempel på tre-radars listbehandlingsprogram, SketchAdapt kunde bättre överföra sin kunskap till ett nytt scenario och skriva rätt fyrradiga program.

    I ännu en uppgift, SketchAdapt överträffade båda programmen för att konvertera matematiska problem från engelska till kod, och beräkna svaret.

    Nyckeln till dess framgång är möjligheten att byta från neuralt mönstermatchning till en regelbaserad symbolisk sökning, säger Rishabh Singh, en tidigare doktorand vid Solar-Lezama's, nu forskare på Google Brain. "SketchAdapt lär sig hur mycket mönsterigenkänning som behövs för att skriva välbekanta delar av programmet, och hur mycket symboliskt resonemang som behövs för att fylla i detaljer som kan innebära nya eller komplicerade begrepp. "

    SketchAdapt är begränsat till att skriva mycket korta program. Allt mer kräver för mycket beräkning. Ändå, det är mer avsett att komplettera programmerare snarare än att ersätta dem, säger forskarna. "Vårt fokus ligger på att ge programmeringsverktyg till människor som vill ha dem, "säger Nye." De kan berätta för datorn vad de vill göra, och datorn kan skriva programmet. "

    Programmering, trots allt, har alltid utvecklats. När Fortran introducerades på 1950 -talet, det var tänkt att ersätta mänskliga programmerare. "Dess fullständiga namn var Fortran Automatic Coding System, och målet var att skriva program såväl som människor, men utan fel, "säger Solar-Lezama." Vad det egentligen gjorde var att automatisera mycket av vad programmerare gjorde innan Fortran. Det förändrade programmets karaktär. "

    Denna artikel publiceras på nytt med tillstånd av MIT News (web.mit.edu/newsoffice/), en populär webbplats som täcker nyheter om MIT -forskning, innovation och undervisning.




    © Vetenskap https://sv.scienceaq.com