训练强化学习神经网络的制作方法

文档序号:14034017阅读:210来源:国知局
训练强化学习神经网络的制作方法

本说明书涉及选择待由强化学习代理执行的动作。



背景技术:

强化学习代理通过接收表征环境的当前状态的观察并且作为响应执行动作来与环境进行交互。一些强化学习代理使用神经网络来选择响应于接收到任何给定观察而要执行的动作。

神经网络是采用一个或者多个非线性单元层来预测接收到的输入的输出的机器学习模型。一些神经网络是除了输出层之外还包括一个或者多个隐藏层的深度神经网络。每个隐藏层的输出用作网络中下一层(即,下一隐藏层或者输出层)的输入。网络的每个层根据参数的相应集合的当前值来从接收到的输入生成输出。



技术实现要素:

本说明书描述了与强化学习有关的技术。大体上,本说明书描述了训练q网络,该q网络用于选择待由代理执行的动作,该代理通过接收表征环境的当前状态的观察并且响应于该观察执行来自动作的集合中的动作来与环境进行交互。

根据一个方面,提供了一种训练q网络的方法,该q网络用于选择待由代理执行的动作,该代理通过接收表征环境的状态的观察并且响应于该观察执行来自动作的集合中的动作来与环境进行交互,其中,q网络是深度神经网络,该深度神经网络被配置为接收输入观察和输入动作作为输入,并且根据参数的集合从输入生成估计的未来累积奖励。该方法包括:获取多个经验元组,其中,每个经验元组包括训练观察、由代理响应于接收到训练观察而执行的动作、响应于代理执行动作而接收到的奖励、以及表征环境的下一状态的下一训练观察;以及对经验元组中的每个经验元组训练q网络,包括对于每个经验元组:根据q网络的参数的当前值来通过使用q网络来处理经验元组中的训练观察和经验元组中的动作以确定经验元组的当前估计的未来累积奖励;从动作的集合中选择动作,所选择的动作当由q网络结合下一观察被处理时,使q网络生成最高估计的未来累积奖励;根据目标q网络的参数的当前值通过使用目标q网络来处理经验元组中的下一观察和所选择的动作以确定所选择的动作的下一目标估计的未来累积奖励,其中,所述目标q网络与q网络相同,但是所述目标q网络的参数的当前值与q网络的参数的当前值不同;根据经验元组中的奖励、所选择的动作的下一目标估计的未来累积奖励、和当前预估未来累积奖励来确定经验元组的误差;以及使用经验元组的误差来更新q网络的参数的当前值。误差e可以满足:e=r+γ*nter–cer,其中,r是经验元组中的奖励,γ是指定折扣因子,nter是所选择的动作的下一目标估计的未来累积奖励,并且cer是当前估计的未来累积奖励。使用经验元组的误差来更新q网络的参数的当前值可以包括:通过使用机器学习训练技术来更新q网络的参数的当前值以减少误差。选择动作包括:对于动作的集合中的每个动作,根据q网络的参数的当前值通过使用q网络来处理经验元组中的下一观察和动作以确定动作的相应下一估计的未来累积奖励;以及选择具有最高下一估计的未来累积奖励的动作。

目标q网络的参数的值可以周期性地与q网络的参数的值同步。该方法可以进一步包括:在对经验元组中的每个经验元组训练q网络以确定q网络的参数的更新值之后,更新目标q网络的当前值以匹配q网络的参数的更新值。该方法可以进一步包括输出具有参数的更新的当前值的q网络。该方法可以进一步包括接收输入观察和输入动作作为输入;以及根据参数的所更新的当前值,通过使用q网络,从输入生成估计的未来累积奖励。

输入可以包括与模拟环境相关联的输入观察和与在模拟环境中控制实体相关联的控制输入。例如,实体可以是模拟用户或者模拟车辆。此外或者可替代地,输入可以包括与真实世界环境相关联的输入观察和与真实世界环境中的实体相关联的控制输入。例如,实体可以是与真实世界环境进行交互的机械代理,诸如,与环境进行交互以完成特定任务的机器人和/或在真实世界环境中导航的自主或者半自主车辆。

