说出你的需求,我们AI给你写代码

作者: 乾明 2019-02-26 15:34:27

 说你想干什么,AI就能自动写代码。

现在,我们离这个目标又近了一步。

近日,MIT的一个研究团队放出了新的研究成果。

他们提出了一种灵活组合模式识别和推理的方法,在无监督学习的情况下, 来解决AI自动编程遇到的问题。

先给你看几个例子:

任务要求:

给定一个数组,计算数字翻转过来之后的中位数。

AI会给出代码:

(reduce(reverse(digits(deref (sort a)(/ (len a) 2)))) 0

(lambda2 (+(* arg1 10) arg2)))

任务要求:

输入:

1, [-101, 63, 64, 79, 119, 91, -56, 47, -74, -33]

4, [-6, -96, -45, 17, 26, -38, 17, -18, -112, -48]

输出:

39

8

AI会给出的代码:

(MAXIMUM (MAP DIV3 (DROP input0 input1)))

这是怎么做到的?

给人类程序员一个任务,在开始写代码之前,会根据自己的经验来判断代码架构是什么样的。如果没有经验,就要采取推理的方式,来完善代码架构。

这个AI系统,就是模仿了人类结合模式识别和推理写代码的方式。

说出你的需求,我们AI给你写代码 | MIT新研究

模型分为两个模块,分别是概要生成器(sketch generator)和代码合成器( program synthesizer)。

输入任务要求之后,先经过概要生成器,生成满足任务要求概率比较高的代码概要,即可能满足任务要求的初始代码,细节并不丰富。然后,代码概要进入代码合成器模块,找到满足任务要求的模块。

概要生成器,是一个带有注意力机制的seq2seq循环神经网络(RNN),在给定任务之后,通过LSTM编码器对其进行编码,然后再逐token解码。

代码合成器,有两个组成部分:广度优先概率枚举器和神经网络识别器。前者根据可能性从大到小枚举代码sketch, 后者根据任务要求来指导这一过程。

具体效果怎么样?

为了验证模型的性能,研究团队选择了两个模型与其进行对比。

分别是只有合成器的模型(Synthesizer only)和只有生成器的模型(Generator only)。

只有合成器的模型,相当于研究中代码合成器模块,进行模式识别之后,从头开始枚举所有可能的编码。与微软研究院研究团队2016年提出的“Deepcoder”模型媲美。

只有生成器的模型,相当于研究中概要生成器模块,用来预测完整的代码。与微软研究院和MIT团队在2017年提出的“RobustFill”模型媲美。

进行对比的任务是数组列表、字符串转换和自然语言要求。

在数组列表任务中,与其他两项研究相比,研究中的模型可以在简单的程序中呈现很好的性能。

说出你的需求,我们AI给你写代码 | MIT新研究

在字符串转换任务中,表现要比只有合成器的模型要好,并且在一定情况下,会好于只有生成器的模型。

说出你的需求,我们AI给你写代码 | MIT新研究
说出你的需求,我们AI给你写代码 | MIT新研究

真正展现模型能力的,是在AlgoLisp数据集中进行的测试,这一数据集中,不仅有数组列表和字符串相关的输入输出示例,还有相应的自然语言描述。

在这个数据集上,研究者检验了模型在非结构化数据情况下的性能。

测试结果表明,模型的表现完全超过了先前学者的研究。

说出你的需求,我们AI给你写代码 | MIT新研究

而且,在包含“Even”和“Odd”要求的情况下,性能更加突出了,表明了模型的通用性更强。

如果你对这个研究感兴趣,可以阅读论文,来获取更多的研究细节。

说出你的需求,我们AI给你写代码 | MIT新研究

传送门:

Learning to Infer Program Sketches

https://arxiv.org/abs/1902.06349

AI 数据 人工智能
上一篇:机器学习的七大谣传,这都是根深蒂固的执念吧 下一篇:机器学习中如何处理不平衡数据?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

AI行业寒潮下,智能物流机器人产业迎来“风口”

“人工智能,前景很好,但‘钱’景不好 ” 、“2018年,人工智能的进展就是没有进展”、“2019年的AI行业已如石墨烯一样,尽显疲态”……一篇《投资人逃离人工智能》文章又给人工智能行业泼了一身冷水。人工智能融资难、“寒冬论”再一次戳痛每个人工智能从业者的心,激起大众的焦虑情绪。

AI报道 ·  13h前
人工智能应用在智慧社区五大场景

物联网、云计算、大数据、人工智能正逐步从概念走向应用。越来越多的传统产业也开始探索和创新,积极拥抱互联网和新技术。未来,人工智能技术可能会颠覆社区管理。

有熊 ·  13h前
基于PyTorch的CV模型框架,北大学生出品TorchCV

在机器学习带来的所有颠覆性技术中,计算机视觉领域吸引了业内人士和学术界最大的关注。

张倩、泽南 ·  15h前
高位截瘫患者重新行走:靠意念指挥外骨骼,法国脑机接口新突破

依靠介入头部的 2 个传感器,法国里昂的一名瘫痪男子 Thibault 实现了操控外骨骼装备来助力行走。

孙滔 ·  19h前
2008 年预测 2020 年生活方式:基本都实现了

美国皮尤研究中心曾在 2008 年预测 2020 年的生活方式,目前来看,该研究的预测基本已经实现。而对于未来 10 年,也就是 2030 年左右人们的生活,在 2017 年底的世界经济论坛上,800 多名信息和通讯技术领域的技术高管和专家给出了如下预测。

佚名 ·  19h前
机器学习的正则化是什么意思?

正则化的好处是当特征很多时,每一个特征都会对预测y贡献一份合适的力量;所以说,使用正则化的目的就是为了防止过拟合。

佚名 ·  19h前
为什么我的CV模型不好用?没想到原因竟如此简单……

机器学习专家 Adam Geitgey 近日发布了一篇文章探讨了这一简单却又让很多人头痛的问题,并分享了他为解决这一问题编写的自动图像旋转程序。

机器之心 ·  19h前
中文自动转SQL,准确率高达92%,这位Kaggle大师刷新世界纪录

首届中文NL2SQL挑战赛上,又一项超越国外水平的NLP研究成果诞生了。在NL2SQL这项任务上,比赛中的最佳成绩达到了92.19%的准确率,超过英文NL2SQL数据集WikiSQL目前完全匹配精度86.0%,执行匹配精度91.8%的最高成绩。

郭一璞 ·  20h前
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载