该内容已被发布者删除 该内容被自由微信恢复
文章于 2017年2月27日 被检测为删除。
查看原文
被用户删除
其他

让代码写代码,自主编程的 AI 离我们还有多远?

2016-12-01 伯乐在线/黄小非 技术最前线

(点击上方公众号,可快速关注)


编译:伯乐在线/黄小非,英文:Lucas Carlson

如果转载,请发送「转载」二字查看说明


设想一下人工智能的未来:家庭服务机器人、每个房间都有亚马逊的智能家庭音箱,快递无人机,还有能提供准确诊断信息的医用机器人,这该是多么美好的未来啊!不过,在这些花里胡哨的美好设想吸引着大众眼球的同时,人工智能在另外一个领域的可能带来的变革,却没有引起公众的足够注意——这就是:让计算机自己编程


设想一下,如果计算机自己能够理解自己会是什么情况吧。其实,这不是一个设想。而且,应该很快就能实现。再说明白点儿吧,“很快”就是指最近,用市面上现有的技术就能实现。

目前,机器学习方面的专家倾向于把研究聚焦于具体领域内高度裁剪的 AI 应用——比如:面部识别、自动驾驶汽车、语音识别,甚至是互联网搜索结果等方面。但是,这些技术同样可以应用到让计算机理解其自身的代码架构上——当然这里是指脱离人类的帮助、解释和干涉的情况下进行的理解——其实这种对代码的“理解”和让计算机理解自然语言,或是识别图像并没有本质的区别。

如果代码能够自我分析——做到比人类更快地修正错误并不断优化——那么技术革新将会发生得越来越快。其带来的可能性几乎是无穷无尽的:医学上的进步,更智能的机器人,更“智能“的手机等等。

人工智能在解决一个已有问题的方面一直很有潜力。而且,通过一种计算机语言来编写或者修改其他各种计算机语言——也就是传说中的元编程语言的概念——的技术已经有很长的历史了(实际上1950年代的Lisp就是为了实现这个概念而发明的),单这种元编程语言还是无法超越人类想象范围的问题。

而 AI 将会改变这种局面。

通过使用 AI,计算机能理解软件项目历史上所有的代码,针对所有的计算机语言,立刻就能对代码进行优化和调试。

如此一来,即使是经验不足或者中级程序员,只要有一个关于应用程序的想法,就能够通过向电脑描述,并让计算机自动去构建这个应用程序。这意味着在完成一件事情的速度上的重大提升,比如,可以在几天内完成一个”癌症研究计划“,而不是几个月,甚至几年。这可是非常重要的进步。

尽管一开始处于幼稚的萌芽阶段,但是各种技术终将引领我们取得难以置信的进展,现在这些萌芽已经开始出现了。比如,Google的TensorFlow 机器学习软件,就能让广大开发者直接在应用程序里构建神经网络,从而实现类似于在照片中辨识人或者物品的功能。你不再需要读书读到博士水平,也能去鼓捣这些高级的技术了。要知道在从前,人工智能领域的技术门槛可是非常高的。

你觉得 AI 技术还离你很远么?如果你意识到,有些公司已经开始使用 AI 的概念来做内部项目管理系统了,你会不会感到惊奇?——Google就是如此,它构架了一套bug预测程序,用机器学习和统计学分析的方法来预测一段代码是否存在潜在的bug。Ilya Grigorik(W3C的联合主席)也创建了一套类似的开源版本的工具叫做 bugspots,目前经有 20000 次的下载量了。

另外一个例子是 Siri 的继任者 Viv。最近由《连线》杂志曝光的 Viv 不仅仅是一个基于智能自然语言处理技术的语音识别软件。Viv 还能基于英语来构建复杂的适应性计算机程序。让代码来写代码!不过,由于写出来的代码是由Viv的开发者高度训练和特化处理的,因此它还无法达到本文所期望的那种普适度。但是,这至少是迈向这个方向的坚实一步。

在这个方向上迈出的另外一步来自于广大的开发者领域。Emil Schutte 曾经发表过一段颇具挑衅性的声明:”写代码写累了吗?我也是!那么让 Stack Overflow 帮我们写吧。”然后,他给出了这一说法的证明,一段完整的可工作的代码,直接可以从 Stack Overflow 巨大的编程知识数据库中扒出来,而数据库里还有无数人已经写好的各种不同目的的代码。

随着这一技术的上线以及愈发成熟,计算机就能够表现得越来越像人类,可以完成各种任务:视觉处理、图像处理、游戏,那么给其他计算机编程又有什么不可以的呢?

所以,如果问为什么计算机目前还不能理解自己?答案是,还需要时间。不过,一旦它们做到了那个程度,你就会发现,只要在软件技术可以应用的领域,都必将发生令人难以置信的突破。


关注「技术最前线」

看更多技术动态

↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存