使用目标和观察来选择强化学习动作的制作方法

文档序号:10687680阅读:247来源:国知局
使用目标和观察来选择强化学习动作的制作方法
【专利摘要】本发明涉及一种用于使用目标和观察的强化学习的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。所述方法中的一个包括接收表征环境的当前状态的观察;接收表征来自环境的目标状态集的目标状态的目标;使用观察神经网络处理观察以生成观察的数字表示;使用目标神经网络处理目标以生成目标的数字表示;组合所观察的数字表示和目标的数字表示以生成组合的表示;使用动作分值神经网络处理组合的表示以为预定的动作集中的每个动作生成相应的分值;以及使用预定的动作集中的动作的相应的分值来选择要执行的动作。
【专利说明】
使用目标和观察来选择强化学习动作
[0001 ]技术领域本说明书涉及通过强化学习代理来选择要执行的动作。
【背景技术】
[0002]强化学习代理通过接收表征环境的当前状态的观察、并且作为响应而执行来自预定的动作集的动作来与环境交互。响应于接收任何给定的观察,某些强化学习代理使用神经网络来选择要执行的动作。
[0003]神经网络为采用一个或多个层的非线性单元来为所接收的输入预测输出的机器学习模型。某些神经网络为深度神经网络,该深度神经网络除输出层外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一层(即下一隐藏层或输出层)的输入。网络的每个层根据相应的参数集的当前值而由所接收的输入生成输出。

【发明内容】

