基于神经元覆盖率的深度强化学习鲁棒训练方法和装置

文档序号:26394288发布日期:2021-08-24 16:03阅读:294来源:国知局
基于神经元覆盖率的深度强化学习鲁棒训练方法和装置

本发明涉及人工智能领域,尤其涉及一种基于神经元覆盖率的深度强化学习鲁棒训练方法和装置。



背景技术:

随着人工智能的快速发展,深度强化学习算法已经成为该领域中最受关注的算法之一。深度强化学习将深度学习的感知能力与强化学习的决策能力相结合,可以直接根据输入的信息进行端到端的控制,解决高维状态空间的序列决策问题。由于其卓越的性能,深度强化学习算法被广泛地应用在自动驾驶、自动翻译、对话系统和视频检测等方面。然而,神经网络黑箱缺乏可解释性,安全方面难以得到保证,因此分析模型的漏洞,采用一些鲁棒性增强方法是至关重要的。

强化学习如何生成足够的有意义的训练场景,以及智能体在罕见场景下的鲁棒表现仍然是一个很重要的问题。首先,大部分的训练方式都很产生大量的重复操作,智能体刚开始学习任务时,很容易导致失败,随着不断地学习,失败的频率会下降。智能体会不断遇到已经掌握的方案,智能体在这个阶段性能提升是很小的,这样的训练会导致不合理的数据饥饿。其次,对于像自动驾驶这样安全至关重要的场景,一次碰撞就可能带来难以估计的损失,因此在智能体训练的过程中,失败的经验是很重要的。因此,本发明采用一个预测器,根据一幕中的前几个状态和模型信息,可以对后续的状态和模型信息进行预测,然后对这一幕进行分类,确定其是否为失败且是高神经覆盖率的样本,采取一定的概率,决定这些样本是否用于更新模型。

神经元覆盖率是深度学习模型白盒测试的一种方法,deepexplore中表明神经元覆盖率越高,代表数据触发模型更多的逻辑结构,此外,使用覆盖率高的数据对模型进行重训练,可以提高模型的准确率。因此,本发明中,挑选各幕数据中神经元覆盖率高的样本对模型进行训练。然而对每一幕的样本都进行神经元覆盖率的评估是非常消耗计算资源的,将覆盖率的评估也作为预测器的输出结果是一个减少资源消耗办法。

综上所述,如何建立一个预测器,使用一幕中前几个状态的样本来预测整一幕的状态,并对这一幕的成功率和神经元覆盖率进行预测,

从而以一定的概率挑选样本对强化学习模型的训练有着很大的益处,对深度强化学习模型应用到安全至关重要的领域中具有重要的理论和实践意义。



技术实现要素:

为了实现深度强化学习策略的鲁棒性增强,本发明提供了一种基于神经元覆盖率的深度强化学习鲁棒训练方法和装置,使用预测器和分类器在训练阶段挑选神经元覆盖率高以及容易导致失败的样本,以一定的概率决定是否使用这些数据对智能体进行训练,从而训练一个对危险场景较为敏感的智能体,提升智能体的鲁棒性。

本发明解决其技术问题所采取的技术方案是:

第一方面,实施例提供的一种基于神经元覆盖率的深度强化学习鲁棒训练方法,包括以下步骤:

(1)搭建智能驾驶环境,从智能驾驶环境中采集状态数据对深度强化学习模型训练,直到达到设定回报值为止;

(2)利用训练好的深度强化学习模型在环境中运行,提取多轮的状态动作对;

(3)构建用于根据历史状态动作对序列预测未来时刻状态动作对序列的预测器和用于对状态动作对进行质量分类的分类器,并利用提取的状态动作对训练预测器和分类器;

(4)依据定义的对抗采样策略,根据状态动作对质量采样状态动作对并进行深度强化学习模型的再训练,以提高深度强化学习模型的鲁棒性。

优选地,所述深度强化学习模型采用dqn算法。

优选地,所述预测器采用seq2seq网络,将每轮提取的状态动作对分为输入和输出两部分,将状态向量与动作向量进行拼接作为预测器一个时刻的输入向量,这里选取l个时刻的状态向量与动作向量作为预测器一个时刻的输入,h作为预测器总时间步长,即使用l个时刻预测h-l个时刻的序列,若每轮次的状态动作对序列的长度小于h,则使用0对序列进行填充,若长度大于h,则进行截断。

