专栏名称: 机器之心
专业的人工智能媒体和产业服务平台
目录
相关文章推荐
爱可可-爱生活  ·  [LG]《Robustness of ... ·  9 小时前  
爱可可-爱生活  ·  [RO] GR00T N1: An ... ·  9 小时前  
宝玉xp  ·  🚀 Claude Max ... ·  3 天前  
51好读  ›  专栏  ›  机器之心

学界 | 剑桥与微软提交ICLR 2017论文提出DeepCoder:组合其它程序代码生成新程序

机器之心  · 公众号  · AI  · 2017-02-24 12:16

正文

选自New Scentist

作者:Matt Reynolds

机器之心编译

参与:曹瑞、蒋思源、李泽南


机器学习系统第一次获得了自我编码的能力,剑桥与微软联合提交ICLR 2017的论文提出DeepCoder,可以组合其它程序代码生成新程序。


「走开吧,人类,我自己能搞定了。」


这是第一次,有机器学习系统获得了自我编码的能力。这个机器学习系统叫做 DeepCoder,是由微软和剑桥大学的研究人员所创造的,这一系统可以解决编程竞赛设置的基本挑战。这种方法让人们编写简单程序容易了许多,甚至可以让不会编写代码的人完成任务。


「突然之间,人们的工作效率就提高了很多,」麻省理工学院的 Armando Solar-Lezama 说道。「人造系统此前是无法做到这一点的。」Marc Brockschmidt 是英国剑桥微软研究院 Deepcoder 的开发者之一,它认为这种方法最终可以让那些不懂编码的人只要简单描述一个建立程序的想法,就能够让系统来构建。


DeepCoder 利用了一种叫做「程序合成」(program synthesis)的技术:它创造新程序的方法就是将从现有软件中提取出来的一行一行的代码组合起来——就像是程序员一样。列出每一个代码片段的输入和输出,DeepCoder 就会知道要总体上完成预期结果需要哪些代码。


利用这种方法,那些不懂编码的人只要能够简单描述一个建立程序的想法,就能够让系统来构建。


这样放任人工智能的一个优势在于,比人类程序员相比,它能够更全面、更广泛地进行搜索,这样组合源代码的方式可能是人类都没有想到的。此外,DeepCoder 利用机器学习来搜寻源代码数据库,并根据它们对这些源代码可能存在的可用性的判断挑出一些代码片段。


这些特性使得该系统比之前的其他系统要快得多。DeepCoder 在一秒钟的时间内就可以建立可用的程序。以前的系统在将可用的代码组合起来之前,要花费好几分钟来追踪不同代码的组合。因为 DeepCoder 知道哪种源代码的组合可用,哪些不可用,在每次解决新问题的时候它都能随之改进。


构建 IPS 系统需要解决两个问题。首先是搜索问题:我们需要搜索一组可能的程序而找到一致性程序(consistent programs)。我们需要定义数据集(如程序空间)和搜索进程。其次是排序问题:如果有多个程序和输入-输出样本具有一致性,哪一个程序是需要返回的结果?这两个问题都取决于问题构想(problem formulation)的具体细节。因此,构想程序合成方法(program synthesis approach)的第一个要点就是选择特定域语言(Domain Specific Language)。







请到「今天看啥」查看全文