1.本公开涉及人工智能技术领域,尤其涉及强化学习领域,具体涉及自动驾驶方法、装置、设备以及存储介质。
背景技术:2.强化学习是人工智能领域一个热门领域,其是由代理对环境的感知方式。强化学习主要关注智能体在环境中如何采取动作,以最大化累积奖赏。在许多环境中,安全是一个关键问题,某些错误是不可接受的:例如,与人类交互的机器人系统在探索时不应对人类造成伤害。虽然目前主要或完全在模拟中培训强化学习代理是典型的,安全问题很少,但我们预计模拟现实世界复杂性(如人工智能交互)的挑战将导致直接在现实世界中培训强化学习代理的转变,其中安全问题是重要的。
技术实现要素:3.本公开提供了一种自动驾驶方法、装置、设备以及存储介质。
4.根据第一方面,提供了一种自动驾驶方法,包括:获取移动智能体根据初始策略自动驾驶与行驶环境交互产生的交互数据;根据交互数据确定优势函数;响应于预设停止条件满足,根据优势函数更新初始策略的参数,得到最优策略;根据最优策略,确定智能移动体的自动驾驶策略供自动驾驶。
5.根据第二方面,提供了一种自动驾驶装置,包括:交互数据获取单元,被配置成获取移动智能体根据初始策略自动驾驶与行驶环境交互产生的交互数据;优势函数确定单元,被配置成根据交互数据确定优势函数;最优策略确定单元,被配置成响应于预设停止条件不满足,根据优势函数更新初始策略的参数,直到预设停止条件满足,得到最优策略;自动驾驶单元,被配置成根据最优策略,确定智能移动体的自动驾驶策略供自动驾驶。
6.根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,上述指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面所描述的方法。
7.根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,上述计算机指令用于使计算机执行如第一方面所描述的方法。
8.根据第五方面,一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现如第一方面所描述的方法。
9.根据本公开的技术可以利用强化学习为移动智能体确定出最优自动驾驶策略,从而能够提高移动智能体的安全性。
10.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
11.附图用于更好地理解本方案,不构成对本公开的限定。其中:
12.图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
13.图2是根据本公开的自动驾驶方法的一个实施例的流程图;
14.图3是根据本公开的自动驾驶方法的一个应用场景的示意图;
15.图4是根据本公开的自动驾驶方法的另一个实施例的流程图;
16.图5是根据本公开的自动驾驶装置的一个实施例的结构示意图;
17.图6是用来实现本公开实施例的自动驾驶方法的电子设备的框图。
具体实施方式
18.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
19.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
20.图1示出了可以应用本公开的自动驾驶方法或自动驾驶装置的实施例的示例性系统架构100。
21.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
22.上述终端设备101、102、103可以安装在移动智能体中,上述移动智能体可以为自动驾驶车辆、智能机器人等可自主移动的物体。移动智能体上还可以安装有环境感知设备,如图像采集装置、温度感知装置、激光雷达、毫米波雷达等等。移动智能体可以通过网络104与服务器105交互,以接收或发送消息等,例如移动智能体可以将各环境感知设备感知得到的数据发送给服务器105。终端设备101、102、103上可以安装有各种通讯客户端应用,例如语音识别类应用、数据处理类应用等。
23.终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、车载电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
24.服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上提供自动驾驶策略的后台服务器。后台服务器可以通过强化学习算法为智能移动体确定出在各个位置的最优行驶策略。并将最优行驶策略反馈给终端设备101、102、103。终端设备101、102、103可以根据上述最优行驶策略控制移动智能体进行自动驾驶。
25.需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个
软件或软件模块。在此不做具体限定。
26.需要说明的是,本公开实施例所提供的自动驾驶方法可以由终端设备101、102、103执行,也可以由服务器105执行。相应地,自动驾驶装置可以设置于终端设备101、102、103中,也可以设置于服务器105中。
27.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
28.继续参考图2,示出了根据本公开的自动驾驶方法的一个实施例的流程200。本实施例的自动驾驶方法,包括以下步骤:
29.步骤201,获取移动智能体根据初始策略自动驾驶与行驶环境交互产生的交互数据。
30.本实施例中,自动驾驶方法的执行主体可以为移动智能体设置初始策略。具体的,上述初始策略可以通过初始化的方式获得。执行主体可以计算移动智能体根据上述初始策略自动驾驶的过程中,与行驶环境进行交互产生的交互数据。一般情况下,上述交互过程可以包括30个回合。上述交互数据可以包括状态、速度等参数。
31.步骤202,根据交互数据确定优势函数。
32.执行主体在确定交互数据后,可以利用交互数据确定优势函数。这里,优势函数可以包括针对奖励的优势函数和针对每一个约束的优势函数。执行主体可以获取优势函数的公式,然后将交互数据中的参数值代入上述公式,从而得到优势函数。
33.步骤203,响应于预设停止条件不满足,根据优势函数更新初始策略的参数,直到预设停止条件满足,得到最优策略。
34.执行主体可以实时监测预设的停止条件是否满足。这里,上述预设停止条件可以是迭代的停止条件,例如参数的更新次数达到了预设值,或者优势函数不再收敛等等。如果执行主体确定预设停止条件不满足,则可以根据优势函数来更新初始策略的参数。例如,执行主体可以在梯度方向上更新初始策略的参数。直到预设停止条件满足,得到最优策略。
35.步骤204,根据最优策略,确定智能移动体的自动驾驶策略供自动驾驶。
36.本实施例中,执行主体在确定出最优策略后,可以将最优策略反馈给移动智能体,移动智能体可以根据上述最优策略进行自身控制,得到自动驾驶策略,以最终按照自动驾驶策略进行自动驾驶。
37.继续参见图3,其示出了根据本公开的自动驾驶方法的一个应用场景的示意图。在图3的应用场景中,智能机器人301与服务器302交互,智能机器人301可以实时将自身所处环境发送给服务器302。服务器302可以计算出智能机器人301按照初始策略自动驾驶与行驶环境交互得到的交互数据。服务器302利用上述交互数据以及强化学习算法为智能机器人301确定出自动驾驶策略,并将自动驾驶策略反馈给智能机器人301。智能机器人301可以根据自动驾驶策略自动行驶。
38.本公开的上述实施例提供的自动驾驶方法,可以利用强化学习为移动智能体确定出最优自动驾驶策略,从而能够提高移动智能体的安全性。
39.继续参见图4,其示出了根据本公开的自动驾驶方法的另一个实施例的流程400。如图4所示,本实施例的方法可以包括以下步骤:
40.步骤401,获取移动智能体根据初始策略自动驾驶与行驶环境交互产生的交互数
据。
41.步骤402,根据交互数据确定价值函数以及动作价值函数;根据价值函数以及动作价值函数,确定优势函数。
42.本实施例中,执行主体可以根据交互数据确定价值函数以及动作价值函数。这里,价值函数可以理解为当前状态下使用当前策略,获取累计折扣奖励的期望。动作价值函数指的是当前状态下使用某个动作之后,继续使用当前策略,获取累计折扣奖励的期望。执行主体可以利用预先设计的价值函数和动作价值函数的公式,将交互数据中的各参数值代入上述两公式中,分别得到价值函数以及动作价值函数。
43.执行主体在得到价值函数和动作价值函数后,可以将二者相减,得到的函数作为优势函数。
44.步骤403,响应于预设停止条件不满足,将约束问题转化为无约束问题;根据优势函数,更新初始策略的参数,直到预设停止条件满足,确定无约束问题的最优解;将最优解作为最优策略。
45.本实施例中,如果预设停止条件不满足,则可以更新初始策略的参数。由于求解约束问题的解的过程复杂,为了简化计算过程,执行主体可以首先将约束问题转化为无约束问题。可以理解的是,转化得到的无约束问题与约束问题等价。即无约束问题的最优解可以作为约束问题的解。在得到无约束问题后,可以根据上述优势函数,更新初始策略的参数,在预设停止条件满足后,可以得到无约束问题的最优解。并将上述最优解作为最终的最优策略。
46.在本实施例的一些可选的实现方式中,执行主体可以通过图4中未示出的以下步骤将约束问题转化为无约束问题:根据重要性采样比,将约束问题转化为等价问题;利用精确罚函数,将等价问题转化为无约束问题。
47.本实现方式中,一般采用神经网络作为策略。为了方便起见可以利用重要性采样比,将约束问题中的部分公式利用重要性采样比来表示,这样,就将约束问题转化为等价问题了。然后,进一步利用精确罚函数,将所述等价问题转化为无约束问题。这里,精确罚函数是非线性规划中一个很重要的概念,使用l1罚函数,将约束优化问题转化为等价的无约束优化问题。惩罚因子只需要大于某个足够大的正数,即可保证解的等价,不需要趋向正无穷,从而造成数值问题。这里,在确定精确罚函数时,可以将惩罚因子设置为一个预设值。上述预设值可以是经多次计算后得出的经验值。
48.在本实施例的一些可选的实现方式中,执行主体可以通过图4中未示出的以下步骤确定无约束问题的最优解:利用近似误差,将无约束问题转换为近似问题;根据优势函数,在近似问题的信任域内对初始策略的参数进行保守更新,得到近似问题的最优解。
49.本实现方式中,为了进一步简化计算,执行主体可以进一步利用近似误差,将所述无约束问题转换为近似问题。具体的,执行主体可以用已有采样数据对策略的优化变量进行近似估计。可以理解的是,在做上述近似估计时,近似误差可以计算出,并且应控制在适当的范围内,该范围可以称为信任域。在具体的应用中,上述近似误差可以与待优化策略中的变量与旧有策略之间的差异以及约束的个数相关。为了提高得到的近似问题非常的精确度,执行主体还需要对信任域进行限制,即在更新参数过程中检测到信任域约束不满足时,提前跳出。在迭代参数时,还可以使用近端策略优化(ppo)进行保守更新。这里,ppo算法是
一种新的policy gradient算法,policy gradient算法对步长十分敏感,但是又难以选择合适的步长,在训练过程中新旧策略的变化差异如果过大则不利于学习。ppo提出了剪裁目标函数可以在多个训练步骤实现小批量的更新,解决了policy gradient算法中步长难以确定的问题,提升了样本效率和性能表现。
50.步骤404,根据移动智能体的位置、行驶环境以及最优策略,确定移动智能体的自动驾驶策略。
51.在确定出在策略空间内的最优策略后,执行主体可以进一步根据移动智能体的位置、行驶环境以及最优策略,确定移动智能体的自动驾驶策略。具体的,执行主体可以计算在上述位置开始,移动智能体按照上述最优策略与行驶环境的交互数据,依据上述交互数据确定出自动驾驶策略。
52.本公开的上述实施例提供的自动驾驶方法,通过引入精确罚函数,将复杂的约束优化问题转化为近似等价的无约束优化问题,可以使用一阶方法直接优化,不仅降低了实现难度、提升了样本效率,还具有更为良好的性能表现。另外,本方法易于拓展到多约束场景,且不对初始策略有任何可行性要求。
53.进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种自动驾驶装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
54.如图5所示,本实施例的自动驾驶装置500包括:交互数据获取单元501、优势函数确定单元502、最优策略确定单元503和自动驾驶单元504。
55.交互数据获取单元501,被配置成获取移动智能体根据初始策略自动驾驶与行驶环境交互产生的交互数据。
56.优势函数确定单元502,被配置成根据交互数据确定优势函数。
57.最优策略确定单元503,被配置成响应于预设停止条件不满足,根据优势函数更新初始策略的参数,直到预设停止条件满足,得到最优策略。
58.自动驾驶单元504,被配置成根据最优策略,确定智能移动体的自动驾驶策略供自动驾驶。
59.在本实施例的一些可选的实现方式中,优势函数确定单元502进一步被配置成:根据交互数据确定价值函数以及动作价值函数;根据价值函数以及动作价值函数,确定优势函数。
60.在本实施例的一些可选的实现方式中,最优策略确定单元503进一步被配置成:将约束问题转化为无约束问题;根据优势函数,更新初始策略的参数,确定无约束问题的最优解;将最优解作为最优策略。
61.在本实施例的一些可选的实现方式中,最优策略确定单元503进一步被配置成:根据重要性采样比,将约束问题转化为等价问题;利用精确罚函数,将等价问题转化为无约束问题。
62.在本实施例的一些可选的实现方式中,最优策略确定单元503进一步被配置成:利用近似误差,将无约束问题转换为近似问题;根据优势函数,在近似问题的信任域内对初始策略的参数进行保守更新,得到近似问题的最优解。
63.在本实施例的一些可选的实现方式中,自动驾驶单元504进一步被配置成:根据移
动智能体的位置、行驶环境以及最优策略,确定移动智能体的自动驾驶策略。
64.应当理解,自动驾驶装置500中记载的各单元分别与图2中描述的方法中的各个步骤相对应。由此,上文针对自动驾驶方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。
65.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
66.根据本公开的实施例,本公开还提供了还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
67.图6示出了根据本公开实施例的执行自动驾驶方法的电子设备600的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
68.如图6所示,电子设备600包括处理器601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储器608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储电子设备600操作所需的各种程序和数据。处理器601、rom 602以及ram 603通过总线604彼此相连。i/o接口(输入/输出接口)605也连接至总线604。
69.电子设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储器608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
70.处理器601可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器601执行上文所描述的各个方法和处理,例如自动驾驶方法。例如,在一些实施例中,自动驾驶方法可被实现为计算机软件程序,其被有形地包含于机器可读存储介质,例如存储器608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到ram 603并由处理器601执行时,可以执行上文描述的自动驾驶方法的一个或多个步骤。备选地,在其他实施例中,处理器601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行自动驾驶方法。
71.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出
装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
72.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。上述程序代码可以封装成计算机程序产品。这些程序代码或计算机程序产品可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器601执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
73.在本公开的上下文中,机器可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读存储介质可以是机器可读信号存储介质或机器可读存储介质。机器可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学存储设备、磁存储设备、或上述内容的任何合适组合。
74.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
75.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
76.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务(“virtual private server”,或简称“vps”)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以是分布式系统的服务器,或者是结合了区块链的服务器。
77.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
78.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明
白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开的保护范围之内。