一种基于N版本编程的深度强化学习软件容错方法技术

技术编号:38764692 阅读:11 留言:0更新日期:2023-09-10 10:38
本发明专利技术公开了一种基于N版本编程的深度强化学习软件容错方法,步骤如下:(1)针对序贯决策任务特点,选择合适的强化学习算法,通过与环境交互训练,得到一个基准模型;(2)针对目标任务的特点,从不同环节、不同方面设计独立性因素;(3)在基准模型的基础上引入独立性因素,训练多个与基准模型存在差异的独立模型;(4)针对任务特点设计一种有效的结合策略,综合利用多个独立模型的输出,避免因个别模型出错而导致系统失效。本发明专利技术通过引入独立性因素并设计合理结合策略,构建深度强化学习容错框架,保证了深度强化学习系统在复杂噪声环境下的鲁棒性和容错能力,使其在复杂的真实环境中安全运行。全运行。全运行。

【技术实现步骤摘要】
一种基于N版本编程的深度强化学习软件容错方法


[0001]本专利技术属于软件可靠性工程
,具体地说,本专利技术涉及一种基于N版本编程(N

Version Programming,NVP)的深度强化学习软件容错方法。

技术介绍

[0002]近年来,深度强化学习技术被越来越多地应用于游戏博弈、自动驾驶、医疗健康、金融交易、机器人控制和网络安全等领域。随着深度强化学习理论与技术的蓬勃发展,及其在安全关键领域的落地,使得人们越来越多地关注深度强化学习系统的质量、可靠性等问题。在一些安全关键领域,如空战决策、无人机航路规划、自动驾驶以及医疗健康等应用领域,软件系统的偶发性故障很有可能造成重大的人员伤亡及财产损失。深度强化学习系统质量与可靠性,已成为影响深度强化学习技术在安全关键领域进一步落地的瓶颈问题。
[0003]实际上,深度强化学习系统在数据、程序、模型等不同环节都有可能存在缺陷,这些缺陷在复杂多变的真实环境中被触发,就有可能造成系统故障,并进一步导致系统失效。例如,深度强化学习决策系统中的传感器、执行器等设备存在程度不一的数据噪声或者数据错误;网络模型及其参数更新错误;模型训练过程探索不充分、训练过拟合等,都有可能影响到强化学习系统在实际运行时的可靠性。软件容错是软件可靠性工程领域研究较多、应用较为广泛的一种软件可靠性保障技术。软件容错是利用相同的需求说明而设计不同版本并通过冗余,相互屏蔽各自内在缺陷,恢复进程运行,从而实现高可靠、高安全性的系统软件技术。近年来,软件容错技术也开始应用于人工智能软件,不少研究者提出借助模型冗余来减少乃至消除故障的影响,防止失效的产生,从而提升人工智能软件系统的可靠性。模型冗余的思想类似于集成学习,但集成学习研究的目标主要是提高模型的泛化性能,其与软件容错的目标不同,具体设计思路也会存在一定区别。此外,已有的人工智能软件容错方法及研究主要针对的是以深度学习为代表的监督学习类软件,如何设计面向深度强化学习软件的容错框架,如何提升深度强化学习软件系统的质量与可靠性,目前还没有成熟的解决方案。由于深度强化学习算法本身的黑盒特性,深度强化学习软件系统的缺陷要比传统软件更为隐蔽,其软件失效机理也更复杂,软件失效以后也总是难以复现和回溯,针对这类复杂决策系统的修复更是无从谈起。
[0004]实际上,影响软件系统质量和可靠性的首要因素就是软件缺陷,软件缺陷的存在很可能会引发软件系统运行过程中的故障,进而导致系统运行失效。与传统软件系统不同,深度强化学习系统的决策逻辑是通过学习数据而非人为定义的,包含深度学习算法和强化学习算法的设计与实现。其中,深度学习算法通过学习大量的交互数据,借助反向传播算法更新神经网络的权重参数,学习关于环境和状态的有效表征,而强化学习算法则负责探索状态空间,借助与不确定性环境的持续交互,学习策略函数以解决目标任务。环境状态表征学习不够准确、环境状态空间探索不够充分,都会影响训练所得策略模型的性能。而这些问题和缺陷都无法通过审查的方式发现和排除,目前也没有行之有效的修复方案,这些都给提升深度强化学习软件系统可靠性带来了挑战。
[0005]深度强化学习系统作为一类特殊的机器学习系统,具有区别于传统软件系统的一些显著的特点,主要表现为以下方面:第一方面,它的结构和算法更为复杂。除代码外,大量的神经元结构构成了软件主体,失效机理更加复杂;第二方面,机器学习类软件作为统计导向型软件并依靠数据驱动建模,其包含的随机因素更多;第三方面,其面向的任务更为复杂,通常用于给没有既定结果的问题提供决策方案;第四方面,作为机器学习类软件,需要对系统的整体进行考虑,因而难以像传统软件那样分解为若干的相对独立的单元。此外,深度强化学习模型的计算还依赖于计算设备的可靠运行,而真实环境中存在的电子干扰、硬件长期运行造成的老化都有可能造成硬件设备的故障,从而影响强化学习系统的可靠性。以上因素都使得传统软件的容错方法无法直接应用于深度强化学习系统,因此,本方案基于强化学习类软件缺陷的特性,提出一种面向深度强化学习系统的容错框架,为强化学习系统的可靠运行保驾护航。

