AI研究简析:自适应软件与无人智能系统

发表时间: 2024-03-29 17:20

文/ 马立新,田新诚

摘 要:

自主智能无人系统是人工智能的重要应用场景之一,自主性和智能性是此类系统最重要的两个特征。本文基于将控制工程与软件工程两个学科进行合理且有效融合的思路,通过研究软件系统的自适应性结构模型、运行机制、学习方法及自适应策略,尝试寻找基于自适应软件系统实现自主智能无人系统的自主性和智能性的工程化开发方法。


关键词:

自主智能系统;软件自适应;自适应软件系统


1 自主智能系统概述

通常认为,智能系统是指能产生人类智能行为的计算机系统。智能系统不仅可自组织性与自适应性地在传统的诺依曼结构计算机上运行,而且也可自组织性与自适应性地在新一代的非诺依曼结构计算机上运行。“智能”的含义很广,其本质有待进一步探索,因而对“智能”这一词也难于给出一个完整、确切的定义。目前对“智能”的表述是,智能是人类大脑的较高级活动的体现,它至少应具备自动地获取和应用知识的能力、思维与推理的能力、问题求解的能力和自动学习的能力。


自主智能无人系统是由机械、控制、计算机、通信、材料等多种技术融合而成的复杂系统,人工智能无疑是发展此类系统的关键技术之一。利用人工智能的各种技术,如图像识别(智能感知)、人机交互,以及基于认知的学习和推理、智能决策、自主控制是实现和不断提高自主智能无人系统自主性和智能性这两个最重要特征的有效方法。我们发现,上述人工智能技术的发展,使人类可以创造出具有更高自主性和智能性的无人系统,并且未来此类系统在某些方面可以接近人类的智能水平。因此自主智能无人系统的研究目前已经成为人工智能领域国际竞争的一个新焦点,同时也是推动新一代信息技术发展的一个新动力,所以此类系统的研究与应用必将对社会发展和人类的生活产生重大影响。


早在本世纪初,美国国防部就发表了多个版本的《美国无人机路线图》,提出了无人系统发展总体战略指南。2018 年 8 月美国国防部又发布了《无人系统综合路线图(2017—2042)》,这是美国自2001 年以来发布的第 8 版无人机 / 无人系统综合路线图,旨在指导军用无人机、无人潜航器、无人水面艇、无人地面车辆等无人系统的全面发展,同时也反映了无人系统的智能化、协同化、安全化发展趋势。2016 年欧盟发布了“2020 地平线”机器人计划,面向机器人的开发和应用投资近 1 亿欧元。与此同时,中国也迅速跨入了智能无人系统时代。2017 年 7 月 8 日国务院印发并实施了《新一代人工智能发展规划》,在战略目标中提出:数据智能、跨媒体智能、群体智能、混合增强智能、自主智能系统等基础理论和核心技术要实现重要进展。2020 第三届全球无人系统大会于 11 月 22 日在珠海市盛大开幕。来自行业中的 80 多位国内外嘉宾、500 多家企业、700 多位专业人士共襄盛会,探讨交流全球无人系统的发展趋势和热点问题。因此可以看到,国家及行业管理部门的有关领导非常重视智能无人系统的研究及发展。


2 自主、智能与自适应软件系统

2.1 传统自动化系统的局限性和脆弱性

自主智能无人系统是从传统的自动化系统发展演变而来,传统自动化系统有助于在满足一致性、可靠性和可预测性的前提下按照编程完成目标任务,其挑战在于 , 这些行动一般只适于具备限制条件下的态势 ( 即设计人员预见并且软件开发人员且为之对应编程的态势 ),以及局限于为感知理解所处环境而使用的有限传感器列阵所提供的测量值。换言之 ,传统自动化系统适用于在设计和编程范围内的态势下完成目标任务 , 但是需要人的干预来处理设计和编程范围以外的态势。由此显而易见,自动化系统中的“自动”是基于预先编制程序来执行任务,没有自主学习能力和自主决策能力,更没有自适应能力。而作为自主智能无人系统的关键支撑技术之一的智能决策需要这种能力,既能精确感知 , 又能准确理解 ( 如识别并分类 ) 所检测目标;同时确立相互之间的态势关系及更主要的系统目标 , 是对智能(体)系统提出的挑战 , 尤其是在遇到预期外 ( 不在预先的设计范围内 ) 的目标、事件或态势时 (Object, Event,or Situation)。因此,自主智能无人系统中的“自主”是基于知识驱动的,“自主、智能”是完成“感知—分析—推理—决策—执行(控制)”的动态过程,并能够应对不可预知的突发事件。


