【猎云网(微信号:ilieyun)】11月29日报道(编译:堆堆)
这是一种很有趣的想象——未来会是人工智能的天下。家庭服务机器人、配送无人机以及其他更加精确的家用医疗诊断会愈加普及,每一间房间都可以像Amazon Dots游戏一样连接起来(Dots是亚马逊推出的一款游戏,这里指的是物物相连的概念)。当下,炫酷的消费者应用吸引了大众的关注,但人工智能改革其他领域的能力却未引起大家同样多的注意力——即自身软件开发的方式。
想象一下如果计算机可以自我理解的话,那么它们可以做些什么呢?话说回来,计算机很快就可以理解自己的运作方式了。我并不是说这会发生在遥远的未来。事实上,通过利用现有的技术,计算机在不远的将来就可以做到这一点了。
直到现在,机器学习领域的专家还是更偏向于关注为特定任务开发的人工智能应用,比如说面部识别、无人驾驶汽车、语音识别甚至是互联网搜索结果。但如果这些算法在没有人类辅助、诠释或是干预的情况下能够理解自身代码编写的结构(就像是它们可以自动识别并且处理人类的语言和图像一样),这将会带来什么变化呢?
如果代码能够开始自我分析——修改错误并且能以比人类更快的速度改善优化代码,那么科技突破出现的速度也会越来越快。随之带来的将是无限的可能性:医疗进步、操作更流畅的机器人、更加智能化的手机、错误程序越来越少的软件、银行里的诈骗事件也会越少发生......
人工智能有可能可以解决软件开发中存在已久的问题。计算机程序有能力编写或是操纵其他代码(这一理念被称为元编程)的概念已经问世已久了(事实上早在20世纪50年代Lisp就提出了这个概念)。但如今,它只能解决人类可以想到的一些问题。
但是人工智能可以改变这一切。
使用人工智能,计算机就可以获取软件项目开发历史中所有的代码,然后立刻以可想见的编程语言修改并且排除每一行的代码错误。
即便是那些缺乏经验或是平凡无奇的程序员,只要他们拥有开发某一个应用的创意,他们就可以开始描述这一创意,之后计算机会自行完成应用的开发。这就意味着我们可以在数天或是数月内完成癌症研究项目,而不必再花费数年的时间。这是一项巨大的进步。
最终能够带来巨大变革的技术如今依旧处于萌芽期,但是它们已经蠢蠢欲动、亟待问世了。比如说谷歌的TensorFlow机器学习软件就可以让普通的程序员直接为应用开发神经网络功能,如在照片中识别人和物体的功能。你不需要再让一个拥有博士学位的程序员来检测这些创意了。业务的程序员可以在人工智能领域带来有史以来最大的突破。
你还依旧认为这些想法遥不可及吗?当你获悉一些公司已经开始将人工智能理念嵌入到内部项目管理系统中时,你一定会惊讶不已。事实上,谷歌已经开发出了一个程序错误预测项目,该项目可以利用机器学习以及数据分析猜测出代码是否存在潜在问题。W3C的联合主席Ilya Grigorik之后也开发出了一个叫做bugspots的开源版工具,目前下载量已经超过2万次。
另一个例子则是Siri的继任者Viv。在最近外媒的一篇报道中,Viv不仅可以利用自然语言处理来提供语音识别功能,它还可以基于英语单词来开发复杂的自适应计算机程序,即利用代码编写代码。Viv的开发者对编写的代码进行了调试和专业化培训。这并不是我所说的广义概念上的代码编写能力,但这确实是此方向的一小步尝试。
此方向的另一次尝试则出现在业余开发者领域。Emil Schutte说过这样一个极具争议性的言论:你们厌倦编写代码了吗?我也是这样!让Stack Overflow来完成编写代码这件事吧。之后,他从Stack Overflow庞大的编程知识数据库中调取出了概念证明(概念证明指的是证实发布的漏洞真实性的测试代码)以及完整的操作代码,目的是仅基于已编写代码的意图来提供完整的功能代码块。
随着此类技术越来越多的出现并且日趋成熟,机器最终能在任意一个领域比人类更出色得完成开发任务:视觉处理、图片处理、游戏甚至为其他的计算机编写程序。
那么为什么计算机目前还无法理解自身行为呢?答案很简单,这不过是时间问题。一旦它们做到这一点了,你就会发现变革性的突破在软件占据重要地位的领域不断发生。