优选地,所述分类器采用多对一的lstm网络,用于对输入的状态动作对进行质量分类,对应的质量分类标签分别为高神经元覆盖率且成功,高神经元覆盖率且失败,低神经元覆盖率且成功,低神经元覆盖率且失败;

其中,状态动作对的成功或失败从深度强化学习模型与环境的交互产生的总体回报中看出,依据设定回报率的高低判定状态动作对的成功或失败;

依据每轮次的神经元覆盖率与所有轮次的神经元覆盖率均值的高低,判定神经元覆盖率的高低,高于神经元覆盖率均值时,则为高神经元覆盖率,否则为低神经元覆盖率。

优选地,神经元覆盖率的计算公式为:

其中,t表示每轮次的状态动作对的总数,x为其中的一个状态动作对,φ(x,n)表示输入为x时神经元n的输出值,t表示神经元激活的阈值,n表示深度强化学习模型中神经元总数。

优选地,所述对抗采样策略为:根据步骤(1)中训练时的总体回报收敛速度,选取总体回报与设定值差距在阈值范围内,且收敛速度在速度阈值范围内的时间节点为起始点,开始执行对抗采样策略;

对抗采样策略为:根据每轮的前几个时刻的状态动作对作为输入,输入至预测器进行后续时刻动作状态对的预测,然后再将预测器输入和预测结果组成的状态动作对序列输入到分类器中进行质量分类,依据质量分类结果,按照设定概率值随机选择放入经验池,用于深度强化学习模型的再训练。

优选地,设定高神经元覆盖率且成功、高神经元覆盖率且失败、低神经元覆盖率且成功以及低神经元覆盖率且失败的概率值分别为0.5、0.8、0.3、0.6。

第二方面,实施例提供的一种基于神经元覆盖率的深度强化学习鲁棒训练装置,包括存储器、处理器以及存储在存储器中并可在处理器上执行的计算机程序,所述处理器执行计算机程序时实现上述基于神经元覆盖率的深度强化学习鲁棒训练方法。

本发明的有益效果主要表现在:通过建立预测器和分类器,对训练后期的episode进行挑选,更多地选择失败且神经元覆盖率高的episode,使智能体更加的适应极端情况,且智能体决策网络的逻辑覆盖更加的充分,增强智能体的鲁棒性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。

图1是一实施例提供的基于神经元覆盖率的深度强化学习鲁棒训练方法的流程图;

图2是一实施例提供的dqn模型示意图;

图3是一实施例提供的预测器的结构示意图;

图4是一实施例提供的分类器的结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

深度强化学习模型在训练后期总体回报接近收敛的时候,大量重复的成功轮次(episode)导致训练很慢,且智能体缺失极端案例的训练。针对这个问题,本发明实施例提供了一种基于神经元覆盖率的深度强化学习鲁棒训练方法和装置,用于在自动驾驶领域中深度强化学习模型(也就是智能体)的训练,以提高智能体的鲁棒性,提升智能体输出决策动作的准确性。

参照图1到图4,实施例提供的一种基于神经元覆盖率的深度强化学习鲁棒训练方法,包括以下步骤:

步骤1,使用标准的方法训练智能体,直到达到设定的回报值。

实施例中,首先搭建智能驾驶环境,从智能驾驶环境中采集状态数据对深度强化学习模型训练,直到达到设定回报值为止。

使用现有的标准强化学习算法训练智能体达到期望回报,以dqn算法作为深度强化学习模型的训练为例进行说明,dqn的训练流程如图2所示。dqn使用神经网络近似值函数,即神经网络的输入为状态s,输出为q(s,a),其中a为智能体针对当前状态选取的动作。通过神经网络计算出值函数后,dqn使用贪婪策略来输出动作a,智能体选取动作与环境进行交互之后,产生回报r,并得到下一步的状态,这个过程不断循环直到智能体结束一个episode。dqn存在一个经验池来存储训练数据(st,at,st+1,rt),其中t表示episode中的第t个时间步。策略网络的训练即从经验池中随机抽取一定量的样本进行参数更新。通过智能体的不断训练,使得r得到设定值或者收敛。

r=r1+λr2+…+λt-1rt

其中,r表示一个episode的总回报,t表示episode的总时间步,λ表示折扣因子。

步骤2,使用训练好的智能体在环境中运行,提取多个episodes的状态动作对,形成数据集。