2.2 “自主性”特征

自主与智能是两个不同范畴的概念,自主表达的是行为方式,由自身决策完成某行为则称为“自主”;智能则是完成行为过程的能力,也就是运用的方式、方法和策略是否符合自然规律或符合人 ( 或某团体 ) 的行为规则,在千变万化的环境中找到合理的“路径、方法”完成某项任务。因此,智能是分层次和分等级的。当然,智能需要设定参照体系。


自主与智能二者之间的关系,自主在前是基础,智能在后是前者的延伸和升级,二者相辅相成,且智能可以“强化”自主性。智能的等级水平取决于自主能力的高低,智能是自主与知识及其知识运用的结合体,智能生成的一般过程应该是在自主的前提下 , 综合运用权限范围和主动感知、数据融合、自学习、理解认知、优化迭代等诸多方面的能力,主动感知信息、提取信息、积累知识、总结和运用知识、归纳特征并精化,以及提升完善知识结构、融会贯通知识,以尽可能达到符合自然规律的目标。


智能具有相对性,不同“个体”的智能有差别。这些差别既来自其“诞生”时被赋予的智能,又来自后天学习与完善所得到的智能。


2.3 自主智能无人系统的自动化与自主性

在自主智能无人作战系统中,“自主性”通常是指“在更为广泛的作战条件、环境因素和更为多样的任务或行动中,使用更多的传感器和更为复杂的软件,提供更高层次自动化的行为”。自主性的特征通常体现在系统独立完成任务目标的程度。也就是,自主系统要在极其不确定的环境条件下,能够完全排除(处理)外界干扰,即使在没有通信或通信不畅的情况下,仍能修复系统故障或能处理外界干扰所带来的问题,并确保系统长时间良好运行。


系统要实现自主性就必须有一系列基于智能趋向的能力,能够对系统设计中未做规划、未做预测的态势做出响应(即基于决策的响应)。自主系统应当能够在一定程度上实现自我管理和自我指导;在软件设计方面,不仅要基于计算逻辑(更加通俗的说法是“基于规则”),还要采用计算智能(如模糊逻辑、神经网络、贝叶斯网络),通过智能(体)系统的通信和协同来实现目标(完成任务)。此外,运用学习算法可以实现自学习,并使智能(体)系统具有适应动态环境的能力。自主性可视为基于智能趋向的自动化的重要延伸和升级,可以在各种未预测到的环境(条件)中成功地执行面向目标任务的高级指令。因此,自主性也可理解为设计良好、具备较高智能的自动化。


2.4 自主性与自适应系统

如果要更加深入地探讨“自主性”的实现,就无法避开自适应性或自适应系统。如前文所述,要实现自主性,系统必须具备自学习能力及适应动态环境(极其不确定的环境条件)的能力。自适应系统则具有能够根据环境条件的变化,改变自己的行为以应对变化的特性;也就是具有一种能够根据外部的刺激,做出修改系统内部规则的能力。自适应系统具有高层感知性、适应性与自动性,能够监视自身状态,并在环境发生变化或出现错误时修正和改进自身,通常利用反馈—控制—系统行为的方式修改或者重组自身程序或子系统。


目前,自适应软件系统能够在运行过程中,实时收集系统和环境的变化信息,并根据预先设定好的策略,在必要时对自身的结构或者行为进行自动调整,以便更好地适应外部环境和需求的变化。这种调整可针对软件系统的不同方面(如属性、构件等等),借助于控制论。自适应软件系统的这种调整被视为一个闭环反馈过程,包含了四个方面的基本活动:监控,以获取各种原始的变化数据;发现,以分析数据;决策,以确定如何进行调整;实施,以执行调整行为。可见,软件系统的自适应性大体表现为软件系统实体的自适应性和系统实体结构的自适应性两个不同层次;即自适应软件实体和系统整体通过修改自身行为或改变自身结构,以满足功能和质量的需求。自适应软件系统具有四个特点。① 驻留环境具有开放性。环境中的资源会不断地发生变化,通常没有确定的边界。② 变化的敏感性。系统能够感知环境变化,并能对环境中发生的相关事件做出响应。③ 系统的动态性。系统的运行模式表现为系统与环境的交互与变化 1 ⇒…⇒系统与环境的交互与变化 n。④ 评估的正确性和有效性。需要对系统的变化做出正确、有效的评估,以判断系统是否满足预定目标。