要了解,可以按照任何便利的形式来实施各个方面。例如,可以通过适当的计算机程序来实施各个方面,该计算机程序可以携带在可以是有形载体介质(例如,磁盘)或者无形载体介质(例如,通信信号)的适当载体介质上。还可以通过使用合适的设备来实施各个方面,该合适的设备可以采用运行布置为实施各个方面的计算机程序的可编程计算机的形式。

可以在特定实施例中实施本说明书中所描述的主题以实现以下优点中的一个或者多个。强化学习系统可以通过如在本说明书中描述的那样训练q网络来有效地学习代理的有效动作选择策略。具体地,通过在训练期间,通过使用q网络选择下一动作,并且然后通过使用目标q网络确定下一动作的估计的未来累积奖励,强化学习系统可以有效地学习避免(如在训练期间在仅使用目标q网络来估计下一动作的未来累积奖励时可能发生的)动作的过高估计累积未来奖励的动作选择策略。采用避免过高估计累积奖励的动作选择策略可以使代理在各种强化任务中实现改进的性能。因此,训练提供了改进的q网络,并且解决了与q网络的训练相关联的问题。

在附图和下面的描述中阐述了本说明书的主题的一个或者多个实施例的细节。本主题的其它特征、方面、和优点将通过描述、附图、以及权利要求书而变得显而易见。

附图说明

图1示出了示例强化学习系统。

图2是将经验元组添加至重播存储器的示例过程的流程图。

图3是更新q网络的参数的当前值的示例过程的流程图。

各个附图中的类似附图标记和标号指示类似的元件。

具体实施方式

本说明书大体上描述了一种强化学习系统,该强化学习系统选择待由与环境进行交互的强化学习代理执行的动作。为了使代理与环境进行交互,系统接收表征环境的当前状态的数据,并且从响应于接收到的数据待由代理执行的动作空间的集合中选择动作。本说明书中将表征环境的状态的数据称为观察。

在一些实施方式中,环境是模拟环境,并且代理被实施为与模拟环境进行交互的一个或者多个计算机程序。例如,模拟环境可以是视频游戏,并且代理可以是玩视频游戏的模拟用户。作为另一示例,模拟环境可以是运动模拟环境,例如,驾驶模拟环境或者飞行模拟环境,并且代理可以是在运动模拟中导航的模拟车辆。在这些实施方式中,动作可以是控制模拟用户或者模拟车辆的控制输入。

在一些其它实施方式中,环境是真实世界环境,并且代理是与真实世界环境进行交互的机械代理。例如,代理可以是与环境进行交互以完成特定任务的机器人。作为另一示例,代理可以是在环境中导航的自主或者半自主车辆。在这些实施方式中,动作可以是控制机器人或者自主车辆的控制输入。

在一些情况下,观察通过使用表征环境的状态的低维特征向量来表征环境的状态。

在一些其它情况下,观察通过使用来自表征环境的状态的一个或者多个图像(例如,模拟环境的图像或者由机械代理的传感器在机械代理与真实世界环境进行交互时捕获到的图像)的高维像素输入来表征环境的状态。

图1示出了示例强化学习系统100。该强化学习系统100是在实施下面描述的系统、组件、和技术的一个或者多个位置中的一个或者多个计算机上实施为计算机程序的系统的示例。

强化学习系统100选择待由与环境104进行交互的强化学习代理102执行的动作。即,强化学习系统100接收观察,其中,每个观察表征环境104的相应状态,并且响应于每个观察,从响应于观察待由强化学习代理102执行的动作的集合中选择动作。

具体地,强化学习系统100通过使用q网络110来选择动作。q网络110是深度神经网络,该深度神经网络被配置为接收输入观察和输入动作作为输入,并且根据参数的集合从输入生成估计的未来累积奖励。

该估计的未来累积奖励是对若代理响应于输入观察执行输入动作而接收到的未来累积奖励的估计。由于代理执行动作,每个奖励是例如从环境中接收到的数值,并且未来累积奖励是代理在接收到输入观察之后将接收到的未来奖励的组合。例如,估计的未来累积奖励可以是对在代理执行动作之后接收到的时间折扣的总未来奖励的估计。

为了使代理102与环境104有效地进行交互,强化学习系统100训练q网络110以确定q网络110的参数的训练值。

