中间强化学习目标的无监督的检测的制作方法

文档序号:18516734发布日期:2019-08-24 09:30阅读:182来源:国知局
中间强化学习目标的无监督的检测的制作方法

本说明书涉及强化学习。



背景技术:

在强化学习系统中,代理通过执行由强化学习系统响应于接收表征环境的当前状态的观察而选择的动作来与环境交互。

一些强化学习系统响应于根据神经网络的输出接收给定观察而选择由代理执行的动作。

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



技术实现要素:

本说明书一般性地描述了被实现为在一个或多个位置中的一个或多个计算机的系统如何处理演示序列以确定对于强化学习任务的多个子任务中的每一个进行区别的特征,所述强化学习任务将由与环境交互的代理执行。然后,系统可以使用区别特征来生成奖励以训练代理执行强化学习任务。

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。所描述的系统可以将强化学习任务分区为子任务,并且从而以无监督的方式检测中间目标,即,没有任何明确的子目标指定而直接从执行任务的演示者的视频或其他图像序列中检测中间目标。更具体地,系统可以从非常少量的任务演示中确定分区,例如,从少于20个的演示序列确定分区。然后,系统可以使用所生成的分区来生成奖励函数,以用于训练强化学习代理执行任务。因此,使用所描述的技术,可以以无监督的方式生成密集且平滑的奖励函数,并且可以将其用于有效地训练强化学习代理以仅从少量未标记的演示图像执行复杂任务。或者,奖励函数可用于增加现有的奖励信号,例如手动设计的信号,从而加速强化学习代理的训练,改进训练的强化学习代理的表现,或两者。因为给定的强化学习任务可能具有隐含的子目标和包含更复杂行为的步骤,所以提取本说明书中描述的这些子目标可以允许代理在训练期间最大限度地使用演示中包含的信息,而不需要演示数据的昂贵的和通常不可行的标记。

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

附图说明

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

图2是用于将强化学习任务分区为子任务的示例过程的流程图。

图3是用于生成奖励的示例过程的流程图。

各附图中相同的附图标记和名称指示相同的元件。

具体实施方式

本说明书通常描述了被实现为在一个或多个位置中的一个或多个计算机的系统如何使用演示序列将代理执行的强化学习任务分区为子任务,确定对每个子任务进行区别的特征,并且然后在代理的训练期间使用那些区别特征以生成奖励。

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

强化学习系统100是使用由演示者执行的任务的演示数据130来训练强化学习代理102与环境106交互以执行强化学习任务的系统。

通常,环境106是真实世界环境,并且强化学习代理102是与环境102交互的机械代理。例如,代理102可以是与环境交互以执行强化学习任务的机器人102。代理102可以执行的任务的示例包括将指定对象从环境中的一个位置移动到另一个位置,在环境中定位指定对象,或者在环境中从一个位置导航到另一个位置。

强化学习系统100通过下述方式来训练强化学习代理102:训练用于控制代理102的策略,即,定义在代理102尝试执行强化学习任务时要由代理102执行的动作的策略。

例如,策略可以是神经网络,其接收表征环境状态的观察,例如,由代理102捕获的环境的图像,并且生成定义要由代理102响应于观察执行的动作的策略输出,例如,生成用于代理102的关节的可能关节扭矩的分布的参数的策略输出。

作为另一示例,策略可以是更简单的控制器,例如策略的线性高斯参数化,其将例如,代理102的关节角度和角速度的较低维状态表示作为输入,并输出用于代理102的可能的关节扭矩的分布的参数。

特别地,由系统100使用以训练代理102的演示数据130包括多个演示序列。演示序列是在演示者(例如,另一个机械代理或人类演示者)执行强化学习任务的实例时捕获的环境的图像序列。

为了使用演示序列来训练代理102,系统100通过图像处理神经网络140处理演示序列中的每个图像,以确定用于图像的相应的特征集合的特征值142。

