博舍

新一代人工智能的发展与展望 人工智能自主编程

新一代人工智能的发展与展望

    随着大数据、云计算等技术的飞速发展,人们生产生活的数据基础和信息环境得到了大幅提升,人工智能(AI)正在从专用智能迈向通用智能,进入了全新的发展阶段。国务院印发的《新一代人工智能发展规划》指出新一代人工智能相关学科发展、理论建模、技术创新、软硬件升级等整体推进,正在引发链式突破,推动经济社会各领域从数字化、网络化向智能化加速跃升。在4月10日“吴文俊人工智能科学技术奖”十周年颁奖盛典中,作为我国不确定性人工智能领域的主要开拓者、中国人工智能学会名誉理事长李德毅院士荣获“吴文俊人工智能最高成就奖”,并在大会上作题为《探索什么叫新一代人工智能》的报告,探讨了新一代人工智能的内涵和路径,引领着新一代人工智能的发展与展望。

    人工智能这一概念诞生于1956年在美国达特茅斯学院举行的“人工智能夏季研讨会”,随后在20世纪50年代末和80年代初先后两次步入发展高峰,但因为技术瓶颈、应用成本等局限性而均掉入低谷。在信息技术的引领下,数据信息快速积累,运算能力大幅提升,人工智能发展环境发生了巨大变化,跨媒体智能、群体智能成为新的发展方向,以2006年深度学习模型的提出为标志,人工智能第三次站在了科技发展的浪潮之巅。

    当前,随着移动互联网、物联网、大数据、云计算和人工智能等新一代信息技术的加速迭代演进,人类社会与物理世界的二元结构正在进阶到人类社会、信息空间和物理世界的三元结构,人与人、机器与机器、人与机器的交流互动愈加频繁。在多源数据、多元应用和超算能力、算法模型的共同驱动下,传统以计算机智能为基础的、依赖于算力算法和数据的人工智能,强调通用学习和大规模训练集的机器学习,正逐渐朝着以开放性智能为基础、依赖于交互学习和记忆、基于推理和知识驱动的以混合认知模型为中心的新一代人工智能方向迈进。应该说,新一代人工智能的内核是“会学习”,相较于当下只是代码的重复简单执行,新一代人工智能则需要能够在学习过程中解决新的问题。其中,学习的条件是认知,学习的客体是知识,学习的形态是交互,学习的核心是理解,学习的结果是记忆……因此,学习是新一代人工智能解释解决现实问题的基础,记忆智能是新一代人工智能中多领域、多情景可计算智能的边界和约束。进而当人类进入和智能机器互动的时代,新一代人工智能需要与时俱进地持续学习,不断检视解决新的问题,帮助人机加深、加快从对态势的全息感知递进到对世界的多维认知。

    事实上,基于数据驱动型的传统人工智能,大多建立在“数据中立、算法公正和程序正义”三要素基础之上,而新一代人工智能更关注于交互能力,旨在通过设计“记忆”模块来模仿人脑,解决更灵活多变的实际问题,真正成为“不断学习、与时俱进”的人工智能。特别是人机交互支撑实现人机交叉融合与协同互动,目前已在多个领域取得了卓越成果,形成了多方面、多种类、多层次的应用。例如,在线客服可以实现全天候不间断服务,轻松解决用户咨询等问题,也可将棘手问题转交人工客服处理,降低了企业的管理成本;在智慧医疗领域,人工智能可以通过神经影像实现辅助智能诊断,帮助医生阅片,目前准确率已达95%以上,节省了大量的人力;2020年,在抗击疫情的过程中,新一代人工智能技术加速与交通、医疗、教育、应急等事务协作联动,在科技战“疫”中大显身手,助力疫情防控取得显著成效。

    未来已来,随着人工智能逐渐融入居民生活的方方面面,将继续在智慧医疗、自动驾驶、工业制造智能化等领域崭露头角。一是基于新一代人工智能的智慧医疗,将助力医院更好记录、存储和分析患者的健康信息,提供更加精准化和个性化的健康服务,显著提升医院的临床诊断精确度。二是通过将新一代人工智能运用于自动驾驶系统的感知、预测和决策等方面,重点解决车道协同、多车调度、传感器定位等问题,重新定义城市生活中人们的出行方式。三是由于我国工业向大型化、高速化、精细化、自主化发展,对高端大规模可编程自动化系统提出迫切需求,新一代人工智能将推动基于工业4.0发展纲领,以高度自动化的智能感知为核心,主动排除生产障碍,发展具备有适应性、资源效率、人机协同工程的智能工厂应运而生。总之,如何展望人工智能通过交互学习和记忆理解实现自编程和自成长,提升自主学习和人机交互的效率,将是未来研究着力发展的硬核领域,并加速新一代信息技术与智能制造深度融合,推动数字化转型走深走实,有信心、有能力去迎接下一场深刻产业变革的到来。

AI首次实现真正自主编程

姓名:张轲祺

转载自微信公众号新型智慧城市风向标

【嵌牛导读】让AI自动编程是人工智能领域长久以来的梦想之一。现在,来自彭博和英特尔实验室的两位研究人员,号称实现了首个能够自动生成完整软件程序的AI系统“AIProgrammer”,这个“AI程序员”利用遗传算法和图灵完备语言,开发的程序理论上能够完成任何类型的任务。AI自动编程的时代,大幕已开[嵌牛鼻子]人工智能AI自动编程〔嵌牛提问〕如果AI真的能够代替人类进行编程?那么人类的未来将何去何从?

