AI学会通过窃取其他程序来编写自己的代码

 作者:公啄     |      日期:2017-11-02 14:15:31
Iunewind / Alamy库存照片由Matt Reynolds方式,人,我有这盖了机器学习系统已经获得了编写自己的代码的能力这个名为DeepCoder的系统由微软和剑桥大学的研究人员创建,解决了编程竞赛所面临的基本挑战这种方法可以使人们在不知道如何编写代码的情况下更容易构建简单的程序 “突然之间,人们可以提高工作效率,”麻省理工学院的Armando Solar-Lezama说,他没有参与这项工作 “他们可以构建以前无法构建的系统”最终,这种方法可以让非编码人员简单地描述一个程序的想法并让系统构建它,来自DeepCoder创建者之一的Marc Brockschmidt说道英国剑桥的微软研究院 DeepCoder使用一种称为程序综合的技术:通过拼凑从现有软件中获取的代码行来创建新程序 - 就像程序员可能一样给定每个代码片段的输入和输出列表,DeepCoder了解了总体上需要哪些代码才能获得所需的结果 “它可以让非编码人员简单地描述一个程序的想法并让系统构建它”让AI以这种方式松散的一个优点是它可以比人类编码器更彻底和更广泛地搜索,所以可以拼凑起来源代码以人类可能没有想到的方式更重要的是,DeepCoder使用机器学习来搜索源代码数据库,并根据其可能有用的视图对片段进行排序所有这些使得系统比其前辈更快 DeepCoder在几分之一秒内创建了工作程序,而较旧的系统需要花费几分钟来试用许多不同的代码行组合,然后拼凑出可以完成工作的东西而且,由于DeepCoder了解哪些源代码组合有效,哪些组合无效,每次尝试新问题时都会有所改进该技术可以有很多应用 2015年,麻省理工学院的研究人员创建了一个程序,通过用其他程序的工作线替换错误的代码行来自动修复软件错误 Brockschmidt表示,未来的版本可以很容易地构建例如从网站上抓取信息的常规程序,或者自动对Facebook照片进行分类,例如,没有人类编码器必须抬起手指 “这种技术提供的自动化潜力可能真正意味着开发代码所需的工作量大幅减少,”Solar-Lezama说但他认为这些系统不会让程序员失业他说,通过程序综合自动化一些最繁琐的编程部分,编码人员将能够将时间投入到更复杂的工作中目前,DeepCoder只能解决涉及大约五行代码的编程挑战但是在正确的编码语言中,相当复杂的程序需要几条线 “一次性生成一大堆代码很难,而且可能不切实际,”Solar-Lezama说 “但是真正的大部分代码是通过拼凑大量代码来构建的”这篇文章出现在标题“计算机正在学习自己编码”的印刷版中更多关于这些主题: