Under de senaste åren, djupt lärande tekniker har utvecklats för att förbättra prestandan av programsyntes från input-output exempel. Även om dess betydande framsteg, de program som kan syntetiseras av state-of-the-art metoder är fortfarande enkla när det gäller deras komplexitet. I detta arbete, vi flyttar ett betydande steg framåt i denna riktning genom att föreslå en ny klass av utmanande uppgifter inom området programsyntes från input-output exempel: lära sig en kontextfri tolk från par av inmatningsprogram och deras parse träd. Vi visar att denna klass av uppgifter är mycket mer utmanande än tidigare studerade uppgifter, och testnoggrannheten för befintliga metoder är nästan 0%. Vi tar itu med utmaningarna genom att utveckla tre nya tekniker inspirerade av tre nya observationer, som avslöjar de viktigaste ingredienserna i att använda djupt lärande för att syntetisera ett komplext program. För det första är användningen av en icke-differentiable maskin nyckeln till att effektivt begränsa sökområdet. På så sätt lär sig vårt föreslagna tillvägagångssätt ett neuralt program som använder en domänspecifik icke-differentierad maskin. För det andra är rekursion nyckeln till att uppnå allmängiltighet. Således bakar vi-i begreppet rekursion i utformningen av vår icke-differentiable maskin. För det tredje, förstärkning lärande är nyckeln till att lära sig hur man hanterar den icke-differentierbara maskinen, men det är också svårt att träna modellen effektivt med befintliga förstärkning lärande algoritmer från en kall känga. Vi utvecklar en ny två-fas förstärkning inlärningsbaserad sökalgoritm för att övervinna denna fråga. I vår utvärdering, visar vi att med hjälp av vår nya strategi, neurala parsing program kan läras att uppnå 100% testnoggrannhet på testingångar som är 500× längre än träningsprover.
Chen åt El. REF föreslår en kombination av icke-differentiable maskin, recursion och förstärkning lärande för att generera en tolkningsprogram.
Towards Synthesizing Complex Programs from Input-Output Examples
{'venue': 'ICLR', 'journal': None, 'mag_field_of_study': ['Computer Science', 'Mathematics']}