通常,图像处理神经网络140是已经在例如对象检测或图像分类任务的图像处理任务上预训练的神经网络,而无需图像处理神经网络140的参数的值的进一步修改。例如,图像处理神经网络140可以是已经在图像分类数据集合上预训练的inception图像分类神经网络。在下文中更详细地描述了这样的神经网络:christianszegedy、vincentvanhoucke、sergeyioffe、jonathonshlens和zbigniewwojna,rethinkingtheinceptionarchitectureforcomputervision,cvpr,2016年。

对于每个图像,系统100根据在处理图像期间由网络140的一个或多个隐藏层生成的激活来确定图像的特征值。例如,特征值可以是神经网络140的隐藏层中预定的一个隐藏层的输出。作为另一个示例,特征值可以包括神经网络140的多个隐藏层(例如,在网络中的预定层之后的每个层)的输出。

任务分区引擎150根据演示序列中的图像的特征值142确定将强化学习任务分区为子任务,使得每个演示序列中的每个图像被分配给相应的子任务。因此,完成强化学习任务可以被分解为实现多个中间目标,即,完成分区中的每个子任务。任务分区引擎150可以基于演示序列中的图像进行该确定,而无需子任务的任何外部标记,即以无监督的方式。下面参考图2更详细地描述使用演示图像将强化学习任务分区为子任务。

然后,任务分区引擎150根据演示序列中的图像的特征值,为每个子任务确定相应的区别特征集合。给定子任务的区别特征是在该子任务中要实现的特定目标的高度区别特征(即,相对于分区中的其他子任务),同时对不相关的变化(例如,光照、颜色和视点)保持不变的特征。下面参考图2更详细地描述确定每个子任务的区别特征。

一旦任务分区引擎150确定了每个子任务的区别特征,奖励引擎160就可以使用该信息基于用于在代理102的训练期间生成的环境160的图像的区别特征的特征值来为代理102生成奖励,即反映代理在完成一个或多个子任务中的进度。然后,该奖励可用于改进代理的训练,即,加速训练,在训练后改进代理对于任务的执行,或两者。

特别地,训练引擎170使用强化学习技术训练代理102,即训练策略。在强化学习中,学习一种策略,其当用于选择要由代理执行的动作时,最大化作为与环境交互的结果的由代理接收的累积奖励的度量。例如,度量可以是在任务的执行期间接收的奖励的时间折扣总和。通常,奖励是表示代理执行给定任务的程度的数值,并且在强化学习技术中用于调整策略以改进代理对于任务的执行。

训练引擎170可以使用任何适当的基于奖励的强化学习技术来训练代理102。例如,当策略是深度神经网络时,引擎可以使用深度确定性策略梯度(ddpg)技术。在lillicrap、timothy等人,在iclr2016年的continuouscontrolwithdeepreinforcementlearning(利用深度强化学习的连续控制)中详细描述了这样的技术。作为另一个示例,当策略是更简单的控制器时,引擎可以使用基于路径积分的技术。在yevgenchebotar、mrinalkalakrishnan、aliyahya、adrianli、stefanschaal和sergeylevine,pathintegralguidedpolicysearch(路径积分引导策略搜索)中描述了这样的技术的示例。

在一些情况下,由奖励引擎160生成的奖励是训练引擎170用于使用强化学习技术训练代理102的唯一奖励。在其他情况下,训练引擎170还可以从外部源接收其他奖励,并将奖励引擎160生成的奖励与外部奖励组合,例如,作为加权平均值或加权总和,并使用总奖励作为对于强化学习技术的奖励。

图2是用于将强化学习任务分区为子任务的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的强化学习系统,例如,图1的强化学习系统100可以执行过程200。

系统获得多个演示序列(步骤202)。如上所述,每个演示序列是演示者的图像的序列,所述演示者执行代理将被训练执行的强化学习任务。在某些情况下,一个或多个演示者执行的任务的某些特征在各种演示序列之间不同并且与代理将被要求执行的任务不同。例如,任务的初始状态在一些或所有演示序列之间可能不同。

