智能体动作的确定方法和装置、电子设备和介质与流程

文档序号:28054934发布日期:2021-12-17 22:01阅读:150来源:国知局
智能体动作的确定方法和装置、电子设备和介质与流程

1.本公开涉及智能控制技术,尤其是一种智能体动作的确定方法和装置、电子设备和介质。


背景技术:

2.无人设备在真实的自然环境中,可以视为具有感知和行动能力的智能体,智能体的行动通常需要进行规划后按照规划来执行相应的动作,现有技术中,通常是基于智能体的当前状态生成符合最大化预期的未来回报的单步动作作为当前要执行的目标动作,探索效率较低。


技术实现要素:

3.为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种智能体动作的确定方法和装置、电子设备和介质。
4.根据本公开实施例的一个方面,提供了一种智能体动作的确定方法,包括:在当前时间步,基于智能体的当前状态生成第一动作序列,所述第一动作序列包括至少一个时间步的第一动作;基于所述当前状态及所述第一动作序列,确定所述第一动作序列中各第一动作对应的第一状态动作序列价值,所述第一状态动作序列价值为状态动作序列价值函数值;基于所述第一动作序列中各第一动作对应的第一状态动作序列价值及候选动作序列中各第二动作对应的第二状态动作序列价值,确定当前要执行的目标动作序列,所述候选动作序列是前一时间步所执行动作序列中剩余的未执行动作所形成的动作序列;基于所述目标动作序列确定当前要执行的目标动作,以使所述智能体根据所述目标动作行动。
5.根据本公开实施例的另一方面,提供一种智能体动作的确定装置,包括:生成模块,用于在当前时间步,基于智能体的当前状态生成第一动作序列,所述第一动作序列包括至少一个时间步的第一动作;确定模块,用于基于所述当前状态及所述第一动作序列,确定所述第一动作序列中各第一动作对应的第一状态动作序列价值,所述第一状态动作序列价值为状态动作序列价值函数值;第一处理模块,用于基于所述第一动作序列中各第一动作对应的第一状态动作序列价值及候选动作序列中各第二动作对应的第二状态动作序列价值,确定当前要执行的目标动作序列,所述候选动作序列是前一时间步所执行动作序列中剩余的未执行动作所形成的动作序列;第二处理模块,用于基于所述目标动作序列确定当前要执行的目标动作,以使所述智能体根据所述目标动作行动。
6.根据本公开实施例的再一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述任一实施例所述的智能体动作的确定方法。
7.根据本公开实施例的又一方面,提供一种电子设备,所述电子设备包括:
8.处理器;
9.用于存储所述处理器可执行指令的存储器;
10.所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述任一实施例所述的智能体动作的确定方法。
11.基于本公开上述实施例提供的智能体动作的确定方法和装置、电子设备和介质,在当前时间步可以基于智能体的当前状态生成包括至少一个时间步动作的动作序列,基于生成的动作序列的状态动作序列价值及前一时间步所执行的动作序列中剩余动作的状态动作序列价值来确定当前时间步要执行的目标动作序列,进而基于目标动作序列来确定当前时间步要执行的目标动作,也即每个时间步都可以生成多步动作参与到后续目标动作的确定中,有效提高探索效率。
12.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
13.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
14.图1是本公开所适用的一个示例性场景示意图;
15.图2是本公开一示例性实施例提供的智能体动作的确定方法的流程示意图;
16.图3是本公开一示例性实施例提供的步骤201的一种流程示意图;
17.图4是本公开一示例性实施例提供的动作序列生成器的一种示例性结构示意图;
18.图5是本公开一示例性实施例提供的结合跳跃连接的rnn单元的一种示例性结构示意图;
19.图6是本公开一示例性实施例提供的状态动作序列价值网络模型的一种示例性结构示意图;
20.图7是本公开另一示例性实施例提供的智能体动作的确定方法的流程示意图;
21.图8是本公开一示例性实施例提供的步骤302的一种示例性流程示意图;
22.图9是本公开一示例性实施例提供的步骤203的一种示例性流程示意图;
23.图10是本公开一示例性实施例提供的预设映射规则的一种示例性流程示意图;
24.图11是本公开一示例性实施例提供的carla任务的网络结构的一种示例性结构示意图;
25.图12是本公开一示例性实施例提供的carla环境及其控制器接口的一种示例性结构示意图;
26.图13是本公开一示例性实施例提供的驾驶场景的动作确定的整体流程示意图;
27.图14是本公开一示例性实施例提供的驾驶场景执行目标动作的处理流程示意图;
28.图15是本公开一示例性实施例提供的gpm算法与其他算法的pendulum任务训练期间状态访问和演化结果的可视化示意图;
29.图16是本公开一示例性实施例提供的gpm算法与其他算法的性能效果曲线示意图;
30.图17是本公开一示例性实施例提供的gpm算法与其他算法的探索轨迹可视化结果示意图;
31.图18是本公开一示例性实施例提供的gpm算法生成动作序列的形式演进过程示意图;
32.图19是本公开一示例性实施例提供的gpm生成的动作序列的可视化示意图;
33.图20是本公开一示例性实施例提供的智能体动作的确定装置的结构示意图;
34.图21是本公开一示例性实施例提供的生成模块501的一种示例性结构示意图;
35.图22是本公开另一示例性实施例提供的智能体动作的确定装置的结构示意图;
36.图23是本公开一示例性实施例提供的电子设备的结构框图。
具体实施方式
37.下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
38.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
39.本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
40.还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
41.还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
42.另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
43.还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
44.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
45.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
46.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
47.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
48.本公开实施例可以应用于智能体,还可以应用于与智能体通信的终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人
电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
49.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
50.本公开概述
51.在实现本公开的过程中,发明人发现,在确定智能体要执行的目标动作时,通常采用无模型的强化学习算法优化动作生成方法,该方法生成在当前时间步中要执行的动作,以最大化预期的未来回报,但是每个时间步只生成单步动作,虽然灵活,但是面临着低效探索带来的困难。
52.示例性概述
53.本公开实施例可应用于交通领域的自动驾驶场景、工业领域的机器人自动化工作场景、气象领域的天气变化自动识别场景及其他任意可实施的场景。
54.本公开可以在每个时间步生成包括多步动作的第一动作序列,并与前一时间步执行的动作序列中剩余未执行动作形成的候选动作序列竞选智能体当前时间步需要执行的目标动作序列,进而基于目标动作序列来确定智能体当前时间步需要执行的目标动作,相对于生成单步动作,有效提高探索效率。一个例子如图1所示,图1是本公开所适用的一个示例性场景示意图,该图以自动驾驶场景为例,智能体即为自动驾驶车辆,图中示为本车辆,本车辆在道路上行驶,依赖本车辆上设置的各种传感器感知周围环境信息,并在当前时间步,基于自身当前状态生成一个第一动作序列,该第一动作序列包括以当前时间步开始的一个或多个动作,基于第一动作序列及候选动作序列确定出当前时间步要执行的目标动作序列,比如包括3个设定点位置的序列[(x1,y1),(x2,y2),(x3,y3)],进而基于目标动作序列及预设动作算子,确定出该车辆需要执行的目标动作,比如基于第一个设定点位置(x1,y1)及车辆当前所在位置(x0,y0),确定出目标方向和目标速度,将目标方向和目标速度传递给pid控制器产生控制信号,即为目标动作,比如包括油门、转向、制动、倒车等,该车辆执行目标动作实现车辆的前进,在执行完目标动作后,车辆进入下一时间步,则可以将下一时间步作为当前时间步,并可以获取车辆新的状态作为当前状态,按照上述过程继续确定车辆再次需要执行的动作,以此类推实现车辆的自动驾驶。
[0055]
示例性方法
[0056]
图2是本公开一示例性实施例提供的智能体动作的确定方法的流程示意图。本实施例可应用在智能体或电子设备上,如图2所示,该方法包括如下步骤:
[0057]
步骤201,在当前时间步,基于智能体的当前状态生成第一动作序列,第一动作序列包括至少一个时间步的第一动作。
[0058]
在一个可选示例中,智能体可以是自动驾驶车辆、机器人等具有能够立体感知、全域协同、精准判断、持续进化、开放的智能系统的计算实体,驻留在某一环境下,能持续自主地发挥作用。在智能体实际应用中,智能体当前所处时刻称为当前时间步,智能体在当前时
间步所处的状态称为智能体的当前状态,比如自动驾驶场景,智能体的当前状态可以包括车辆的当前位置、当前速度、当前加速度、当前所处周围环境信息等。
[0059]
在一个可选示例中,第一动作序列可以τ
new
表示,包括n个时间步的第一动作,即τ
new
=[a
t,new
,a
t+1,new
,a
t+2,new


,a
t+n

1,new
],其中,t表示当前时间步,a
t,new
即表示当前时间步t对应的第一动作,a
t+i

