欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 信号装置> 基于多任务学习的决策方法、决策模型训练方法及装置独创技术113041字

基于多任务学习的决策方法、决策模型训练方法及装置

2021-02-08 09:46:59

基于多任务学习的决策方法、决策模型训练方法及装置

  技术领域

  本申请涉及人工智能领域,尤其涉及一种基于多任务学习的决策方法、决策模型训练方法及装置。

  背景技术

  强化学习是人工智能领域的一个重要分支,并在某些特定任务的完成能力已经超过了普通人类。但是对于强化学习算法,通常一次训练后得到的模型只能针对一个特定的任务,如果要应用于另一个新的任务需要重新进行训练得到新的模型。这意味着训练算法虽然具有一般性,但是学到的模型只能应用于特定的任务场景。

  随着强化学习算法在工业界的应用越来越多,很多应用场景不仅限于需要强化学习模型能够处理单一任务,而是需要模型能够在多任务场景下取得较好的效果。多个任务意味着强化学习算法需要学习多个马尔科夫模型,但是状态转移概率不唯一可能会导致强化学习算法收敛效果不好,甚至无法收敛。并且由于不同任务的奖励机制不同,可能导致一个简单任务学习很快主导模型效果,对其他稀疏奖励的任务探索不足,从而学习效果不均衡,模型整体效果较差。针对上述问题,亟需一种能够同时学习多个任务的强化学习算法。

  现有的一种解决方案是:在单一学习算法中平衡有限的资源来满足多任务的学习,许多学习算法都会因为权衡多个任务而导致效果变差。例如在学习过程中,一些任务的奖励值较大,使得算法以牺牲通用性为代价,专注于那些奖励值突出的任务,从而导致其他任务无法取得较好的效果;也有算法是通过奖励削减的方式来统一各个任务的奖励值大小,这种做法可能会改变优化目标,如果奖励值都是较大的非负值,那么削减后就变为优化获得奖励的频率而不是累计期望奖励。并且算法在任务间的平衡不仅取决于奖励值大小,还取决于奖励密度,奖励削减依然会导致算法在不同任务中的不平衡。

  另一种解决方案被称作基于蒸馏的学习:主要是构建一个学生网络通过有监督的学习多个特定任务的专家网络,这种学习算法提供了一个多任务策略妥协的结果,并且每个专家网络需要提前进行大规模的训练来获得。这种学习算法虽然避免了奖励值不平衡的问题,但是依然是在多个任务中间进行平衡,学习效果不理想,并且其性能被专家网络所限制没法进一步提高。

  发明内容

  本申请实施例提供一种基于多任务学习的决策方法、决策模型训练方法及装置,在本申请实施例的方案中,通过对任务进行联合表征,得到由特性子任务和共性子任务得到的任务向量,在模型训练时,可避免了多个任务之间的相互影响,并且通过共性子任务能够促进多个任务的策略学习,通过特性子任务进行任务的针对性学习,提升多任务策略效果和模型的收敛速度;在决策时,可以使用同一模型对多个任务进行决策,避免了多个任务间的相互影响。

  第一方面,本申请实施例提供一种基于多任务学习决策模型的训练方法,包括:

  S1:从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st和根据目标任务获取目标任务对应任务向量,目标任务对应的任务向量是基于多个候选任务的共性子任务和特性子任务得到的;S2:根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt生成目标任务的样本年数据,将目标任务的样本数据添加至初步样本数据库,得到第一样本数据库;S3:随机从第一样本数据库中获取多个样本数据;多个样本数据为多个候选任务中部分或者全部候选任务的样本数据;S4:利用强化学习方法,根据多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1;S5:判断决策模型Mt+1是否收敛;当决策模型Mt+1收敛时,确定决策模型Mt+1为目标决策模型。

  其中,共性子任务为多个候选任务的子任务中共有的子任务,特性子任务为多个候选任务的子任务中某一候选任务独有的子任务。比如在十字路口场景下,上述多个候选任务可以包括路口直行、路口左转和路口右转;路口直行包括路口直行碰撞或到达和提高通行效率两个子任务;路口左转包括路口左转碰撞或到达和提高通行效率两个子任务;路口右转包括路口右转碰撞或到达和提高通行效率两个子任务。其中,路口直行碰撞或到达、路口左转碰撞或到达和路口右转碰撞或到达为特性子任务,提高通行效率为共性子任务。

  可选地,上述强化学习方法可以为基于值函数的强化学习方法。

  基于多个候选任务中的特性子任务和共性子任务得到多个候选任务中任一候选任务的任务向量,实现了通过一个模型学习多个候选任务的策略,其中,利用多个候选任务的共性子任务能够促进多个候选任务策略的学习,提升了模型收敛能力;利用特性子任务进行多个候选任务的针对性学习,避免了多个任务间的相互影响,也避免了模型在多个任务之间相互妥协,实现了同一模型对多个任务进行决策时都能取得优秀的效果。

  在一个可行的实施例中,根据目标任务获取目标任务对应的任务向量,包括:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt生成目标任务的样本数据,包括:

  将目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作,根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作,目标任务的候选动作被选中的概率为预设概率;在目标动作被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1获取目标任务的奖励值向量;奖励值向量中的奖励值与目标任务对应的任务向量中的子任务一一对应;目标任务的样本数据包括目标任务对应的任务向量、目标任务的状态信息st、目标任务的目标动作、目标任务的状态信息st+1和目标任务的奖励值向量。

  通过构建奖励值向量,将目标任务中各个子任务的执行情况反馈给决策模型进行学习,提高了决策模型的精度。

  在一个可行的实施例中,根据目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作,包括:

  决策模型Mt根据目标任务的状态信息st和目标任务对应的任务向量获取目标任务的动作值函数向量,目标任务的动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;决策模型Mt根据目标任务的动作值函数向量和目标任务对应的任务向量获取目标任务的值函数;决策模型Mt根据目标任务的值函数从动作空间中获取目标任务的候选动作,目标任务的候选动作为动作空间中使目标任务的值函数取值最大的动作。

  通过根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数,再基于值函数确定目标动作,避免了在对目标任务进行决策时动作值函数向量中与目标任务不相关的子任务的动作值函数对目标动作的选取造成影响。

  在一个可行的实施例中,根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作,包括:

  当第一参数大于预设概率时,将目标任务的候选动作确定为目标任务的目标动作;第一参数为取值范围为[0,1]的随机数;当第一参数不大于预设概率时,将随机从动作空间中获取的动作确定为目标任务的目标动作。

  通过将随机从动作空间中获取动作确定为目标任务的目标动作,实现了在训练决策模型时探索新的动作,从而在使用决策模型时得到效果更佳的动作。

  在此需要指出的是,预设概率的初始值为1或者为接近1的较大值;随着训练次数的增加预设概率逐渐减小。

  在一个可行的实施例中,根据多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1包括:

  根据损失函数及多个样本数据中每个样本数据的状态信息st、任务向量、目标动作、状态信息st+1和奖励值向量计算得到损失值;根据损失值调整决策模型Mt中的参数,以得到决策模型Mt+1。

  其中,第一状态信息是在目标动作被执行前获取的,第二状态信息是在目标动作被执行后获取的。

  其中,损失值可表示为:

  

  其中,上述公式中的r为上述样本数据中的奖励值向量,g为上述样本数据中的任务向量,at为上述样本数据中的目标动作,折扣系数γ为常数。

  在一个可行的实施例中,判断决策模型Mt+1是否收敛,包括:

  根据目标任务的状态信息st+1判断目标任务是否结束;当确定目标任务未结束时,令t=t+1,并重复执行步骤S2-S5,直至目标任务结束;

  当确定目标任务结束,判断决策模型Mt+1是否收敛;在确定决策模型Mt+1不收敛时令t=t+1,并重复执行步骤S1-S5,直至决策模型Mt+1收敛。

  第二方面,本申请实施例提供一种基于多任务学习的决策方法,包括:

  获取多个候选任务,从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st;根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量,每个候选任务对应的任务向量是基于多个候选任务的特性子任务和共性子任务得到的;根据目标任务对应的任务向量和目标任务的状态信息st从动作空间中确定出目标动作。

  其中,上述多个候选任务可以为同一场景的中的任务,也可以为不同场景中的任务。

  通过根据多个候选任务的子任务对目标任务进行联合表征,实现了可以使用同一模型对多个任务进行决策,并避免了多个任务之间的相互影响。

  在一个可行的实施例中,根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量,包括:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,根据目标任务对应的任务向量和目标任务的状态信息st从动作空间中确定出目标动作,包括:

  将目标任务对应的任务向量和目标任务的状态信息st输入到目标决策模型中进行处理,以得到目标动作,目标决策模型是基于神经网络实现的。

  可选地,神经网络可以是全连接神经网络、卷积神经网络、循环神经网络或者其他神经网络。

  在一个可行的实施例中,将目标任务对应的任务向量和目标任务的状态信息st输入到目标决策模型中进行处理,以得到目标动作,包括:

  根据目标任务对应的任务向量和目标任务的状态信息st获取目标任务的动作值函数向量,其中,动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数;根据目标任务的值函数从动作空间中获取目标动作,目标动作为动作空间中使目标任务的值函数取值最大的动作。

  通过根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数,再基于值函数确定目标动作,避免了在对目标任务进行决策时动作值函数向量中与目标任务不相关的子任务的动作值函数对目标动作的选取造成影响,提高了目标任务的决策效果。

  可选地,上述值函数可以为Q值函数,目标任务的Q值函数可表示为:R(st,ak,g),目标动作可表示为:

  其中,g为目标任务对应的任务向量,ak为动作空间中的动作。

  第三方面,本申请实施例提供一种基于多任务学习的决策模型训练装置,包括:

  获取单元,用于随机从第一样本数据库中获取多个样本数据;第一样本数据库中包括多个候选任务的样本数据,目标任务的样本数据包括目标任务对应的任务向量,目标任务对应的任务向量是基于多个候选任务中的共性子任务和特性子任务得到的,目标任务为多个候选任务中的任一个;

  调整单元,用于利用强化学习方法,根据多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1;

  确定单元,用于当决策模型Mt+1收敛时,确定决策模型Mt+1为目标决策模型。

  在一个可行的实施例中,获取单元,用于从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st和根据目标任务获取目标任务对应任务向量,

  上述训练装置还包括:

  更新单元,用于根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,将目标任务的样本数据添加至初步样本数据库,得到第一样本数据库;

  在一个可行的实施例中,在根据目标任务获取目标任务对应的任务向量的方面,获取单元具体用于:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,在根据目标任务的状态信息st,目标任务的任务向量和决策模型Mt生成目标任务的样本数据的方面,更新单元具体用于:

  根据目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作;根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作,目标任务的候选动作被选中的概率为预设概率;在目标动作被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1获取目标任务的奖励值向量;奖励值向量中的奖励值与目标任务对应任务向量中的元素所对应的子任务一一对应;目标任务的样本数据包括目标任务对应的任务向量、目标任务的状态信息st、目标任务的目标动作、目标任务的状态信息st+1和目标任务奖励值向量。

  在一个可行的实施例中,在将目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的目标动作的方面,更新单元具体用于:

  根据目标任务的状态信息st和目标任务对应的任务向量获取目标任务的动作值函数向量,目标任务的动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;根据目标任务的动作值函数向量和目标任务对应的任务向量获取目标任务的值函数;根据目标任务的值函数从动作空间中获取目标任务的目标动作,目标动作为动作空间中使目标任务的值函数取值最大的动作。

  在一个可行的实施例中,在根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作的方面,更新单元具体用于:

  当第一参数大于预设概率时,将目标任务的候选动作确定为目标任务的目标动作;第一参数为取值范围为[0,1]的随机数;当第一参数不大于预设概率时,将随机从动作空间中获取的动作确定为目标任务的目标动作。

  在一个可行的实施例中,调整单元具体用于:

  根据损失函数及多个样本数据中每个样本数据的状态信息st、任务向量、目标动作、状态信息st+1和奖励值向量计算得到损失值;根据损失值调整决策模型Mt中的参数,以得到决策模型Mt+1。

  第四方面,本申请实施例提供一种基于多任务学习的决策装置,包括:

  获取单元,用于获取多个候选任务,从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st;

  联合表征单元,用于根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量,每个候选任务对应的任务向量是基于多个候选任务的特性子任务和共性子任务得到的;

  确定单元,用于根据目标任务对应的任务向量和目标任务的状态信息st,从动作空间中确定出目标动作。

  在一个可行的实施例中,联合表征单元具体用于:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,确定单元具体用于:

  将目标任务对应的任务向量和目标任务的状态信息st输入到目标决策模型中进行处理,以得到目标任务的目标动作,该目标决策模型是基于神经网络实现的。

  在一个可行的实施例中,在将目标任务对应的任务向量和目标任务的状态信息st输入到目标决策模型中进行处理,以得到目标任务的目标动作的方面,确定单元具体用于:

  根据目标任务对应的任务向量和目标任务的状态信息st获取目标任务的动作值函数向量,动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数;根据目标任务的值函数从动作空间中获取目标动作,目标动作为动作空间中使目标任务的值函数取值最大的动作。

  第五方面,本申请实施例提供另一种基于多任务学习的决策模型训练装置,包括:

  存储器,用于存储指令;以及

  至少一台处理器,与所述存储器耦合;

  其中,当所述至少一台处理器执行所述指令时,所述指令致使所述处理器执行如第一方面所述的部分或者全部方法。

  第六方面,本申请实施例提供另一种基于多任务学习的决策装置,包括:

  存储器,用于存储指令;以及

  至少一台处理器,与所述存储器耦合;

  其中,当所述至少一台处理器执行所述指令时,所述指令致使所述处理器执行如第二方面所述的部分或者全部方法。

  第七方面,本申请实施例提供一种芯片系统,该芯片系统应用于电子设备;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面或者第二方面所述的部分或者全部方法。

  第八方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面或第二方面所述的部分或者全部方法。

  第九方面,本申请实施例提供一种计算机程序产品,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面或第二方面所述的部分或者全部方法。

  其中,计算机程序产品可运行在安装有计算机系统的智能载体上(比如可移动车辆、机械手臂、推荐搜索引擎等)。获取任务/状态信息、系统状态处理、决策选取、控制的可执行代码在计算机系统的存储组件上,运行时需要CPU/GPU与存储系统的协同参与。同时,还需使用计算机系统的网络通信组件,决策模型存储在计算机系统的存储组件上。

  本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

  附图说明

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

  图1a为本申请实施例提供的一种车辆的功能框图;

  图1b为本申请实施例提供的一种计算机系统架构的示意图;

  图1c为本申请实施例提供的一种自动驾驶系统的框架示意图;

  图1d为本申请实施例提供的另一种自动驾驶系统的框架示意图;

  图2为本申请实施例提供的一种基于多任务学习的决策方法的流程示意图;

  图3为十字路口场景示意图;

  图4为本申请实施例提供的一种基于多任务学习的决策模型的训练方法流程示意图;

  图5为本申请实施例提供的另一种基于多任务学习的决策模型的训练方法流程示意图;

  图6为本申请实施例提供的一种决策装置的结构示意图;

  图7为本申请实施例提供的一种车载装置的结构示意图;

  图8为本申请实施例提供的一种基于多任务学习的决策装置的结构示意图;

  图9为本申请实施例提供的一种决策模型训练装置的结构示意图;

  图10为本申请实施例提供的另一种决策装置的结构示意图;

  图11为本申请实施例提供的另一种决策模型训练装置的结构示意图;

  图12为本申请实施例提供的一种计算机程序产品局部示意图。

  具体实施方式

  下面结合附图对本申请的实施例进行描述。

  图1a是本发明实施例提供的车辆100的功能框图。在一个实施例中,将车辆100配置为完全或部分地自动驾驶模式。例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定该其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆100。在车辆100处于自动驾驶模式中时,可以将车辆100置为在没有和人交互的情况下操作。

  车辆100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。可选地,车辆100可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。

  行进系统102可包括为车辆100提供动力运动的组件。在一个实施例中,行进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。

  能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。

  传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。

  传感器系统104可包括感测关于车辆100周边的环境的信息的若干个传感器。例如,传感器系统104可包括定位系统122(定位系统可以是GPS系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视车辆100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆100的安全操作的关键功能。

  定位系统122可用于估计车辆100的地理位置。IMU 124用于基于惯性加速度来感测车辆100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。

  雷达126可利用无线电信号来感测车辆100的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。

  激光测距仪128可利用激光来感测车辆100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。

  相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。

  控制系统106为控制车辆100及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、传感器融合系统138、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。

  转向系统132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘系统。

  油门134用于控制引擎118的操作速度并进而控制车辆100的速度。

  制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆100的速度。

  计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100周边环境中的物体和/或特征。所述物体和/或特征可包括交通信号、道路边界和障碍物。计算机视觉系统140可使用物体识别算法、运动中恢复结构(Structure from Motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。

  路线控制系统142用于确定车辆100的行驶路线。在一些实施例中,路线控制系统142可结合来自传感器138、GPS 122和一个或多个预定地图的数据以为车辆100确定行驶路线。

  障碍物避免系统144用于识别、评估和避免或者以其他方式越过车辆100的环境中的潜在障碍物。

  当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。

  车辆100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器152。

  在一些实施例中,外围设备108提供车辆100的用户与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100的用户输出音频。

  无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用3G蜂窝通信,例如CDMA、EVD0、GSM/GPRS,或者4G蜂窝通信,例如LTE。或者5G蜂窝通信。无线通信系统146可利用WiFi与无线局域网(wireless localarea network,WLAN)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。

  电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。

  车辆100的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。

  处理器113可以是任何常规的处理器,诸如商业可获得的CPU。替选地,该处理器可以是诸如ASIC或其它基于硬件的处理器的专用设备。尽管图1a功能性地图示了处理器、存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机110的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。

  处理器113通过传感系统104中得到传感器获取自车的当前状态信息,并且处理器113获取多个候选任务及从该多个候选任务确定出目标任务,并且根据多个候选任务对目标任务进行联合表征,以得到目标任务对应的任务向量,根据目标任务对应的任务向量及当前状态信息输入到决策模型中进行处理,以得到目标任务的目标动作,控制系统106执行目标动作以控制车辆100行驶。

  在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向行进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。

  除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100在自主、半自主和/或手动模式中操作期间被车辆100和计算机系统112使用。

  用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车载电脑148、麦克风150和扬声器152。

  计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机系统112可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统112可操作来对车辆100及其子系统的许多方面提供控制。

  可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,数据存储装置114可以部分或完全地与车辆1100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。

  可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1a不应理解为对本发明实施例的限制。

  在道路行进的自动驾驶汽车,如上面的车辆100,可以识别其周围环境内的物体以确定对当前速度的调整。所述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。

  可选地,自动驾驶汽车车辆100或者与自动驾驶车辆100相关联的计算设备(如图1a的计算机系统112、计算机视觉系统140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所述识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆100能够基于预测的所述识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。

  除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。

  上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本发明实施例不做特别的限定。

  根据图1b,计算机系统101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线113耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121,(例如,CD-ROM,多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉景田和动态数字视频图像)和外部USB接口125。其中,可选地,和I/O接口115相连接的接口可以是USB接口。

  其中,处理器103可以是任何传统处理器,包括精简指令集计算(“RISC”)处理器、复杂指令集计算(“CISC”)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(“ASIC”)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。

  可选地,在本文所述的各种实施例中,计算机系统101可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆0无线通信。在其它方面,本文所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。

  计算机101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(VPN)。可选地,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。

  硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存135和系统总线105耦合。运行在系统内存135的数据可以包括计算机101的操作系统137和应用程序143。

  操作系统包括Shell 139和内核(kernel)141。Shell 139是介于使用者和操作系统之内核(kernel)间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。

  内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。

  应用程序143包括控制汽车自动驾驶相关的程序,比如,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序143也存在于软件部署服务器149的系统上。在一个实施例中,在需要执行自动驾驶相关程序147时,计算机系统101可以从软件部署服务器149下载应用程序143。

  处理器103在执行应用程序143时,处理器执行如下步骤:根据导航信息从多个候选任务中获取目标任务,比如说路口直行;并根据多个候选任务对目标任务进行联合表征,以得到目标任务对应的任务向量;将目标任务对应的任务向量和通过传感器153获取的目标任务的状态信息st输入到决策模型中进行处理,以得到目标任务的目标动作,比如说加速、停车等,然后执行目标动作以控制车辆行驶。

  传感器153和计算机系统101关联。传感器153用于探测计算机101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。可选地,如果计算机101位于自动驾驶的汽车上,传感器可以是摄像头,红外线感应器,化学检测器,麦克风等。

  从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st和目标任务对应任务向量,目标任务对应的任务向量基于多个候选任务的共性子任务和特性子任务得到的,根据目标任务的状态信息st、目标任务对应的任务向量及决策模型更新样本数据库,得到更新后的样本数据库;随机从更新后的样本数据库中获取多个样本数据;多个样本数据为上述多个候选任务中部分或者全部候选任务的样本数据;利用强化学习方法,根据多个样本数据调整决策模型中的参数,以得到调整后的决策模型;判断调整后的决策模型是否收敛;当调整后的决策模型收敛时,确定调整后的决策模型为目标决策模型。

  其中,决策模型可以是基于全连接神经网络、卷积神经网络、循环神经网络或者其他神经网络实现的。

  计算机系统112还可以从其它计算机系统接收信息或转移信息到其它计算机系统。或者,从车辆100的传感器系统104收集的传感器数据可以被转移到另一个计算机对此数据进行处理。如图1c所示,来自计算机系统112的数据可以经由网络被传送到云侧的计算机720用于进一步的处理。网络以及中间节点可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司的专有通信协议的专用网络、以太网、WiFi和HTTP、以及前述的各种组合。这种通信可以由能够传送数据到其它计算机和从其它计算机传送数据的任何设备,诸如调制解调器和无线接口。

  在一个示例中,计算机720可以包括具有多个计算机的服务器,例如负载均衡服务器群,为了从计算机系统112接收、处理并传送数据的目的,其与网络的不同节点交换信息。该服务器可以被类似于计算机系统110配置,具有处理器730、存储器740、指令750、和数据760。

  可选地,上述数据760包括自车在世界坐标系上的坐标、速度、周围社会车辆在世界坐标系上的坐标、速度和航向角等。

  处理器730在执行指令750时,具体实现如下步骤:

  根据自车在世界坐标系上的坐标、速度和周围社会车辆在世界坐标系上的坐标、速度和航向角获取周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit。

  在获取自车的速度、周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit,将自车的速度、周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit发送至车辆的计算机101的计算机系统112。

  在此需要说明的是,上述指令可以看成转换指令。

  图1d示出了根据示例实施例的自主驾驶车辆和云服务中心的示例。云服务中心520可以经诸如无线通信网络的网络502,从其操作环境500内的自动驾驶辆510、512和514接收信息(诸如车辆传感器收集到数据或者其它信息)。

  云服务中心520通过网络502获取自动驾驶车辆510、512和514在世界坐标系下的速度、坐标、航向角等信息。

  云服务中心根据接收到的数据,运行其存储的控制汽车自动驾驶相关的程序对自动驾驶车辆510、512和514进行控制。控制汽车自动驾驶相关的程序可以为,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。

  云服务中心520对于自动驾驶车辆510、512和514中任一车辆A,获取该车辆A的状态信息,包括该车辆A的速度、周围车辆在车辆A坐标系下的坐标、速度和航向角;根据车辆A的导航信息从多个候选任务中获取目标任务;根据多个候选任务对目标任务进行联合表征,以得到目标任务对应的任务向量;根据状态信息和目标任务对应的任务向量输入到决策模型中进行处理,以得到目标任务的目标动作。

  在获取目标动作后,云服务中心520将目标动作发送至车辆A,以便车辆A根据目标动作行驶。

  网络502将地图的部分向外提供给自动驾驶车辆510、512或514。在其它示例中,可以在不同位置或中心之间划分操作。例如,多个云服务中心可以接收、证实、组合和/或发送信息报告。在-些示例中还可以在自动驾驶车辆之间发送信息报告和/传感器数据。其它配置也是可能的。

  多个云服务中心可以共享其服务区域内车辆在世界坐标系下的速度、坐标和航向角等信息;还可以在多个云服务中心中,当云服务中心1无法为其服务范围内的车辆B提供驾驶服务时,该云服务中心1可以车辆B的相关信息(比如车辆B的状态信息,动作空间、所要执行的任务对应的任务向量)发送至云服务中心2;云服务中心2根据车辆B的状态信息,动作空间、所要执行的任务对应的任务向量确定车辆B的目标动作后,将该目标动作发送至云服务中心1,云服务中心1再将该目标动作发送至车辆B。

  在一些示例中,中心向自动驾驶车辆发送对于关于环境内可能的驾驶情况所建议的解决方案(如,告知前方障碍物,并告知如何绕开它)。例如,云服务中心可以辅助车辆确定当面对环境内的特定障碍时如何行进。云服务中心向自动驾驶车辆发送指示该车辆应当在给定场景中如何行进的响应。例如,云服务中心基于收集到的传感器数据,可以确认道路前方具有临时停车标志的存在,并还该车道上基于“车道封闭”标志和施工车辆的传感器数据,确定该车道由于施上而被封闭。相应地,云服务中心发送用于自动驾驶车辆通过障碍的建议操作模式(例如:指示车辆变道另一条道路上)。云服务中心观察其操作环境内的视频流并且已确认自动驾驶车辆能安全并成功地穿过障碍时,对该自动驾驶车辆所使用操作步骤可以被添加到驾驶信息地图中。相应地,这一信息可以发送到该区域内可能遇到相同障碍的其它车辆,以便辅助其它车辆不仅识别出封闭的车道还知道如何通过。

  参见图2,图2为本申请实施例提供的一种基于多任务学习的决策方法的流程示意图。如图2所示,该方法包括:

  S201、获取多个候选任务,从该多个候选任务中确定出目标任务,并根据目标任务获取目标任务的状态信息st。

  可选地,上述多个候选任务可以是同一场景下的任务,比如在十字路口场景下,上述多个候选任务可以包括路口直行、路口左转和路口右转;再比如在战术竞技游戏的场景下,上述多个候选任务可以包括杀敌数最多、生存最长时间和死亡次数最少。

  可选地,上述多个候选任务还可以包括不同场景下的任务,比如包括上述在十字路口场景下的任务和在战术竞技游戏场景下的任务。

  比如在十字路口的场景下,由于自车与社会车辆进行多次交互博弈,需要获取自车信息及周围社会车辆的信息,因此目标任务的状态信息st包括自车的信息和周围社会车辆的信息。可选地,自车的信息包括自车的速度vet,周围社会车辆的信息包括周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit。假设周围社会车辆包括与自车距离最近的5辆车,状态信息st可表示为st=[vet,x1t,y1t,v1t,θ1t,…,x5t,y5t,v5t,θ5t]。

  比如在竞技战术游戏的场景下,目标任务的状态信息st包括本人角色在地图中的坐标(xpt,ypt)和前进速度vpt,及队友在本人角色坐标系下的坐标(xit,yit))、前进速度vi和前进角度θit。可选地,目标任务的状态信息st还可以包括本人和队友的生命值、火力值、杀敌数、生存时间、敌军的位置信息、生命值和火力值等。

  一个具体地示例中,在十字路口的场景下,可以根据用户的导航信息从多个候选任务中确定出目标任务。比如说在十字路口的场景下,上述多个候选任务包括路口左转、路口右转和路口直行;若根据导航信息确定在该十字路口需要右转,则从上述多个候选任务中确定的目标任务为路口右转。

  另一个具体地示例中,在战术竞技游戏场景中,可以根据游戏的设定从多个候选任务中确定出目标任务。比如战术竞技游戏中,上述多个候选任务包括杀敌数最多和生存最长时间,该游戏的设定是获胜的条件为生存时间最长,则从上述多个候选任务中确定的目标任务为生存最长时间。

  S202、根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量。

  其中,每个候选任务对应的任务向量是基于上述多个候选任务的特征子任务和共性子任务得到的。

  具体地,根据先验知识对多个候选任务中的每个候选任务进行分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务获取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  比如在十字路口场景下,上述多个候选任务可以包括路口直行、路口左转和路口右转;根据先验知识将路口直行分解为路口直行碰撞或到达和提高通行效率两个子任务;将路口左转分解为路口左转碰撞或到达和提高通行效率两个子任务;将路口右转分解为路口右转碰撞或到达和提高通行效率两个子任务。其中,路口直行碰撞或到达、路口左转碰撞或到达和路口右转碰撞或到达为特性子任务,提高通行效率为共性子任务。

  在获取特性子任务和特性子任务后,根据上述特性子任务和共性子任务对上述多个候选任务中每个候选任务进行任务联合表征,以得到每个候选任务对应的任务向量。比如对于十字路口的场景,每个候选任务对应的任务向量基于路口左转碰撞或到达、路口直行碰撞或到达、路口右转碰撞或到达和提高通行效率四个子任务得到的。

  可选地,上述多个候选任务中每个候选任务对应的任务向量由多个元素构成,该多个元素分别与上述多个候选任务的特性子任务和共性子任务一一对应。通过候选任务对应的任务向量中每个元素的不同取值来表示该候选任务是否包含该元素对应的子任务。

  比如,对于十字路口场景的三个候选任务(包括路口左转、路口直行和路口右转),每个候选任务对应的任务向量由四个元素构成,其中,该四个元素分别对应于上述四个子任务:路口左转碰撞或到达、路口直行碰撞或到达、路口右转碰撞或到达和提高通行效率。通过每个候选任务对应的任务向量中元素的不同取值来表示该候选任务是否包含该元素对应的子任务。

  可选地,路口左转对应的任务向量可表示为[1,0,0,1],路口直行对应的任务向量可表示为[0,1,0,1],路口右转对应的任务向量可表示为[0,0,1,1];其中,路口左转对应的任务向量[1,0,0,1]中从左到右第一个“1”表示候选任务“路口左转”包括子任务“路口左转碰撞或到达”,第一个“0”表示候选任务“路口左转”不包括子任务“路口直行碰撞或到达”,第二个“0”表示候选任务“路口左转”不包括子任务“路口右转碰撞或到达”,第二个“1”表示候选任务“路口左转”包括子任务“提高通行效率”;路口直行对应的任务向量[0,1,0,1]中从左到右第一个“0”表示候选任务“路口直行”不包括子任务“路口左转碰撞或到达”,第一个“1”表示候选任务“路口直行”包括子任务“路口直行碰撞或到达”,第二个“0”表示候选任务“路口直行”不包括子任务“路口右转碰撞或到达”,第二个“1”表示候选任务“路口直行”包括子任务“提高通行效率”;路口右转对应的任务向量[0,0,1,1]中从左到右第一个“0”表示候选任务“路口右转”不包括子任务“路口左转碰撞或到达”,第二个“0”表示候选任务“路口右转”不包括子任务“路口直行碰撞或到达”,第一个“1”表示候选任务“路口右转”包括子任务“路口右转碰撞或到达”,第二个“1”表示候选任务“路口右转”包括子任务“提高通行效率”。

  可选地,路口左转对应的任务向量可表示为[80,0,0,20],路口直行对应的任务向量可表示为[0,80,0,20],路口右转对应的任务向量可表示为[0,0,80,20];其中,路口左转对应的任务向量[80,0,0,20]中“80”表示候选任务“路口左转”包括子任务“路口左转碰撞或到达”,从左到右第一个“0”表示候选任务“路口左转”不包括子任务“路口直行碰撞或到达”,第二个“0”表示候选任务“路口左转”不包括子任务“路口右转碰撞或到达”,“20”表示候选任务“路口左转”包括子任务“提高通行效率”。路口直行对应的任务向量[0,80,0,20]中从左到右第一个“0”表示候选任务“路口直行”不包括子任务“路口左转碰撞或到达”,“80”表示候选任务“路口直行”包括子任务“路口直行碰撞或到达”,第二个“0”表示候选任务“路口直行”不包括子任务“路口右转碰撞或到达”,“20”表示候选任务“路口直行”包括子任务“提高通行效率”。相当于对候选任务对应的任务向量,该候选任务包括较大元素值对应的子任务,不包括较小元素值对应的子任务相当于对候选任务对应的任务向量,该候选任务包括非零元素值对应的子任务,不包括零元素值对应的子任务。换言之,候选任务对应的任务向量中的元素为该元素对应子任务的权重;对于候选任务越重要的子任务对应的权重越大,候选任务越不重要的子任务对应的权重越小。

  在此需要说明的是,上述多个候选任务对应的任务向量中子任务的顺序包括但不限于以上描述的顺序([路口左转碰撞或到达,路口直行碰撞或到达、路口右转碰撞或到达,提高通行效率]),还可以为其他排序。

  S203、根据目标任务对应的任务向量和目标任务的状态信息st从动作空间中确定出目标动作。

  具体地,将目标任务对应的任务向量和该目标任务的状态信息st输入到决策模型Mt中进行处理,以得到目标任务的目标动作,其中,决策模型是神经网络实现的。

  可选地,神经网络可以是全连接神经网络、卷积神经网络、循环神经网络或者其他类型的神经网络。

  在一个实施例中,将目标任务对应的任务向量和该目标任务的状态信息st输入到决策模型Mt中进行处理,以得到目标任务的目标动作,具体包括:

  根据目标任务对应的任务向量和目标任务的状态信息st获取目标任务的动作值函数,其中,动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应。动作值函数向量可表示为R(st,ak,g),ak为动作空间中的动作,g为目标任务对应的任务向量。为了避免目标任务的动作值函数向量R(st,ak,g)中与目标任务不相关的子任务的动作值函数的影响,根据目标任务对应的任务向量g将目标任务的动作值函数R(st,ak,g)中与目标任务不相关的子任务的动作值函数删除,以得到目标任务的值函数,再根据目标任务的值函数从动作空间中确定出目标动作,该目标动作为动作空间中使得目标任务的值函数取值最大的动作。

  可选地,上述值函数为Q值函数;其中,上述目标任务的Q值函数可表示为:Q(st,ak,g)=gTR(st,ak,g);目标动作可表示为:

  在此需要说明的是,上述动作空间是由在执行上述目标任务时,可执行的动作组成的。比如在给定导航信息情况下,即给定无人驾驶车辆路点下,进行车辆的速度规划控制。为了能够增强车辆的交互性,需要无人驾驶车辆具备停车等待、挤蹭和加速通过等能力。因此所设计的动作空间需要覆盖一个较大的速度范围,本实施例采用离散动作空间[0,3m/s,6m/s,9m/s]。

  在目标动作at被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1确定目标任务是否结束。比如目标任务为路口直行,可根据状态信息st+1判断车辆是否通过路口。若根据状态信息st+1确定目标任务未结束,重新执行步骤S202-S203;若根据状态信息st+1确定目标任务结束,则按照上述步骤S201-S203执行下一个任务。

  在此需要指出的是,状态信息st为在时刻t的状态信息,状态信息st+1为在时刻t+1时的状态信息,两者为不同时刻的同一类信息,目标动作at为在时刻t所执行的动作。目标动作at的执行主体可以与决策模型的执行主体相同,也可以不相同。比如说决策装置得到目标的动作后,将目标动作发送至汽车,汽车的控制装置执行目标动作,以控制汽车。

  可以看出,在本申请的方案中,通过根据多个候选任务的子任务对目标任务进行联合表征,实现了可以使用同一模型对多个任务进行决策,并避免了多个任务之间的相互影响;通过根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数,再基于值函数确定目标动作,避免了在对目标任务进行决策时动作值函数向量中与目标任务不相关的子任务的动作值函数对目标动作的选取造成影响,提高了目标任务的决策效果。

  在一个具体的示例中,如图3所示,对于十字路口交互场景,无人驾驶车辆需要具备路口左转、路口直行和路口右转三个任务的能力,换言之,无人驾驶车辆的候选任务包括路口左转、路口直行和路口右转;根据导航信息确定在十字路口需要直行,则从上述候选任务中确定的目标任务为路口直行;

  根据先验知识对上述三个候选任务分别进行分解,以得到该三个候选任务中每个候选任务的子任务;路口左转的子任务包括路口左转碰撞或到达和提高通行效率,路口直行的子任务包括路口直行碰撞或到达和提高通行效率,路口右转的子任务包括路口右转碰撞或到达和提高通行效率;从三个候选任务的子任务中提取出特性子任务和共性子任务;其中,特性子任务包括路口左转碰撞或达到、路口直行碰撞或达到和路口右转碰撞或到达,共性子任务包括提高通行效率;并根据特性子任务和共性子任务获取三个候选任务中每个候选任务对应的任务向量;其中,路口直行对应的任务向量g’为[0,1,0,1];

  在十字路口的场景下,由于自车需要与周围社会车辆进行多次交互博弈,因此需要获取自车周围社会车辆完备的信息。获取状态信息st,状态信息st包括自车速度ve、社会车辆在自车坐标系下的位置坐标(xi,yi)、速度vi和航向角θi。假设周围社会车辆为与自车距离最近的五辆车,状态信息st可表示为:st=[ve,x1,y1,v1,θ1,…,x5,y5,v5,θ5];

  将路口直行对应的任务向量g和状态信息st输入到决策模型中进行处理,以得到路口直行对应的目标动作,具体地,路口直行对应的任务向量g和状态信息st获取动作值函数向量R(st,ak,g),动作值函数向量R(st,ak,g)中的动作值函数与路口直行对应的任务向量中的元素所对应的子任务一一对应;为了排除路口直行对应的动作值函数向量R(st,ak,g)中,路口右转碰撞或到达对应的动作值函数和路口左转碰撞或到达对应的动作值函数的影响,根据路口直行对应的任务向量g和动作值函数向量R(st,ak,g)得到路口直行对应的Q值函数;该Q值函数可表示为:Q(st,ak,g)=gTR(st,ak,g);

  最后将使路口直行对应的Q值函数Q(st,ak,g)取最大值的动作确定为目标动作at,比如说加速直行。在目标动作at被执行后,获取目标任务的状态信息st+1,通过状态信息st+1判断目标任务是否结束。比如根据状态信息st+1中自车的坐标确定自车已通过十字路口,从而确定路口直行任务结束。若根据状态信息确定自车未通过十字路口,按照上述方法重新获取路口直行对应的目标动作,直至自车通过十字路口。

  可以看出,在十字路口场景中采用本实施例可以实现在一个决策模型中同时学习三个方向的通行策略,能够成功寻找汇入时机、通过多次交互提高通行效率和避免碰撞。

  参见图4,图4为本申请实施例提供的一种基于多任务学习的决策模型的训练方法流程示意图。如图4所示,该方法包括:

  S401、随机从第一样本数据库中获取多个样本数据,并利用强化学习方法,根据该多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1。

  其中,第一样本数据库中包括多个候选任务的样本数据,目标任务的样本数据包括目标任务对应的任务向量,目标任务对应的任务向量是基于多个候选任务中的共性子任务和特性子任务得到的,目标任务为多个候选任务中的任一个。

  具体地,根据损失函数及多个样本数据中每个样本数据的状态信息st、任务向量、目标动作、状态信息st+1和奖励值向量r计算得到损失值;根据损失值调整决策模型Mt中的参数,以得到决策模型Mt+1。

  其中,损失值可表示为:

  

  其中,上述公式中的r为上述样本数据中的奖励值向量,g为上述样本数据中的任务向量,动作at为上述样本数据中的动作,折扣系数γ为常数。

  在一个可行的实施例中,在随机从第一样本数据库中获取多个样本数据之前,本实施例的方法还包括:

  从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st和获取目标任务对应任务向量;

  根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,将目标任务的样本数据添加至初步样本数据库,以得到第一样本数据库。

  可选地,上述多个候选任务可以是同一场景下的任务,比如在十字路口场景下,上述多个候选任务可以包括路口直行、路口左转和路口右转;再比如在战术竞技游戏的场景下,上述多个候选任务可以包括杀敌数最多、生存最长时间和死亡次数最少。

  可选地,上述多个候选任务还可以包括不同场景下的任务,比如包括上述在十字路口场景下的任务和在战术竞技游戏场景下的任务。

  比如在十字路口的场景下,由于自车与社会车辆进行多次交互博弈,需要获取自车信息及周围社会车辆的信息,因此目标任务的状态信息st包括自车的信息和周围社会车辆的信息。可选地,自车的信息包括自车的速度vet,周围社会车辆的信息包括周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit。假设周围社会车辆包括与自车距离最近的5辆车,状态信息st可表示为st=[vet,x1t,y1t,v1t,θ1t,…,x5t,y5t,v5t,θ5t]。

  比如在竞技战术游戏的场景下,目标任务的状态信息st包括本人角色在地图中的坐标(xpt,ypt)和前进速度vpt,及队友在本人角色坐标系下的坐标(xit,yit))、前进速度vi和前进角度θit。可选地,目标任务的状态信息st还可以包括本人和队友的生命值、火力值、杀敌数、生存时间、敌军的位置信息、生命值和火力值等。

  其中,目标任务对应的任务向量是根据多个候选任务的特性子任务和共性子任务得到的。

  根据先验知识对多个候选任务中的每个候选任务进行分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务获取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在此需要说明的是,根据目标任务获取目标任务对应的任务向量的具体描述可参见上述步骤S202的相关描述,在此不再叙述。

  在一个可行的实施例中,根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,包括:

  将目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作;根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作,目标任务的候选动作被选中的概率为预设概率;在目标动作被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1获取目标任务的奖励值向量;奖励值向量中的奖励值与目标任务对应的任务向量中的元素所对应的子任务一一对应,目标任务的样本数据包括目标任务对应的任务向量、目标任务的状态信息st、目标任务的目标动作、目标任务的状态信息st+1和目标任务的奖励值向量。

  在一个示例中,将目标任务的状态信息st和目标任务对应的任务向量g输入决策模型Mt中进行处理,以得到目标任务的目标动作,包括:

  决策模型Mt根据目标任务的状态信息st和目标任务对应的任务向量g获取动作值函数向量R(st,ak,g),目标任务的动作值函数向量R(st,ak,g)中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;决策模型Mt根据目标任务的动作值函数向量R(st,ak,g)和目标任务对应的任务向量从动作空间中获取目标任务的目标动作at。由于目标任务的动作值函数向量R(st,ak,g)中包含与目标任务不相关的子任务的动作值函数,比如与路口左转不相关的子任务包括路口右转到达或碰撞和路口直行碰撞或到达,为了避免与目标任务不相关的子任务的动作值函数的影响,根据目标任务对应的任务向量g将目标任务的动作值函数R(st,ak,g)中与目标任务不相关的子任务的动作值函数删除,以得到目标任务的值函数;根据该值函数从动作空间中确定出候选动作,该候选动作为动作空间中使目标任务的值函数取值最大的动作。

  在一个可行的实施例中,根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作at,包括:

  当第一参数大于预设概率时,将目标任务的候选动作确定为目标任务的目标动作at;第一参数为取值范围为[0,1]的随机数;当第一参数不大于预设概率时,将随机从动作空间中获取的动作确定为目标任务的目标动作at。

  在此需要指出的是,预设概率的初始值为1或者为接近1的较大值;随着训练次数的增加预设概率逐渐减小;将预设概率的初始值设置为1或者接近1的较大值得目的是为了在训练决策模型的初期尽可能去探索新的动作,避免在训练时避开了最优动作。

  可选地,预设概率的最大值为1,最小值为0.1。

  可选地,上值函数为Q值函数。

  在目标动作at被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1获取目标任务的奖励值向量;奖励值向量中的奖励值与目标任务对应的任务向量中的元素所对应的子任务一一对应。比如对于路口左转任务,其奖励值向量r(st+1,a,g)可表示为[rl,rs,rr,rc],其中,rl为子任务路口左转碰撞或到达的奖励值,rs为子任务路口直行碰撞或到达的奖励值,rr为子任务路口右转碰撞或到达的奖励值,rc为子任务提高通行效率的奖励值。

  奖励值函数可表示为:

  根据目标任务对应的任务向量g、目标任务的状态信息st、目标动作at、状态信息st+1和奖励值向量r获取目标任务的样本数据<st,at,r,st+1,g>,并将目标任务的样本数据<st,at,r,st+1,g>保存到初步样本数据库,以得到第一样本数据库。

  在此需要指出的是,目标动作的执行主体可以与决策模型的执行主体相同,也可以不相同。比如决策模型的执行主体在得到目标动作后,将目标动作发送至目标动作的执行主体来执行该目标动作。

  S402、判断决策模型Mt+1是否收敛;当决策模型Mt+1收敛时,确定决策模型Mt+1为目标决策模型。

  在一个示例中,判断决策模型Mt+1是否收敛,包括:

  根据目标任务的状态信息st+1判断目标任务是否被执行完毕;当确定目标任务被执行完毕,判断决策模型Mt+1是否收敛。

  比如对于十字路口场景,状态信息st+1包括自车的速度ve(t+1),周围车辆在自车坐标系下的坐标(xi(t+1),yi(t+1))、速度Vi(t+1)和航向角θi(t+1),可以通过自车的速度ve(t+1),周围车辆在自车坐标系下的坐标(xi(t+1),yi(t+1))、速度Vi(t+1)和航向角θi(t+1)判断自车是否通过路口;若通过路口,则确定目标任务结束;若未通过十字路口,则确定目标任务未结束。

  进一步,当确定目标任务未结束,则令t=t+1并重复执行步骤S401中的“根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,将目标任务的样本数据添加至初步样本数据库中,得到第一样本数据库”和S402,直至目标任务结束。

  在确定目标任务结束后,判断决策模型Mt+1是否收敛。

  判断决策模型Mt+1是否收敛,若收敛,则将决策模型Mt+1确定为目标决策模型,若不收敛,则重复执行步骤S401-S402,直至决策模型Mt+1收敛。

  可选地,通过判断累加奖励值是否收敛来判断决策模型Mt+1是否收敛。具体地,将目标任务对应的任务向量g和状态信息st+1输入到决策模型Mt+1中进行处理,以得到新的参考动作,具体地,根据目标任务对应的任务向量g和状态信息st+1获取动作值函数向量R(st+1,ak,g),并根据动作值函数向量R(st+1,ak,g)和目标任务对应的任务向量g确定目标任务的Q值函数Q(st+1,ak;g),将动作空间中使得Q值函数Q(st+1,ak;g)取值最大的动作确定为新的参考动作;根据新的预设概率从新的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作at+1,新的候选动作被选中的概率为新的预设概率;在执行目标动作at+1后,获取状态信息st+2,根据奖励值函数和状态信息st+2确定目标动作任务的奖励值向量r(st+2,at+1,g);

  根据当前状态信息st+2判断目标任务是否结束;在确定目标任务未结束时,令t=t+1,重复执行上述步骤,直至目标任务结束。至此得到多个奖励值向量,将多个奖励值向量中每个奖励值向量中,与目标任务相关的子任务对应的奖励值进行累加,以得到奖励累加值。

  若奖励累加值收敛,则确定决策模型Mt+1收敛;若奖励累加值不收敛,则确定决策模型Mt+1不收敛。

  在此需要指出的是,在上述过程中,在获取新的目标动作at+1,状态信息st+2和奖励值向量r(st+2,at+1,g),根据目标任务对应的任务向量g、状态信息st+1,目标动作at+1,状态信息st+2和奖励值向量r(st+2,at+1,g)生成样本数据,并将该样本数据保存至第一样本数据库中,得到新的样本数据库。

  在此需要说明的是,在目标任务结束后,将目标任务从多个候选任务中删除,得到删除后的候选任务;后续需要再次执行步骤S401时,从多个候选任务中获取目标任务具体是指从删除后的候选任务中获取新的目标任务。

  可以看出,在本申请的方案中,通过对目标任务进行联合表征,得到基于特性子任务和共性子任务构成的任务向量,实现了通过一个模型学习多个候选任务的策略,其中,利用多个候选任务的共性子任务能够促进多个候选任务策略的学习,提升了模型收敛能力;利用特性子任务进行多个候选任务的针对性学习,避免了多个任务间的相互影响,也避免了模型在多个任务之间进行妥协,实现了同一模型对多个任务进行决策时都能取得优秀的效果;通过构建奖励值向量,将目标任务中各个子任务的执行情况反馈给决策模型进行学习;通过根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数,再基于值函数确定目标动作,避免了在对目标任务进行决策时动作值函数向量中与目标任务不相关的子任务的动作值函数对目标动作的选取造成影响。

  参见图5,图5为本申请实施例提供的另一种基于多任务学习的决策模型训练方法的流程示意图。如图5所示,该方法包括:

  S501、从多个候选任务中确定出目标任务,并根据目标任务获取目标任务对应的任务向量g及目标任务的状态信息st。

  其中,上述多个任务为同一场景下的任务,比如在十字路口的场景下,上述多个候选任务包括路口左转、路口直行和路口右转;再比如在战术竞技游戏的场景下,上述多个候选任务包括生成最长时间、死亡次数最少和杀敌数最多。当然上述多个候选任务也可以是不同场景下的任务。

  目标任务为上述多个候选任务中未用于训练决策模型的候选任务中的任一个。

  其中,上述目标任务对应的任务向量是基于上述多个候选任务的特性子任务和共性子任务得到的。

  可选地,在从多个候选任务中确定出目标任务之前,对该多个候选任务中每个候选任务进行任务联合表征,以得到每个候选任务对应的任务向量。

  具体地。根据先验知识对上述多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务的子任务;根据多个候选任务中每个候选任务的子任务获取特性子任务和共性子任务;根据特性子任务和共性子任务对上述多个候选任务中的每个候选任务进行任务联合表征,以得到每个候选任务对应的任务向量。其中,每个候选任务对应的任务向量中的元素与上述特性子任务和共性子任务一一对应。通过候选任务对应的任务向量中每个元素的不同取值来表示该候选任务是否包含该元素对应的子任务。

  举例说明,上述多个候选任务包括路口左转、路口直行和路口右转;根据先验知识可将路口左转可分解为路口左转到达或碰撞和提高通行效率两个子任务,将路口直行可分解为路口左转到达或碰撞和提高通行效率两个子任务,将路口右转可分解为路口右转到达或碰撞和提高通行效率两个子任务;其中,路口左转到达或碰撞、路口直行碰撞或到达和路口右转碰撞或到达为特性子任务,提高通行效率为共性子任。

  在一个示例中,路口左转对应的任务向量可表示为[1,0,0,1],路口直行对应的任务向量可表示为[0,1,0,1],路口右转对应的任务向量可表示为[0,0,1,1],其中,向量中的元素1表示候选任务的子任务包括该元素对应的子任务,向量中的元素0表示候选任务的子任务不包括该元素对应的子任务。

  对于十字路口场景下,目标任务的状态信息st包括自车的信息和周围社会车辆的信息。可选地,自车的信息包括自车的速度vet,周围社会车辆的信息包括周围社会车辆在自车坐标系下的坐标(xit,yit)、速度vit及航向角θit。假设周围社会车辆包括与自车距离最近的5辆车,目标任务的状态信息st可表示为st=[vet,x1t,y1t,v1t,θ1t,…,x5t,y5t,v5t,θ5t]。

  S502、将目标任务对应的任务向量g和目标任务的状态信息st输入到决策模型Mt中进行处理,以得到候选动作,根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作at。

  其中,目标任务的候选动作被选中的概率为预设概率。

  目标任务对应的任务向量g和目标任务的状态信息st目标任务的动作值函数向量R(st,ak,g)。其中,目标任务的动作值函数向量R(st,ak,g)中的动作值函数与目标任务中对应的任务向量中的元素所对应的子任务一一对应。动作值函数向量中的动作值函数用于表征对于对应的子任务执行动作ak后得到结果的优劣函数。

  在此需要说明的是,上述决策模型Mt是基于神经网络实现的,比如说全连接神经网络、卷积神经网络、池化神经网络或者其他形式的神经网络。

  根据目标任务对应的任务向量g和目标任务的动作值函数向量R(st,ak,g)确定目标任务的Q值函数Q(st,ak;g)。

  由于目标任务的动作值函数向量R(st,ak,g)中包含与目标任务不相关的子任务的动作值函数,比如与路口左转不相关的子任务包括路口右转到达或碰撞和路口直行碰撞或到达,为了避免与目标任务不相关的子任务的动作值函数的影响,根据目标任务对应的任务向量g将目标任务的动作值函数R(st,ak,g)中与目标任务不相关的子任务的动作值函数删除,以得到目标任务的Q值函数。

  其中,目标任务的Q值函数可表示为:

  Q(st,ak;g)=gT R(st,ak,g)

  根据目标任务的Q值函数Q(st,ak;g)从动作空间中确定出候选动作,该候选动作为动作空间中使Q值函数Q(st,ak;g)取值最大的动作。

  在一个可行的实施例中,根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作at,包括:

  当第一参数大于预设概率时,将目标任务的候选动作确定为目标任务的目标动作at;第一参数为取值范围为[0,1]的随机数;当第一参数不大于预设概率时,将随机从动作空间中获取的动作确定为目标任务的目标动作at。

  在此需要说明的是,预设概率的初始值为1或者为接近1的较大值;随着训练次数的增加预设概率逐渐减小;可选地,预设概率的最大值为1,最小值为0.1。

  S503、在目标动作at被执行后,获取目标任务的状态信息st+1,并根据状态信息st+1和奖励值函数获取目标任务的奖励值向量r(st+1,at,g)。

  其中,奖励值向量(st+1,at,g)中的奖励值与目标任务对应任务向量中的元素所对应的子任务一一对应,比如对于路口左转,其奖励值向量可表示为[rl,rs,rr,rc],其中,rl为子任务路口左转碰撞或到达的奖励值,rs为子任务路口直行碰撞或到达的奖励值,rr为子任务路口右转碰撞或到达的奖励值,rc为子任务提高通行效率的奖励值。

  奖励值函数可表示为:

  在此需要指出的是,状态信息st和状态信息st+1为不同时刻同一类信息。

  S504、根据目标任务对应任务向量g、状态信息st、状态信息st+1、目标动作at和奖励值向量r(st+1,at,g)得到目标任务的样本数据<st,at,r,st+1,g>,并将该样本数据<st,at,r,st+1,g>保存至样本数据库中。

  在此需要说明的是,样本数据库中包括多个候选任务的样本数据,并且对于同一候选任务,可以包括不同时刻获取的样本数据。

  S505、随机从样本数据库中获取多条样本数据,并根据损失函数和多条样本数据计算损失值;根据该损失值调整决策模型Mt中的参数,以得到决策模型Mt+1。

  其中,损失值可表示为:

  

  其中,上述公式中的r为上述样本数据中的奖励值向量,g为上述样本数据中的任务向量,at为上述样本数据中的目标动作,折扣系数γ为常数。

  在此需要说明的是,上述多条样本数据可以是同一个任务的样本数据,也可以是不同任务的样本数据,上述多条样本数据中的部分样本数据是同一任务的,部分样本数据是不同任务的。

  S506、根据状态信息st+1判断目标任务是否结束。

  比如对于十字路口场景,状态信息st+1包括自车的速度ve(t+1),周围车辆在自车坐标系下的坐标(xi(t+1),yi(t+1))、速度Vi(t+1)和航向角θi(t+1),可以通过自车的速度ve(t+1),周围车辆在自车坐标系下的坐标(xi(t+1),yi(t+1))、速度Vi(t+1)和航向角θi(t+1)判断自车是否通过路口;若通过路口,则确定目标任务结束;若未通过十字路口,则确定目标任务未结束。

  其中,当确定目标任务结束,则执行步骤S507;若确定目标任务未结束,则令t=t+1并执行步骤S502。

  S507、判断决策模型Mt+1是否收敛。

  判断决策模型Mt+1是否收敛,若收敛,则执行步骤S508,若不收敛,则执行步骤S501。

  可选地,通过判断累加奖励值是否收敛来判断决策模型Mt+1是否收敛。具体地,将目标任务对应的任务向量g和状态信息st+1输入到决策模型Mt+1中进行处理,以得到新的参考动作,具体地,根据目标任务对应的任务向量g和状态信息st+1获取动作值函数向量R(st+1,ak,g),并根据动作值函数向量R(st+1,ak,g)和目标任务对应的任务向量g确定目标任务的Q值函数Q(st+1,ak;g),将动作空间中使得Q值函数Q(st+1,ak;g)取值最大的动作确定为新的参考动作,根据新的预设概率从新的候选动作和随机从动作空间中获取的动作中选取出新的目标动作at+1,新的候选动作被选中的概率为新的预设概率;在新的目标动作at+1被执行后,获取状态信息st+2,根据奖励值函数和当前状态信息st+2确定目标动作任务的奖励值向量r(st+2,at+1,g);根据状态信息st+2判断目标任务是否结束;在确定目标任务未结束时,令t=t+1,重复执行上述步骤,直至目标任务结束。至此得到多个奖励值向量,将多个奖励值向量中每个奖励值向量中,将与目标任务相关的子任务对应的奖励值进行累加,以得到奖励累加值。

  若奖励累加值收敛,则确定决策模型Mt+1收敛;若奖励累加值不收敛,则确定决策模型Mt+1不收敛。

  在此需要指出的是,在上述过程中,在获取新的目标动作at+1,状态信息st+2和奖励值向量r(st+1,at+1,g),根据目标任务对应的任务向量g、状态信息st+1、目标动作at+1,状态信息st+2和奖励值向量r(st+2,at+1,g)生成样本数据,并将该样本数据保存至样本数据库中。

  在此需要说明的是,在目标任务结束后,将目标任务从多个候选任务中删除,得到删除后的候选任务;后续需要再次执行步骤S501时,从多个候选任务中获取目标任务具体是指从删除后的候选任务中获取新的目标任务。

  S508、将决策模型Mt+1确定为目标决策模型,并保存。

  参见图6,图6为本申请实施例提供的一种决策装置的结构示意图。如图6所示,该决策装置600包括:

  任务和状态信息获取模块601,用于从多个候选任务中获取目标任务及其对应的任务向量,并在决策模型训练模块602训练决策模型过程中和在决策模块603基于目标决策模型进行决策过程中获取目标任务的状态信息,并将目标任务及其任务向量、和目标任务的状态信息发送至决策模型训练模块602和决策模块603;

  决策模型训练模块602,用于根据目标任务对应的任务向量和目标任务的状态信息更新样本数据库;随机从更新后的样本数据库中获取多个样本数据,根据该多个样本数据训练决策模型,以得到目标决策模型;并将目标决策模型发送至决策模块603;

  决策模块603,用于基于训练后的决策模型及目标任务的状态信息、目标任务对应的任务向量获取目标动作,并将目标动作发送至控制模块604。

  控制模块604,用于执行目标动作,以完成目标任务。

  在此需要说明的是,上述任务和状态信息获取模块601具体用于执行步骤S201、S401和S501的相关内容;上述决策模型训练模块602用于执行步骤S402、S502-S508的相关内容;决策模型603用于执行步骤S202-S203的相关内容,在此不再具体描述。

  参见图7,图7为本申请实施例提供的一种车载装置的结构示意图。如图7所示,该车载装置700包括:

  环境感知模块701,用于感知周围自车周围环境信息,比如是综合各个传感器所得,获取自车位置、速度和自车周围社会车辆的速度、位置和航向角等信息;并将该信息作为状态信息发送至决策模块703。

  导航信息模块702,用于明确自车在路口的导航信息,包括距离路口的距离、路口红绿灯信息和自车方向等信息,其中自车各个转向方向即为上述多个候选任务;将导航信息发送至决策模块703。

  决策模块703,用于根据导航信息从上述多个候选任务中确定出目标任务,比如路口左转;根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量;根据目标任务对应的任务向量和环境感知模块701得到的状态信息输入到决策模型中进行处理,得到目标任务的目标动作,比如说左转加速,左转减速等,并将目标动作发送至车辆控制模块704。

  车辆控制模块704,用于根据目标动作控制车辆行驶,以完成目标任务。

  在此需要说明的是,上述决策模块703基于状态信息和目标任务对应的任务向量得到目标动作的具体过程可参见步骤S202-S203的相关描述,在此不再具体叙述。

  参见图8,图8为一种基多任务学习的决策装置的结构示意图。如图8所示,该决策装置800包括:

  获取单元801,用于获取多个候选任务,从多个候选任务中获取目标任务;并目标任务获取目标任务的状态信息st;

  联合表征单元802,用于根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量,每个候选任务对应的任务向量是基于多个候选任务的特性子任务和共性子任务得到的;

  确定单元803,用于根据目标任务对应的任务向量和目标任务的状态信息st从动作空间中确定出目标动作。

  在一个可行的实施例中,联合表征单元802具体用于:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,在根据目标任务对应的任务向量和与目标任务的状态信息st获取目标任务的动作值函数向量的方面,确定单元803具体用于:

  将目标任务对应的任务向量和目标任务的状态信息st输入到目标决策模型中进行处理,以得到目标任务的目标动作,目标决策模型是基于神经网络实现的。

  在一个可行的实施例中,确定单元803具体用于:

  根据目标任务对应的任务向量和目标任务的状态信息st获取目标任务的动作值函数向量,该动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;根据目标任务对应的任务向量和动作值函数向量获取目标任务的值函数;根据目标任务的值函数从动作空间中获取目标动作,目标动作为动作空间中使目标任务的值函数取值最大的动作。

  需要说明的是,上述各单元(获取单元801、联合表征单元802和确定单元803)用于执行上述步骤S201-S203所示方法的相关内容。

  在本实施例中,决策装置800是以单元的形式来呈现。这里的“单元”可以指特定专用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上决策装置800中的获取单元801、联合表征单元802和确定单元803可通过图10所示的决策装置的处理器1000来实现。

  参见图9,图9为本申请实施例提供的一种决策模型训练装置的结构示意图。如图9所示,该训练装置900包括:

  获取单元901,随机从第一样本数据库中获取多个样本数据;第一样本数据库中包括多个候选任务的样本数据,目标任务的样本数据包括目标任务对应的任务向量,目标任务对应的任务向量是基于多个候选任务中的共性子任务和特性子任务得到的,目标任务为多个候选任务中的任一个;

  调整单元902,用于利用强化学习方法,根据多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1;

  确定单元903,用于当决策模型Mt+1收敛时,确定决策模型Mt+1为目标决策模型。

  在一个可行的实施例中,

  获取单元901,用于从多个候选任务中获取目标任务;并获取目标任务的状态信息st和获取目标任务对应任务向量,

  上述训练装置900还包括:

  更新单元904,用于根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,将目标任务的样本数据添加至初步样本数据库,得到第一样本数据库。

  在一个可行的实施例中,在获取目标任务对应的任务向量的方面,获取单元901具体用于:

  对多个候选任务中的每个候选任务进行任务分解,以得到每个候选任务对应的子任务;根据多个候选任务中每个候选任务对应的子任务提取多个候选任务的特性子任务和共性子任务;根据多个候选任务的特性子任务和共性子任务获取目标任务对应的任务向量。

  在一个可行的实施例中,在根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据的方面,更新单元904具体用于:

  将目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作;根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作,目标任务的候选动作被选中的概率为预设概率;在目标动作被执行后,获取目标任务的状态信息st+1,并根据目标任务的状态信息st+1获取目标任务的奖励值向量;奖励值向量中的奖励值与目标任务对应的任务向量中的元素所对应的子任务一一对应;

  目标任务的样本数据包括目标任务对应的任务向量、目标任务的状态信息st、目标任务的目标动作、目标任务的状态信息st+1和目标任务的奖励值向量。

  在一个可行的实施例中,在将目标任务的状态信息st和目标任务对应的任务向量输入决策模型Mt中进行处理,以得到目标任务的候选动作的方面,更新单元904具体用于:

  使决策模型Mt根据目标任务的状态信息st和目标任务对应的任务向量获取目标任务的动作值函数向量,目标任务的动作值函数向量中的动作值函数与目标任务对应的任务向量中的元素所对应的子任务一一对应;根据目标任务的动作值函数向量和目标任务对应的任务向量获取目标任务的值函数;根据目标任务的值函数从动作空间中获取目标任务的候选动作,候选动作为动作空间中使目标任务的值函数取值最大的动作。

  在一个可行的实施例中,在根据预设概率从目标任务的候选动作和随机从动作空间中获取的动作中选取出目标任务的目标动作的方面,更新单元904具体用于:

  当第一参数大于预设概率时,将目标任务的候选动作确定为目标任务的目标动作;第一参数为取值范围为[0,1]的随机数;当第一参数不大于预设概率时,将随机从动作空间中获取的动作确定为目标任务的目标动作。

  在一个可行的实施例中,调整单元902具体用于:

  根据损失函数及多个样本数据中每个样本数据的状态信息st、任务向量、目标动作、状态信息st+1和奖励值向量计算得到损失值;根据损失值调整决策模型Mt中的参数,以得到决策模型Mt+1。

  需要说明的是,上述各单元(获取单元901、调整单元902、确定单元903和更新单元904)用于执行上述步骤S401、S402及步骤S501-S508所示方法的相关内容。

  在本实施例中,训练装置900是以单元的形式来呈现。这里的“单元”可以指特定专用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上训练装置900中的获取单元901、调整单元902、确定单元903和更新单元904可通过图11所示的训练装置的处理器1100来实现。

  如图10所示的决策装置可以以图10中的结构来实现,该决策装置1000包括至少一个处理器1001,至少一个存储器1002以及至少一个通信接口1003。处理器1001、存储1002和通信接口1003通过通信总线连接并完成相互间的通信。

  通信接口1003,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN)等。

  存储器1002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

  其中,所述存储器1002用于存储执行以上方案的应用程序代码,并由处理器1001来控制执行。所述处理器1001用于执行所述存储器1002中存储的应用程序代码。

  存储器1002存储的代码可执行以上提供的一种基于多任务学习的决策方法。

  处理器1001还可以采用或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的基于多任务联合学习的决策方法。

  处理器1001还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的决策方法的各个步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。在实现过程中,本申请的状态生成模型和选择策略的训练方法的各个步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及模块框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1002,处理器1001读取存储器1002中的信息,结合其硬件完成本申请实施例的决策方法。

  通信接口1003使用例如但不限于收发器一类的收发装置,来实现决策装置与其他设备或通信网络之间的通信。例如,可以通过通信接口1003获取状态信息,或者向执行设备(比如车辆的控制装置)发送目标动作。

  总线可包括在装置各个部件(例如,存储器1002、处理器1001、通信接口1003)之间传送信息的通路。在一种可能的实施例中,处理器1001具体执行以下步骤:

  获取多个候选任务,从多个候选任务中获取目标任务;并根据目标任务获取目标任务的状态信息st;根据多个候选任务对目标任务进行任务联合表征,以得到目标任务对应的任务向量,每个候选任务对应的任务向量是基于多个候选任务的特性子任务和共性子任务得到的;根据目标任务对应的任务向量和目标任务的状态信息st,从动作空间中确定出目标动作。

  如图11所示的决策模型训练装置可以以图11中的结构来实现,该训练装置1100包括至少一个处理器1101,至少一个存储器1102以及至少一个通信接口1103。处理器1101、存储1102和通信接口1103通过通信总线连接并完成相互间的通信。

  通信接口1103,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN)等。

  存储器1102可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

  其中,所述存储器1102用于存储执行以上方案的应用程序代码,并由处理器1101来控制执行。所述处理器1101用于执行所述存储器1102中存储的应用程序代码。

  存储器1102存储的代码可执行以上提供的一种基于多任务学习的决策模型训练方法。

  处理器1101还可以采用或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的基于多任务学习的决策模型训练方法。

  处理器1101还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的决策模型训练方法的各个步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。在实现过程中,本申请的状态生成模型和选择策略的训练方法的各个步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及模块框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器1102中的信息,结合其硬件完成本申请实施例的决策模型训练方法。

  通信接口1103使用例如但不限于收发器一类的收发装置,来实现决策模型训练装置与其他设备或通信网络之间的通信。例如,可以通过通信接口1103获取模型训练时所使用的样本数据,或者向决策装置发送训练好的决策模型。

  总线可包括在装置各个部件(例如,存储器1102、处理器1101、通信接口1103)之间传送信息的通路。在一种可能的实施例中,处理器1101具体执行以下步骤:

  从多个候选任务中获取目标任务;并获取目标任务的状态信息st和获取目标任务对应任务向量,目标任务对应的任务向量是基于多个候选任务的共性子任务和特性子任务得到的,根据目标任务的状态信息st、目标任务对应的任务向量及决策模型Mt产生目标任务的样本数据,将目标任务的样本数据添加至初步样本数据库,得到第一样本数据库;随机从第一样本数据库中获取多个样本数据;多个样本数据为多个候选任务中部分或者全部候选任务的样本数据;采用强化学习方法,根据多个样本数据调整决策模型Mt中的参数,以得到决策模型Mt+1;判断决策模型Mt+1是否收敛;当决策模型Mt+1收敛时,确定决策模型Mt+1为目标决策模型。

  本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述方法实施例中记载的任何一种基于多任务学习的决策方法或者决策模型训练方法的部分或全部步骤。

  在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。图12示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品1200是使用信号承载介质1201来提供的。所述信号承载介质1201可以包括一个或多个程序指令1202,其当被一个或多个处理器运行时可以提供以上针对图2、图4和图5描述的功能或者部分功能。因此,例如,参考图2中所示的实施例,步骤S201-203的一个或多个特征可以由与信号承载介质1201相关联的一个或多个指令来承担。此外,图12中的程序指令1202也描述示例指令。

  在一些示例中,信号承载介质1201可以包含计算机可读介质1203,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等等。在一些实施方式中,信号承载介质1201可以包含计算机可记录介质1204,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1201可以包含通信介质1205,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1201可以由无线形式的通信介质1205(例如,遵守IEEE802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令1202可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,诸如针对图2、图4和图5描述的计算设备可以被配置为,响应于通过计算机可读介质1203、计算机可记录介质1204、和/或通信介质1205中的一个或多个传达到计算设,的程序指令1202,提供各种操作、功能、或者动作。应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。

  需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

  在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

  本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。

  以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。

《基于多任务学习的决策方法、决策模型训练方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)