一旦已经训练了q网络110,强化学习系统100就可以有效地使用q网络110来选择待由代理104执行的动作。具体地,当在已经训练了q网络110之后接收到观察时,对于在动作的集合中的每个动作,强化学习系统100可以根据q网络110的参数的训练值通过使用q网络110来处理观察和动作以生成动作中的每个动作的相应估计的未来累积奖励。强化学习系统100然后可以选择具有最高估计未来累积奖励的动作作为响应于观察待由代理102执行的动作。代理102然后可以执行选择的动作。

为了辅助q网络110的训练,强化学习系统100维持包括重播存储器130和目标q网络150的训练组件120。

重播存储器130存储由于代理102与环境104的交互而生成的经验元组以用于训练q网络110。

具体地,重播存储器中的每个体验元组包括表征环境的训练状态的训练观察、由代理102响应于训练观察而执行的训练动作、由强化学习系统100响应于代理102执行训练动作而接收到的训练奖励、以及表征环境104的下一状态(即,在代理102执行训练动作之后环境104转换到的状态)的下一观察。

强化学习系统100在q网络110的训练期间从代理102与环境104的交互生成经验元组。下面参考图2更详细地描述在训练期间生成经验元组的示例过程。

目标q网络150是与q网络110相同(即,具有与q网络110相同的神经网络架构)但是参数值可能与q网络110的参数值不同的神经网络。即,在q网络110的训练期间,目标q网络150的参数的值仅与q网络110的参数的当前值周期性地同步。

为了通过使用训练组件120来训练q网络110,强化学习系统100从重播存储器130中重复选择小批经验元组。每小批经验元组包括预定数量的经验元组,并且强化学习系统100可以按照任何适当的方式(例如,随机地或者根据一些预定准则)来选择给定小批的经验元组。

对于给定小批中的每个经验元组,强化学习系统100使用q网络110和目标q网络150来确定q网络110的参数的当前值的更新,并且然后通过使用该更新来调整q网络110的参数的当前值。下面将参照图3更详细地描述生成这些更新并且调整q网络110的参数的当前值。

在训练期间,强化学习系统100还周期性地更新目标q网络150的参数的值以匹配q网络110的参数的值。

一旦小批经验元组已经被用于训练,强化学习系统100就可以从重播存储器130中去除小批中的经验元组。

通常,在训练期间,强化学习系统100独立于对来自重播存储器130中的经验元组进行采样和调整q网络110的参数(即,与对来自重播存储器130中的经验元组进行采样和调整q网络110的参数异步),生成经验元组并且将生成的元组添加至重播存储器130。

图2是将经验元组添加至重播存储器的示例过程200的流程图。为了方便起见,将过程200描述为由位于一个或者多个位置的一个或者多个计算机的系统执行。例如,根据本说明书适当编程的强化学习系统(例如,图1的强化学习系统100)可以执行过程200。

系统接收表征环境的当前状态的当前观察(步骤202)。

对于动作的集合中的每个动作,系统根据q网络的参数的当前值通过使用q网络来处理当前观察和动作(步骤204)。如上所述,q网络是深度神经网络,该深度神经网络被配置为接收观察和动作作为输入,并且根据参数的集合来从输入生成估计的未来累积奖励。因此,对于每个动作,通过根据q网络的参数的当前值使用q网络来处理当前观察和动作,系统生成动作的集合中的每个动作的相应估计的未来累积奖励。

系统通过使用估计的未来累积奖励来选择响应于当前观察待由代理执行的动作(步骤206)。

在一些实施方式中,系统选择具有最高估计的累积未来奖励的动作作为待由代理执行的动作。

在一些其它实施方式中,为了鼓励在训练期间探索环境,系统通过使用探索策略来选择动作,例如,通过以概率1-ε来选择具有最高估计的累积未来的动作,并且以概率ε从集合中随机地选择动作。

系统接收奖励和下一观察(步骤206)。该下一观察表征环境的下一状态,即,由于代理执行选择的动作而使环境转换到的状态,并且奖励是系统由于代理执行选择的动作而从例如环境接收到的数值。

系统生成包括当前观察、选择的动作、奖励、和下一观察的经验元组,并且将生成的经验元组存储在重播存储器中用于训练q网络(步骤208)。

图3是确定对q网络的参数的当前值的更新的示例过程300的流程图。为了方便起见,将过程300描述为由位于一个或者多个位置的一个或者多个计算机的系统执行。例如,根据本说明书适当编程的强化学习系统(例如,图1的强化学习系统100)可以执行过程300。

