基于神经网络的驾驶员行为建模方法与流程

文档序号:16189932发布日期:2018-12-08 05:35阅读:589来源:国知局
基于神经网络的驾驶员行为建模方法与流程

本发明涉及一种建模方法,具体说是一种基于神经网络的驾驶员行为建模方法。

背景技术

现有基于强化学习理论的驾驶员行为建模方法主要有两种思路:思路一,采用传统强化学习的方法,其回报函数的设置依赖研究人员对于场景的分析、整理、筛选和归纳,进而获得到一系列驾驶决策有关的特征,如:车前距、是否远离路缘、是否远离行人、合理速度、变道频率等;再根据驾驶场景需求,设计一系列的实验来求取这些特征在对应场景环境下的回报函数中的权重占比,最后完成对于回报函数的整体设计,而作为描述驾驶员驾驶行为的模型。思路二,基于概率模型建模方法,采用最大熵逆向强化学习求解驾驶行为特征函数。首先假定存在潜在的、特定的一个概率分布,产生了驾驶的示范轨迹;进而,需要来找到一个能够拟合驾驶示范的概率分布,而求取这个概率分布的问题可转化为非线性规划问题,即:

max-plogp

∑p=1

p代指的就是示范轨迹的概率分布,通过上面的式子求解得到概率分布后,由

求取得到相关参数,即可求得回报函数r=θtf(st)。

传统的驾驶员驾驶行为模型,利用已知驾驶数据分析、描述和推理驾驶行为,然而以采集的驾驶数据并不能完全覆盖无穷无尽的驾驶行为特征,更不可能获取全部状态对应动作的情况。在实际驾驶场景下,因为天气、场景、物体的不同,驾驶状态有着众多可能,遍历全部的状态是不可能的事情。因此传统驾驶员驾驶行为模型泛化能力弱,模型假设条件多,鲁棒性差。

其次,在实际的驾驶问题中,仅凭研究人员设置回报函数的方法,需要平衡太多对于各种特征的需求,只依赖研究人员的经验设置,反复手动调解,耗时耗力,更致命的是过于主观。在不同场景和环境下,研究人员则需要面对太多的场景状态;同时,即使是针对某一个确定的场景状态,需求的不同,也会导致驾驶行为特征的变化。为了准确描述该驾驶任务就要分配一系列权重以准确描述这些因素。现有方法中,基于概率模型的逆向强化学习主要从现有的示范数据出发,把示范数据作为已有数据,进而寻求对应当前数据的分布情况,基于此才能求取对应状态下的动作选取。但已知数据的分布并不能表示全部数据的分布,正确获取分布,需要获取全部状态对应动作的情况。



技术实现要素:

为解决驾驶员建模泛化性弱的问题,即现有技术中所存在的对于驾驶场景不在示范数据的情况下,无法建立对应的回报函数来进行驾驶员行为建模的技术问题,本申请提供了一种基于神经网络的驾驶员行为建模方法,可以对于新的状态场景进行适用,来获得其对应动作,大大提高了建立的驾驶员行为模型的泛化能力,适用场景更广,鲁棒性更强。

为了实现上述目的,本发明方案的技术要点是:一种基于神经网络的驾驶员行为建模方法,具体包括如下步骤:

s1,构建驾驶环境特征提取器,用于提取构建回报函数的特征,具体实施方法为:

s11.在车辆行驶过程中,利用放在车辆挡风玻璃后面的摄像机对驾驶视频进行采样,获得n组不同车辆驾驶环境道路情况的图片;同时对应驾驶操作数据,即该道路环境下的转向角情况,联合构建起来训练数据;

s12.对收集来的图片进行平移、裁剪、变更亮度操作,以模拟不同光照和天气的场景;

s13.构建卷积神经网络,将经过处理后的图片作为输入,对应图片的操作数据作为标签值,进行训练,采用基于nadam优化器的优化方法对均方误差损失求最优解来优化神经网络的权重参数;新的卷积神经网络包括1个输入层、3个卷积层、3个池化层、4个全连接层;输入层依次连接第一个卷积层、第一个池化层,然后连接第二个卷积层、第二个池化层,再连接第三个卷积层、第三个池化层,最后依次连接第一个全连接层、第二个全连接层、第三个全连接层、第四个全连接层;

s14.将训练完成后的卷积神经网络的网络结构和权值保存,以建立新的一个卷积神经网络,完成状态特征提取器。

进一步地,步骤s14中的训练完成后的卷积神经网络不包括输出层。

进一步地,本申请还包括步骤s2,构建回报函数生成器,用于驾驶策略的获取,具体实施方法为:

s21.获得专家的驾驶示范数据:驾驶示范数据来自对于示范驾驶视频数据的采样提取,按照一定频率对一段连续的驾驶视频进行采样,得到一组轨迹示范;一个专家示范数据包括多条轨迹,总体记做:

其中de表示整体的驾驶示范数据,(sj,aj)表示对应状态j和该状态对应决策指令构成的数据对,m代表总共的驾驶示范数据的个数,nt代表驾驶示范轨迹数目,li代表第i条驾驶示范轨迹中包含的状态-决策指令对(sj,aj)的个数;

s22.求取驾驶示范的特征期望值;

首先将驾驶示范数据de中的各个描述驾驶环境情况的状态st输入s1中的状态特征提取器中,获得对应状态st下的特征情况f(st,at),f(st,at)代指一组对应st的影响驾驶决策结果的驾驶环境场景特征值,然后基于下述公式计算出来驾驶示范的特征期望值:

其中γ为折扣因子,根据问题的不同,对应进行设置;

s23.求取贪婪策略下的状态-动作集;

s24.求取回报函数的权值。

进一步地,本申请还包括步骤s3.构建驾驶策略获取器,完成驾驶策略的构建,具体实现过程为:

s31构建驾驶策略获取器的训练数据;

s32.建立神经网络;

s33.优化神经网络

对于该神经网络的优化,建立的损失函数是交叉熵代价函数,公式如下:

其中n代指训练数据的个数;qπ(st,at)是将描述t时刻驾驶场景状态st输入神经网络,选择输出中的对应驾驶决策动作at项所得到的数值;为s31中求得的数值;是正则项,其中的w={w(1),w(2)}代指上面神经网络中权值;

将s31中获取的训练数据,输入该神经网络优化代价函数;借助梯度下降法完成对于该交叉熵代价函数的最小化,得到的优化完成的神经网络,进而得到驾驶策略获取器。

进一步地,步骤s2与s3是循环的两部分;求取贪婪策略下的状态-动作集的具体步骤是:

首先,获取驾驶策略获取器中的神经网络:把驾驶示范数据de提取得到的描述环境情况的状态特征f(st,at),输入神经网络,得到输出gw(st);gw(st)是关于描述状态st的一组q值集合,即[q(st,a1),...,q(st,an)]t,而q(st,ai)代表状态-动作值,用于描述在当前驾驶场景状态st下,选取决策驾驶动作ai的优劣,基于公式q(s,a)=θ·μ(s,a)进行求得,该公式中的θ代指当前回报函数中的权值,μ(s,a)代指特征期望值;

然后基于ε-greedy策略,进行选取描述驾驶场景状态st对应的驾驶决策动作选取关于当前驾驶场景st下的q值集合中让q值最大的决策动作否则,则随机选取选取完之后,记录此时的

如此对于驾驶示范de中的每个状态的状态特征f(st,at),输入该神经网络,共获取得到m个状态-动作对(st,at),其描述了t时刻的驾驶场景状态st下选取驾驶决策动作at;同时基于动作选取的情况,获取了m个对应状态-动作对的q值,记做q。

更进一步地,求取回报函数的权值具体步骤是:

首先基于下面公式,构建目标函数:

代表损失函数,即依据当前状态-动作对是否存在于驾驶示范之中,若存在则为0,否则为1;为上面所记录的对应状态-动作值;为s22中求取的驾驶示范特征期望和回报函数的权值θ的乘积;为正则项;

借助梯度下降法最小化该目标函数,即t=minθj(θ),获取令该目标函数最小化的变量θ,该θ即所求取的所需的回报函数的权值。

更进一步地,步骤s2的具体实现过程还包括:s25.基于获得的对应回报函数权值θ,根据公式r(s,a)=θtf(s,a)构建回报函数生成器。

更进一步地,步骤s31中构建驾驶策略获取器的训练数据,每个数据包括两部分:一个是将t时刻驾驶场景状态输入s1中的驾驶状态提取器得到的驾驶决策特征f(st,at),另一个就是基于下面公式得到的

其中,rθ(st,at)借助s2中的回报函数生成器基于驾驶示范数据生成的回报函数;qπ(st,at)和qπ(st+1,at+1)来自于s23中所记录的q值,选取其中描述t时刻驾驶场景st的q值和选取其中描述t+1时刻驾驶场景st+1的q值。

作为更进一步地,s32中建立神经网络,包括三层,第一层作为输入层,其中的神经元个数和特征提取器的输出特征种类相同为k个,用于输入驾驶场景的特征f(st,at),第二层的隐层个数为10个,第三层的神经元个数和动作空间中进行决策的驾驶动作个数n相同;输入层和隐层的激活函数都为sigmoid函数,即即有着:

z=w(1)x=w(1)[1,ft]t

h=sigmoid(z)

gw(st)=sigmoid(w(2)[1,h]t)

其中w(1)为隐层的权值;ft为t时刻驾驶场景的状态st的特征,也就是神经网络的输入;z为未经过隐层sigmoid激活函数时候的网络层输出;h为经过sigmoid激活函数后的隐层输出;w(2)为输出层的权值;

网络输出的gw(st)是t时刻驾驶场景状态st的q集合,即[q(st,a1),...,q(st,an)]t,s31中的qπ(st,at)就是将状态st输入神经网络,选择输出中的at项所得到。

作为更进一步地,申请还包括步骤s4,将当前的s2的回报函数生成器和s3的驾驶策略获取器看做一个整体,查看当前s22中的t值,是否满足t<ε,ε为评判目标函数是否满足需求的阈值,也就是判断当前用于获取驾驶策略的回报函数是否满足要求;其数值根据具体需要进行不同的设置;

当t的数值,不满足该公式时;需要重新构建s2中的回报函数生成器,此时需要将当前s23中需要的神经网络替换成s33中已经经过优化过后的新的神经网络,即将用于生成描述在驾驶场景状态st下,选取的决策驾驶动作ai优劣的q(st,ai)值的网络,替换成s33中经过梯度下降方法进行优化过的新的网络结构;然后重新进行s2、s3的步骤:构架回报函数生成器、得到驾驶策略获取器,再次判断t的数值是否满足需求;

当满足该公式时,当前的θ就是所需的回报函数的权值;s2的回报函数生成器则满足要求,s3中的驾驶策略获取器也满足要求;于是采集需要建立驾驶员模型的某驾驶员的驾驶数据,即驾驶过程中的环境场景图像和对应的操作数据,输入驾驶环境特征提取器,得到对于当前场景的决策特征;然后将提取得到的特征输入回报函数生成器,得到对应场景状态的回报函数;然后把采集的决策特征和计算得到的回报函数输入驾驶策略获取器,得到该驾驶员对应的驾驶策略。

本发明与现有技术相比有益效果在于:本发明中用于描述驾驶员决策,建立驾驶员行为模型的方法,因采用神经网络来描述策略,在神经网络参数确定的时候,状态和动作一一对应,于是对于状态-动作对可能的情况不再受限于示范轨迹。

在实际的驾驶情况中,因为天气、景物等原因导致的多样的驾驶场景对应的大状态空间,借助于神经网络优秀的近似表达任意函数的能力,近似的可将这一种策略表达看作黑箱:通过输入状态的特征值,输出对应的状态-动作值,同时进一步的根据输出值的情况来选取动作,以获得对应动作。从而使借助逆向强化学习来对于驾驶员行为建模的适用性大大增强,传统方法因试图借助某一概率分布来拟合到示范轨迹,因而获得的最优策略依旧受限于示范轨迹中的已有的状态情况,而本发明可以对于新的状态场景进行适用,来获得其对应动作,大大提高了建立的驾驶员行为模型的泛化能力,适用场景更广,鲁棒性更强。

附图说明

图1为新的深度卷积神经网络;

图2为驾驶视频采样图;

图3为本方法流程框图;

图4为步骤s32中建立神经网络结构图。

具体实施方式

下面将结合说明书附图,对本发明作进一步说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本实施例提供一种基于神经网络的驾驶员行为建模方法,具体包括如下步骤:

s1.构建驾驶环境特征提取器,包括以下具体步骤:

s11.对车辆行驶过程中,利用放在车的挡风玻璃后面的摄像机得到的驾驶视频进行采样,采样图如图2所示。

获得n组不同车辆驾驶道路环境道路情况的图片和对应的转向角情况。包括n1张直道和n2张弯道,n1、n2的取值可以为n1>=300,n2>=3000,同时对应驾驶操作数据,联合构建起来训练数据。

s12.对收集来的图像进行相关的平移、裁剪、变更亮度等操作,以模拟不同光照和天气的场景。

s13.构建卷积神经网络,将经过处理后的图片作为输入,对应图片的操作数据作为标签值,进行训练;采用基于nadam优化器的优化方法来对均方误差损失求最优解来优化神经网络的权重参数。

卷积神经网络包括1个输入层、3个卷积层、3个池化层、4个全连接层。输入层依次连接第一个卷积层、第一个池化层,然后连接第二个卷积层、第二个池化层,再连接第三个卷积层、第三个池化层,然后依次连接第一个全连接层、第二个全连接层、第三个全连接层、第四个全连接层。