[0004]本说明书描述了涉及强化学习的技术。
[0005]对于被配置为执行特定操作或动作的一个或多个计算机的系统,意指所述系统具有在其上安装的、在操作中使所述系统执行操作或动作的软件、固件、硬件或其组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意指所述一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
[0006]本说明书中描述的主题能够在特定实施例中实现,从而实现一个或多个以下优点。强化学习系统能够有效且直接地考虑强化代理响应于所接收的观察而试图达到选择要由代理执行的操作的目标状态。另外,强化学习系统能够有效地为学习期间未遇到的目标选择动作。选择动作时,强化学习系统能够利用目标空间与观察空间之间的共享结构。
[0007]附图和下面的描述中陈列了本说明书的主题的一个或多个实施例的细节。本主题的其它特征、方面和优点将从描述、附图、和权利要求变得显而易见。
[0008]附图描述
[0009]图1示出了实例强化学习系统。
[0010]图2为用于响应于接收的观察而选择动作的实例过程的流程图。
[0011 ]图3为用于生成目标和观察的组合表示的实例过程的流程图。
[0012]图4为用于训练动作分值神经网络、目标神经网络和观察神经网络的实例过程的流程图。
[0013]在各个附图中类似的附图标记及名称表示类似的元件。
[0014]具体的实施方式本说明书概括地描述了强化学习系统,其选择动作以由与环境交互的强化学习代理(agent)执行。为了与环境交互,代理接收表征环境的当前状态的数据,并响应于所接收的数据,从要执行的预定的动作集选择动作。本说明书中,将表征环境的状态的数据称作观察。
[0015]具体地,代理与环境交互以试图达到环境的预定的目标状态集。本说明书中,将表征来自目标状态集的状态的数据称作目标。例如,当环境为视频游戏并且代理为与视频游戏交互的计算机程序时,每个目标状态可能为视频游戏的玩游戏期间的路点(waypoint),例如表示收集玩游戏所必需的特定物品或显示一条信息的级别或状态的结束的状态。作为另一实例,当环境为真实世界的环境并且代理为与环境交互以完成特定任务的机器人时,每个目标状态可能是由机器人已完成子任务的状态,例如当机器人将物品从一个位置移动至另一位置或以其他方式向完成任务取得进展时。
[0016]图1示出了实例强化学习系统100。强化学习系统100为实现为处于一个或多个位置的一个或多个计算机上的计算机程序的系统的实例,其中实现了下面描述的系统、部件和技术。
[0017]强化学习系统100选择由与环境104交互的强化学习代理102所执行的动作。具体地,强化学习系统100接收观察,其中每个观察表征环境104的状态,并且响应于每个观察而从预定的动作集选择要由强化学习代理102执行的动作。
[0018]具体地,强化学习系统100使用目标神经网络110、观察神经网络120和动作分值神经网络130来选择动作。
[0019]目标神经网络110为配置为接收目标并且处理目标以生成目标的数字表示的神经网络。目标的数字表示为来自嵌入(embedding)的η维向量空间的向量。
[0020]观察神经网络120为配置为接收观察以生成观察的数字表示的神经网络。观察的数字表示也是来自嵌入的η维向量空间的向量。
[0021]在某些实现中,观察神经网络120、目标神经网络110或两者都是多层感知(MLP)神经网络。
[0022]另外,在某些实现中,观察神经网络120和目标神经网络110共享一个或多个参数。例如,可以共享观察神经网络120和目标神经网络110的第一层的参数。
[0023]在某些实现中,动作分值神经网络130是被配置为接收目标和观察的组合表示并且为动作集中的每个动作生成相应的分值的神经网络。
[0024]在某些实现中,动作分值神经网络130是被配置为接收组合表示和动作并且为动作生成分值的神经网络。
[0025]下面将参考图2更详细地描述使用目标神经网络110、观察神经网络120和动作分值神经网络130来选择动作。
[0026]组合表示由强化学习系统100根据目标的数字表示和观察的数字表示所生成。在某些实现中,为了生成组合的表示,系统将η维目标表示和η维观察表示映射为标量值,以生成组合的表示。下面将参考图3更详细描述生成组合的表示。
[0027]图2为用于响应于所接收的观察而选择动作的实例过程200的流程图。为方便起见,将过程200描述为由位于一个或多个位置的一个或多个计算机的系统所执行。例如,强化学习系统,例如图1的强化学习系统100,根据本说明书适当编程,能够执行过程200。
[0028]系统接收表征环境的当前状态的观察(步骤202)。
[0029]系统从一组环境的目标集接收表征目标状态的目标(步骤204)。在某些实现中,系统提供允许用户选择目标状态的界面。一旦被选择,表征目标状态的目标将被系统用于选择要由代理执行的动作,直到用户通过界面切换目标状态为止。在其它实现中,系统从另一系统接收状态,例如,例如使用基于当前观察而选择目标状态的策略、从目标状态集选择要到达的目标状态的系统。
[0030]系统生成观察的和目标的组合表示(步骤206)。下面将参考图3更详细地描述生成组合的表示。
[0031]系统通过使用动作分值神经网络来处理组合的表示,根据组合的表示为动作集中的每个动作生成相应的分值(步骤208)。
[0032]在动作分值神经网络被配置为接收组合的表示作为输入并且处理组合的表示以为所述集中的每个动作生成相应的分值的实现中,系统使用动作分值神经网络来处理组合的表不以生成相应的分值。
[0033]在动作分值神经网络被配置为接收组合的表示和动作作为输入并且处理组合的表示和动作以为动作集中的每个动作生成动作的分值的实现中,系统使用动作分值神经网络来处理动作和组合的表示以为动作生成相应的分值。
[0034]系统使用预定的动作集中动作的相应的分值,响应于观察而选择要由代理执行的动作(步骤210)。
[0035]在某些情况下,系统选择得分最高的动作,即具有动作集中的任何动作的最高分值的动作,作为要由代理执行的动作。
[0036]在某些其它情况下,例如在学习期间,系统可以不时的选择除得分最高的动作之外的动作作为要执行的动作。例如在学习期间,系统可以以概率ε从动作集选择随机动作,并且以概率1-£选择得分最高的动作。
[0037]图3为用于生成目标和观察的组合表示的实例过程300的流程图。为方便起见,将过程300描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,强化学习系统,例如图1的强化学习系统100,根据本说明书适当编程,能够执行过程300。
[0038]系统使用观察神经网络来处理观察,以生成观察的数字表示(步骤302)。
[0039]系统使用目标神经网络来处理目标,以生成目标的数字表示(步骤304)。
[0040]系统根据观察的数字表示和目标的数字表示来生成组合的表示(步骤306)。
[0041]系统可以以各种方式中的任何一个根据观察的和目标的数字表示来生成组合的表不。
[0042]例如,系统可以通过计算观察的数字表示和目标的数字表示之间的点积来生成组合的表不。
[0043]作为另一实例,系统可以通过使用组合神经网络来处理观察的数字表示和目标的数字表示来生成组合的表示,组合神经网络被配置为接收观察的数字表示和目标的数字表示并且处理观察的数字表示和目标的数字表示以生成组合的表示。
[0044]为了确定观察神经网络、目标神经网络、动作分值神经网络、和可选的组合神经网络的参数的训练值,系统训练观察神经网络、目标神经网络、动作分值神经网络、以及可选的组合神经网络。
[0045]在某些实现中,系统联合地使用首尾相连的训练过程来直接训练神经网络,即通过获得标记的训练数据和执行神经网络训练技术例如随机梯度下降,来经过观察神经网络和目标神经网络从动作分值神经网络反向传播错误。
[0046]在某些其它实现中,系统基于矩阵分解使用二阶训练过程来训练神经网络。
[0047]图4为用于训练动作分值神经网络、目标神经网络和观察神经网络的实例过程400的流程图。为方便起见,将过程400表示为由位于一个或多个位置的一个或多个计算机的系统执行。例如,强化学习系统,例如图1的强化学习系统100,根据本说明书适当编程,能够执tx过程400。
[0048]系统训练动作分值神经网络以确定动作分值神经网络的参数的训练值,并且确定理想化目标嵌入和理想化观察嵌入(步骤402)。
[0049]在某些实现中,系统使用部落架构(Hordearchitecture)为动作分值神经网络的训练确定目标。在部落架构中,为来自目标集的每个目标维持不同的神经网络。用于每个目标的神经网络基于所接收的观察生成动作分值。系统使用常规强化学习技术,独立且离线地(off policy)训练部落中的每个神经网络。在第10届自治代理及多代理系统国际会议--2011年卷2第761-768页中的Sutton、Richard S、Modayil、Joseph、Delp、Michae1、
Degris、Thomas、Pilarsk1、Patrick M、White、Adam和Precup、Doina的《部落:用于根据无人监督的感觉运动的交互学习知识的可扩展实时架构》(《Horde:A scalable real-timearchitecture for learning knowledge from unsupervised sensorimotorinteract1n》)中,更详细描述了用于学习部落中的神经网络的实例部落架构和实例技术。
[0050]—旦学习了部落中的神经网络,系统能够基于部落中被学习的神经网络的输出而为动作分值神经网络的训练确定目标,即应该由动作分值神经网络生成的动作分值。系统接着使用神经网络训练技术例如随机梯度下降而在由部落确定的目标上训练动作分值神经网络。
[0051]在某些其它实现中,系统例如使用Q学习技术的变量,通过为训练集中每个目标由受访问转换(transit1n)中的下一状态引导指令,为动作分值神经网络的训练确定目标。
[0052]为了确定理想化目标嵌入和理想化观察嵌入,系统生成数据矩阵,其中一行对应于在动作分值神经网络的训练期间遇到的每个观察,并且一列对应于在动作分值神经网络的训练期间遇到的每个目标。所述矩阵中的项目为用于对应的目标、观察组合的目标动作分值。系统接着分解矩阵以确定为状态和目标两者定义嵌入空间的低秩逼近。
[0053]系统在理想化目标嵌入上训练目标神经网络(步骤404)。也就是说,系统训练目标神经网络以生成使用常规技术来匹配理想化目标嵌入的数字表示。
[0054]系统在理想化观察嵌入上训练观察神经网络(步骤406)。也就是说,系统训练观察神经网络以生成使用常规技术来匹配理想化观察嵌入的数字表示。
[0055]对于配置为执行特定操作或动作的一个或多个计算机的系统,意指系统在其上安装的、在操作中使系统执行操作或动作的软件、固件、硬件或其组合。对于配置为执行特定操作或动作的一个或多个计算机程序,意指一个或多个程序包括指令,当由数据处理装置执行时,该指令使得装置执行操作或动作。
[0056]能够以数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构等效物的计算机硬件、或其一个或多个的组合,实现本说明书中描述的主题和功能操作的实施例。本说明书中描述的主题的实施例能够实现为一个或多个计算机程序,即在有形的非暂时性程序载体上编码的一个或多个计算机程序指令的模块,用于由数据处理装置执行或控制其操作。替代或另外地,程序指令能够在人工生成的传播信号、例如机器生成的电、光或电磁信号上编码,其生成以编码用于传送给适当的接收器装置从而由数据处理装置执行的信息。计算机存储介质能够为机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或其一个或多个的组合。
[0057]术语“数据处理装置”指的是数据处理硬件,并且包含用于处理数据的各种装置、设备和机器,举例来说包括可编程处理器、计算机、或多个处理器或计算机。装置还能够或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASICX专用集成电路)。除了硬件以外,装置能够可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议桟、数据库管理系统、操作系统、或其一个或多个组合的代码。
[0058]计算机程序(还可以称作或描述为程序、软件、软件应用程序、模块、软件模块、脚本、或代码)能够以任何形式的编程语言编写,包括汇编或解释语言、或说明性或过程语言,并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程、或适用于在计算环境中使用的其它单元。计算机程序可以但无需对应于文件系统中的文件。程序能够存储在保存其它程序或数据、例如存储在标记语言文档中的一个或多个脚本的文件的部分中、在专用于所讨论的程序的单个文件中、或多个协调文件中,例如存储一个或多个模块、子程序或代码段的文件。计算机程序能够部署为在一个计算机上或在位于一个地点或分布跨越多个地点并且由通信网络互连的多个计算机上执行。
[0059]本说明书中描述的过程和逻辑流能够由一个或多个可编程计算机执行,其执行一个或多个计算机程序以通过对输入数据和生成的输出进行操作来执行功能。过程和逻辑流还能够由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路来执行,并且装置也可以实现为专用逻辑电路。
[0060]适于计算机程序执行的计算机包括,举例来说,能够基于通用或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元会从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件为用于运行或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还会包括用于存储数据的一个或多个大容量存储设备,例如磁、磁光盘或光盘,或操作地耦接以从其接收数据或向其传输数据,或两者兼有。然而,计算机无需具有这种设备。而且,计算机能够体现在另一设备中,只举几例,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、或可携带存储设备,例如通用串行总线(USB)闪存驱动器。
[0061]适于存储计算机程序指令及数据的计算机可读介质包括所有形式的非易失性存储器、介质及存储器设备,举例来说包括:半导体存储器设备,例如EPR0M、EEPR0M和闪存设备;磁盘,例如内部硬盘或可去除盘;磁光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充,或并入专用逻辑电路。
[0062]为了提供与用户的交互,本说明书中描述的的主题的实施例能够在计算机上实现,其具有用于给用户显示信息的显示设备例如CPRT(阴极射线管)或LCD(液晶显示)监视器、和键盘、以及用户能够通过其给计算机提供输入的指示设备例如鼠标或轨迹球。其它类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够为任何形式的感觉的反馈,例如视觉反馈、听觉反馈、或触觉反馈;以及来自用户的输入能够以任何形式接收,包括声音、语音或触觉输入。另外,计算机能够通过发送文档给由用户使用的设备或从其接收文档来与用户交互;例如,通过响应于从用户客户端设备上的网页浏览器接收的请求而发送网页给网页浏览器。
[0063]本说明书中描述的主题的实施例能够在计算系统中实现,其包括例如作为数据服务器的后端部件,或包括例如应用服务器的中间件部件,或包括例如具有关系图形用户界面或通过其用户能够与本说明书中描述的主题的实现交互的网页浏览器的客户端计算机的前端部件,或一个或多个这种后端、中间件或前端部件的任何组合。系统的部件能够通过任何形式或通过数字数据通信的介质例如通信网络来互连。通信网络的实例包括局域网(“LAN” )和例如互联网的广域网(“WAN” )。
[0064]计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且一般通过通信网络交互。客户端和服务器的关系借助于在各自的计算机上运行并且具有彼此客户端-服务器关系的计算机程序而产生。
[0065]尽管本说明书包含许多具体的实现细节,但不应该将这些解释为对任何发明或可能请求保护的范围的限制,而是作为可能对于特定发明的特定实施例是具体的特征的描述。在各个的实施例的上下文中,本说明书中描述的某些特征在单个实施例中还能够组合实现。相反,在单个实施例的上下文中描述的各种特征也能够在多个实施例中独立地或以任何适当的子组合实现。而且,虽然上面可能将特征描述为以某些组合作用,并且甚至最初也如此请求保护的,但根据请求保护的组合的一个或多个特征在某些情况下能够从组合删去,并且请求保护的组合可以导向子组合或子组合的变型。
[0066]类似地,尽管附图中按特定次序描绘操作,但不该将这理解为要求这种操作按所示的特定次序或顺序次序执行、或执行所有示出的操作以实现期望的结果。某些情形下,多任务和并行处理可能是有利的。而且,上面描述的实施例中各种系统模块及部件的分离,不该理解为要求所有实施例中都这样分离,并且应该理解描述的程序组件及系统一般能够一起集成在单个软件产品中、或封装到多个软件产品中。
[0067]已描述了本主题的特定实施例。其它实施例在随后的权利要求的范围内。例如,所附权利要求中记载的动作能够以不同的次序执行,且仍能够获得期望的结果。作为一个实例,附图中描绘的过程未必需要所示的特定次序或顺序次序来获得期望的结果。在某些实现中,多任务和并行处理可能是有利的。
【主权项】
1.一种用于选择要由强化学习代理执行的动作的方法,所述强化学习代理通过接收表征环境的当前状态的观察、并且作为响应而执行来自预定的动作集的动作来与所述环境交互,其中所述方法包括: 接收表征所述环境的当前状态的观察; 接收表征来自所述环境的目标状态集的目标状态的目标; 使用观察神经网络处理所述观察以生成所述观察的数字表示; 使用目标神经网络处理所述目标以生成所述目标的数字表示; 组合所述观察的数字表示和所述目标的数字表示以生成组合的表示; 使用动作分值神经网络处理所述组合的表示以为所述预定的动作集中的每个动作生成相应的分值;以及 使用所述预定的动作集中的动作的相应的分值来选择要执行的动作。2.根据权利要求1所述的方法,其中,所述动作分值神经网络被配置为接收所述组合的表示作为输入,并且处理所述组合的表示以为所述预定的动作集中的每个动作生成相应的分值。3.根据权利要求1所述的方法,其中,所述动作分值神经网络被配置为接收所述组合的表示和来自所述预定的动作集的动作作为输入,并且处理所述组合的表示和所接收的动作以为所述动作生成分值,并且其中,使用所述动作分值神经网络来处理所述组合的表示包括对于所述预定的动作集中的每个动作: 使用所述动作分值神经网络来处理所述动作和所述组合的表示以为所述动作生成相应的分值。4.根据权利要求1-3中的任一项所述的方法,其中,选择所述要执行的动作包括: 选择得分最高的动作。5.根据权利要求1-3中的任一项所述的方法,其中,选择所述要执行的动作包括: 以概率£从所述动作集选择随机动作;以及 以概率1- ε选择得分最高的动作。6.根据权利要求1-5中的任一项所述的方法,其中,所述观察神经网络为多层感知(MLP)神经网络。7.根据权利要求6所述的方法,其中,所述目标神经网络为多层感知(MLP)神经网络。8.根据权利要求1-7中的任一项所述的方法,其中,所述目标神经网络和所述观察神经网络共享一个或多个参数。9.根据权利要求1-8中的任一项所述的方法,其中,所述组合的表示为所述观察的数字表示与所述目标的数字表示的点积。10.根据权利要求1-8中的任一项所述的方法,其中,组合所述观察的数字表示与所述目标的数字表示以生成所述组合的表示包括: 使用组合神经网络处理所述观察的数字表示和所述目标的数字表示以生成所述组合的表示。11.根据权利要求1-10中的任一项所述的方法,进一步包括: 训练所述动作分值神经网络、所述观察神经网络和所述目标神经网络。12.根据权利要求11所述的方法,其中,所述训练包括: 训练所述动作分值神经网络以确定理想化的目标嵌入和理想化的观察嵌入; 在所述理想化的观察嵌入上训练所述观察神经网络;以及 在所述理想化的目标嵌入上训练所述目标神经网络。13.根据权利要求12所述的方法,其中,训练所述动作分值神经网络包括使用矩阵分解技术来确定所述理想化的目标嵌入和理想化的观察嵌入。14.根据权利要求12或13所述的方法,其中,通过为所述预定的目标集中的每个目标学习分离的动作分值神经网络来确定用于所述动作分值神经网络的训练的目标。15.根据权利要求12或13所述的方法,其中,通过从为训练集中的每个目标的受访问转换中的状态引导指令来确定用于所述动作分值神经网络的训练的目标。16.根据权利要求1-15中的任一项所述的方法,进一步包括: 提供用于选择目标状态的界面,使得所选择的目标用于选择要执行的动作直到通过所述界面切换所选择的目标为止。17.一种系统,包括一个或多个计算机和一个或多个存储设备,所述存储设备存储可操作的指令,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-16中的任一项所述的相应方法的操作。18.—种编码有指令的计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-16中的任一项所述的相应方法的操作。
【文档编号】G06N3/04GK106056213SQ201610328938
【公开日】2016年10月26日
【申请日】2016年4月6日
【发明人】汤姆·绍尔, 丹尼尔·乔治·霍根, 卡罗尔·格雷戈尔, 大卫·西尔韦
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1