系统接收经验元组(步骤302)。该经验元组是系统从重播存储器中采样的小批经验元组中的经验元组中的一个经验元组。

经验元组包括表征环境的训练状态的训练观察、来自由代理响应于接收到训练观察而执行的动作的集合中的训练动作、由于代理执行训练动作而接收到的训练奖励、以及表征环境的下一训练状态的下一训练观察。

系统根据q网络的参数的当前值通过使用q网络来处理经验元组中的训练观察和训练动作以确定经验元组的当前估计的未来累积奖励(步骤304)。

系统从动作的集合中选择下一动作(步骤306)。该下一动作是在由q网络结合下一观察处理该动作时生成最高估计的未来累积奖励的动作。即,对于动作的集合中的每个动作,系统根据q网络的参数的当前值通过使用q网络来处理下一观察和动作以生成动作的下一估计的未来累积奖励。系统然后选择具有最高下一估计的未来累积奖励的动作作为下一动作。

系统根据目标q网络的参数的当前值通过使用目标q网络来处理下一观察和下一动作以生成下一动作的下一目标估计的未来累积奖励(步骤308)。如上所述,目标q网络与q网络相同,但是目标q网络的参数的当前值通常与q网络的参数的当前值不同。

因此,为了确定经验元组的下一目标估计的未来累积奖励,系统使用q网络来选择下一动作,并且然后使用目标q网络来生成下一目标估计的未来累积奖励,而不是直接使用由目标q网络生成的最大目标估计的未来累积奖励作为下一目标估计的未来累积奖励。

系统通过当前估计的未来奖励、训练奖励、和下一目标估计的未来累积奖励来确定经验元组的误差(步骤310)。例如,误差e可以满足:

e=r+γ*nter–cer,

其中,r是经验元组中的奖励,γ是指定折扣因子,nter是下一目标估计的未来累积奖励,并且cer是当前估计的未来累积奖励。

系统使用误差来更新q网络的参数的当前值(步骤312)。即,系统可以通过使用传统的机器学习训练技术(例如,通过利用反向传播执行梯度下降的迭代)来确定减少误差的对q网络的参数的当前值的更新。一旦已经确定了小批经验元组中的每个经验元组的更新,系统就可以将更新应用于q网络的参数的当前值以生成参数的更新值。

一旦已经确定了q网络的参数的更新值,系统就确定是否满足用于更新目标q网络参数的当前值的准则。例如,系统可以在已经处理了每t小批之后更新目标q网络的参数,其中,t是大于1的整数。

如果满足标准,则系统更新目标q网络参数的当前值以使其与q网络参数的更新值同步。

通过对多个不同小批的经验元组重复执行过程300,系统可以训练q网络以确定q网络的参数的训练值并且使q网络有效地用于选择待由与环境进行交互的代理执行的动作。具体地,通过在训练期间使用q网络来选择下一动作,并且然后使用目标q网络来生成下一目标估计的未来累积奖励,而不是直接使用由目标q网络生成的最大目标估计的未来累积奖励作为下一目标估计的未来累积奖励,系统可以减轻由训练的q网络生成的估计奖励中的过高估计误差。

对于要被配置为执行特定操作或者动作的一个或者多个计算机的系统意味着已经在系统上安装了在操作时使系统执行操作或者动作的软件、固件、硬件、或者它们的组合。对于要被配置为执行特定操作或者动作的一个或者多个计算机程序意味着一个或者多个程序包括指令,该指令在由数据处理设备执行时使设备执行操作或者动作。

可以在数字电子电路系统中、有形体现的计算机软件或者固件中、计算机硬件中(包括本说明书所公开的结构及其结构等效物)、或者它们中的一个或者多个的组合中实施本说明书中描述的主题的实施例和功能操作。可以将本说明书中描述的主题的实施例实施为一个或者多个计算机程序,即,编码在有形非暂时性程序载体上以由数据处理设备执行或者控制数据处理设备的操作的计算机程序指令的一个或者多个模块。可替代地或者另外,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电气、光学、或者电磁信号,生成该信号是为了对信息进行编码以便传输至合适的接收器设备供数据处理设备执行。计算机存储介质可以是机器可读存储装置、机器可读存储基板、随机或者串行存取存储器装置、或者它们中的一个或者多个的组合。