由此可见,关于软件系统的自适应能力,既可以从功能和性能改进的角度进行定义,也可以从应对环境变化的角度进行定义。通常认为,软件自适应在作为软件系统的一个能力属性的同时,又可理解为是一个过程,即软件自适应具有典型的动态性和目的性特征;也就是说,软件自适应是一种在受到环境变化的扰动下,软件系统能自我调整且动态地逼近自适应目标的能力。当然从时间维度来看,软件自适应过程是一个不断迭代、与软件系统本身的运行相生相伴的循环过程。为了实现软件自适应,需要有相应的软件设施作支撑,既要有感知和识别变化的感知器设施,还要有基于变化进行决策的自适应器设施,以及能将自适应决策结果施加到目标软件系统的执行器设施。这里需要着重指出,与传统自动化控制软件非常不同的是,自适应软件系统的作用对象是软件自身,强调的是对自身(如软件状态、方法调用、体系结构等)的调整和修正完善;而控制软件的作用对象是客观世界物理系统,侧重的是对物理系统的调节和改变。


3 自适应软件系统的不足与展望

尽管现有的基于控制论的软件自适应已经开展了大量研究工作,但其更多采用了线性或近似线性的方法,因此对于运行于动态、开放、多变环境下呈现为非线性特征,开始暴露出不足。如何对具有非线性的软件自适应动态过程进行有效评价、分析和控制,仍是一个尚未被很好解决的问题。主要表现为,难以建立具有非线性特征的软件系统精确模型;过于强调控制策略的设计;缺少对软件自适应不确定性的处理和考虑;缺少有效的软件方法学研究和提炼。


或许可以换一个角度,尝试着考虑如何基于将控制工程与软件工程两个学科进行合理且有效的融合后,来更加深入地研究软件系统的自适应性问题。因此可能我们不得不面对如何重点解决三个问题,一是系统性的软件方法学问题;二是软件自适应过程复杂性和不确定性的处理及驾驭问题;三是工程化问题。针对这些问题可进一步分解为六个方面。① 基于控制论的自适应软件系统的模型和软件方法;② 软件自适应动态过程分析与评价;③ 应对软件自适应不确定性与模糊性;④ 多环协作软件自适应;⑤ 人机协同软件自适应;⑥ 基于控制论的自适应软件系统的开发支撑环境与开发工具。


4 软件自适应机制与在线自适应决策

如前所述,“自主性”意味着系统能够实现基于自我决策的自主控制。通常认为,自主控制是在没有人的干预下,将自主控制系统的感知能力、决策能力、协同能力和行动能力有机结合,在非结构化环境下,根据一定的控制策略进行自我决策,并持续执行一系列控制功能完成预定目标任务的能力。而在具体的工程应用场景中,控制系统智能化,即基于自适应的“智能控制”是自主控制系统的工程应用技术优势及显著特征。一般在工程应用中面临需要解决两个问题,一是如何设计一个可信的自适应软件系统可针对不可预知的、各种可能的变化或扰动完成自适应调整,以使系统具有更好的健壮性和灵活性,这显然难度极大且极具挑战性;二是自适应软件系统通常需要持续性的运行。目前,通常采用离线 (off-line) 决策的方法,即根据开发者所提供的预定义变化描述和定义的自适应逻辑来实施调整。一旦自适应需求发生变化 ( 如出现非预期的环境变化,并需要对该变化做出自适应的响应 ),那么系统的自适应逻辑需要重新定义,系统的运行需要被终止并重新加载,这种系统运行的频繁(经常)终止显然不可接受。


为解决上述问题和挑战,我们尝试将原来由开发人员在设计阶段给出的自适应逻辑变为由系统自身在运行阶段来完成,自适应决策也需要由离线方式转化为在线方式;也就是在进行抽象和描述自适应软件系统的基础上,设计一种自适应运行机制,借助于增强学习的手段来应对不可预见的变化(扰动),进而实现系统运行阶段的自适应决策。具体设计思路和路线图是,首先建立自适应软件系统的抽象模型;然后,在此基础上设计角色动态绑定的自适应机制,并设计基于增强学习和动态绑定的在线自适应决策方法(策略),寻找并实践自适应软件系统的工程化开发方法。