〔嵌牛正文〕让AI自动编程一直是计算机科学家的梦想。

目前这个方面的成果还非常有限,比如让AI自动补完编程语言,或者执行简单的加法程序。今天我们要介绍的这项工作,号称是第一个能够全自动生成完整软件程序的机器学习系统“AIProgrammer”。

研究人员表示,他们用这个系统证明了长久以来的假设,那就是功能完备的程序确实能够被自动生成。具体到这项工作,AIProgrammer利用机器学习中的遗传算法,模拟复杂的指令。

虽然现在AIProgrammer生成的程序,复杂程度与人类新手程序员编写的结果相当。但研究人员认为,AIProgrammer编写的程序完全可以超越传统范畴,不受人类时间和智慧的局限。

AI编写的程序只是在测试复杂度和计算资源之间找得到最适合的点。换句话说,可能性无限。

研究人员还表示,我们需要重新思考,设计新的、面向机器的编程语言,因为当前的编程语言是面向人类的,不适用于基于ML的编程。“在考虑ML驱动程序生成的未来时,我们需要放弃和重新考虑典型程序语言创建的方法。”

研究人员写道,只有这样做,我们才能开始设想一个由AI系统驱动,以人类创造力和设计为指导的计算机软件开发的新未来。

AIProgrammer的软件架构。从图中可见,由人类驱动的部分非常少,只需要在开始输入指令,最后接收适用于某项任务的函数即可,剩下部分全部由机器完成。AIProgrammer:利用遗传算法自动生成程序,理论上能够完成所有类型的任务

根据论文,研究人员选择了无类型编程语言,只包括了8种指令来驱动AIProgrammer生成软件。

AIProgrammer使用的编程语言是图灵完备的,如表1所示。理论上,在时间和内存不限的情况下,图灵完备编程语言能够处理任何编程任务。

本质上,任何一种具有这种特质的编程语言都能够解决海量编程问题。同样,AIProgrammer生成的软件能够完成所有任务。

有了这个保障,再来看AIProgrammer的核心——遗传算法。

要使用遗传算法生成软件程序,必须首先创建一个基因组(genome)。基因组是一组被组合在一起作为单个单元的基因。AIProgrammer的基因组编码为浮点数组,每个唯一指令的固定值范围在0和1之间,如上面表1的基因范围列所示。

创建好基因组后,AIProgrammer就将其转换为相应的程序,执行,并根据程序的输出为结果程序分配适合度。生成的程序越靠近解决提供的任务,适应度就越高,越有可能继续进行下一代的进化。在每一代,AIProgrammer利用随机选择以及交叉和变异来创建子程序,其中包含轻微的随机扰动,并且可能比其父母更好的基因组来解决目标任务。

图3展示了从浮点数组中构建基因组的实例。每个值范围映射到编程语言中的特定指令。最初,这些值是随机的,导致生成的程序无法正常运行。但是,其中必将有一两个能够运行并执行一些有效的指令。一个程序执行得越成功,就越有可能继续使用代码,实现更成功的后代。

为了创建后代,父母将其基因的一部分交给孩子,这个过程如图4所示。除了继承父母的编程指令外,每个孩子也可能会遇到突变,也就是对特定基因增加受控但随机的扰动。这导致特定基因的值发生修改,使所得到的编程指令发生变化,进而改变整个程序。

可执行程序根据其执行情况进行排名,如图5所示。其中,特定程序会被立即从基因组池中删除,成功的方案则被推进以产生新的后代。

AIProgrammer使用结果:输出“HelloWorld”,反转字符串,加减乘,输出斐波那契数列……

AIProgrammer由C#.NET设计的模块化框架组成。包括运行遗传算法的引擎,基因组编码器和解码器,用于执行模拟程序的沙箱解读器,以及将代码转换为二进制可执行文件的编译程序。虽然最初设计AIProgrammer的时候使用C#,但需要注意的是,设计原则并不限于使用C#。

研究人员指出,AIProgrammer的适应性测试软件框架具有延展性,并已被开发。用户可以自己设计无数的定制化软件,最终指导系统的遗传算法(GA)生成和软件程序演变。

如果目标程序旨在生成一个字符串,如”HelloWorld”(见上图),测试分数可能是字符串中的数字。但由于AIProgrammer是在字节级生成代码,测试分数应将输出字符的增量差考虑在内。

研究人员表示i,他们能用AIProgrammer生成很多软件程序。表2是所生成程序的名单。

一开始,研究人员让AIProgrammer生成了一个非常简单的程序来输出“hi”。经过5700代后,测试成功。生成代码如图9所示。

经过580,900代后,生成了“helloworld”,如图10所示。

经过6,057,200代后,AIProgrammer成功生成了”Iloveallhumans”,如图11所示。

AIProgrammer生成反转字符串的程序。生成代码如图13所示。

AIProgrammer能在92,400代之后生成加法程序;在177,900代之后生成减法程序,如图15所示。

图16所示的生成程序可以从两个初始输入值来输出斐波纳契序列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