1,new
(i∈[1,n])表示时间步t+i

1对应的第一动作。
[0060]
在一个可选示例中,第一动作序列的生成可以是采用动作序列生成器实现,动作序列生成器具体可以通过循环神经网络rnn实现,动作序列生成器需要预先训练获得,可以通过最大化价值来训练,使得生成的动作序列为到达高价值区域的有意动作序列,因此可以基于生成的多步动作进行时间协调探索,从而提高探索效率。
[0061]
步骤202,基于当前状态及第一动作序列,确定第一动作序列中各第一动作对应的第一状态动作序列价值,第一状态动作序列价值为状态动作序列价值函数值。
[0062]
在一个可选示例中,状态动作序列价值是状态动作序列价值函数值,用来评价动作序列的优劣。
[0063]
在一个可选示例中,状态动作序列价值函数可以通过状态动作序列价值网络模型来实现,状态动作序列价值网络模型可以基于循环神经网络rnn通过学习获得。
[0064]
在一个可选示例中,状态动作序列价值函数输入为状态和动作序列,输出为沿动作序列的一组状态动作序列价值。
[0065]
示例性的,当前状态表示为s
t
,第一动作序列表示为τ
new
,状态动作序列价值函数为q(s,τ),则t+i

1(i∈[1,n])时间步的第一动作a
t+i

1,new
对应的第一状态动作序列价值为:
[0066]
q(s
t
,τ
new,i
)=q(s
t
,a
t,new
,a
t+1,new
,a
t+2,new


,a
t+i

1,new
)
[0067]
其中,τ
new,i
即表示第一动作序列中开始的前i个第一动作,也即每个第一动作a
t+i

1,new
对应的第一状态动作序列价值是指第一动作序列中前i个动作所形成的动作序列的状态动作序列价值q(s
t
,τ
new,i
)。
[0068]
需要说明的是,本公开中一个动作序列包括多个动作,其中一个动作所对应的状态动作序列价值q是指该动作序列中从开始至该动作结束的这部分动作形成的新的动作序列的状态动作价值,也即状态动作序列价值评价的是动作序列的价值。
[0069]
步骤203,基于第一动作序列中各第一动作对应的第一状态动作序列价值及候选动作序列中各第二动作对应的第二状态动作序列价值,确定当前要执行的目标动作序列,候选动作序列是前一时间步所执行动作序列中剩余的未执行动作所形成的动作序列。
[0070]
在一个可选示例中,候选动作序列可以通过将前一时间步t

1执行的旧动作序列(如果还有剩余未执行的动作)时间前移一步来获得,即候选动作序列τ
old
=ρ(τ
actual0
),其中,τ
actual0
即表示前一时间步t

1执行的动作序列,ρ()为移位算子,表示提取动作序列的剩余部分,比如前一时间步已经执行完动作序列τ
actual0
中的第1个动作τ
actual0
[0],则ρ(τ
actual0
)=t
shift

actual0
)=τ
actual0
[1:]。
[0071]
候选动作序列中各第二动作对应的第二状态动作序列价值也是通过状态动作序列价值函数来确定的,具体原理与前述第一动作序列类似,在此不再赘述。
[0072]
在一个可选示例中,目标动作序列是第一动作序列和候选动作序列基于各自的状态动作序列价值竞争确定的,即目标动作序列是第一动作序列或者候选动作序列,两者竞
争规则可以根据实际需求设置。
[0073]
步骤204,基于目标动作序列确定智能体当前需要执行的目标动作。
[0074]
在一个可选示例中,目标动作可以是根据目标动作序列及预设动作算子(也可称为预设映射规则)来确定。
[0075]
在一个可选示例中,目标动作序列中包括的动作本就是智能体可执行的动作,则可将目标动作序列中当前时间步对应的动作作为目标动作。
[0076]
在一个可选示例中,目标动作序列中包括的是智能体不可直接执行的动作,比如自动驾驶场景中目标动作序列中包括的是未来需要达到的位置坐标序列(可以称为设定点序列),则需要根据目标动作序列确定出智能体可执行的动作作为目标动作,比如基于当前时间步需要到达的设定点及智能体(车辆)当前位置确定车辆要行驶的目标方向和目标速度,基于该目标方向和目标速度采用一定的控制器(比如pid控制器)获得车辆的控制信号(包括油门、转向、制动、倒车等)作为目标动作,车辆执行目标动作即完成了一次状态更新。
[0077]
本公开通过在每个时间步可以生成包括多步动作的动作序列,基于生成的动作序列的状态动作序列价值及前一时间步所执行的动作序列中剩余动作的状态动作序列价值来确定当前时间步要执行的目标动作序列,实现状态动作序列价值的最大化,进而基于目标动作序列来确定当前时间步要执行的目标动作,也即每个时间步生成的多步动作都参与到后续目标动作的确定中进行时间协调探索,有效提高探索效率。
[0078]
在一个可选示例中,图3是本公开一示例性实施例提供的步骤201的一种流程示意图,如图3所示,在上述图2所示实施例的基础上,本公开步骤201可以包括如下步骤:
[0079]
步骤2011,在当前时间步,获取智能体的当前状态。
[0080]
步骤2012,将当前状态输入到预先训练获得的动作序列生成器,生成第一动作序列,动作序列生成器是基于循环神经网络的动作序列生成模型。
[0081]
在一个可选示例中,智能体的当前状态可以通过相应的状态采集设备来获得,比如各种传感器及其他相关设备,包括摄像头、imu传感器、具体可以根据实际需求设置。
[0082]
在一个可选示例中,动作序列生成器是基于循环神经网络rnn进行训练获得的动作序列生成模型,循环神经网络可以根据实际需求设置,比如门控循环单元gru网络,本公开实施例不做限定。
[0083]
在一个可选示例中,图4是本公开的动作序列生成器的一种示例性结构示意图,其实现功能如下:
[0084]
z
t
=encoder(s
t
)
ꢀꢀꢀꢀꢀꢀꢀ
(1)
[0085]
h
t
=h(z
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0086]
a
t
=μ
mean
(z
t
)+σ
std
(z
t
)
·
n_noise
ꢀꢀꢀꢀꢀ
(3)
[0087]
a
t+i
=f(h
t+i
,a
t+i
‑1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0088]
h
t+i
=rnn(h
t+i
‑1,a
t+i
‑1)
ꢀꢀꢀꢀꢀꢀ
(5)
[0089]
其中,s
t
表示t时间步的状态,encoder(s
t
)表示对s
t
进行编码获得编码结果z
t
,n_noise表示噪声向量,n_noise~n(0,1),即n_noise服从标准正态分布,h(z
t
)表示对z
t
进行h映射,获得t时间步循环神经网络rnn的初始状态h
t
,μ
mean
(z
t
)和σ
std
(z
t
)分别为图中的μ网络和σ网络,分别表示求t时间步的动作分布的均值(即图中μ)和方差(即图中σ),f()表示动作解码器,a
t+i
‑1(i∈[1,n

1])表示生成的t+i