基于自适应软件系统具有显式的社会团体或团队组织的特征,从组织学和社会学的角度,可为自适应软件系统的研究提供高层的抽象和概念 ( 如角色(Role)、组织(Organization)、规则(Rule)等 ),图 1 描述了基于 Agent(行为实体)和组织抽象的自适应系统模型。一个自适应软件系统被视为一个社会团体化的组织,组织中的个体被抽象为 Agent,组织及其 Agent 均驻留在特定的环境中,因而受环境变化的影响。组织拥有一组角色,它们(角色)封装了组织中的行为和资源。组织中的个体 Agent 通过扮演不同的角色,展示其在组织中不同的地位和行为。


Organization 是指在特定上下文中一组具有共同目标、相互交互的 Agent 集合,组织的上下文定义了组织所驻留的环境。对于具有自适应能力的系统而言,环境变化将对组织的要素、结构、行为等产生影响。


Agent 是指驻留在特定环境下能够自主、灵活地执行动作,以满足设计目标的行为实体。Agent 通过扮演组织中的角色成为组织中的成员,获得组织中的地位,拥有相应的资源和行为。对于某些 Agent而言,驻留环境及自身内部的变化将促使 Agent 对其自身的结构和行为进行调整,该类 Agent 被称为自适应 Agent (self- adaptive agent,SA)。Role 是对Agent 在组织上下文中所展示的环境、行为和资源的抽象表示,反映了 Agent 在组织中的地位。


Environment 是针对那些对组织、或者 Agent 的行为、或者调整产生影响的要素的抽象。环境的变化可抽象为环境中相关事件的发生。对于开放环境而言,环境变化往往是动态、不确定、无法事先预知的。


组织中的 Agent 能够随着驻留环境及其自身的变化动态地调整它在组织中所扮演的角色,进而“进入(Join)”或者“退出(Ouit)”某个组织,或者改变它在组织中的“地位”(Position),反映了它对环境和自身变化的某种适应性。Agent 对角色的调整可通过 Join( 加入 )、Ouit( 退出 )、Suspend( 挂起 ) 和Resume( 恢复 ) 四个基本的自适应原子操作来完成。一旦 Agent 通过执行这些原子操作改变其角色,那么Agent 的内部资源、属性和行为等也随之发生调整。我们将上述自适应机制称为动态绑定机制 ( 见图 2)。


Join。Agent 可执行自适应动作 Join 以加入组织中的角色,获得该角色所定义的结构和行为特性,进而改变 Agent 在组织中的地位,如成为组织中的一员或者改变其在组织中所扮演的角色。一旦 Agent加入某个角色,则称为 Agent 绑定了该角色。随之,该角色所定义的结构和行为,将对 Agent 实施约束和产生影响。


Quit。Agent 可执行自适应动作 Quit 以退出组织中的角色,失去该角色所定义的结构和行为特性;进而改变 Agent 在组织中的地位,如不再是组织中的一员或者改变其在组织中所扮演的角色。

Agent 所绑定的角色具有活跃 (Active) 状态和非活跃 (Inactive) 二种不同的状态,并且在任何时刻只能处于其中的一种状态。


Suspend。Agent 可执行自适应动作Suspend,以将所绑定角色的状态从 Active 调整为 Inactive。当 Agent 所绑定的角色处于 Inactive 状态时,它将不再约束 Agent 的运行,以及指导 Agent 的运行,但是 Agent 仍可访问角色所定义的结构信息,并访问其内部属性。


Resume。Agent 可执行自适应动作 Resume,以将所绑定角色的状态从 Inactive 调整为 Active 状态。当 Agent 所绑定的角色处于活跃状态时,它将约束Agent 的运行。例如 Agent 将根据角色所定义的行为来选择和执行动作。


5 自适应软件系统的模型及开发框架


6 结束语

近年来,有关自适应软件系统的研究引起了学术界和工业界的高度关注和重视,例如开放、动态、难控网络环境下的网构软件、软件密集型的超大规模系统等,尽管自适应软件系统的研究已经有较长的时间,并在许多工程领域取得了诸多成功,但是如何用系统、高效的方式支持自适应软件系统的工程化开发,仍然是目前面临的一项重要挑战,包括需求、建模、实现、验证等;尤其是自适应软件系统的研究是多学科交叉的,包括软件工程、控制论、决策论、人工智能、网络和分布计算等。在软件工程领域,目前人们大多借助于软件体系结构技术、基于构件软件工程,以及面向方面程序设计、中间件、计算反射等方法来支持自适应软件系统的工程化开发。

(参考文献略)


选自《中国人工智能学会通讯》

2022年第12卷第6期

人工智能技术赋能下的智能系统设计及应用专题