As computers have become more powerful and more sophisticated, they have also become more complicated and difficult for humans to use. Many tasks that a user would like to perform, however, have already been described on-line in natural language. By designing new machine learning algorithms that can translate these natural language descriptions into computer programs, we enable machines to perform many tasks which today require significant manual effort.
In this thesis I describe systems I have built towards this end in three different computing domains: text processing, solving math problems, and robotic object construction in a virtual world. By translating the natural language to computer programs we are able to both determine semantic equivalence between the programs, and observe the results of their execution. I will show that integrating these capabilities into the learning algorithms significantly improves the effectiveness of the learning, as well as enabling learning with much less training data.
Thesis Supervisor: Regina Barzilay