程序猿也要失业了吗?微软AI 开发出自行编写代码的算法

据国外媒体Quartz报道,要是计算机能够理解人们想要解决的问题,并编写代码将其解决,而不像微软Excel那样要在程序内的菜单人工找寻合适的公式,会怎么样?这是一个非常未来主义的想法,但在这方面微软研究院和剑桥大学最近已经取得了进展。在2016年11月的论文中,微软和剑桥大学称它们开发了一种能够自行编写代码解决简单的数学问题的算法。

该算法名为DeepCoder,能够通过研究有哪些潜在的代码组合可以解决问题,来强化自己的能力。(它有点复杂想,下文将会详谈。)然而,这并不意味着该算法从现有软件那里窃取、复制或者粘贴代码,也不意味着它是通过搜索互联网来找到解决方案。

该论文的共同作者、微软研究院研究者马克·布洛克施密特(Marc Brockschmidt)表示,“我们在瞄准那些不懂得或者不想编程,但能够鉴别问题的人。”他称该项技术就像是Excel公式,后者接收简单的指令就能够得出答案,无需获得数学方程式。

该系统分成两个组成部分:代码编写算法,以及搜索潜在代码的机制。

自动化代码

代码编写算法的运行并不简单,下面先用尽可能简单的话来说明一下。

一个数学问题有输入和输出——或者说你有的数字和你需要计算的数字。研究人员以用非常基础的代码就能解决的问题为例,给算法展示输入、输出以及用来解决它们的代码。

不妨拿它来跟用积木堆砌塔楼的过程进行类比。研究人员给算法展示了积木,然后再展示塔楼最终完工后的模样的图片。但算法需要知道如何对齐每个积木的边缘,使得它们能够堆砌在其它积木上面。虽然这对于人类来说很简单,但对于机器来说这并非易事,因为机器不知道重力,也不知道为什么大的积木要放在小积木下面来提供支撑。

但如果给机器展示积木堆叠拼凑成最终的塔楼的整个过程,让它观看数百乃至数千座塔楼的构建过程,那它们就将能够用类似形状的积木来构建塔楼。而对于DeepCoder而言,积木就是一个个的代码。

当被要求解决新问题,而不是使用之前行得通的代码的时候,该算法会预测什么代码会被用来解决它之前见过的类似问题,以及这些代码会以怎样的顺序排列。

学习整套的编程语言对于这些算法而言过于复杂,因此微软和剑桥团队打造了一种小型语言。它被称作领域特定语言,就像是幼儿的积木玩具。该系统能够在线上解决简单的编程问题,这些问题一般需要使用3到6行的代码。

无限的可能性

DeepCoder还能够搜寻可带来可行解决方案的潜在代码,这可强化它自身编写代码的能力。它并不是像StackOverflow或者GitHub那样通过扫描热门代码库来获得解决方案,尽管研究人员很希望这一点未来可以实现。

“我们会研究你能在特定的长度下用这种语言编写出的所有潜在项目。”布洛克施密特说道,“计算机非常善于搜索这些东西。”

他将该项任务比作是在毫无语言知识的情况下仅用一些单词来造一个关于狐狸越过小狗的句子。

一开始你可能会得到“狐狸狐狸狐狸狐狸狐狸狐狸”,然后是“狐狸狐狸狐狸狐狸狐狸小狗”……直至恰当的句子出现。思考该项任务的另一种方式是Salesforce人工智能研究者史蒂芬·梅里蒂(Stephen Merity)的“无限猴子理论”。该理论说,让无限数量的猴子完全无限时地在键盘上任意敲字,最终会写出像莎士比亚那样的作品。这里说的是同样的事情,不同的就只是猴子的键盘不是打字,而是敲代码。

但算法搜遍程序所有的变异版本,找出正确的那个的能力,是该团队的真正贡献:该算法可预测哪些代码最有可能被用来解决问题,然后先关注那些解决方案。如果算法找到合适的激发,那问题就被视作已经解决,它对于什么才是合适的代码的理解也随之增进。

搜寻代码听上去像是人类的做法——上网去寻找一些代码行来解决他们的问题——但这只是最接近于恰当描述该算法生成和整理代码过程的说法。如果人类要做该人工智能那样的技术,那就等于是输入他们能够想到的所有代码组合,然后复制粘贴刚记入新文件的代码,再看看是否行得通。

微软和剑桥团队表示,他们希望该系统未来能够理解完整编程语言的细微差别,能够识别网络上的优质代码。

原文发布于微信公众号 - 机器人网(robot_globalsources)

原文发表时间:2017-03-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

【数说】47万微信群、2亿微信用户,背后数字规律揭秘

微信群已经进入到我们的日常生活中,成为社交关系的主要纽带。但微信群有自己的规律,长期群能存活很长的时间,临时群则转瞬即逝。来自清华大学、康奈尔大学、腾讯公司和香...

7044
来自专栏ATYUN订阅号

【学术】5个字母解释数据科学管道 适合初学者的学习指南

从前,有一个叫“数据”的男孩。在他的一生中,他总是试图弄明白他活下去的目的是什么。比如:“我的价值观是什么? 我能对这个世界产生怎样的影响? 数据从何而来? 我...

3134
来自专栏CDA数据分析师

【资源】想进行数据科学项目却没有数据集?25个数据集网站汇总

原作者 Kunal Jain 编译  Mika 本文为 CDA 数据分析师原创作品,转载需授权 前言 如果用一个句子总结学习数据科学的本质,那就是: 学习数据科...

5418
来自专栏量子位

PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?

安妮 编译自 PyTorch官网 今天,PyTorch公开发布一周年了。 这个自诞生之日起就火热的深度学习框架,这一年是怎样的成长轨迹?刚刚,PyTorch团...

26210
来自专栏灯塔大数据

建立数据场的七大技能

摘要:成为数据极客,建立自己的数据场需要哪些技能呢?遇到普通的数据,通过SQL做分析。如果数据量比较大,可以使用Hadoop等大数据框架处理。在深入挖掘上,可...

3587
来自专栏新智元

【独家揭秘】机器学习分析 47 万微信群,发现 9 大规律

【新智元导读】微信群已经进入到我们的日常生活中,成为社交关系的主要纽带。但微信群有自己的规律,长期群能存活很长的时间,临时群则转瞬即逝。来自清华大学、康奈尔大学...

4326
来自专栏ATYUN订阅号

Clarifai的AI可检测图像和视频中的不合规内容

在互联网上过滤色情,毒品,血腥和其他令人反感的内容并不容易。Facebook目前在全球拥有7500名内容版主,而2017年5月为4500名。而在4月份,谷歌旗下...

1402
来自专栏新智元

【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow

编辑:弗格森 【新智元导读】 机器学习博士马超近日在微博上介绍他和导师肖臻教授一起开发的一款专门针对大规模稀疏数据的机器学习库xLearn并开源。并称, vi...

4748
来自专栏企鹅号快讯

金融机构利用人工智能反欺诈的利器:设备指纹技术的前世今生 下

01 设备指纹的核心技术 设备指纹技术是一个综合性的系统工程,掌握这门技术需要跨越一系列的技术门槛,这也是为什么虽然应用场景广阔,至今市场上此项技术提供者并不多...

4307
来自专栏媒矿工厂

PCS2018:360度全景视频流媒体传输系统【附PPT全文】

作为图像/视频编码领域的顶级会议之一,第33届图像编码研讨会(PCS,Picture Coding Symposium)于2018年6月24号至6月27号在加州...

2183

扫码关注云+社区

领取腾讯云代金券