A-A+

AI从其他程序偷代码,来编写自己的程序

2017年03月04日 业界资讯 暂无评论 阅读 2,745 次

  人类快走开,放着让我来。机器学习系统已经学会了自己编程!

由微软和剑桥大学研发的系统DeepCoder已经能够解决类似编程比赛中出现的基础编程问题。这样一来就方便多了,人类无需熟知代码也可以完成简单的程序。

麻省理工学院的Armando Solar-Lezama(并非开发者)说道:“一瞬间,人们的生产效率会直线上升,他们可以搭建出以前无法搭建的系统。”

“最终,依靠这种技术,非编程人员只要向程序描述一个想法然后让系统自己去搭建”,英国剑桥大学微软研究院DeepCoder开发者之一Marc Brockschmidt说道。

DeepCoder用到的技术叫做程序合成:从现存的软件那儿偷学代码然后把它们拼接成新代码——跟程序员做的事儿一样。给每段代码一列输入和输出值,DeepCoder就会懂得需要哪些代码片段来获得指定的结果。

让人工智能在这上面自由发挥的优势在于它比人类程序员的程序搜索范围更广泛更彻底,所以最终AI有可能拼接出人类根本没设想过的源代码。此外,DeepCoder还利用机器学习穷尽源代码数据库,并根据潜在的实用价值将代码片段进行排序。

这些改良使系统比它的前辈们动作快多了。DeepCoder能在几分之一秒内编写出能够正常运行的程序,而旧版系统要花上几分钟去测试怎么组合不同的代码片段才能工作。因为DeepCoder在执行任务中会学习什么样的源代码组合能工作以及什么样的不能工作,所以每次着手解决一个新问题它就会进步一点点。

这种新科技将会有广泛的应用。2015年,MIT研究员开发了一种能够自动修复软件漏洞的程序,它通过复制其他程序中正确的代码来替换原程序中的错误代码。Brockschmidt说,未来的DeepCoder会使编写例行程序非常简单,比如网页爬虫、自动分类Facebook照片等等,人类程序员连手指都不用抬一下。

Solar-Lezama说:“这种科技为自动化带来的潜力在于大大减少了开发代码所需的时间精力。”

但他不觉得这种科技会让程序员失业。他说,通过用程序合成技术来自动化那些编程工作中最枯燥乏味的部分,程序员可以把时间花在更复杂的任务上。

目前,DeepCoder还只能解决5行代码左右的编程任务。但只要选对了编程语言,有时候短短几行代码就能解决相当复杂的问题。

Solar-Lezama说:“一次性生成很长的一段代码很难,基本不现实。但是长代码段都是由小代码片段接起来的。”

参见:https://www.newscientist.com/article/mg23331144-500-ai-learns-to-write-its-own-code-by-stealing-from-other-programs/

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录