1时间步的动作,rnn(h
t+i
‑1,a
t+i
‑1)即表示深
度神经网络单元,输入为h
t+i
‑1和a
t+i
‑1,输出h
t+i

[0090]
在一个可选示例中,从生成的第二个动作(a
t+1
)开始,rnn( )可以结合跳跃连接实现,即从输入的前一个动作到输出动作添加一个跳跃连接(skip

connection),图5是本公开的结合跳跃连接的rnn单元的一种示例性结构示意图,这里以第一个rnn单元为例,输入为生成的第一个动作a
t
和h
t
,从输入的动作a
t
到输出动作a
t+1
添加了跳跃连接,采用跳跃连接即引入了合理的先验知识,则动作解码器f()的实现可以利用以下时间序列结构:
[0091]
a
t+i
=f(h
t+i
‑1,a
t+i
‑1)=a
t+i
‑1+g(h
t+i
‑1,a
t+i
‑1)
ꢀꢀꢀꢀ
(6)
[0092]
其中,i∈[1,n

1],g()可以采用神经网络实现,若初始化g使其生成的初始值较小,则实际上嵌入了一个动作重复的先验以进行初始的强化学习探索。
[0093]
在一个可选示例中,动作序列生成器可以通过匹配指定的目标熵来调整随机程度,即引入一个代价函数j(α)作为整体代价函数的一部分,其中,α即为用于调整随机程度的参数,需要学习获得。
[0094]
本公开通过基于循环神经网络的动作序列生成器在每个时间步可以生成包括多个动作的动作序列,进行时间协调探索,有效提高探索效率,并且可以通过跳跃连接引入合理的先验知识,提高生成动作的有效性,此外,基于循环神经网络建模,使用了自回归结构,有利于表征连续时间步对应的动作之间的内在关系,进一步提高模型的有效性。
[0095]
在一个可选示例中,在上述图2所示实施例的基础上,本公开步骤202可以包括:将当前状态及第一动作序列,输入到预先训练获得的状态动作序列价值网络模型,获得第一动作序列中各第一动作对应的第一状态动作序列价值;状态动作序列价值网络模型的网络架构是基于循环神经网络建立的。
[0096]
在一个可选示例中,状态动作序列价值网络模型基于循环神经网络实现,比如lstm(long short

term memory,长短期记忆网络)实现,具体可以根据实际需求设置。
[0097]
在一个可选示例中,图6是本公开的状态动作序列价值网络模型的一种示例性结构示意图。t时间步的状态s
t
经编码后获得rnn的t时间步的初始输入,动作序列τ=[a
t
,a
t+1
,a
t+2


,a
t+n
‑1]中的各动作作为各rnn单元的输入,每个动作对应的rnn单元输出结果经解码器解码获得解码结果,对于第一个动作a
t
,由于没有上一步的状态动作序列价值可用,因此采用独立的解码器解码即获得对应的状态动作序列价值q(s
t
,a
t
),其余解码器共享参数,即从第二个动作开始,将该动作a
t+i
(i∈[1,n

1])对应的解码器的输出结果与前一动作a
t+i
‑1对应的状态动作序列价值q(s
t
,a
t
,a
t+1
,...,a
t+i
‑1)之和作为该动作对应的状态动作序列价值q(s
t
,a
t
,a
t+1
,...,a
t+i
),其中前一动作a
t+i
‑1对应的状态动作序列价值q(s
t
,a
t
,a
t+1
,...,a
t+i
‑1)是指截止到前一动作的动作序列[a
t
,a
t+1
,...,a
t+i
‑1]的状态动作序列价值。
[0098]
在一个可选示例中,状态动作序列价值网络模型中第一个动作a
t
对应的解码器可以采用正态分布投影网络实现,其余动作对应的解码器可以采用多层神经网络mlp实现。在实际应用中也可以根据实际需求采用其他实现方式,本公开不做限定。
[0099]
在一个可选示例中,还可以通过两个状态动作序列价值网络模型同时生成状态动作序列价值,并选择二者中的较小值作为各动作对应的状态动作序列价值,从而可以解决价值高估问题。
[0100]
本公开通过基于循环神经网络的状态动作序列价值模型来实现状态动作序列价值函数,从而能够更有效地通过与环境交互收集的数据中学习,便于实现无模型的强化学
习,有效提高本公开的方法的性能。
[0101]
在一个可选示例中,图7是本公开另一示例性实施例提供的智能体动作的确定方法的流程示意图,如图7所示,本公开的方法在上述步骤201之前,还包括如下步骤:
[0102]
步骤301,建立动作序列生成器对应的动作序列生成网络及状态动作序列价值网络模型对应的状态动作序列价值网络。
[0103]
步骤302,将动作序列生成网络及状态动作序列价值网络置于目标学习环境中进行强化学习训练,当动作序列生成网络满足预设训练结束条件时,获得动作序列生成器和状态动作序列价值网络模型。
[0104]
在一个可选示例中,动作序列生成网络是基于循环神经网络rnn的神经网络,状态动作序列价值网络也是基于循环神经网络rnn的神经网络,两者具体网络结构可以根据实际需求设置,比如动作序列生成网络采用gru网络实现,gru网络是在lstm上进行简化而得到的,属于lstm网络的一种变体。比如状态动作序列价值网络采用lstm网络实现。
[0105]
在一个可选示例中,动作序列生成器和状态价值网络模型的训练可以联合训练,也可以分别训练。
[0106]
在一个可选示例中,动作序列生成器的优化训练可以通过最大化价值来训练,从而使得生成的动作序列可以被视为到达高价值区域的有益动作序列,因此可以利用动作序列中的多步动作进行时间协调探索,且从一个粗略的初始动作序列生成网络开始,通过不断强化学习,对其进行优化以适应任务,有利于未来的探索,比常用的动作重复策略更有效。此外,动作序列中的多步动作可以视为智能体从现在到未来一段时间内的意图,因此能够提供更多的信息和直观的解释信号,进一步提高目标动作确定的有效性。
[0107]
在一个可选示例中,动作序列生成器π
θ
的参数优化具体如下:
[0108][0109]
其中,θ为动作序列生成器的可学习参数,τ
l
表示动作序列τ中前l个动作,也即τ中开始的长度为l的部分,l~u(1,l)表示l是服从均匀分布的随机变量,l是动作序列τ的最长长度。d表示训练过程中智能体与环境交互得到的数据集合(replay buffer)。则表示对负状态动作序列价值关于随机变量s,τ,l求期望。
[0110]
其中,状态动作序列价值函数q(s
t
,τ
l
)的定义为:
[0111][0112]
其中,γ为折扣因子,r
t+1
=r(s
t
,a
t
),r表示奖励函数,r
t+i
(i∈[1,l])即为动作a
t+i
‑1对应的即刻奖励,s
t+1
~p(s
t
,a
t
)表示执行动作a
t
从状态s
t
转换到s
t+1
的概率,s

