谷歌人工智能新目标已出 或将回归软件本身的突破

机器人技术 2025-01-10 10:12www.robotxin.com机器人技术

想象AI的未来,真是令人惊叹。家庭服务机器人、亚马逊的智能家庭中枢(Echo)等高科技设备将逐渐融入我们的日常生活中,无人机快递和精准医学诊断等应用也将成为现实。除了这些引人注目的消费级应用,AI在软件领域的发展同样具有巨大的潜力,这一点常常被我们忽视。

谷歌人工智能的新目标已经浮出水面,可能会引领软件本身的突破。想象一下,如果计算机能够理解自己,自主完成编程任务,将会带来怎样的变革?这一梦想已经触手可及,现有的技术已经足以实现这一愿景。

长期以来,机器学习的专家们更多地关注那些为特定任务开发的AI应用,如人脸识别、自动驾驶、语音识别等。如果类似的算法能够自我理解代码结构,无需人为干预,那么技术的突破可能会来得更快。由此带来的变革将是革命性的:医学领域的进步、更自然的机器人交互、更智能的手机、更少bug的软件以及更安全的银行系统等等。

人工智能具有解决软件开发中一个古老问题的潜力,即如何让代码自我编写或操纵其他代码。这个概念已经存在很长时间,一般称为元编程。现在,人工智能让这一难题的解决成为可能。

使用人工智能,计算机能够理解软件开发过程中的所有代码,并立即改进或删除其中的错误。即使是一个缺乏经验的程序员也能利用这一技术,让计算机自我编程。这将极大地加速项目进度,例如癌症研究项目可能只需几天或几个月就能完成,而无需等待数年。

今天,这项技术尚处于萌芽状态,但已经开始展现出巨大的潜力。谷歌的TensorFlow机器学习软件就是一个很好的例子,它让每位程序员都能将神经网络融入他们开发的APP中,使APP具备识别图像中的人和物体的能力。随着技术的不断进步,我们不再需要博士学位来驾驭这些变革。业余爱好者也能参与其中,这可能会成为AI发展历史上最大的突破。

谷歌不仅在尝试让计算机自我编程,还开发了一系列bug预测程序。这些程序使用机器学习和统计分析来判断代码中的错误。一些大公司已经在内部的项目管理系统中尝试使用这一概念。例如,Viv不仅使用自然语言处理来实现语言识别,还基于英语词汇建立了复杂的自适应性计算机程序。这意味着代码本身在写代码,这是一个巨大的进步。

在这个方向上,另一个显著的进步来自非专业领域。Emil Schutte曾表示:厌倦了写代码?我也是!那么就让Stack Overflow来完成这件事吧。

DeepMind的崭新尝试:神经编程解释器的诞生

在科技的浩瀚海洋中,DeepMind团队一直走在前沿。他们曾经开发了一种名为神经编程解释器(NPI)的创新技术,这项技术为编程领域带来了前所未有的变革。

NPI是一种递归性的合成神经网络,拥有自我学习和编辑程序的能力。它的出现,让人们看到了机器自我理解的可能性。在描述这项研究的论文《神经程序解释器》中,它被评选为ICLR16的最佳论文,足以见证其影响力。

NPI的核心是一个基于LSTM的序列模型,这个模型能够学习对程序进行表征和执行。它的输入包括可学习的程序嵌入、程序参数以及对环境的特征表征。输出则包括指示接下来要执行的操作、程序参数以及执行与否的标记。除了递归性的内核,NPI还包括一个可学习程序的键值内存,这对于程序的持续学习和重用至关重要。

NPI拥有三个强大的学习能力部件:任务未知的递归内核、持续键值程序内存以及基于特定领域的编码器。这个编码器能在多个环境中让单一的NPI提供截然不同的功能。通过合成低层程序表达高层程序,NPI减少了样本复杂性,并且比序列到序列的LSTM更容易泛化。

当时的DeepMind团队并未采用无监督学习的方法来训练NPI,其模型只能学习合成若干种简单的程序。尽管如此,单一NPI已经能够执行这些程序以及所有相关的21个子程序。

Facebook人工智能实验室研究员田渊栋也在计算机自我编程领域做出了深入的研究。他在ICLR17提交的文章中,提出了一种使用Hierarchical Generative Convolutional Neural Networks(HGCNN)的方法,自动根据输入/输出对生成程序。这种方法可以生成从简单到复杂的各种程序,包括找到数组中的最大值等。

田渊栋在研究中表示,这篇论文通过抽取算法的输入和输出的特征,送入卷积神经网络文献中,再层次式地生成图像的经典框架,最终生成一张二维图,每一行就是一行代码的概率分布。有了好的分布,就可以帮助启发式搜索找到正确的程序。这是一种非监督的学习方式,基本不需要人工干预。

这个领域的动机是什么?答案是“让计算机自己写代码”。随着这类技术的成熟,机器将在各种任务上超越人类。机器理解自己的那一天,将会带来一场颠覆性的变革。人工智能的核心挑战之一是教会机器学习新的程序,从既有程序中快速编写新程序,并自动执行这些程序以解决广泛种类的任务。现在,机器已经能够自动执行越来越多的程序,甚至有可能取代人类程序员的工作。历史上的开源代码如果都能被机器学习并运用,那么编程的许多场景都可以实现自动化,这将大大减少人工投入,改变编程行业的未来。

Copyright © 2016-2025 www.robotxin.com 人工智能机器人网 版权所有 Power by