系统通过图像处理神经网络处理每个演示序列中的每个图像,以针对每个图像确定图像的相应的特征集合的特征值(步骤204)。特别地,系统根据由图像处理神经网络的一个或多个隐藏层生成的激活来确定给定图像的特征值。例如,特征值可以是神经网络的一个预定隐藏层的激活或神经网络的多个预定隐藏层的激活。

系统确定将强化任务分区为多个子任务(步骤206),其中,每个演示序列中的每个图像被分配给多个子任务的相应子任务。

通常,系统分区强化学习任务,使得每个分区中的每个图像与分区中的每个其他图像抽象地相似。在一些情况下,系统通过选择(近似地)最小化每个分区内的图像之间的平均特征值方差的分区来实现这一点。

在一些实施方式中,系统通过递归地调整分区来选择最小化平均特征值方差的分区,以确定从预定的最小子任务大小开始最小化平均特征值方差并且满足某些标准的分区,例如,每个子任务包括至少预定的最小数量的图像并且分区的总数固定为预定的数量。

在一些其他实施方式中,系统通过如上所述首先将整个序列分成两个,然后递归地将每个新序列分成两个直到已经达到分区的总数来选择近似最小化平均特征值方差的分区。

在一些实施方式中,系统单独地分区每个演示序列,然后在对区别特征选择之前对齐分区。在一些其他实施方式中,系统联合地分区演示序列,其中,递归考虑了所有演示序列中的特征值。

系统根据演示序列中的图像的特征值,为多个子任务中的每一个确定相应的区别特征集合(步骤208)。如上所述,给定子任务的区别特征是在子任务中要实现的特定目标的高度区别特征,同时对不相关变化(例如,光照、颜色和视点)保持不变的特征。

在一些实施方式中,为了确定给定子任务的区别特征,系统使用分类器即深或浅分类器来处理特征,该分类器被配置为生成识别给定子任务的区别特征的输出。

在一些其它实施方式中,系统首先对演示序列中的图像标准化特征的特征值,以确定每个图像的特征的标准化特征值,即,通过减去所有演示图像的特征的平均值,并除以所有演示图像的特征的标准偏差。

然后,系统针对每个子任务计算:用于不在子任务中的图像的特征的标准化特征值的分布统计,例如平均值和标准偏差;以及,用于在子任务中的图像的特征的标准化特征值的相同分布统计。

对于给定的子任务,系统然后可以根据不在子任务中的图像的特征的标准化特征值的分布统计以及在子任务中的图像的特征的标准化特征值的分布统计来确定子任务的每个特征的分数。例如,给定子任务的特征i的得分zi可以满足:

其中,α是预定的正常数,是子任务中图像的特征的平均特征值,是不在子任务中的图像的特征的平均特征值,是在子任务中的图像的特征的特征值的标准偏差,并且是不在子任务中的图像的特征的标准偏差。

然后,系统可以为每个子任务选择固定数量的最高得分特征作为子任务的区别特征。

图3是用于生成强化学习技术的奖励的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的强化学习系统,例如,图1的强化学习系统100可以执行过程300。

系统可以在强化代理的训练期间重复执行过程300,以提供用于代理的训练的奖励。

系统接收表征环境的当前状态的当前图像(步骤302)。通常,图像是在代理的训练期间执行任务的代理的图像。

系统通过图像处理神经网络处理当前图像以确定当前图像的特征值(步骤304)。该系统使用图像处理神经网络的相同中间输出来生成用于演示图像的特征值,即,使用神经网络的相同的一个或多个隐藏层的输出作为特征值。