s14.将训练完成后的卷积神经网络的除最后输出层之外的网络结构和权值保存,以建立新的一个卷积神经网络,完成状态特征提取器。

s2.构建回报函数生成器

回报函数作为强化学习方法中动作选取的标准,在驾驶策略的获取过程,回报函数的好坏起到了决定性的作用,其直接决定了获取的驾驶策略的优劣,以及获得的策略是否和真实的驾驶示范数据对应的策略相同。回报函数的公式为reward=θtf(st,at),f(st,at)代指对应驾驶环境场景「车辆周围环境」下的t时刻状态st的一组影响驾驶决策结果的特征值,用于描述车辆周围环境场景情况。而θ代指对应影响驾驶决策的特征的一组权值,权值的数值说明了对应的环境特征在回报函数中所占的比重,体现了重要性。在s1的状态特征提取器的基础上,需要求解这一权值θ,从而来构建影响驾驶策略的回报函数。

s21.获得专家的驾驶示范数据

驾驶示范数据来自对于示范驾驶视频数据的采样提取(和之前驾驶环境特征提取器所用数据不同),可以按照10hz的频率对一段连续的驾驶视频进行采样,得到一组轨迹示范。一个专家示范应具有多条轨迹。总体记做:其中de表示整体的驾驶示范数据,(sj,aj)表示对应状态j(采样的时间j的驾驶环境的视频图片)和该状态对应决策指令(如转向指令中的转向角度)构成的数据对,m代表总共的驾驶示范数据的个数,nt代表驾驶示范轨迹数目,li代表第i条驾驶示范轨迹中包含的状态-决策指令对(sj,aj)的个数

s22.求取驾驶示范的特征期望

首先将驾驶示范数据de中的各个描述驾驶环境情况的状态st输入s1中的状态特征提取器,获得对应状态st下的特征情况f(st,at),f(st,at)代指一组对应st的影响驾驶决策结果的驾驶环境场景的特征值,然后基于下述公式计算出来驾驶示范的特征期望:

其中γ为折扣因子,根据问题的不同,对应进行设置,参考数值可设为0.65。

s23.求取贪婪策略下的状态-动作集

首先,获取s32中的驾驶策略获取器中的神经网络。(因s2和s3是一个循环中的两部分,最开始的时候神经网络是s32中刚刚初始化的神经网络。随着循环的进行,循环中的每一步都是:在s2中完成一次影响驾驶决策的回报函数的构建,然后基于当前回报函数在s3中获取对应的最优驾驶策略,判断是否满足结束循环的标准,若不满足,则将当前s34中的经过优化过的神经网络放入s2中重新构建回报函数)

把驾驶示范数据de提取得到的描述环境情况的状态特征f(st,at),输入神经网络,得到输出gw(st);gw(st)是关于描述状态st的一组q值集合,即[q(st,a1),...,q(st,an)]t,而q(st,ai)代表状态-动作值,用于描述在当前驾驶场景状态st下,选取决策驾驶动作ai的优劣,可基于公式q(s,a)=θ·μ(s,a)进行求得,该公式中的θ代指的当前回报函数中的权值,μ(s,a)代指特征期望。

然后基于ε-greedy策略,假如设置ε为0.5,进行选取描述驾驶场景状态st对应的驾驶决策动作也就是说有百分之五十的可能性,选取关于当前驾驶场景st下的q值集合中让q值最大的决策动作否则,则随机选取选取完之后,记录此时的

如此对于驾驶示范de中的每个状态的状态特征f(st,at),输入该神经网络,共获取得到m个状态-动作对(st,at)其描述了t时刻的驾驶场景状态st下选取驾驶决策动作at。同时基于动作选取的情况,获取了m个对应状态-动作对的q值,记做q。

s24.求取回报函数的权值

首先基于下面公式,构建目标函数:

代表着损失函数,即依据当前状态-动作对是否存在于驾驶示范之中,若存在则为0,否则为1。为上面所记录的对应状态-动作值。为s22中求取的驾驶示范特征期望和回报函数的权值θ的乘积。为正则项,以防过拟合问题的出现,该γ可以为0.9。

借助梯度下降法最小化该目标函数,即t=minθj(θ),获取令该目标函数最小化的变量θ,该θ即所求取的所需的回报函数的权值。

s25.基于获得的对应回报函数权值θ,根据公式r(s,a)=θtf(s,a)构建回报函数生成器。

s3.构建驾驶策略获取器

s31驾驶策略获取器的训练数据的构建