技术实现思路

[0006]本专利技术的一个目的是:为了解决强化学习系统的容错设计存在的难点,弥补当前学术界和工业界对于深度强化学习系统容错研究的空白,本专利技术提出了一种基于N版本编程的深度强化学习系统容错方法。该方法借鉴了传统软件容错技术中的N版本编程的思路,利用冗余模型设计了基于N版本编程的深度强化学习容错框架。此外,多版本编程容错设计要避免多个版本程序相关,因为共模错误会使表决器得到的结果是错误程序的结果,导致输出结果的可靠性大大降低。为此,本专利技术引入五个独立性因素,并在此基础上独立训练不同的深度强化学习模型,确保各冗余模型之间满足一定的设计多样性,以提高不同单版本模型之间的独立性,减少不同版本的深度强化学习模型共享相同缺陷的可能性,进而有助于提升深度强化学习系统整体的容错能力。
[0007]本专利技术的另一个目的是:提供一种面向深度强化学习系统的通用性软件容错框架,旨在提高深度强化学习系统在复杂环境中的性能表现,因而本方案也可以作为一种改善深度强化学习系统泛化性能的有效手段。
[0008]本专利技术的技术方案是:一种基于N版本编程的深度强化学习软件容错方法,包括以下步骤:
[0009]步骤1)、面向自动驾驶应用场景,针对一个多车道复杂驾驶环境来选择一种强化学习算法训练出一个智能体作为自动驾驶的行为决策模块,要求该智能体能够在复杂的驾驶环境下完成横向与纵向的控制任务,我们将其作为基准模型。
[0010]步骤2)、考虑到深度强化学习算法设计细节,以及模型编程框架、程序设计语言都会影响深度强化学习模型的测试性能,也就是会影响到多车道复杂驾驶环境下车辆之间发生碰撞的概率。因此本方案从算法设计和程序实现两方面分别提出若干独立性因素:算法设计方面包括“网络结构”、“学习算法”和“探索策略”;程序实现方面包括“编程框架”和“编程语言”。
[0011]步骤3)、在基准模型基础上,分别引入以上五种独立性因素,训练多个具有差异性的、独立的深度强化学习智能体模型。每引入一个独立性因素时,算法实现的其他部分与基准模型的算法实现保持一致,而只改变当前独立性因素下的实现方式,通过这种方式独立训练多个能够完成相同任务(在多车道复杂驾驶环境下车辆横纵向控制任务)的、不同版本
的智能体模型。
[0012]步骤4)、针对离散和连续动作任务分别设计与之相适的结合策略。具体而言,针对离散动作任务(如车辆的纵向控制),本方案提出“多数投票”和“排名投票”两种结合策略;针对连续动作任务(如车辆的横向控制),本方案提出“简单平均”和“加权平均”两种结合策略。利用以上结合策略,将3)中获得的多个模型的输出进行结合,作为最终的输出,得到基于N版本编程的深度强化学习容错模型。应用该模型可减少甚至避免在变道、超车等情况下车辆之间发生碰撞。
[0013]本专利技术提出的一种基于N版本编程的深度强化学习软件容错方法,与现有的提升深度强化本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于N版本编程的深度强化学习软件容错方法,其特征在于:该框架包含以下具体步骤:步骤1)在实验环境下选择一种强化学习算法训练出一个智能体,要求该智能体能完成实验环境下的序贯决策任务,作为基准模型;步骤2)从算法设计和程序实现两方面分别提出若干独立性因素:算法设计方面包括“网络结构”、“学习算法”和“探索策略”;程序实现方面包括“编程框架”和“编程语言”;步骤3)在基准模型基础上,分别引入以上五种独立性因素,训练多个具有差异性的、独立的深度强化学习智能体模型;每引入一个独立性因素时,算法实现的其他部分与基准模型的算法实现保持一致,而只改变当前独立性因素下的实现方式,通过这种方式独立训练多个不同版本的智能体模型;步骤4)针对离散动作任务,提出“多数投票”和“排名投票”两种结合策略;针对连续动作任务,提出“简单平均”和“加权平均”两种结合策略;利用以上结合策略,将步骤3中获得的多个模型的输出进行结合,作为最终的输出。2.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:深度强化学习算法结合了深度学习与强化学习,其中深度学习部分是通过神经网络的结构来展现的,强化学习部分是通过学习算法及探索环境策略的选择来展现的;神经网络结构的不同会导致深度强化学习模型拟合q表格时存在不同程度的过拟合或欠拟合,会影响智能体在不同噪声环境下的测试性能。3.根据权利要求1或2所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:搭建的基准模型中深度学习部分选择了构建一个含有3个隐层的全连接神经网络,每个隐层都含有24个神经元,激活函数选择了“relu”函数;强化学习部分选择了DDQN算法,探索策略选择了EpsGreedyQPolicy策略;编程框架选择TensorFlow框架;编程语言选择Python语言。4.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:“网络结构”具体为:在基准模型的基础上保持探索策略、学习算法、编程框架和编程语言相同,分别为EpsGreedyQPolicy策略、DDQN算法、TensorFlow框架和Python语言;通过改变神经网络结构,得到五个独立的深度强化学习智能体模型;五个独立的深度强化学习模型中神经网络结构部分分别选择:

DRL_00:含有3个隐层的全连接神经网络,每个隐层都含有24个神经元且激活函数选择了“relu”函数;

DRL_11:含有2个隐层的全连接神经网络,每个隐层都含有16个神经元且激活函数选择了“relu”函数;

DRL_12:含有3个隐层的全连接神经网络,每个隐层都含有24个神经元且激活函数选择了“tanh”;

DRL_13:含有2个隐层的全连接神经网络,每个隐层都含有16个神经元且激活函数选择了“tanh”;

DRL_14:含有3个隐层的全连接神经网络,每个隐层都含有16个神经元且激活函数选择了“tanh”。5.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:“探索策略”具体为:在基准模型的基础上保持学习算法、神经网络结构、编程框架和编程语言相同,分别为DDQN算法、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、TensorFlow框架和Python语言;通过改变探索策略,得到五个独立的深度强化学习智能体模型;
五个独立的深度强化学习智能体模型中探索策略部分分别选择:

DRL_00:EpsGreedyQPolicy策略;

DRL_21:LinearAnnealedPolicy策略;

DRL_22:BoltzmannQPolicy策略;

DRL_23:MaxBoltzmannQPolicy策略;

DRL_24:BoltzmannGumbelQPolicy策略。6.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:“学习算法”具体为:在基准模型的基础上保持探索策略、神经网络结构、编程框架和编程语言相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神...

【专利技术属性】
技术研发人员:郑征杨雯婷万晓晖
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1