实施例中利用步骤1训练好的智能体(可以理解为智能小车)与自动驾驶环境不断的交互,产生大量的episodes作为预测器的训练数据,一个episode作为一个样本,episode是由t个状态动作对组成的,一个状态动作对表示为(st,at)。

步骤3,使用提取的状态动作对训练预测器和分类器。

实施例中,预测器用于序列预测序列的任务,适用于输入输出时刻数量不相等的情况,可以采用seq2seq网络,由两部分组成:编码器encoder和解码器decoder,单元结构使用lstm,编码器首先将输入数据编码成一个上下文向量c,得到c有多种方式,最简单的处理就是将编码器的最后一个隐藏状态赋值给c,得到c之后就可以使用编码器进行解码,输出需要预测的时刻的状态信息。

实施例中,将一个episode提取的状态动作对分为输入和输出两部分,将状态向量与动作向量进行拼接作为预测器一个时刻的输入向量,这里选取l个时刻的状态向量与动作向量作为预测器一个时刻的输入,h作为预测器总时间步长,即使用l个时刻预测h-l个时刻的序列,若每轮次的状态动作对序列的长度小于h,则使用0对序列进行填充,若长度大于h,则进行截断。

实施例中,分类器可以采用多对一的lstm结构,输入的状态动作对序列有h个时刻,输出为该序列的质量类别结果。在对分类器训练前,需要定义状态动作对序列进行标注质量分类标签,以用于分类器的训练。成功或是失败可以从智能体与环境的交互产生的总体回报中看出,根据任务的不同,存在一个阈值。而神经元覆盖率高低的判断则从整体episode出发,首先计算全部episode的平均神经元覆盖率,高于这个平均值,则为高神经元覆盖率,低于这个平均值,则为低神经元覆盖率。这里把高神经元覆盖率且成功的序列标注为1,高神经元覆盖率且失败的序列标注为2,低神经元覆盖率且成功的序列标注为3,低神经元覆盖率且失败的序列标注为4。神经元覆盖率的计算公式为:

其中,t表示每轮次的状态动作对的总数,x为其中的一个状态动作对,φ(x,n)表示输入为x时神经元n的输出值,t表示神经元激活的阈值,n表示深度强化学习模型中神经元总数。

步骤4,设定对抗采样方法。

原始dqn将每一个episode的(st,at,st+1,rt)数据都放入经验池中,在智能体训练的后期阶段,存在着大量的成功episode,失败的episode是很少的。成功的episode中存在着大量的重复,导致训练的效率低下,通常我们会发现,智能体训练在中前期收敛很快,而到后期,即使训练了与前面部分相等甚至远超数倍的帧,也只能获得微小的总体回报的提升。

因此,根据步骤(1)中训练时的总体回报收敛速度,选取总体回报与设定值差距在阈值范围内,且收敛速度在速度阈值范围内的时间节点为起始点,开始执行对抗采样策略,起始点之前采用原始采样策略进行训练。

对抗采样策略为:根据每轮的前几个时刻的状态动作对作为输入,输入至预测器进行后续时刻动作状态对的预测,然后再将预测器输入和预测结果组成的状态动作对序列输入到分类器中进行质量分类,依据质量分类结果,按照设定概率值随机选择放入经验池,用于深度强化学习模型的再训练。

实施例中,神经元覆盖率高且失败的episode概率设定为0.8,神经元覆盖率低且失败的episode概率设定为0.6,神经元覆盖率高且成功的episdoe概率设定为0.5,神经元覆盖率低且成功的episode概率设定为0.3。即实施例更希望智能体学习到失败案例,并且失败案例中的样本能够覆盖模型更多的逻辑结构。

步骤5,在原来的采样方式上结合对抗采样方式对智能体重新进行训练。

实施例中,采用步骤4定义的对抗采样策略进行智能体的再训练,采样策略更改的是训练的后半段,这里可以采取在步骤2模型训练中期进行保存的方式,在当前步骤中便可以将智能体从中期开始训练,节省一定的训练时间。

实施例还提供了一种基于神经元覆盖率的深度强化学习鲁棒训练装置,包括存储器、处理器以及存储在存储器中并可在处理器上执行的计算机程序,所述处理器执行计算机程序时实现上述基于神经元覆盖率的深度强化学习鲁棒训练方法。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1