术语“数据处理设备”是指数据处理硬件并且囊括了用于处理数据的所有种类的设备、装置、和机器,例如,包括:可编程处理器、计算机、或者多个处理器或者计算机。该设备还可以是或者进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或者asic(专用集成电路)。除了硬件之外,该设备可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或者多个的组合的代码。

可以用任何形式的程序语言(包括:编译语言或者解释语言、或者声明性语言或者过程语言)来编写计算机程序(也可以被称为或者描述为程序、软件、软件应用、模块、软件模块、脚本、或者代码),并且可以按照任何形式(包括:作为独立式程序或者模块、组件、子例程、或者适合用于计算环境的其它单元)来部署计算机程序。计算机程序可以但并非必须与文件系统中的文件对应。可以将程序存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中,或者存储在专用于所探讨中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或者多个模块、子程序、或者部分代码的文件)中。可以将计算机程序部署为在一个计算机上执行或者在位于一个地点处或者分布在多个地点中并且通过通信网络互相连接的多个计算机上执行。

可以通过一个或者多个可编程计算机来执行本说明书中描述的过程和逻辑流,该一个或者多个可编程计算机执行一个或者多个计算机程序以通过操作输入数据并且生成输出来执行功能。还可以由专用逻辑电路系统(例如,fpga(现场可编程门阵列)或者asic(专用集成电路))来执行过程和逻辑流,并且还可以将设备实施为专用逻辑电路系统(例如,fpga(现场可编程门阵列)或者asic(专用集成电路))。

适合执行计算机程序的计算机包括,例如,可以基于通用或者专用微处理器或者两者或者任何其它种类的中央处理单元。一般而言,中央处理单元将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于进行或者执行指令的中央处理单元、和用于存储指令和数据的一个或者多个存储器装置。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储装置(例如,磁盘、磁光盘、或者光盘),或者计算机可以操作地耦合以接收来自该海量存储装置的数据或者将数据传输至该海量存储装置或者进行两者。然而,计算机不需要具有这种装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏机、全球定位系统(gps)接收器、或者便携式存储装置(例如,通用串行总线(usb)闪存驱动),仅举数例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,例如,包括:半导体存储器装置(例如,eprom、eeprom、和闪速存储器装置)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、以及cd-rom盘和dvd-rom盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。

为了提供与用户的交互,可以在计算机上实施本说明书中描述的主题的实施例,该计算机具有:用于向用户显示信息的显示装置,例如,crt(阴极射线管)或者lcd(液晶显示器)监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。另外,计算机可以通过将文档发送至用户所使用的装置并且接收来自该装置的文档(例如,通过响应于从web浏览器接收的请求来将网页发送至在用户的客户端装置上的web浏览器)来与用户进行交互。

可以将本说明书中描述的主题的实施例实施在包括后端组件的计算系统(例如,作为数据服务器)、或者包括中间件组件的计算系统(例如,应用服务器)、或者包括前端组件的计算系统(例如,具有关系图形用户界面或者web浏览器的客户端计算机,用户可以通过该图形用户界面或者该web浏览器来与本说明书中所描述的主题的实施方式交互)、或者包括一个或者多个这种后端组件、中间件组件或者前端组件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的组件相互连接。通信网络的示例包括:局域网(“lan”)和广域网(“wan”),例如,互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何发明或者可能被要求保护的内容的范围的限制,而是作为可以针对特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的背景下描述的某些特征还可以组合地实施在单个实施例中。相反,在单个实施例的背景中描述的各种特征也可以单独地或者按照任何合适的子组合实施在多个实施例中。此外,虽然上文可能将特征描述为以某些组合来起作用并且最初甚至同样地对该特征进行了要求保护,但是在一些情况下,可以从组合中删除来自所要求保护的组合的一个或者多个特征,并且所要求保护的组合可以指向子组合或者子组合的变化。

类似地,虽然在附图中按照特定顺序示出了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继的顺序来进行这种操作,或者需要进行所有图示的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,不应该将在上述实施例中的各种系统模块和组件的分离理解为在所有实施例中需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。

已经描述了本主题的特定实施例。其它实施例在以下权利要求书的范围内。例如,可以按照不同的顺序来执行权利要求书中阐述的动作,并且仍然实现期望的结果。作为一个示例,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

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