~t(s
t
,τ
l
)执行动作序列τ
l
从状态s
t
转换到s

的概率;v(s

)为s

的状态价值函数:
[0113]
v(s

)=e
τ

~π(s

)
q(s

,τ

)
ꢀꢀꢀꢀ
(9)
[0114]
其中,τ

表示动作序列生成器基于状态s

生成的动作序列。
[0115]
在一个可选示例中,将状态动作序列价值网络参数化为q
φ
,可以采用强化学习中的td

learning方法对q
φ
进行训练,具体如下:
[0116]
[0117]
其中,φ表示状态动作序列价值网络需要学习的参数,j
q
(φ)表示状态动作序列价值网络对应的代价函数,q
φ
(s,τ
l
)表示在参数φ下基于状态s生成的动作序列τ中l长度的动作序列的状态动作序列价值(本公开也称为动作序列τ中前l个(或t+l

1时间步)动作a
t+l
‑1对应的状态动作序列价值),t(r,s

)表示基于奖励函数r计算的参考状态动作序列价值,作为状态动作序列价值网络生成的状态动作序列价值的比较对象,用于引导状态动作序列价值网络的训练,不断优化参数φ。
[0118][0119]
其中,γ为折扣因子,v

表示目标状态价值函数,则v

(s

)表示求状态s

对应的目标状态价值,可以通过以下方式计算:
[0120]
v

(s

)=e
τ

~π(s

)
q
φ

(s

,τ

)
ꢀꢀꢀꢀ
(12)
[0121]
其中,τ

~π(s

)表示动作序列生成网络基于状态s

生成的动作序列τ

,q
φ

(s

,τ

)表示状态动作序列价值网络在参数φ

下基于状态s

和动作序列τ

获得的状态动作序列价值,φ

