CN116720571A - 一种基于n版本编程的深度强化学习软件容错方法 - Google Patents
一种基于n版本编程的深度强化学习软件容错方法 Download PDFInfo
- Publication number
- CN116720571A CN116720571A CN202310568712.2A CN202310568712A CN116720571A CN 116720571 A CN116720571 A CN 116720571A CN 202310568712 A CN202310568712 A CN 202310568712A CN 116720571 A CN116720571 A CN 116720571A
- Authority
- CN
- China
- Prior art keywords
- reinforcement learning
- deep reinforcement
- strategy
- drl
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002787 reinforcement Effects 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 99
- 238000012549 training Methods 0.000 claims abstract description 12
- 230000009471 action Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 42
- 238000013528 artificial neural network Methods 0.000 claims description 41
- 210000002569 neuron Anatomy 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 22
- 238000013461 design Methods 0.000 claims description 17
- 238000012360 testing method Methods 0.000 claims description 13
- 238000013135 deep learning Methods 0.000 claims description 10
- 238000004088 simulation Methods 0.000 claims description 8
- 230000010354 integration Effects 0.000 claims description 2
- 230000002452 interceptive effect Effects 0.000 abstract description 2
- 239000003795 chemical substances by application Substances 0.000 description 42
- 230000007547 defect Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000011160 research Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/002—Biomolecular computers, i.e. using biomolecules, proteins, cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Chemical & Material Sciences (AREA)
- Organic Chemistry (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Quality & Reliability (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种基于N版本编程的深度强化学习软件容错方法,步骤如下:(1)针对序贯决策任务特点,选择合适的强化学习算法,通过与环境交互训练,得到一个基准模型;(2)针对目标任务的特点,从不同环节、不同方面设计独立性因素;(3)在基准模型的基础上引入独立性因素,训练多个与基准模型存在差异的独立模型;(4)针对任务特点设计一种有效的结合策略,综合利用多个独立模型的输出,避免因个别模型出错而导致系统失效。本发明通过引入独立性因素并设计合理结合策略,构建深度强化学习容错框架,保证了深度强化学习系统在复杂噪声环境下的鲁棒性和容错能力,使其在复杂的真实环境中安全运行。
Description
技术领域
本发明属于软件可靠性工程技术领域,具体地说,本发明涉及一种基于N版本编程(N-Version Programming,NVP)的深度强化学习软件容错方法。
背景技术
近年来,深度强化学习技术被越来越多地应用于游戏博弈、自动驾驶、医疗健康、金融交易、机器人控制和网络安全等领域。随着深度强化学习理论与技术的蓬勃发展,及其在安全关键领域的落地,使得人们越来越多地关注深度强化学习系统的质量、可靠性等问题。在一些安全关键领域,如空战决策、无人机航路规划、自动驾驶以及医疗健康等应用领域,软件系统的偶发性故障很有可能造成重大的人员伤亡及财产损失。深度强化学习系统质量与可靠性,已成为影响深度强化学习技术在安全关键领域进一步落地的瓶颈问题。
实际上,深度强化学习系统在数据、程序、模型等不同环节都有可能存在缺陷,这些缺陷在复杂多变的真实环境中被触发,就有可能造成系统故障,并进一步导致系统失效。例如,深度强化学习决策系统中的传感器、执行器等设备存在程度不一的数据噪声或者数据错误;网络模型及其参数更新错误;模型训练过程探索不充分、训练过拟合等,都有可能影响到强化学习系统在实际运行时的可靠性。软件容错是软件可靠性工程领域研究较多、应用较为广泛的一种软件可靠性保障技术。软件容错是利用相同的需求说明而设计不同版本并通过冗余,相互屏蔽各自内在缺陷,恢复进程运行,从而实现高可靠、高安全性的系统软件技术。近年来,软件容错技术也开始应用于人工智能软件,不少研究者提出借助模型冗余来减少乃至消除故障的影响,防止失效的产生,从而提升人工智能软件系统的可靠性。模型冗余的思想类似于集成学习,但集成学习研究的目标主要是提高模型的泛化性能,其与软件容错的目标不同,具体设计思路也会存在一定区别。此外,已有的人工智能软件容错方法及研究主要针对的是以深度学习为代表的监督学习类软件,如何设计面向深度强化学习软件的容错框架,如何提升深度强化学习软件系统的质量与可靠性,目前还没有成熟的解决方案。由于深度强化学习算法本身的黑盒特性,深度强化学习软件系统的缺陷要比传统软件更为隐蔽,其软件失效机理也更复杂,软件失效以后也总是难以复现和回溯,针对这类复杂决策系统的修复更是无从谈起。
实际上,影响软件系统质量和可靠性的首要因素就是软件缺陷,软件缺陷的存在很可能会引发软件系统运行过程中的故障,进而导致系统运行失效。与传统软件系统不同,深度强化学习系统的决策逻辑是通过学习数据而非人为定义的,包含深度学习算法和强化学习算法的设计与实现。其中,深度学习算法通过学习大量的交互数据,借助反向传播算法更新神经网络的权重参数,学习关于环境和状态的有效表征,而强化学习算法则负责探索状态空间,借助与不确定性环境的持续交互,学习策略函数以解决目标任务。环境状态表征学习不够准确、环境状态空间探索不够充分,都会影响训练所得策略模型的性能。而这些问题和缺陷都无法通过审查的方式发现和排除,目前也没有行之有效的修复方案,这些都给提升深度强化学习软件系统可靠性带来了挑战。
深度强化学习系统作为一类特殊的机器学习系统,具有区别于传统软件系统的一些显著的特点,主要表现为以下方面:第一方面,它的结构和算法更为复杂。除代码外,大量的神经元结构构成了软件主体,失效机理更加复杂;第二方面,机器学习类软件作为统计导向型软件并依靠数据驱动建模,其包含的随机因素更多;第三方面,其面向的任务更为复杂,通常用于给没有既定结果的问题提供决策方案;第四方面,作为机器学习类软件,需要对系统的整体进行考虑,因而难以像传统软件那样分解为若干的相对独立的单元。此外,深度强化学习模型的计算还依赖于计算设备的可靠运行,而真实环境中存在的电子干扰、硬件长期运行造成的老化都有可能造成硬件设备的故障,从而影响强化学习系统的可靠性。以上因素都使得传统软件的容错方法无法直接应用于深度强化学习系统,因此,本方案基于强化学习类软件缺陷的特性,提出一种面向深度强化学习系统的容错框架,为强化学习系统的可靠运行保驾护航。
发明内容
本发明的一个目的是:为了解决强化学习系统的容错设计存在的难点,弥补当前学术界和工业界对于深度强化学习系统容错研究的空白,本发明提出了一种基于N版本编程的深度强化学习系统容错方法。该方法借鉴了传统软件容错技术中的N版本编程的思路,利用冗余模型设计了基于N版本编程的深度强化学习容错框架。此外,多版本编程容错设计要避免多个版本程序相关,因为共模错误会使表决器得到的结果是错误程序的结果,导致输出结果的可靠性大大降低。为此,本发明引入五个独立性因素,并在此基础上独立训练不同的深度强化学习模型,确保各冗余模型之间满足一定的设计多样性,以提高不同单版本模型之间的独立性,减少不同版本的深度强化学习模型共享相同缺陷的可能性,进而有助于提升深度强化学习系统整体的容错能力。
本发明的另一个目的是:提供一种面向深度强化学习系统的通用性软件容错框架,旨在提高深度强化学习系统在复杂环境中的性能表现,因而本方案也可以作为一种改善深度强化学习系统泛化性能的有效手段。
本发明的技术方案是:一种基于N版本编程的深度强化学习软件容错方法,包括以下步骤:
步骤1)、面向自动驾驶应用场景,针对一个多车道复杂驾驶环境来选择一种强化学习算法训练出一个智能体作为自动驾驶的行为决策模块,要求该智能体能够在复杂的驾驶环境下完成横向与纵向的控制任务,我们将其作为基准模型。
步骤2)、考虑到深度强化学习算法设计细节,以及模型编程框架、程序设计语言都会影响深度强化学习模型的测试性能,也就是会影响到多车道复杂驾驶环境下车辆之间发生碰撞的概率。因此本方案从算法设计和程序实现两方面分别提出若干独立性因素:算法设计方面包括“网络结构”、“学习算法”和“探索策略”;程序实现方面包括“编程框架”和“编程语言”。
步骤3)、在基准模型基础上,分别引入以上五种独立性因素,训练多个具有差异性的、独立的深度强化学习智能体模型。每引入一个独立性因素时,算法实现的其他部分与基准模型的算法实现保持一致,而只改变当前独立性因素下的实现方式,通过这种方式独立训练多个能够完成相同任务(在多车道复杂驾驶环境下车辆横纵向控制任务)的、不同版本的智能体模型。
步骤4)、针对离散和连续动作任务分别设计与之相适的结合策略。具体而言,针对离散动作任务(如车辆的纵向控制),本方案提出“多数投票”和“排名投票”两种结合策略;针对连续动作任务(如车辆的横向控制),本方案提出“简单平均”和“加权平均”两种结合策略。利用以上结合策略,将3)中获得的多个模型的输出进行结合,作为最终的输出,得到基于N版本编程的深度强化学习容错模型。应用该模型可减少甚至避免在变道、超车等情况下车辆之间发生碰撞。
本发明提出的一种基于N版本编程的深度强化学习软件容错方法,与现有的提升深度强化学习软件可靠性的方法相比较,其优点在于:目前的研究大多都停留在改进算法、训练过程等来提供针对深度强化学习模型缺陷的解决方案,然而由于强化学习算法自身的黑盒特性,这些方法大都只能解决部分错误,无法提供一种通用的解决方案。而本发明借鉴传统软件容错方式来提升深度强化学习软件的质量和可靠性,为深度强化学习软件的容错提供了一种通用的解决方案。
附图说明
图1是基于N版本编程思想的深度强化学习软件容错方法。
图2是引入不同独立因素训练得到的不同版本的深度强化学习智能体。
具体实施方式
下面结合附图对本发明做进一步说明
首先结合附图1,对本发明选择引入“网络结构”、“探索策略”、“学习算法”、“编程框架”以及“编程语言”五个不同的独立性因素来构建多个版本深度强化学习模型的原因进行详细说明。
在多车道复杂驾驶环境下,自动驾驶车辆在进行变道、超车等行为时都较易与邻车发生碰撞,而危害道路及人身安全。深度强化学习算法的一些设计细节、编程实现都会影响到深度强化学习模型的测试性能,而由于深度强化学习算法的黑盒属性,我们又难以确定这些因素对模型的影响如何,因此,我们只能通过改变深度强化学习算法的一些设计环节、编程实现,训练出多个能够完成相同任务的深度强化学习智能体模型,这些模型在各种不同的负责场景下有可能做出不同的决策,因而其所表现出的可靠性与安全性存在差别。
实际上,深度强化学习算法结合了深度学习与强化学习,其中深度学习部分主要是通过神经网络的结构来展现的,强化学习部分主要是通过学习算法及探索环境策略的选择来展现的。神经网络结构的不同会导致深度强化学习模型拟合q表格时存在不同程度的过拟合或欠拟合,从而会影响智能体在不同噪声环境下的测试性能。深度强化学习希望智能体能够尽快找到最佳策略,这就需要对环境进行充分的探索,否则智能体仅根据算法网络的输出来选择行为,可能会导致深度强化学习模型陷入局部最优甚至完全不收敛的状态。探索策略选择不同,智能体进行环境探索、收集信息采用的方式就不同,当环境中存在观测噪声时,探索难度增大程度也不同,进而对智能体的测试性能影响程度就不同。学习算法不同,智能体与环境进行交互学习的方式就不同,进而抵抗环境观测噪声等的能力就不同。深度强化学习算法本质还是基于具体的编程语言编码实现的,编程框架、编程语言的选择不同,搭建的算法内部结构也就不同,进而对于算法设计缺陷的容忍能力也就不同。基于上述原因,本部分引入“网络结构”、“探索策略”、“学习算法”、“编程框架”以及“编程语言”五个不同的独立性因素,独立训练出多个实现细节存在差别的深度强化学习智能体。
其次,对本发明引入独立性因素在基准模型基础上构建多个独立的深度强化学习智能体模型进行详细说明。
独立性因素的引入本质上相当于采用“控制变量”的方式对每个多版本容错框架中的单版本智能体进行设计。例如,引入“网络结构”,对应着控制学习算法、探索策略、编程框架以及编程语言相同,改变神经网络结构的思路。以此类推,引入“探索策略”、“学习算法”、“编程框架”以及“编程语言”四个独立性因素,依次对应着改变探索策略、学习算法、编程框架以及编程语言,固定另外四个独立性因素不变的思路。
举例进行进一步说明。
若选择设计由五个独立开发的深度强化学习模型组成的容错框架。在每个容错框架中需要通过引入独立性因素,设计5个能够在多车道复杂驾驶环境下完成车辆横纵向控制任务的、不同版本的智能体模型。搭建的基准模型中深度学习部分选择了构建一个含有3个隐层的全连接神经网络,每个隐层都含有24个神经元,激活函数选择了“relu”函数;强化学习部分选择了DDQN算法,探索策略选择了EpsGreedyQPolicy策略;编程框架选择TensorFlow框架;编程语言选择Python语言。考虑到在构建深度强化学习模型的过程中,“网络结构”、“探索策略”、“学习算法”、“编程框架”以及“编程框架”等因素都有可能引起模型的差异性,导致最终训练得到的模型在面对各种不同的驾驶环境会给出不同的驾驶决策(从而指导车辆完成直行、左转、右转以及加减速等具体动作)。为此,我们将以上因素作为构建容错框架所需的独立性因素,然后在基准模型的基础上构建四个独立的深度强化学习模型,组成五版本容错框架中的五个独立深度强化学习模型组,如图2。五个模型组中采用的独立的多个版本深度强化学习模型的具体结构所述如下,其中以DRL_00表示基准模型,引入“网络结构”、“探索策略”、“学习算法”、“编程框架”以及“编程语言”在DRL_00基础上构建的各独立的深度强化学习智能体,依次以DRL_11~14、DRL_21~24、DRL_31~34、DRL_41~44以及DRL_51~54表示。
1.引入独立性因素——“网络结构”
网络结构的改变会影响自动驾驶智能体模型的策略函数形式,从而影响智能体输出驾驶动作。为此,我们在基准模型的基础上保持探索策略、学习算法、编程框架和编程语言相同,分别为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”。
2.引入独立性因素——“探索策略”
探索策略的改变会影响智能体在模型训练过程中的探索能力,从而影响最终训练得到的智能体的泛化性能,进而影响智能体在面对复杂驾驶环境时的可靠性。为此,我们在基准模型的基础上保持学习算法、神经网络结构、编程框架和编程语言相同,分别为DDQN算法、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、TensorFlow框架和Python语言。通过改变探索策略,即可得五个独立的深度强化学习智能体模型。
五个独立的深度强化学习智能体模型中探索策略部分分别选择:①DRL_00:EpsGreedyQPolicy策略;②DRL_21:LinearAnnealedPolicy策略;③DRL_22:BoltzmannQPolicy策略;④DRL_23:MaxBoltzmannQPolicy策略;⑤DRL_24:BoltzmannGumbelQPolicy策略。
3.引入独立性因素——“学习算法”
学习算法的改变会影响智能体在模型训练过程中的学习能力和收敛性,从而影响最终训练得到的智能体的泛化性能,并影响智能体在面对复杂驾驶环境时的可靠性。在基准模型的基础上保持探索策略、神经网络结构、编程框架和编程语言相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、TensorFlow框架和Python语言。通过改变学习算法,即可得到五个独立的深度强化学习模型。
五个独立的深度强化学习智能体模型中学习算法部分分别选择:①DRL_00:DDQN算法;②DRL_31:DQN算法;③DRL_32:Dueling DQN算法;④DRL_33:PER DQN算法;⑤DRL_34:Noisy DQN算法。
4.引入独立性因素——“编程框架”
不同框架对于不同算法的默认参数设置存在差异,这些差异会导致即使采用相同算法、探索策略、网络结构,最终的智能体模型也会存在差异,这种差异在测试阶段就会表现为智能体呈现出不同的泛化性能及可靠性。在基准模型的基础上保持探索策略、神经网络结构、学习算法和编程语言相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、DDQN算法和Python语言。通过改变编程框架,即可得到五个独立的深度强化学习智能体模型。
五个独立的深度强化学习模型中编程框架部分分别选择:①DRL_00:TensorFlow框架;②DRL_41:Keras框架;③DRL_42:PyTorch框架;④DRL_43:PaddlePaddle框架;⑤DRL_44:MXNet框架。
5.引入独立性因素——“编程语言”
不同编程语言同样也会对算法开发过程产生影响,使得智能体模型的测试性能存在差异性,这种差异性在测试阶段就会表现为不同智能体产生不同的驾驶决策,因而其安全性与可靠性也各不相同。在基准模型的基础上保持探索策略、神经网络结构、学习算法和编程框架相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、DDQN算法和TensorFlow框架。通过改变学习算法,即可得到五个独立的深度强化学习模型。
五个独立的深度强化学习智能体模型中学习算法部分分别选择:①DRL_00:Python语言;②DRL_51:C++语言;③DRL_52:R语言;④DRL_53:Java语言;⑤DRL_54:Go语言。
最后,对本发明针对在多车道复杂驾驶环境下车辆控制的不同任务特点所设计的合理的结合策略进行举例说明。
针对车辆控制中不同类的任务设计一些合理的结合策略,将各独立的不同版本的深度强化学习智能体模型的决策输出进行结合,即通过决策程序选择出智能体接下来要进行的动作。针对离散动作的任务(如车辆的车道变更动作、加速动作、制动动作以及转向动作等),本发明提出了“多数投票法”和“排名投票法”两种结合策略。二者采用不同的方法计算进行各动作的概率,然后选择出概率最大的动作,随后所有的单版本智能体都会采用这个动作进行接下来的学习任务。针对连续动作任务(如控制车辆的转向角度、加减速的程度、转向灵敏度等),本发明提出了“简单平均法”和“加权平均法”两种结合策略。二者对不同版本模型的动作输出进行简单平均或者加权平均处理,得到新的动作,随后所有的单版本智能体都会采用这个动作进行接下来的任务学习。
下面将具体介绍“多数投票”和“排名投票”。用st表示t时刻的状态,用表示j智能体在t时刻的最佳动作,/>表示j智能体在t时刻的动作选择策略,为便于使用列举出了每个状态可能的操作集A(st)={a[1],...,a[m]}。
①多数投票法,该方法结合了每个模型的最佳动作,并根据每个智能体首选动作的次数做出最终决定。
具体实现“投票”的方法:
多数投票集成使用n个不同的RL算法计算的偏好值是:
其中I(x,y)是指示函数,当x=y时输出1,否则输出0。最可能的动作只是根据算法最常成为最佳动作的动作。
②排名投票法,该方法让每个模型对不同的动作进行排名,并结合这些排名来选择最终的动作。
具体实现“投票”的方法:
让表示根据动作选择概率等级的权重,如果则/>例如,最可能的动作可以被加权m次,第二个最可能的动作被加权m-1次,以此类推。这是我们在实验中使用的权重。集成的偏好值是:
多数投票和排名投票对每个动作的集成偏好值pt使用玻尔兹曼分布,以确保探索,由此产生的结合策略是:
其中τ是温度参数,pt是针对上述多数投票、排名投票两种不同情况定义的偏好值。根据结合策略选择最大可能性的动作进行后续的学习任务。
下面将具体介绍“简单平均”和“加权平均”。用T表示框架中的独立深度强化学习智能体数,用表示j智能体在t时刻的最佳动作。
③简单平均法,该方法直接对每个模型的动作取均值来获取最终的动作。
具体实现方式:
采用简单平均结合策略获取的最终动作at为
④加权平均法,该方法通过对每个模型的动作赋予不同的重要性权重来获取最终的结果。
具体实现方式:
采用加权平均结合策略获取的最终动作at为
其中ωj表示为赋予的权重,通常要满足ωj≥0且/>可以由在仿真环境下第j个智能体的平均回合奖励值,归一化后确定权重ωj。
引入不同的独立性因素训练各单版本深度强化学习智能体,并通过结合策略将其结合就得到了基于N版本编程的深度强化学习容错框架。
以一个自动驾驶仿真环境highway env中的highway环境为例,该环境是一个多车道高速公路的仿真环境,我们需要实现智能体尽量靠右侧平稳行驶,同时避免与邻近车辆(以考虑15辆邻车为例)发生碰撞。该环境的状态变量包括自身车辆的位置信息与速度信息以及邻车(考虑附近15辆)的位置与速度信息,以数组形式描述,如下表1。考虑邻车数量已规定因而数组大小是固定的,其中自我车辆的状态信息在第一行给出,以"x"、"y"、"vx"、"vy"分别表示车辆的状态信息X轴上的位置、Y轴上的位置、X轴上的速度、Y轴上的速度,并限定状态信息的位置信息取值范围为[-100,100]、速度信息取值范围为[-20,20],若观测到车辆数量小于规定考虑的邻车数量,后面行填充为0。该环境的动作空间由并入左车道、并入右车道、保持车道、加速以及减速这五个离散动作组成。考虑到实际环境相比于理想仿真环境,可能会存在随机噪声(传感器存在缺陷而引发的噪声),进而影响到深度强化学习系统的可靠运行。本部分通过向深度强化学习系统中人为注入状态观测噪声来模拟真实场景中传感器等设备存在的程度不一的数据噪声。具体注入噪声的方法为:在测试阶段,对整个state状态向量加不同幅度的高斯噪声Noise_v0~v2,具体如下表2。
表1状态变量
表2注入噪声情况
针对该应用场景,我们选择一种强化学习算法在无噪声的多车道高速公路的仿真环境下训练出一个智能体作为自动驾驶的决策模块,来完成目标控制任务,并将此模型作为基准模型。随后在存在Noise_v0~v2不同幅度的观测噪声的情况下,对基准模型进行测试,并记录模型的性能表现情况。接下来我们以引入独立性因素——“学习算法”为例,来开发各单版本深度强化学习模型,并选择多数投票和排名投票的结合策略将多个智能体的输出结合,来构建五版本的深度强化学习容错框架,将其应用于存在Noise_v0~v2不同幅度的观测噪声的多车道高速公路仿真环境,记录此时各容错模型的性能表现,与此前基准模型的性能表现进行对比。下面进行详细介绍:
搭建的基准模型中深度学习部分选择了构建一个含有3个隐层的全连接神经网络,每个隐层都含有24个神经元,激活函数选择了“relu”函数;强化学习部分选择了DDQN算法,探索策略选择了EpsGreedyQPolicy策略;编程框架选择TensorFlow框架;编程语言选择Python语言。随后引入独立性因素“学习算法”在基准模型的基础上选择构建四个独立的单版本模型,组成五版本容错框架中的单版本模型组。
引入“学习算法”:在基准模型的基础上保持探索策略、神经网络结构、编程框架以及编程语言相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、TensorFlow框架和Python语言。五个单版本深度强化学习模型中学习算法部分分别选择:①DDQN算法;②DQN算法;③DuelingDQN算法;④PER DQN算法;⑤Noisy DQN算法。
通过多数投票和排名投票的结合策略,将上述单版本模型的输出结合,得到五版本编程的深度强化学习容错框架。
各单版本模型以及容错系统在存在不同程度噪声的多车道高速公路的仿真环境下的测试性能,见下表3。本部分选择用测试50个episodes得到的平均奖励值来衡量各单版本模型以及容错框架的性能表现情况。
表3容错系统在不同噪声情况下的测试性能
实验结果表明,引入独立性因素设计的容错系统的测试性能优于或接近最优单版本模型的测试性能,可见构建的容错框架具有很好的容错效果,可以提高深度强化学习系统的可靠性,提升自动驾驶车辆的性能表现,降低自动驾驶车辆与邻车发生碰撞的可能性。
以上内容对本发明所述基于N版本编程思想的深度强化学习软件容错方法进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。
Claims (10)
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个神经元而激活函数选择了“relu”函数的全连接神经网络、TensorFlow框架和Python语言;通过改变学习算法,得到五个独立的深度强化学习模型;
五个独立的深度强化学习智能体模型中学习算法部分分别选择:①DRL_00:DDQN算法;②DRL_31:DQN算法;③DRL_32:Dueling DQN算法;④DRL_33:PER DQN算法;⑤DRL_34:NoisyDQN算法。
7.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:“编程框架”具体为:在基准模型的基础上保持探索策略、神经网络结构、学习算法和编程语言相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、DDQN算法和Python语言;通过改变编程框架,得到五个独立的深度强化学习智能体模型;
五个独立的深度强化学习模型中编程框架部分分别选择:①DRL_00:TensorFlow框架;②DRL_41:Keras框架;③DRL_42:PyTorch框架;④DRL_43:PaddlePaddle框架;⑤DRL_44:MXNet框架。
8.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:“编程语言”具体为:在基准模型的基础上保持探索策略、神经网络结构、学习算法和编程框架相同,分别为EpsGreedyQPolicy策略、含有3个隐层且每个隐层都含有24个神经元而激活函数选择了“relu”函数的全连接神经网络、DDQN算法和TensorFlow框架;通过改变学习算法,得到五个独立的深度强化学习模型;
五个独立的深度强化学习智能体模型中学习算法部分分别选择:①DRL_00:Python语言;②DRL_51:C++语言;③DRL_52:R语言;④DRL_53:Java语言;⑤DRL_54:Go语言。
9.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:用st表示t时刻的状态,用表示j智能体在t时刻的最佳动作,/>表示j智能体在t时刻的动作选择策略,为便于使用列举出了每个状态可能的操作集A(st)={a[1],...,a[m]};
多数投票法,该方法结合了每个模型的最佳动作,并根据每个智能体首选动作的次数做出最终决定;多数投票集成使用n个不同的RL算法计算的偏好值是:
其中I(x,y)是指示函数,当x=y时输出1,否则输出0;最可能的动作只是根据算法最常成为最佳动作的动作;
排名投票法,该方法让每个模型对不同的动作进行排名,并结合这些排名来选择最终的动作;让表示根据动作选择概率等级的权重,如果则/>最可能的动作被加权m次,第二个最可能的动作被加权m-1次,以此类推;集成的偏好值是:
多数投票和排名投票对每个动作的集成偏好值pt使用玻尔兹曼分布,以确保探索,由此产生的结合策略是:
其中τ是温度参数,pt是针对上述多数投票、排名投票两种不同情况定义的偏好值;根据结合策略选择最大可能性的动作进行后续的学习任务。
10.根据权利要求1所述的一种基于N版本编程的深度强化学习软件容错方法,其特征在于:用T表示框架中的独立深度强化学习智能体数,用表示j智能体在t时刻的最佳动作;
简单平均法,该方法直接对每个模型的动作取均值来获取最终的动作;
采用简单平均结合策略获取的最终动作at为:
加权平均法,该方法通过对每个模型的动作赋予不同的重要性权重来获取最终的结果;采用加权平均结合策略获取的最终动作at为:
其中ωj表示为赋予的权重,满足ωj≥0且/>由在仿真环境下第j个智能体的平均回合奖励值,归一化后确定权重ωj。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568712.2A CN116720571A (zh) | 2023-05-19 | 2023-05-19 | 一种基于n版本编程的深度强化学习软件容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568712.2A CN116720571A (zh) | 2023-05-19 | 2023-05-19 | 一种基于n版本编程的深度强化学习软件容错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116720571A true CN116720571A (zh) | 2023-09-08 |
Family
ID=87874288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310568712.2A Pending CN116720571A (zh) | 2023-05-19 | 2023-05-19 | 一种基于n版本编程的深度强化学习软件容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116720571A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114088A (zh) * | 2023-10-17 | 2023-11-24 | 安徽大学 | 一种基于统一ai框架的深度强化学习智能决策平台 |
-
2023
- 2023-05-19 CN CN202310568712.2A patent/CN116720571A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114088A (zh) * | 2023-10-17 | 2023-11-24 | 安徽大学 | 一种基于统一ai框架的深度强化学习智能决策平台 |
CN117114088B (zh) * | 2023-10-17 | 2024-01-19 | 安徽大学 | 一种基于统一ai框架的深度强化学习智能决策平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cai et al. | Vision-based autonomous car racing using deep imitative reinforcement learning | |
Peng et al. | A connectionist model for diagnostic problem solving | |
Wu et al. | Prioritized experience-based reinforcement learning with human guidance for autonomous driving | |
Cardamone et al. | Learning drivers for TORCS through imitation using supervised methods | |
Wang et al. | Learning hierarchical behavior and motion planning for autonomous driving | |
CN113581182B (zh) | 基于强化学习的自动驾驶车辆换道轨迹规划方法及系统 | |
CN111461294B (zh) | 面向动态博弈的智能飞行器类脑认知学习方法 | |
CN116720571A (zh) | 一种基于n版本编程的深度强化学习软件容错方法 | |
CN114330651A (zh) | 面向多要素联合指控的分层多智能体增强学习方法 | |
CN112990485A (zh) | 基于强化学习的知识策略选择方法与装置 | |
CN115952736A (zh) | 一种多智能体目标协同搜索方法及系统 | |
CN116136945A (zh) | 一种基于反事实基线的无人机集群对抗博弈仿真方法 | |
Kim et al. | Generalization of TORCS car racing controllers with artificial neural networks and linear regression analysis | |
CN114037048B (zh) | 基于变分循环网络模型的信念一致多智能体强化学习方法 | |
CN111348034A (zh) | 基于生成对抗模仿学习的自动泊车方法及系统 | |
CN114290339A (zh) | 基于强化学习和残差建模的机器人现实迁移系统和方法 | |
Xiao et al. | Autonomous driving policy learning from demonstration using regression loss function | |
Maramotti et al. | Tackling real-world autonomous driving using deep reinforcement learning | |
CN116224996A (zh) | 一种基于对抗强化学习的自动驾驶优化控制方法 | |
Zhao et al. | Imitation of real lane-change decisions using reinforcement learning | |
Montana et al. | Towards a unified framework for learning from observation | |
Basile et al. | Ddpg based end-to-end driving enhanced with safe anomaly detection functionality for autonomous vehicles | |
Yuan et al. | From Naturalistic Traffic Data to Learning-Based Driving Policy: A Sim-to-Real Study | |
Rafati et al. | Learning sparse representations in reinforcement learning | |
Manela | Deep reinforcement learning for complex manipulation tasks with sparse feedback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |