DeepCoder初步了解

来源:互联网 发布:淘宝网如何收藏宝贝 编辑:程序博客网 时间:2024/06/17 05:31

DeepCoder是微软和剑桥大学联合开发的一种计算机算法,可以用于自行编写代码并解决简单的数学问题。该系统分成两个组成部分:代码编写算法,以及搜索潜在代码的机制。该算法发表于2016年11月的论文中。

论文地址:点击打开链接


DeepCoder所用的技术叫程序合成( program synthesis),通过截取已有软件的代码行来组成新的程序。通过学习一系列代码片(code fragment)的输入(inputs)和输出(outputs)数据,DeepCoder能自动摘取出对目标任务有用的代码片。


DeepCoder 使用被称作“程序组合”(program synthesis)的方法,只要给定系统输入值和需要的输出结果,DeepCoder 便可透过搜寻其他程序的程序代码,挑出适合的程序代码片段,再组合成可运作的程序,让程序顺利生成需要的结果。事实上,这个步骤就像许多工程师常做的事:在程序问答网站 Stack Overflow 上搜寻适合的程序代码,再“复制贴上”他们认为可行的程序代码片段。


机器的检索速度、广度、及深度强于人类程序员,DeepCoder 能更全面、广泛地搜寻程序码范例,因此程序代码的组合方式可能是过去人类从未想过的。此外,DeepCoder 将机器学习应用在每次的搜寻和组合程序代码,相较于旧有系统需要花费好几分钟才能选出正确的程序组合,DeepCoder 只需几秒就能写好程序,且速度还会随着练习越来越快。


该研究尚在早期阶段,目前只能写出 5 行左右的程序代码,难度相当于程序竞赛网站中最简单的问题。DeepCoder 只能透过组合程序代码片段来写程序,并不能靠自己生成一段全新的程序代码,也还没办法写出企业等级的软件,或是 App 等更复杂的程序代码。


麻省理工大学研究员 Solar-Lezama表示,程序员并不会因此而失业,“在程序员为DeepCoder搭建起程序框架之后,就能够将精力放在更复杂、更需要经验驱动的事情上”。该系统的目的并非想要取代人类工程师,而是让电脑协助完成写程序过程中最无趣的地方,工程师可以将时间拿去做更复杂、更有创造力的工作。




原创粉丝点击