表示定期从φ软复制过来的的参数。
[0122]
在一个可选示例中,图8是本公开的步骤302的一种示例性流程示意图,如图7所示,步骤302包括以下步骤:
[0123]
步骤3021,在训练过程的每个时间步,获取智能体在当前时间步的当前训练状态。
[0124]
步骤3022,将当前训练状态输入到动作序列生成网络,获得第一训练动作序列,第一训练动作序列包括至少一个时间步的第一训练动作。
[0125]
步骤3023,基于第一训练动作序列确定各时间步的第一训练动作对应的奖励函数值,并基于各时间步的第一训练动作对应的奖励函数值,确定各第一训练动作对应的参考训练状态动作序列价值。
[0126]
步骤3024,将当前训练状态及第一训练动作序列输入到状态动作序列价值网络,获得各第一训练动作序列对应的第一训练状态动作序列价值。
[0127]
步骤3025,基于参考训练状态动作序列价值、第一训练状态动作序列价值及预设代价函数,判断当前代价值是否满足预设条件。
[0128]
步骤3026,若当前代价值满足预设条件,则结束训练,获得动作序列生成器和状态动作序列价值网络模型。
[0129]
步骤3027,若当前代价值不满足预设条件,则根据参数更新规则更新动作序列生成网络的第一参数和状态动作序列价值网络的第二参数。
[0130]
步骤3028,基于第一训练动作序列及候选训练动作序列,确定目标训练动作序列,并基于目标训练动作序列确定目标训练动作。
[0131]
步骤3029,在智能体执行目标训练动作后,进入下一时间步,将进入的下一时间步作为当前时间步,并获取智能体的新的状态作为当前状态,按照上述步骤对更新后的动作序列生成网络及状态动作序列价值网络继续进行强化学习训练,直至代价值满足预设条件。
[0132]
在一个可选示例中,训练过程需要学习的参数除了动作序列生成网络的第一参数θ和状态动作序列价值网络的第二参数φ之外,还需要学习随机梯度调整参数α(用于调整动作序列生成器的随机程度),α的学习基于代价函数j(α)实现:
[0133][0134]
在上述训练过程中进行参数更新时也更新参数α,其中,π0表示对第一时间步动作的熵项,表示目标熵。
[0135]
在一个可选示例中,步骤3028中基于第一训练动作序列及候选训练动作序列,确定目标训练动作序列,需要一定的切换规则,即在满足什么条件时将第一训练动作序列作为目标训练动作序列,否则将候选训练动作序列作为目标训练动作序列,为了能够在训练过程中不断优化切换规则,本公开引入了动作序列切换调节参数,用∈来表示,该参数也在训练过程中进行学习获得最优的参数,具体可以通过对应的代价函数j(∈)来学习:
[0136]
j(∈)=∈
·
(l
commit

l
commit_target
)
ꢀꢀꢀꢀ
(14)
[0137]
其中,l
commit_target
是预设的关于动作序列的目标执行长度,l
commit
通过执行期间的实际执行的动作序列的长度进行指数移动平均计算获得,即对历史执行的所有动作序列执行长度(即执行的动作数量)进行指数移动平均计算。
[0138]
动作序列切换调节参数同样在上述步骤3027的参数更新时进行更新。
[0139]
在一个可选示例中,步骤3027的参数更新具体如下:
[0140][0141][0142][0143][0144]
其中,(t+1)即表示对应更新后参数值,t表示对应更新前参数值,j表示代价函数,不同参数对应的代价函数可以根据实际需求设置,不限于本公开上述内容给出的具体内容,λ为预设更新步长,表示求梯度。
[0145]
在一个可选示例中,为了训练动作序列生成器,可以采用重新参数化技巧,并利用动作序列生成器的可微性进行梯度计算:
[0146][0147]
其中,z表示生成τ的输入,即根据图4状态s(对应图4中s
t
)经编码后获得的z(对应图4中z
t
),其他符号含义参见前述内容,不再赘述。
[0148]
本公开通过基于rnn的动作序列生成器和基于rnn的状态动作序列价值网络模型,生成时间扩展的动作序列,并通过新生成的动作序列与旧的动作序列竞争,旧动作序列一直执行到满足特定条件为止切换到新生成的动作序列,使得本公开的方法具有灵活的有意动作序列和时间扩展的探索(将这种类型的时间扩展和有意探索称为时间协调探索),有效实现了超越简单地重复相同的动作,通过使用动作序列来诱导更灵活的有意动作序列形式,以进行时间协调的探索,并且本公开可以轻量级的方式完成对有用的动作序列形式的探索,并保留整个算法的整体无模型性质,有效结合了现有的无模型强化学习简单有效的动作重复策略和基于模型的强化学习更灵活的明显互补的优势和隐晦的联系,解决了现有的无模型强化学习需要的样本数量很大使得样本效率较低的问题以及基于模型的强化学习虽然样本效率高但计算要求更高,并且需要能够获取到模型的问题。
[0149]
在一个可选示例中,图9是本公开的步骤203的一种示例性流程示意图,如图9所
示,在上述图2所示实施例的基础上,本公开步骤203可以包括如下步骤:
[0150]
步骤2031,获取学习获得的动作序列切换调节参数。
[0151]
步骤2032,基于第一动作序列中各第一动作对应的第一状态动作序列价值、候选动作序列中各第二动作对应的第二状态动作序列价值、学习获得的动作序列切换调节参数及预设动作序列切换规则,确定目标动作序列。
[0152]
在一个可选示例中,动作序列切换调节参数即为上述学习获得的参数∈,该参数在学习完后可以随动作序列生成器及状态动作序列价值网络模型一起存储,在需要时可以从相应存储区域获取。
[0153]
在一个可选示例中,预设动作序列切换规则可以设置为当切换值replan=1时切换到第一动作序列τ
new
,否则继续候选动作序列τ
old
,其中replan服从分布categorical(y),即replan~categorical(y),其中,m表示候选动作序列τ
old
的长度,τ
new,m
表示第一动作序列τ
new
中前m个动作形成的动作序列,由于候选动作序列是由前一时间步所执行的动作序列中剩余未执行动作形成的,因此候选动作序列的长度是小于第一动作序列的长度的,因此,在计算y时,需要按照候选动作序列的长度来计算状态动作序列价值,∈即为上述学习获得的动作序列切换调节参数。也即,预设动作序列切换规则可以表示如下:
[0154]
τ
actual
=(1

replan)
·
τ
old
+replan
·
τ
new
[0155]
可以理解地,若前一时间步所执行的动作序列中动作已执行完,则候选动作序列为空集,那么replan=1。
[0156]
在一个可选示例中,在上述图2所示实施例的基础上,本公开步骤204可以包括:基于目标动作序列中的当前时间步对应的动作及预设映射规则,确定智能体当前需要执行的目标动作,预设映射规则为描述动作序列中动作与要执行的动作的映射关系的规则。
[0157]
在一个可选示例中,预设映射规则可以根据实际的场景需求来设置,目标动作序列τ
actual
,预设映射规则用ω()来表示,则目标动作a
t,actual
=ω(τ
actual
)。
[0158]
在一个可选示例中,确定的目标动作序列为第一动作序列,即:
[0159]
τ
actual
=τ
new
=[a
t,new
,a
t+1,new
,a
t+2,new


,a
t+n

1,new
]
[0160]
若τ
new
中的动作即为智能体可直接执行的动作,则目标动作为:
[0161]
a
t,actual
=ω(τ
actual
)=a
t,new

[0162]
若τ
new
中的动作是智能体不可直接执行的动作,则需要基于预设映射规则进行相应的映射转换获得智能体可执行的动作,比如自动驾驶场景τ
actual
中的动作是未来需要到达的设定点的位置坐标序列,则ω(τ
actual
)的具体实现流程如图10所示,图10是本公开的预设映射规则的一种示例性流程示意图,设定点坐标a
t,new
=(x1,y1),智能体当前所在位置坐标为(x0,y0),根据(x0,y0)和(x1,y1)确定目标方向和目标速度,将目标方向和目标速度传递给pid控制器,产生控制信号比如包括油门、转向、制动、倒车等,即获得智能体可执行的目标动作a
t,actual

[0163]
需要说明的是,不同场景下预设映射规则可能不同,图10仅以自动驾驶场景中的一种实现方式为例,本公开并不限于这一场景,更不限于这一种实现方式。
[0164]
在一个可选示例中,在确定完目标动作后,目标动作序列a
t,actual
中相当于执行了第一个动作,那么剩余未执行动作通过时间前移一步作为下一时间步的候选动作序列。
[0165]
在一个可选示例中,在步骤204基于目标动作序列确定智能体当前需要执行的目标动作之后,还包括:将智能体进入的下一时间步作为当前时间步,获取智能体的新的状态作为当前状态,以基于当前状态继续为智能体确定需要执行的动作。
[0166]
智能体每完成一次目标动作后即实现了一次状态更新,时间步也从当前时间步进入到了下一时间步,而在进入下一时间步后,该下一时间步就成为智能体的当前时间步,为了实现智能体的持续行动,需要继续获取智能体新的状态作为当前状态,进入新一轮的目标动作确定流程,具体流程与前述内容一致,在此不再赘述。
[0167]
本公开通过随着时间步的转换,智能体执行目标动作实现状态的转换,进而基于智能体新的当前状态来确定智能体再一次要执行的目标动作,以此类推实现智能体的持续行动,由于探索过程每个时间步生成多步动作,且生成的多步动作形成了到达高价值区域的有意动作序列,且表示了智能体从现在到未来一段时间内的意图,能够提供更多的信息和直观的解释信号,进一步提高目标动作确定的有效性。
[0168]
下面对现有的无模型强化学习和基于模型的强化学习进行简单描述,以更明确地展示本公开的方法的有益效果:
[0169]
1、现有无模型强化学习的连续控制
[0170]
现有无模型强化学习算法如ddpg、sac等,主要是从一个状态s到动作a的映射,称作一个策略π(s)

a。该策略通常通过神经网络建模,其可训练参数记为θ

,其优化通过如下方式进行:
[0171][0172]
其中,q

