DeepCoder初步了解

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搭建起程序框架之后,就能够将精力放在更复杂、更需要经验驱动的事情上”。该系统的目的并非想要取代人类工程师,而是让电脑协助完成写程序过程中最无趣的地方,工程师可以将时间拿去做更复杂、更有创造力的工作。

------------------------2018年4月8号更新------------------------------------------

关于DEEPCODER的一些资料。

(1)《学界 | 剑桥与微软提交ICLR 2017论文提出DeepCoder:组合其它程序代码生成新程序》这篇文章概括性的介绍了DEEPCODER文章的内容。

地址:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650723632&idx=5&sn=2654d4e512ff3c23e1bd17b2e9e562d5&chksm=871b114eb06c98581aa12a202b8a97e1ba504854d0fe1632fc19200a271aeaddd0f0b6a7f770&mpshare=1&scene=1&srcid=0408MVYI1yNDIhuvBDXs8zNn#rd



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值