获取训练数据。数据来自于对之前的示范数据的采样,但需要进行处理得到一组新的类型的数据共计n个。数据中每个数据包括两部分:一个是将t时刻驾驶场景状态输入s1中的驾驶状态提取器得到的驾驶决策特征f(st,at),另一个就是基于下面公式得到的

该公式中包含参数rθ(st,at)借助s2中的回报函数生成器基于驾驶示范数据生成的回报函数。qπ(st,at)和qπ(st+1,at+1)来自于s23中所记录的那组q值q,选取其中描述t时刻驾驶场景st的q值和选取其中描述t+1时刻驾驶场景st+1的q值。

s32.建立神经网络

神经网络包括三层,第一层作为输入层,其中的神经元个数和特征提取器的输出特征种类相同为k个,用于输入驾驶场景的特征f(st,at),第二层的隐层个数为10个,第三层的神经元个数和动作空间中进行决策的驾驶动作个数n一样的个数;输入层和隐层的激活函数都为sigmoid函数,即即有着:

z=w(1)x=w(1)[1,ft]t

h=sigmoid(z)

gw(st)=sigmoid(w(2)[1,h]t)

其中w(1)代指隐层的权值;ft代指t时刻驾驶场景的状态st的特征,也就是神经网络的输入;z代指未经过隐层sigmoid激活函数时候的网络层的输出;h代指经过sigmoid激活函数后的隐层输出;w(2)代指输出层的权值;网络结构如图3:

网络输出的gw(st)是t时刻驾驶场景状态st的q集合,即[q(st,a1),...,q(st,an)]t,s31中的qπ(st,at)就是将状态st输入神经网络,选择输出中的at项所得到。

s33.优化神经网络

对于该神经网络的优化,建立的损失函数是交叉熵代价函数,公式如下:

其中n代指训练数据的个数。qπ(st,at)就是将描述t时刻驾驶场景状态st输入神经网络,选择输出中的对应驾驶决策动作at项所得到的数值。为s31中求得的数值。同样是正则项,防止过拟合而设置的。该γ也可以为0.9。其中的w={w(1),w(2)}代指上面神经网络中权值。

将s31中获取的训练数据,输入该神经网络优化代价函数。借助梯度下降法完成对于该交叉熵代价函数的最小化,得到的优化完成的神经网络,得到驾驶策略获取器。

s4.将当前的s2的回报函数生成器和s3的驾驶策略获取器看做一个整体,查看当前s22中的t值,是否满足t<ε,ε为评判目标函数是否满足需求的阈值,也就是判断当前用于获取驾驶策略的回报函数是否满足要求。其数值根据具体需要进行不同的设置。

当t的数值,不满足该公式的时候。需要重新构建s2中的回报函数生成器,此时需要将当前s23中需要的神经网络替换成s33中已经经过优化过后的新的神经网络,即将用于生成描述在驾驶场景状态st下,选取的决策驾驶动作ai优劣的q(st,ai)值的网络,替换成s33中经过梯度下降方法进行优化过的新的网络结构。然后重新进行s2、s3的步骤:构架回报函数生成器、得到驾驶策略获取器,再次判断t的数值是否满足需求。

当满足该公式的时候,当前的θ就是所需的回报函数的权值。s2的回报函数生成器则满足要求,s3中的驾驶策略获取器也满足要求。于是可以:采集需要建立驾驶员模型的某驾驶员的驾驶数据,即驾驶过程中的环境场景图像和对应的操作数据,如驾驶转向角。输入驾驶环境特征提取器,得到对于当前场景的决策特征。然后将提取得到的特征输入回报函数生成器,得到对应场景状态的回报函数。然后把采集的决策特征和计算得到的回报函数输入驾驶策略获取器,得到该驾驶员对应的驾驶策略。

在马尔科夫决策过程中,一种策略需要连接状态到其对应的动作。但对于一个有着大范围的状态空间的时候,对于未遍历的区域,很难描述出来一个确定的策略表示,传统方法之中也忽略了对这部分的描述,仅仅是基于示范轨迹,来说明整个轨迹分布的概率模型,对于新的状态并没有给出具体的策略表示,即对于新状态采取确定动作的可能性并未给出具体的方法。本发明中借助神经网络对于策略进行描述,神经网络因其能够在任何精确度上近似表示任意函数的特性,同时有着优秀的泛化能力。借助状态特征的表示,一方面可以表示出那些不包含在示范轨迹中的状态,另外,借助将对应的状态特征输入神经网络。可以求取对应的动作值,从而依策略求取应得的动作,因而,传统方法无法泛化驾驶示范数据到未遍历驾驶场景状态问题得以解决。

以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。

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