(s,a)表示强化学习中标准的状态动作价值函数。d表示训练过程中智能体与环境交互得到的数据集合(replay buffer。
[0173]
公式(20)这种形式的策略一次生成一个单步动作,虽然这种策略简单而灵活,但在探索过程中可能无效,导致抖动现象,限制了其逃避局部最优的能力,从而浪费了许多探索工作。
[0174]
2、基于模型的强化学习
[0175]
在基于模型的强化学习中,特定时间步的优化动作是通过在线最小化代价函数c来获得的。为了更好地利用代价函数的时间结构,通常通过优化一个时间段内的动作序列τ=[a0,a1,a2,

]:
[0176][0177]
公式(21)这种类型的方式有可能生成比重复动作更有意和更灵活的动作序列,因为它们在序列级别进行了优化。然而,计算代价需要获取额外的模型,并且求解过程需要在线优化,因而这一类方法与无模型rl方法之间存在很大差距,这使得如何在无模型rl中利用规划的动作序列进行探索的任务更具挑战性。
[0178]
可见,基于模型的规划可以生成更灵活和适应性更强的未来动作,但很大程度上源自无模型强化学习,另一方面动作重复更有效,但其生成的未来动作的适应性较差,基于此,本公开提出的方法,结合了现有无模型强化学习和基于模型的强化学习的优势和内在联系,实现了超越重复的灵活的未来动作序列,且不需要从无模型强化学习算法中大量推导,而是在学习中进行时间扩展的探索,每个时间步生成有意动作序列,既保证了灵活性,
又结合了动作重复,从而有效提高了方法性能,并且经验证,本公开的方法能够更快地找到高价值的状态,在样本效率方面也有进一步的提升。
[0179]
在一个可选示例中,可以基于gym任务、carla任务等来展示本公开的方法与现有方法的性能比较结果,gym是用于开发和比较强化学习算法的工具包,carla是开源的自动驾驶模拟器,gym任务可以包括但不限于包括如表1所示的任务,不同的任务需要对应的gym环境。
[0180]
表1
[0181]
任务gym环境pendulumpendulum

v0invertedpenduluminvertedpendulum

v2inverteddoublependuluminverteddoublependulum

v2mountaincarcontinuousmountaincarcontinuous

v0cartpoleswingupcartpoleswingup

v0bipedalwalkerbipedalwalker

v2
[0182]
carla任务环境基于开源carla模拟器实现。下面对carla任务具体场景进行说明:
[0183]
1、传感器及获取的观测信号
[0184]
carla使用以下类型的观测器:
[0185]
摄像头:前置摄像头采集64
×
64
×
3大小的rgb图像。
[0186]
imu传感器:包括加速度(3d(即3维))、陀螺仪(3d)、罗盘(1d)的7d矢量,提供对当前车辆一些状态的测量。
[0187]
速度传感器:3d矢量,包括相对于自身坐标(ego

coordinate)的速度(以m/s为单位)。
[0188]
导航:沿路线距离本车辆d米的8个航路点位置的集合,d∈{1,3,10,30,100,300,1000,3000}米。航路点的位置以3d自身坐标(ego

coordinate)表示,传感器读数是一个24d向量。
[0189]
目的:自我坐标中的3d位置,代表车辆应行驶到并停止的目的位置。
[0190]
上一个动作:表示上一个动作的2d矢量。
[0191]
本示例中,两个时间步之间的时间差设为0.05s,即感知和控制频率为20hz。
[0192]
2、carla任务的网络结构
[0193]
图11是本公开的carla任务的网络结构的一种示例性结构示意图。该图是包括本公开的方法在内的所有要比较的方法可共享的公共结构,其中actor和critic网络在用本公开的方法中实现时采用前述的动作序列生成器和状态动作生成器结构,在此不再赘述。本示例中,给定包含多模态信号的观测信号,首先需要使用观测编码器(observation encoder)将它们融合成低维特征向,具体可以通过具有相同输出维度的专用编码器处理每种信号模态来实现。更具体地说,视觉编码器可以基于resnet

18的卷积神经网络cnn实现。其他模态信号都由一个全连接的编码器(fc)进行编码,每个编码器的输出通过相加运算符融合在一起,然后经全连接层(fc1)产生特征向量作为下游网络的输入,该观测编码器由actor和critic网络共享,并且仅通过值学习进行训练,actor的梯度被截断,不对该网络结构的训练产生直接影响。
[0194]
示例性的,观测编码器的网络结构如下表2所示:
[0195]
表2
[0196]
网络networkbatch size动作序列lengthparallel actors数量观测编码器[256]128204
[0197]
3、carla控制器和动作空间
[0198]
图12是本公开的carla环境及其控制器接口的一种示例性结构示意图。将车辆自身当前位置p0和设定点(即目标位置)p=(x1,x2)作为输入,指定要前往的位置,对于自动驾驶的情形,位置可以在2d空间坐标中表示,因此,动作空间中有两个维度(x:横向,y:纵向),其中(x,y)∈[

20,20]
×
[

20,20]。智能体通过生成2d动作作为设定点来控制车辆的运动,目标方向和目标速度可以根据设定点和自身当前位置计算,并传递给pid控制器以产生控制信号,包括油门、转向、制动和倒车。模拟器将使用这些控制信号来生成车辆的下一个状态。
[0199]
在一个可选示例中,作为环境的一部分,在计算控制信号之前,为了有助于刹车行为出现,还可以对设定点p进行如下处理:
[0200][0201]
其中,||p||表示设定点p与车辆自身当前位置p0的距离,δ为预设参数,比如本示例中设置δ=3,将作为设定点,用于控制信号的生成。
[0202]
4、奖励函数
[0203]
carla环境中的奖励函数包含如下部分:
[0204]
路线距离奖励:此奖励计算方式为从前一个时间步到当前时间步沿路线行进的距离;
[0205]
碰撞奖励:计算方式为min(collision_penalty,0.5*max(0.,episode_reward)),其中collision_penalty=20,episode_reward表示当前回合中到目前为止的累积奖励,对于连续碰撞事件作为一次处理;
[0206]
红灯奖励:计算方式为min(red_light_penalty,0.3*max(0.,episode_reward)),其中red_light_penalty=20,仅针对连续的红灯违规事件作为一次处理。
[0207]
成功奖励:若车辆自身当前位置在距离目标位置5米以内且速度小于10
‑3m/s,将获得100的成功奖励。
[0208]
5、回合结束条件
[0209]
如下述任何条件满足,该回合将结束:
[0210]
成功:车辆的位置在距离目标位置5米以内,速度小于10
‑3m/s。
[0211]
达到允许的最大时间步数k:该最大时间步数k计算如下
[0212][0213]
其中,route_length表示路径长度,min_velocity可以根据实际需求设置,比如设置为5m/s,可以对该状态进行基于bootstrap的状态值学习。
[0214]
碰撞时卡住:如果车辆涉及同一碰撞事件并且在100个时间步移动不超过1米。在
这种情况下,可以对该状态进行基于bootstrap的状态值学习。
[0215]
6、地图及样例路线
[0216]
本示例中使用地图town01,这是一个由t路口组成的具有代表性布局的城镇,城镇面积约410m
×
344m,本示例还生成了20辆其他由自动驾驶仪控制的车辆和20名行人,以模拟典型的驾驶条件。
[0217]
目的位置是从一组航路点中随机选择的,在每个回合开始时,智能体会生成一个随机的有效航路点位置。如果航路点在路上并且与世界上任何其他参与者(车辆和行人)相距至少10米,则该航点是有效的。
[0218]
智能体的任务是行驶到目的位置并在到达目的位置后保持静止,以这种方式构建的路线可以非常多样化,涵盖有代表性的驾驶场景。例如,不同的路线可能包括不同的转弯次数以及不同时空位置的不同动态对象(例如其他车辆)。
[0219]
在一个可选示例中,在驾驶任务中,动作序列生成器的动作解码器f()可以通过以下方式实现:
[0220]
a
t+i
=a
t+i
‑1+δa
t+i
‑1+g(h
t+i
‑1,a
t+i
‑1,δa
t+i
‑1)
[0221]
其中,i∈[1,n

1],δa
t+i
‑1=(a
t+i
‑1‑
a
t+i
‑2),这样实现了将线性先验融合到了f中,对于具有基于位置的控制任务有很好的作用。
[0222]
在一个可选示例中,还可以在总体代价函数中加入一个基于动作序列的三阶导数绝对值的最大值max|τ|的代价函数,用于提高生成的动作序列的平滑度,减少抖动。
[0223]
需要说明的是,在循环动作序列生成器可以在时间步长的粒度上运行,以生成完整的动作序列,在实际应用中,可以根据实际需求进行调整,比如在更粗的粒度上运行,以降低计算成本,比如,可以让动作序列生成器输出几个(k)锚点,进而采用插值方式在它们之间进行插值以获得完整的动作序列,具体插值操作可以采用线性插值。
[0224]
由于在驾驶任务中,动作序列是智能体自坐标(即以智能体自身当前位置为坐标原点的坐标系)中的空间轨迹,因此智能体在不同位置会导致其他同一位置的坐标不同,在这种情况下,上述的移位算子ρ()的形式为:
[0225][0226]
其中,t
ego2world
表示将动作序列从自坐标转换为世界坐标,t
world2ego
则为从世界坐标转换为自坐标,具体来说,移位算子的功能是先将动作序列从自坐标转换到世界坐标,再进行移位,移位后再从世界坐标转换到自坐标,解决因智能体移动导致自坐标本质上不统一的问题。
[0227]
图13是本公开的驾驶场景的动作确定的整体流程示意图。其中横向是表示沿时间轴发展的不同时间步,纵向表示在每个时间步的处理流程,π表示动作序列生成器,ρ表示移位算子,ω表示预设映射规则,具体流程参见前述内容,在此不再赘述。
[0228]
在一个可选示例中,预设映射规则ω也可以仅表示从目标动作序列导出动作,即无论目标动作序列中包括的是智能体直接可执行的动作还是不可直接执行的动作,均直接导出当前时间步对应的动作作为目标动作,该目标动作到可执行动作的处理属于智能体执行目标动作的具体过程,比如,图14是本公开的驾驶场景执行目标动作的处理流程示意图。其与图10所示整体处理流程一致,仅仅是对目标动作的认定不同,不影响本公开的方法的实际流程。
[0229]
如表3所示,是本公开的基于动作序列生成器的智能体的动作确定方法的整体算法伪代码,本公开的算法称为gpm(generative plannina method):
[0230]
表3
[0231][0232]
下面对本公开的算法gpm与现有的几种算法的性能对比结果进行说明,现有算法包括sac(soft actor critic)算法(是一种代表性的无模型强化学习(rl)算法)、ez(ez

greedy)算法(扩展探索)、far算法(固定动作重复步数)、dar算法(动态调整动作重复步数)、taac算法(通过一个切换策略调整重复动作的方法,1step

td),以sac作为主干算法,对比包括以下内容:
[0233]
1、pendulum任务训练期间状态访问和演化结果
[0234]
图15是本公开的gpm算法与其他算法的pendulum任务训练期间状态访问和演化结果的可视化示意图,图顶的0

2k steps、2k

4k steps、4k

6k steps表示训练过程中的环境交互步长范围,图15展示了各算法在不同步长范围内所有和环境交互的rollout轨迹,由于价值最高的状态是(0,0),对应钟摆的角度偏差(angle)和角速度为零,因此有效的策略应该是快速接近该状态,对应于图中大多数结束点(深色点)位于(0,0)处,而从初始状态(浅色点)到(0,0)的路径上的浅色点点数较少。由图15可见,随着训练的进行,本公开的gpm算法能够比其他算法更快地找到高价值状态。
[0235]
2、多任务上各算法性能对比
[0236]
图16是本公开的gpm算法与其他算法的性能效果曲线示意图。通过在多个标准任务上的实验,可见,本公开结合动作重复的算法明显优于sac的效果,且本公开的算法在样本效率方面有进一步提升,最终性能优于其他算法。
[0237]
3、探索轨迹可视化
[0238]
图17是本公开的gpm算法与其他算法的探索轨迹可视化结果示意图,sac和ez算法以缩略图展示进行比较,最终结果表明本公开的gpm算法能够有效地沿着设定的路线尽可能地推动结束点的位置,即从原点(0,0)向周围探索。结合图17可见,sac的有效探索范围增加缓慢且相当有限,证明其探索效率较低,而gpm表现出定向和扩展的探索行为,并在训练的初始阶段迅速扩大其探索范围,在约100个回合(episode)后进一步显示出合理的转向行为,在约150个回合后显示出更复杂的多次转向行为。
[0239]
图18是本公开的gpm算法生成动作序列的形式演进过程示意图,可见在训练开始时,即图中(a)上方对应的部分,gpm产生的动作序列几乎均匀分布在所方向(从中心点向四周),(b)中向前进的动作序列占据了更大的比重,(c)中通过学习生成了一些空间长度较短的动作序列,可以对速度进行更多调整,(d)开始出现转弯动作序列,序列对应的空间长度更长(e)在训练的最后阶段,向前的动作序列及转弯的动作序列占了生成的动作序列中的多数。
[0240]
图19是本公开的gpm生成的动作序列的可视化示意图。训练时使用的前置摄像头图像,摄像头捕获64
×
64大小的rgb图像,为了更好更清晰的可视化结果,本示例在更高分辨率的俯视图中对gpm动作序列进行可视化,在t1时,生成了一个相对直的动作序列,执行多个时间步直到t2,在下一个时间步t3,gpm切换到了一个新的动作序列,超过前车,该动作序列一直执行(t4),直到t5时刻,另一个向转弯方向弯曲的新动作序列被采用,t6和t7显示了执行t5时刻生成的动作序列的中间两帧,之后,旧的动作序列在t8被一个新动作序列替换,执行到t9,并在t
10
被另一个动作序列替换。
[0241]
综上表明,本公开的gpm算法具有产生时间协调性动作序列的内在机制,用于强化学习探索,同时保留了典型的无模型强化学习算法的主要特征和优势,展示出了更好的探索行为并具有更强的可解释性和可理解性。
[0242]
本公开实施例提供的任一种智能体动作的确定方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种智能体动作的确定方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种智能体动作的确定方法。下文不再赘述。
[0243]
示例性装置
[0244]
图20是本公开一示例性实施例提供的智能体动作的确定装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例。如图20所示的装置包括:生成模块501、确定模块302、第一处理模块503以及第二处理模块504。
[0245]
生成模块501用于在当前时间步,基于智能体的当前状态生成第一动作序列,第一动作序列包括至少一个时间步的第一动作。
[0246]
确定模块302用于基于当前状态及生成模块501生成的第一动作序列,确定第一动作序列中各第一动作对应的第一状态动作序列价值,第一状态动作序列价值为状态动作序列价值函数值。
[0247]
第一处理模块503用于基于确定模块302确定的第一动作序列中各第一动作对应的第一状态动作序列价值及候选动作序列中各第二动作对应的第二状态动作序列价值,确定当前要执行的目标动作序列,候选动作序列是前一时间步所执行动作序列中剩余的未执行动作所形成的动作序列。
[0248]
第二处理模块504用于基于第一处理模块503确定的目标动作序列确定智能体当前需要执行的目标动作。
[0249]
在一个可选示例中,图21是本公开的生成模块501的一种示例性结构示意图,如图21所示的生成模块501可以包括第一获取单元5011和第一处理单元5012。
[0250]
第一获取单元5011,用于在当前时间步,获取智能体的当前状态。
[0251]
第一处理单元5012,用于将第一获取单元5011获取的当前状态输入到预先训练获得的动作序列生成器,生成第一动作序列,动作序列生成器是基于循环神经网络的动作序列生成模型。
[0252]
在一个可选示例中,确定模块302可以包括第二处理单元,用于将第一获取单元5011获取的当前状态及第一处理单元5012生成的第一动作序列,输入到预先训练获得的状态动作序列价值网络模型,获得第一动作序列中各第一动作对应的第一状态动作序列价值;状态动作序列价值网络模型的网络架构是基于循环神经网络建立的。
[0253]
在一个可选示例中,图22是本公开另一示例性实施例提供的智能体动作的确定装置的结构示意图。该装置还包括建立模块505和训练模块506。
[0254]
建立模块505,用于建立动作序列生成器对应的动作序列生成网络及状态动作序列价值网络模型对应的状态动作序列价值网络。
[0255]
训练模块506,用于将建立模块505建立的动作序列生成网络及状态动作序列价值网络置于目标学习环境中进行强化学习训练,当动作序列生成网络满足预设训练结束条件时,获得动作序列生成器和状态动作序列价值网络模型。
[0256]
在一个可选示例中,训练模块506包括:第二获取单元、第一训练单元、第一确定单元、第二训练单元、判断单元、第三处理单元、参数更新单元、第二确定单元和第四处理单元。
[0257]
第二获取单元,用于在训练过程的每个时间步,获取智能体的当前训练状态。
[0258]
第一训练单元,用于将第二获取单元获取的当前训练状态输入到动作序列生成网络,获得第一训练动作序列,第一训练动作序列包括至少一个时间步的第一训练动作。
[0259]
第一确定单元,用于基于第一训练单元获得的第一训练动作序列确定各时间步的第一训练动作对应的奖励函数值,并基于各时间步的第一训练动作对应的奖励函数值,确定各第一训练动作对应的参考训练状态动作序列价值。
[0260]
第二训练单元,用于将第二获取单元获取的当前训练状态及第一训练单元获得的第一训练动作序列输入到状态动作序列价值网络,获得各第一训练动作序列对应的第一训练状态动作序列价值。
[0261]
判断单元,用于基于第一确定单元确定的参考训练状态动作序列价值、第二训练单元获得的第一训练状态动作序列价值及预设代价函数,判断当前代价值是否满足预设条件。
[0262]
第三处理单元,用于若当前代价值满足预设条件,则结束训练,获得动作序列生成器和状态动作序列价值网络模型。
[0263]
参数更新单元,用于若当前代价值不满足预设条件,则根据参数更新规则更新动作序列生成网络的第一参数和状态动作序列价值网络的第二参数。
[0264]
第二确定单元,用于基于第一训练单元获得的第一训练动作序列及候选训练动作
序列,确定目标训练动作序列,并基于目标训练动作序列确定目标训练动作。
[0265]
第四处理单元,用于在智能体执行第二确定单元确定的目标训练动作后,进入下一时间步,以按照上述步骤对更新后的动作序列生成网络及状态动作序列价值网络继续进行强化学习训练,直至代价值满足预设条件。
[0266]
在一个可选示例中,第一处理模块503,可以包括第三获取单元和第五处理单元。
[0267]
第三获取单元,用于获取学习获得的动作序列切换调节参数。
[0268]
第五处理单元,用于基于确定模块302确定的第一动作序列中各第一动作对应的第一状态动作序列价值、候选动作序列中各第二动作对应的第二状态动作序列价值、第三获取单元获取的学习获得的动作序列切换调节参数及预设动作序列切换规则,确定目标动作序列。
[0269]
在一个可选示例中,第二处理模块504可以包括第六处理单元,用于基于目标动作序列中的当前时间步对应的动作及预设映射规则,确定智能体当前需要执行的目标动作,预设映射规则为描述动作序列中动作与要执行的动作的映射关系的规则。
[0270]
在一个可选示例中,本公开的装置还可以包括获取模块,用于将智能体进入的下一时间步作为当前时间步,获取智能体的新的状态作为当前状态,以基于当前状态继续为智能体确定需要执行的动作。
[0271]
示例性电子设备
[0272]
下面,参考图23来描述根据本公开实施例的电子设备。图23是根据本公开实施例的电子设备的结构框图。如图23所示,电子设备60包括一个或多个处理器61和存储器62。
[0273]
处理器61可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备60中的其他组件以执行期望的功能。
[0274]
存储器62可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器61可以运行所述程序指令,以实现上文所述的本公开的各个实施例的智能体动作的确定方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
[0275]
在一个示例中,电子设备60还可以包括:输入装置63和输出装置64,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0276]
在一个示例中,该输入装置63可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置63可以是通信网络连接器,用于接收其他设备所采集的输入信号。
[0277]
此外,该输入装置63还可以包括例如键盘、鼠标等等。
[0278]
该输出装置64可以向外部输出各种信息,该输出装置64可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0279]
当然,为了简化,图23中仅示出了该电子设备60中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备60还可以包括任何其他适当的组件。
[0280]
示例性计算机程序产品和计算机可读存储介质
[0281]
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的智能体动作的确定方法中的步骤。
[0282]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0283]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的智能体动作的确定方法中的步骤。
[0284]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0285]
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0286]
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0287]
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0288]
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0289]
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0290]
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0291]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1