Goto

Collaborating Authors

 deepcoder



Reviews: Automatic Program Synthesis of Long Programs with a Learned Garbage Collector

Neural Information Processing Systems

The paper presents a modification of a previous baseline method in the application area of inductive program synthesis (IPS). This new architecture, PCCoder, shows some considerable improvement over DeepCoder, the baseline main method it compared against. Within the setting of IPS, the goal of the model is, provided with some input/output examples meant to represent a partial program specification, output a program that successfully maps from input to output for each I/O example in the set. A program is considered correct if it accomplishes the mapping on all provided I/O pairs (there is no notion of generalization to unseen I/O pairs as sometimes done in previous work, especially in string processing domains). The input/output pairs consist of integers, and the program is constructed from the relatively expressive Domain Specific Language defined in the DeepCoder paper.


ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis

arXiv.org Artificial Intelligence

When writing programs, people have the ability to tackle a new complex task by decomposing it into smaller and more familiar subtasks. While it is difficult to measure whether neural program synthesis methods have similar capabilities, we can measure whether they compositionally generalize, that is, whether a model that has been trained on the simpler subtasks is subsequently able to solve more complex tasks. In this paper, we characterize several different forms of compositional generalization that are desirable in program synthesis, forming a meta-benchmark which we use to create generalization tasks for two popular datasets, RobustFill and DeepCoder. We then propose ExeDec, a novel decomposition-based synthesis strategy that predicts execution subgoals to solve problems step-by-step informed by program execution at each step. ExeDec has better synthesis performance and greatly improved compositional generalization ability compared to baselines.


Is Artificial Intelligence better than Human Intelligence? - Dataconomy

#artificialintelligence

"Is Artificial Intelligence better than Human Intelligence?" is a popular question. Artificial intelligence's negative reputation stems from its apparent overmatching of human intellect. Compared to a brilliant individual, a computer is quicker in various fields. What would take years for a person to complete will only take minutes for AI, and that is the case. In other words, comparing the two types of intelligence may prove that they are significantly different from one another. But how distinct are they? Artificial Intelligence has advanced a long way from being a science fiction component to reality. We have self-driving cars, smart virtual assistants, chatbots, and surgical robots, among other intelligent machines these days.


Your Wish Is My CMD

Communications of the ACM

As artificial intelligence (AI) techniques advance, they are beginning to automate tasks that, until recently, only humans could perform--tasks such as translating text from one language to another or making medical diagnoses. It seems only logical to turn that computer power on computers themselves and use AI to automate programming. In fact, computer scientists are working on just that idea, using various AI techniques to develop new methods of automating the writing of code. "The ultimate goal of this is that you would have professional software engineers not actually write code anymore," says Chris Jermaine, a professor of computer science at Rice University in Houston, TX. Instead, the engineer would tell a computer what a piece of software should do, and the AI system would write the code, perhaps stopping along the way to pose questions to the engineer.


Automatic Program Synthesis of Long Programs with a Learned Garbage Collector

Neural Information Processing Systems

We consider the problem of generating automatic code given sample input-output pairs. We train a neural network to map from the current state and the outputs to the program's next statement. The neural network optimizes multiple tasks concurrently: the next operation out of a set of high level commands, the operands of the next statement, and which variables can be dropped from memory. Using our method we are able to create programs that are more than twice as long as existing state-of-the-art solutions, while improving the success rate for comparable lengths, and cutting the run-time by two orders of magnitude. Our code, including an implementation of various literature baselines, is publicly available at https: //github.com/amitz25/PCCoder


Automatic Program Synthesis of Long Programs with a Learned Garbage Collector

Neural Information Processing Systems

We consider the problem of generating automatic code given sample input-output pairs. We train a neural network to map from the current state and the outputs to the program's next statement. The neural network optimizes multiple tasks concurrently: the next operation out of a set of high level commands, the operands of the next statement, and which variables can be dropped from memory. Using our method we are able to create programs that are more than twice as long as existing state-of-the-art solutions, while improving the success rate for comparable lengths, and cutting the run-time by two orders of magnitude. Our code, including an implementation of various literature baselines, is publicly available at https: //github.com/amitz25/PCCoder


Automatic Program Synthesis of Long Programs with a Learned Garbage Collector

arXiv.org Machine Learning

We consider the problem of generating automatic code given sample input-output pairs. We train a neural network to map from the current state and the outputs to the program's next statement. The neural network optimizes multiple tasks concurrently: the next operation out of a set of high level commands, the operands of the next statement, and which variables can be dropped from memory. Using our method we are able to create programs that are more than twice as long as existing state-of-the-art solutions, while improving the success rate for comparable lengths, and cutting the run-time by two orders of magnitude. Our code is publicly available at https://github.com/amitz25/PCCoder


Can AI Write Its Own Applications? It's Trickier Than You Think - DZone AI

#artificialintelligence

Early last year, a Microsoft research project dubbed DeepCoder announced that it had made progress creating AI that could write its own programs. Such a feat has long captured the imagination of technology optimists and pessimists alike, who might consider software that creates its own software as the next paradigm in technology -- or perhaps the direct route to building the evil Skynet. As with most machine learning or deep learning approaches that make up the bulk of today's AI, DeepCoder was creating code that it based on large numbers of examples of existing code that researchers used to train the system. The result: software that ended up assembling bits of human-created programs, a feat Wired Magazine referred to as "looting other software." And yet, in spite of DeepCoder's PR faux pas, the idea of software smart enough to create its own applications remains an area of active research, as well as an exciting prospect for the digital world at large.


Can AI Write Its Own Applications? It's Trickier Than You Think - DZone AI

#artificialintelligence

Early last year, a Microsoft research project dubbed DeepCoder announced that it had made progress creating AI that could write its own programs. Such a feat has long captured the imagination of technology optimists and pessimists alike, who might consider software that creates its own software as the next paradigm in technology -- or perhaps the direct route to building the evil Skynet. As with most machine learning or deep learning approaches that make up the bulk of today's AI, DeepCoder was creating code that it based on large numbers of examples of existing code that researchers used to train the system. The result: software that ended up assembling bits of human-created programs, a feat Wired Magazine referred to as "looting other software." And yet, in spite of DeepCoder's PR faux pas, the idea of software smart enough to create its own applications remains an area of active research, as well as an exciting prospect for the digital world at large.