智能体的训练方法、装置、存储介质及电子设备与流程

allin2022-07-12  311



1.本公开涉及终端技术领域,具体地,涉及一种智能体的训练方法、装置、存储介质及电子设备。


背景技术:

2.随着人工智能的快速发展,智能体开始广泛地应用在人们的日常生活中。通常情况下,需要预先对智能体进行训练,使得训练后的智能体可以准确地执行预设的任务。目前,在对智能体进行训练时,通常需要通过智能体上设置的图像采集装置来获取环境图像,然后通过对图片或视频进行识别,以提取环境信息,从而对智能体进行训练。但是该训练方法的复杂度高,计算量大,因此对硬件的要求较高,训练时间也较长。同时,从图片或视频中提取环境信息的准确度往往依赖于识别算法的准确度,限制了智能体训练的准确性。


技术实现要素:

3.本公开的目的是提供一种智能体的训练方法、装置、存储介质及电子设备,用于降低智能体训练方法的复杂度。
4.根据本公开实施例的第一方面,提供一种智能体的训练方法,所述方法包括:
5.从环境引擎中获取环境状态信息,所述环境引擎中包括预先建立的虚拟环境,所述虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,所述环境状态信息用于指示所述虚拟环境中的每个所述物体对象和所述智能体对象的状态;
6.根据所述环境状态信息以及所述智能体包括的控制模型,确定控制信息,并将所述控制信息发送至所述环境引擎,以使所述环境引擎根据所述控制信息控制所述虚拟环境中的所述智能体对象;
7.从所述环境引擎中获取更新后的环境状态信息,并根据所述更新后的环境状态信息确定目标奖励;
8.根据所述目标奖励训练所述控制模型。
9.可选地,所述方法还包括:
10.重复执行所述从环境引擎中获取环境状态信息,至所述根据所述目标奖励训练所述控制模型的步骤,直至所述控制模型满足预设的收敛条件。
11.可选地,所述根据所述环境状态信息以及所述智能体包括的控制模型,确定控制信息,并将所述控制信息发送至所述环境引擎,包括:
12.对所述环境状态信息进行语义识别,以得到所述环境状态信息中包含的语义信息,所述语义信息包括:所述虚拟环境中的每个所述物体对象和所述智能体对象的位姿和属性;
13.将所述语义信息作为所述控制模型中动作网络的输入,以得到所述动作网络输出的控制指令;
14.将所述控制指令封装为所述控制信息,并将所述控制信息发送至所述环境引擎,
所述控制信息包括:所述智能体的控制速度、控制角度、控制位置坐标和目标关节的控制角度中的至少一种。
15.可选地,所述对所述环境状态信息进行语义识别,以得到所述环境状态信息中包含的语义信息,包括:
16.对所述环境状态信息进行语义识别,以得到所述虚拟环境中的所述目标物体对象的中心位置、轴线位置,所述虚拟环境中障碍物体对象的包围盒坐标,以及所述目标部位的中心位置;或者,
17.对所述环境状态信息进行语义识别,以得到预设区域内每个子区域的标识,所述预设区域为所述虚拟环境中与所述智能体对象满足预设位置关系的区域,所述子区域为按照预设尺寸对所述预设区域内进行划分得到的区域,每个子区域的标识用于指示该子区域内包含的对象的种类,所述种类包括:目标物体对象、障碍物体对象、智能体对象。
18.可选地,所述根据所述更新后的环境状态信息确定目标奖励,包括:
19.将所述更新后的环境状态信息作为所述控制模型中评价网络的输入,以得到所述评价网络输出的所述目标奖励;
20.所述根据所述目标奖励训练所述控制模型,包括:
21.根据所述目标奖励训练所述控制模型中的动作网络和所述评价网络。
22.可选地,所述方法还包括:
23.控制所述环境引擎对所述虚拟环境进行初始化,并获取初始化后所述虚拟环境的环境状态信息。
24.可选地,所述从环境引擎中获取环境状态信息,包括:
25.在通过预设的执行接口将历史控制信息发送至所述环境引擎之后,通过所述执行接口从所述环境引擎中获取所述环境状态信息,所述历史控制信息为所述智能体根据之前的环境状态信息确定的;
26.若通过所述执行接口获取所述环境状态信息失败,通过预设的观察接口获取所述环境状态信息。
27.根据本公开实施例的第二方面,提供一种智能体的训练装置,所述装置包括:
28.获取模块,用于从环境引擎中获取环境状态信息,所述环境引擎中包括预先建立的虚拟环境,所述虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,所述环境状态信息用于指示所述虚拟环境中的每个所述物体对象和所述智能体对象的状态;
29.控制模块,用于根据所述环境状态信息以及所述智能体包括的控制模型,确定控制信息,并将所述控制信息发送至所述环境引擎,以使所述环境引擎根据所述控制信息控制所述虚拟环境中的所述智能体对象;
30.确定模块,用于从所述环境引擎中获取更新后的环境状态信息,并根据所述更新后的环境状态信息确定目标奖励;
31.训练模块,用于根据所述目标奖励训练所述控制模型。
32.可选地,重复执行所述从环境引擎中获取环境状态信息,至所述根据所述目标奖励训练所述控制模型的步骤,直至所述控制模型满足预设的收敛条件。
33.可选地,所述控制模块包括:
34.环境处理子模块,用于对所述环境状态信息进行语义识别,以得到所述环境状态信息中包含的语义信息,所述语义信息包括:所述虚拟环境中的每个所述物体对象和所述智能体对象的位姿和属性;
35.强化学习子模块,用于将所述语义信息作为所述控制模型中动作网络的输入,以得到所述动作网络输出的控制指令;
36.环境处理子模块,还用于将所述控制指令封装为所述控制信息,并将所述控制信息发送至所述环境引擎,所述控制信息包括:所述智能体的控制速度、控制角度、控制位置坐标和目标关节的控制角度中的至少一种。
37.可选地,所述环境处理子模块用于:
38.对所述环境状态信息进行语义识别,以得到所述虚拟环境中的所述目标物体对象的中心位置、轴线位置,所述虚拟环境中障碍物体对象的包围盒坐标,以及所述目标部位的中心位置;或者,
39.对所述环境状态信息进行语义识别,以得到预设区域内每个子区域的标识,所述预设区域为所述虚拟环境中与所述智能体对象满足预设位置关系的区域,所述子区域为按照预设尺寸对所述预设区域内进行划分得到的区域,每个子区域的标识用于指示该子区域内包含的对象的种类,所述种类包括:目标物体对象、障碍物体对象、智能体对象。
40.可选地,所述确定模块用于:
41.将所述更新后的环境状态信息作为所述控制模型中评价网络的输入,以得到所述评价网络输出的所述目标奖励;
42.所述训练模块用于:
43.根据所述目标奖励训练所述控制模型中的动作网络和所述评价网络。
44.可选地,所述控制模块还用于:
45.控制所述环境引擎对所述虚拟环境进行初始化,并获取初始化后所述虚拟环境的环境状态信息。
46.可选地,所述获取模块用于:
47.在通过预设的执行接口将历史控制信息发送至所述环境引擎之后,通过所述执行接口从所述环境引擎中获取所述环境状态信息,所述历史控制信息为所述智能体根据之前的环境状态信息确定的;
48.若通过所述执行接口获取所述环境状态信息失败,通过预设的观察接口获取所述环境状态信息。
49.根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面中任一项所述方法的步骤。
50.根据本公开实施例的第四方面,提供一种电子设备,包括:
51.存储器,其上存储有计算机程序;
52.处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面中任一项所述方法的步骤。
53.通过上述技术方案,本公开首先从环境引擎中获取环境状态信息,之后根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,使得环境引擎根据控制信息控制虚拟环境中的物体对象以及智能体对象。其中,环境引擎中包
括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。再进一步从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励,最后根据目标奖励训练控制模型。本公开利用环境引擎建立能够模拟真实世界的虚拟环境,并通过与环境引擎进行交互来对智能体的控制模型进行训练,能够降低智能体训练的复杂度,并提高智能体训练的准确性。
54.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
55.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
56.图1是根据一示例性实施例示出的一种智能体的训练方法的流程图;
57.图2是根据一示例性实施例示出的另一种智能体的训练方法的流程图;
58.图3是根据一示例性实施例示出的另一种智能体的训练方法的流程图;
59.图4是根据一示例性实施例示出的另一种智能体的训练方法的流程图;
60.图5是根据一示例性实施例示出的另一种智能体的训练方法的流程图;
61.图6是根据一示例性实施例示出的一种智能体的训练装置的框图;
62.图7是根据一示例性实施例示出的另一种智能体的训练装置的框图;
63.图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
64.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
65.需要说明的是,本技术中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
66.图1是根据一示例性实施例示出的一种智能体的训练方法的流程图,如图1所示,该方法可以包括:
67.步骤101,从环境引擎中获取环境状态信息,环境引擎中包括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。
68.举例来说,可以预先根据真实世界中的实际场景在环境引擎中建立对应的虚拟环境,其中,虚拟环境中包括至少一个物体对应的物体对象,以及智能体对应的智能体对象。虚拟环境中的物体对象与实际场景中的物体一一对应,并且虚拟环境中的物体对象与实际场景中对应的物体的形状、大小、位置均相同。虚拟环境中的智能体对象对应实际场景中的智能体,并且虚拟环境中的智能体对象与实际场景中的智能体的形状、大小、位置均相同。可以理解为,虚拟环境是实际场景在环境引擎中的体现。环境引擎例如可以是ue4(英文:
unreal engine 4,中文:虚幻引擎)、unity3d等,本公开对此不作具体限定。智能体可以通过预设协议与环境引擎进行交互,从而训练智能体执行指定任务,其中预设协议例如可以是grpc(英文:remote procedure calls,中文:远程过程调用)协议,指定任务例如可以是抓取目标物体、击打目标物体、移动目标物体等。
69.首先,可以直接从环境引擎预先建立的虚拟环境中获取环境状态信息,其中,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态,例如可以包括每个物体对象和智能体对象的位置、角度、属性等。这样,智能体无需通过图像采集装置采集实际场景中的图片或视频,也无需对图片或视频进行识别来获得环境状态信息。通过与环境引擎进行交互,能够准确地获取环境状态信息,降低了获取环境状态信息的复杂度。
70.步骤102,根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,以使环境引擎根据控制信息控制虚拟环境中的智能体对象。
71.示例的,在获取到环境状态信息之后,可以将环境状态信息输入智能体包括的控制模型,控制模型可以对环境状态信息进行处理,从而输出控制信息。之后可以将控制信息发送给环境引擎,环境引擎可以按照控制信息控制虚拟环境中的智能体对象执行相应的动作,当智能体对象执行相应的动作时,可能会影响虚拟环境中物体对象的状态,例如,智能体对象可以移动目标物体对象,使得目标物体对象的坐标发生变化。其中,控制信息可以用于指示智能体对象的运动速度、智能体对象所要移动到的指定位置、智能体对象的角度、智能体对象的肢体关节的角度和手指关节的角度等,其中运动速度可以包括线速度和角速度。以智能体对象执行抓取任务为例,控制信息可以指示环境引擎控制智能体对象在虚拟环境中以指定的运动速度移动到靠近目标物体对象的指定位置,然后对智能体对象的角度进行调整,以便进行抓取。之后再调整智能体对象手臂关节的角度,使得智能体对象的手部靠近目标物体对象,最后调整智能体对象手指关节的角度,以抓取目标物体对象。其中,目标物体对象为抓取任务的目标,即实际场景中智能体需要抓取的物体对应在虚拟环境中的物体对象。
72.步骤103,从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励。
73.步骤104,根据目标奖励训练控制模型。
74.示例的,在环境引擎控制智能体对象在虚拟环境中完成控制信息指示的动作之后,虚拟环境相较于执行动作之前会发生改变,也就是说环境状态信息会发生更新,因此可以从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息来确定本次执行动作得到的目标奖励。以训练智能体对象执行抓取任务为例,如果更新后的环境状态信息指示智能体对象与目标物体对象的距离减小、或者智能体对象抓取到目标物体对象等,那么可以得到正向的目标奖励。如果更新后的环境状态信息指示智能体对象与目标物体对象的距离增大、或者智能体对象碰到障碍物体对象、或者智能体对象的关节超过预设的运动极限等,那么可以得到负向的目标奖励。最后,可以根据得到的目标奖励,按照强化学习(英文:reinforcement learning,缩写:rl)的方式训练控制模型,即根据目标奖励是正向或者负向,来调整控制模型中的参数,从而使得智能体能够准确、高效地执行指定任务。其中,障碍物体对象为虚拟环境中除目标物体对象之外,其他的物体对象,即实际场景中,除智能体需要抓取的物体之外的其他物体对应在虚拟环境中的物体对象。
75.需要说明的是,本公开中可以按照图1中所示出的从步骤101至步骤104的顺序依次执行,也可以先执行步骤102,然后按照步骤103、步骤104、步骤101的顺序依次执行,本公开对此不作具体限定。
76.综上所述,本公开首先从环境引擎中获取环境状态信息,之后根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,使得环境引擎根据控制信息控制虚拟环境中的物体对象以及智能体对象。其中,环境引擎中包括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。再进一步从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励,最后根据目标奖励训练控制模型。本公开利用环境引擎建立能够模拟真实世界的虚拟环境,并通过与环境引擎进行交互来对智能体的控制模型进行训练,能够降低智能体训练的复杂度,并提高智能体训练的准确性。
77.图2是根据一示例性实施例示出的另一种智能体的训练方法的流程图,如图2所示,该方法还可以包括:
78.步骤105,重复执行从环境引擎中获取环境状态信息,至根据目标奖励训练控制模型的步骤,直至控制模型满足预设的收敛条件。
79.示例的,可以重复执行步骤101至步骤104,从而对控制模型进行多次训练,直到控制模型满足预设的收敛条件,使得智能体能够准确、高效地执行指定任务。
80.图3是根据一示例性实施例示出的另一种智能体的训练方法的流程图,如图3所示,步骤102可以通过以下步骤来实现:
81.步骤1021,对环境状态信息进行语义识别,以得到环境状态信息中包含的语义信息,语义信息包括:虚拟环境中的每个物体对象和智能体对象的位姿和属性。
82.步骤1022,将语义信息作为控制模型中动作网络的输入,以得到动作网络输出的控制指令。
83.步骤1023,将控制指令封装为控制信息,并将控制信息发送至环境引擎,控制信息包括:智能体的控制速度、控制角度、控制位置坐标和目标关节的控制角度中的至少一种。
84.示例的,环境引擎中的数据通常具有固定的格式,智能体的控制模型可能无法识别从环境引擎直接获取到的环境状态信息,因此在获取到环境状态信息之后,可以先对环境状态信息进行语义识别,从而得到控制模型可以识别的语义信息,其中,语义信息可以包括:虚拟环境中的每个物体对象和智能体对象的位姿和属性。
85.物体对象的位姿可以包括:中心点、角度、包围盒信息。其中,中心点用于表示物体对象的位置,对于体积较小的物体对象,中心点可以表示该物体对象可以抓取的目标点。角度用于表示物体对象相对于智能体对象的空间角度。每个物体对象包围盒可以为一个或多个,用于表示该物体对象的外观形状,其中物体对象的包围盒数量由其结构和弯曲程度决定,例如:马克杯对应的物体对象可以用两个包围盒分别来表示杯柄和杯身,香蕉对应的物体对象可以用三个包围盒分别来表示每段弧度。物体对象的属性例如可以包括:是否可移动、是否为目标物、是否发生碰撞、是否被抓起等。例如,可以用json对象来表示物体对象的位姿和属性。
[0086][0087][0088]
其中,objects为“desk”对应的物体对象,该物体对象的id为0,位置坐标为(0,0,0),相对于智能体对象的角度为0,该物体对象用一个包围盒来表示,包围盒信息为(35,63,92)和(-193,-44,0),(35,63,92)和(-193,-44,0),分别为包围盒的两个相对顶点的坐标,该物体对象的属性为:非目标物体对象、不可移动、未发生碰撞、未被抓取。
[0089]
智能体对象的位姿可以包括:各个关节的位置、各个关节的角度以及智能体对象的位置等。根据智能体对象的位姿和物体对象的位姿可以确定与物体对象的位置关系、以及是否与物体对象发生碰撞等。智能体对象的属性可以包括多种状态:等待控制信息状态、按照控制信息执行动作状态、指定任务完成状态、与物体对象发生碰撞状态。例如,可以用json对象来表示智能体对象的位姿和属性。
[0090][0091][0092]
其中,joints为智能体的某一关节"back_z_anchorn"对应的json对象,该关节的id为1,位置坐标为(59.82463073730469,10.000000953674316,88.20069122314453),相对于智能体对象的角度为(3.000000106112566e-06、1.4000000192027073e-05,0),该关节的状态为打开。
[0093]
进一步的,可以将语义信息(即虚拟环境中的每个物体对象和智能体对象的位姿和属性),输入控制模型中的动作网络,动作网络可以根据输入的语义信息,输出对应的控制指令。其中,控制模型可以包括动作网络和评价网络,动作网络可以用于根据环境状态信息生成对应的控制指令,评价网络可以用于按照预设的奖励规则,根据更新后的环境状态信息生成对应的目标奖励。之后,可以将控制指令封装成环境引擎可以识别的控制信息,并将控制信息发送至环境引擎。其中,控制信息可以包括:智能体的控制速度、控制角度、控制位置坐标和目标关节的控制角度中的至少一种,控制速度可以包括线速度和角速度,目标关节可以理解为,控制指令指示的,环境引擎所要控制以执行指定任务的智能体对象的关节。以智能体对象执行抓取任务、抓取的目标物体对象为苹果对象、智能体的控制速度为v、控制角度为α、智能体的目标关节为手指关节、手指关节的控制角度为β、控制位置坐标为a为例,环境引擎可以控制智能体以速度v移动至a处,并控制智能体的手指关节按照角度β抓取苹果对象。
[0094]
在一种应用场景中,步骤1021的一种实现方式可以为:
[0095]
对环境状态信息进行语义识别,以得到虚拟环境中的目标物体对象的中心位置、轴线位置,虚拟环境中障碍物体对象的包围盒坐标,以及目标部位的中心位置。或者,
[0096]
对环境状态信息进行语义识别,以得到预设区域内每个子区域的标识,预设区域为虚拟环境中与智能体对象满足预设位置关系的区域,子区域为按照预设尺寸对预设区域内进行划分得到的区域,每个子区域的标识用于指示该子区域内包含的对象的种类,种类包括:目标物体对象、障碍物体对象、智能体对象。
[0097]
示例的,在一种实现方式中,可以对环境状态信息进行语义识别,从而得到虚拟环境中的目标物体对象的中心位置、轴线位置,虚拟环境中障碍物体对象的包围盒坐标,以及目标部位的中心位置。其中,目标部位可以理解为智能体对象执行指定任务所用的部位,以执行抓取任务为例,目标部位可以为手部。具体的,可以根据目标物体对象的包围盒坐标,得到目标物体对象的中心位置和轴线位置,并根据智能体对象的指定关节的坐标,得到智能体对象的目标部位的中心位置,以目标部位为手部为例,那么对应的指定关节可以是大拇指第二个关节和中指第二个关节,可以根据大拇指第二个关节的坐标和中指第二个关节的坐标,得到的手部的中心位置。
[0098]
在另一种实现方式中,可以在虚拟环境中建立与智能体对象满足预设位置关系的预设区域,并按照预设尺寸将预设区域内划分为多个子区域。其中,预设区域可以是三维立方体、三维圆柱体、三维球体等,以预设区域为三维立方体、子区域为三维小立方体为例,可以在智能体正前方的指定位置处建立50*50*50三维立方体,并将三维立方体划分为12500个1*1*1的三维小立方体。在获取到环境状态信息之后,可以对环境状态信息进行语义识别,从而得到预设区域内每个子区域的标识。具体的,可以将所有物体对象的包围盒信息输入预设区域,之后根据每个子区域是否包含目标物体对象、障碍物体对象和智能体对象,来确定每个子区域的标识。例如,包含目标物体对象的子区域的标识可以为1,包含障碍物体对象的子区域的标识可以为-1,包含智能体对象的子区域的标识可以为0.5,空的子区域(即不包含目标物体对象、障碍物体对象、智能体对象任一种的子区域)的标识可以为0。
[0099]
在另一种应用场景中,步骤103的一种实现方式可以为:
[0100]
将更新后的环境状态信息作为控制模型中评价网络的输入,以得到评价网络输出的目标奖励。
[0101]
相应地,步骤104的一种实现方式可以为:
[0102]
根据目标奖励训练控制模型中的动作网络和评价网络。
[0103]
示例的,从环境引擎中获取到更新后的环境状态信息之后,可以将更新后的环境状态信息输入控制模型中的评价网络,评价网络可以按照预设的奖励规则对环境状态信息进行处理,从而输出本次执行动作对应的目标奖励。之后可以根据目标奖励对控制模型中的动作网络和评价网络按照强化学习的方式进行训练。具体的,可以先根据目标奖励对评价网络中的参数进行更新,之后再根据更新后的评价网络对动作网络中的参数进行更新,使得动作网络可以输出与环境状态信息对应的,更加准确的控制指令。
[0104]
以训练智能体对象执行将目标物体对象移动到目标位置的任务为例,评价网络的奖励规则可以是:如果更新后的环境状态信息指示智能体对象与目标物体对象的距离减小、或者智能体对象碰到目标物体对象、或者目标物体对象与目标位置的距离减小等,那么评价网络可以根据更新后的环境状态信息得到正向的目标奖励。如果更新后的环境状态信息指示智能体对象与目标物体对象的距离增大、或者目标物体对象与目标位置的距离增大、或者智能体对象碰到障碍物体对象等,那么评价网络可以根据更新后的环境状态信息
得到负向的目标奖励。
[0105]
图4是根据一示例性实施例示出的另一种智能体的训练方法的流程图,如图4所示,该方法还可以包括:
[0106]
步骤106,控制环境引擎对虚拟环境进行初始化,并获取初始化后虚拟环境的环境状态信息。
[0107]
示例的,在对智能体对象进行训练之前,或者智能体对象完成训练之后,可以控制环境引擎对虚拟环境进行初始化,以将虚拟环境恢复到初始状态,其中初始状态可以理解为,预先建立的,与真实世界中的实际场景对应的虚拟环境所处的状态。之后可以获取初始化之后虚拟环境的环境状态信息,以控制智能体对象重新开始训练。
[0108]
图5是根据一示例性实施例示出的另一种智能体的训练方法的流程图,如图5所示,步骤101可以通过以下步骤来实现:
[0109]
步骤1011,在通过预设的执行接口将历史控制信息发送至环境引擎之后,通过执行接口从环境引擎中获取环境状态信息,历史控制信息为智能体根据之前的环境状态信息确定的。
[0110]
步骤1012,若通过执行接口获取环境状态信息失败,通过预设的观察接口获取环境状态信息。
[0111]
示例的,智能体可以通过预设接口与环境引擎进行交互,预设接口可以包括执行接口、观察接口和初始化接口。其中,可以通过执行接口向环境引擎发送控制信息,并在智能体对象完成控制信息指示的动作之后,通过执行接口获取更新后的环境状态信息。可以通过初始化接口控制环境引擎对虚拟环境进行初始化,并在初始化完成之后,通过初始化接口获取初始化之后的环境状态信息。如果执行接口获取更新后的环境状态信息失败,可以通过观察接口再次获取更新后的环境状态信息。同样的,如果初始化接口获取初始化之后的环境状态信息失败,可以通过观察接口再次获取初始化之后的环境状态信息。
[0112]
具体的,从环境引擎中获取环境状态信息之前,可以先根据之前的环境状态信息确定历史控制信息,并通过预设的执行接口将历史控制信息发送给环境引擎,环境引擎可以控制物体对象以及智能体对象执行历史控制信息指示的动作,之后智能体可以通过执行接口从环境引擎中获取环境状态信息。其中,历史控制信息是本次执行任务之前的上一次执行任务中,智能体根据之前的环境状态信息确定的。如果通过执行接口获取环境状态信息失败,那么可以通过预设的观察接口再次获取环境状态信息。这样,在通过执行接口获取环境状态信息失败之后,可以通过预设的观察接口再次获取环境状态信息,避免了无法获取环境状态信息的问题,能够提高智能体训练的效率和准确度。
[0113]
综上所述,本公开首先从环境引擎中获取环境状态信息,之后根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,使得环境引擎根据控制信息控制虚拟环境中的物体对象以及智能体对象。其中,环境引擎中包括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。再进一步从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励,最后根据目标奖励训练控制模型。本公开利用环境引擎建立能够模拟真实世界的虚拟环境,并通过与环境引擎进行交互来对智能体的控制模型进行训练,能够降低智能体训练的复杂
度,并提高智能体训练的准确性。
[0114]
图6是根据一示例性实施例示出的一种智能体的训练装置的框图,如图6所示,该装置包括:
[0115]
获取模块201,用于从环境引擎中获取环境状态信息,环境引擎中包括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。
[0116]
控制模块202,用于根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,以使环境引擎根据控制信息控制虚拟环境中的智能体对象。
[0117]
确定模块203,用于从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励。
[0118]
训练模块204,用于根据目标奖励训练控制模型。
[0119]
在一种应用场景中,重复执行从环境引擎中获取环境状态信息,至根据目标奖励训练控制模型的步骤,直至控制模型满足预设的收敛条件。
[0120]
图7是根据一示例性实施例示出的另一种智能体的训练装置的框图,如图7所示,控制模块202包括:
[0121]
环境处理子模块2021,用于对环境状态信息进行语义识别,以得到环境状态信息中包含的语义信息,语义信息包括:虚拟环境中的每个物体对象和智能体对象的位姿和属性。
[0122]
强化学习子模块2022,用于将语义信息作为控制模型中动作网络的输入,以得到动作网络输出的控制指令。
[0123]
环境处理子模块2021,还用于将控制指令封装为控制信息,并将控制信息发送至环境引擎,控制信息包括:智能体的控制速度、控制角度、控制位置坐标和目标关节的控制角度中的至少一种。
[0124]
在另一种应用场景中,环境处理子模块2021用于:
[0125]
对环境状态信息进行语义识别,以得到虚拟环境中的目标物体对象的中心位置、轴线位置,虚拟环境中障碍物体对象的包围盒坐标,以及目标部位的中心位置。或者,
[0126]
对环境状态信息进行语义识别,以得到预设区域内每个子区域的标识,预设区域为虚拟环境中与智能体对象满足预设位置关系的区域,子区域为按照预设尺寸对预设区域内进行划分得到的区域,每个子区域的标识用于指示该子区域内包含的对象的种类,种类包括:目标物体对象、障碍物体对象、智能体对象。
[0127]
在另一种应用场景中,确定模块203用于:
[0128]
将更新后的环境状态信息作为控制模型中评价网络的输入,以得到评价网络输出的目标奖励。
[0129]
相应地,训练模块204用于:
[0130]
根据目标奖励训练控制模型中的动作网络和评价网络。
[0131]
在另一种应用场景中,控制模块202还用于:
[0132]
控制环境引擎对虚拟环境进行初始化,并获取初始化后虚拟环境的环境状态信息。
[0133]
在另一种应用场景中,获取模块201用于:
[0134]
在通过预设的执行接口将历史控制信息发送至环境引擎之后,通过执行接口从环境引擎中获取环境状态信息,历史控制信息为智能体根据之前的环境状态信息确定的。
[0135]
若通过执行接口获取环境状态信息失败,通过预设的观察接口获取环境状态信息。
[0136]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0137]
综上所述,本公开首先从环境引擎中获取环境状态信息,之后根据环境状态信息以及智能体包括的控制模型,确定控制信息,并将控制信息发送至环境引擎,使得环境引擎根据控制信息控制虚拟环境中的物体对象以及智能体对象。其中,环境引擎中包括预先建立的虚拟环境,虚拟环境包括至少一个物体对应的物体对象,以及智能体对应的智能体对象,环境状态信息用于指示虚拟环境中的每个物体对象和智能体对象的状态。再进一步从环境引擎中获取更新后的环境状态信息,并根据更新后的环境状态信息确定目标奖励,最后根据目标奖励训练控制模型。本公开利用环境引擎建立能够模拟真实世界的虚拟环境,并通过与环境引擎进行交互来对智能体的控制模型进行训练,能够降低智能体训练的复杂度,并提高智能体训练的准确性。
[0138]
图8是根据一示例性实施例示出的一种电子设备300的框图。如图8所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(i/o)接口304,以及通信组件305中的一者或多者。
[0139]
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的智能体的训练方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件305可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
[0140]
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路
(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的智能体的训练方法。
[0141]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的智能体的训练方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的智能体的训练方法。
[0142]
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的智能体的训练方法的代码部分。
[0143]
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0144]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0145]
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
转载请注明原文地址: https://www.8miu.com/read-147.html

最新回复(0)