系统针对一个或多个子任务中的每一个,从子任务的特征的特征值生成相应的基于感知的奖励(步骤306)。通常,给定子任务的奖励基于当前图像的区别特征的特征值与在给定子任务中的演示图像的区别特征的特征值的相似程度。在一些实施方式中,给定子任务的奖励基于在当前图像的特征值与子任务中的演示图像的特征值的平均值之间的比较。例如,在一些实施方式中,当前图像st的子任务g的奖励rg(st)满足:

其中,n是子任务的总数,j范围超过子任务g的m个区别特征,sijt是当前图像的特征j的特征值,是子任务中的演示图像的特征j的特征值的平均值,并且是子任务中的演示图像的特征j的特征值的标准偏差。

在一些其他实施方式中,系统使用已经训练为接收特征值并生成子任务的奖励的分类器来处理当前图像的特征值(用于区别特征或用于所有特征)。也就是说,系统为每个子任务保持相应的分类器,并通过每个分类器处理特征值,以确定每个子任务的奖励。分类器可以是已经基于演示图像被训练以接收特征值并将接收的特征值映射到单个奖励分数的线性层。

该系统提供一个或多个基于感知的奖励,用于训练代理执行强化学习任务(步骤308)。特别是,因为强化学习技术通常使用在每个训练时间步长接收的单个奖励来训练代理,所以系统组合基于感知的奖励并且在代理的训练中使用组合的奖励,即,作为唯一的奖励或与从不同来源导出的其他奖励相结合。在一些实施方式中,组合奖励部分地奖励中间步骤但强调后续的奖励,即,因为成功完成后续子任务更指示成功完成任务。例如,在一些实施方式中,给定的特征值a的集合的组合奖励r(a)满足:

其中,n是子任务的总数,ri(a)是子任务i的奖励。在此示例中,忽略第一子任务,因为它被假定为演示序列中的初始启动状态。

本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置运行时使装置执行操作或动作的指令。

本说明书中描述的主题和功能操作的实施例可以被实现在数字电子电路中、在有形地实施的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中或在它们的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,其用于由数据处理装置运行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或补充地,程序指令可以编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息用于传输到合适的接收器装置以供数据处理装置运行。

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

计算机程序,也称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码,可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言;并且该计算机程序可以以任何形式部署,该任何形式包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不需要对应于文件系统中的文件。程序可以存储在保存例如,存储在标记语言文档中的一个或多个脚本的其他程序或数据的文件的一部分中、在专用于所涉及的程序的单个文件中或者在多个协同文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过数据通信网络互连的多个计算机上运行。

在本说明书中,术语“数据库”广泛用于指代任何数据集合:数据不需要以任何特定方式结构化或根本不结构化,并且它可以在一个或多个位置的存储设备上存储。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。

类似地,在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将专用于特定的引擎;在其他情况下,可以在同一台计算机或多个计算机上安装和运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由例如,fpga或asic的专用逻辑电路或专用逻辑电路和一个或多个编程计算机的组合来执行。

适合于计算机程序的运行的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备或两者,一个或多个大容量存储设备用于存储数据,例如磁盘、磁光盘或光盘。但是,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),此处仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如,例如eprom、eeprom和闪存设备的半导体存储器设备,;例如内部硬盘或可移动磁盘的磁盘,;磁光盘;以及,cdrom和dvd-rom盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的例如,crt(阴极射线管)或lcd(液晶显示器)监视器的显示设备和键盘以及指示设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过显示设备和键盘以及指示设备向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机可以通过向例如,运行消息收发应用的智能电话的个人设备发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。

用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。

可以使用例如,tensorflow框架、microsoft认知工具包框架、apachesinga框架或apachemxnet框架的机器学习框架来实现和部署机器学习模型。

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

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如,html页面的数据传输到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

虽然本说明书包含许多具体实施方式细节,但是这些不应被解释为对任何发明的范围或对所要求保护内容的范围的限制,而是作为可以对特定发明的特定实施例特定的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变体。

类似地,虽然在附图中描绘了并且在权利要求中以特定顺序叙述了操作,但是这不应被理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者所有所示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

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

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