使用先行搜索来训练动作选择神经网络的制作方法

文档序号:19429743发布日期:2019-12-17 16:18阅读:215来源:国知局
使用先行搜索来训练动作选择神经网络的制作方法

对相关申请的交叉引用

本申请要求于2017年5月26日提交的us临时专利申请号62/511,945的优先权,其公开通过引用被全部合并于本文。



背景技术:

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

强化学习代理通过接收表征环境的当前状态的观察来与环境交互,并且作为响应,执行动作。一旦执行动作,代理就接收取决于对环境执行动作的效果的奖励。

一些强化学习系统使用神经网络以响应于接收任何给定观察来选择将由代理执行的动作。

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



技术实现要素:

本说明书描述涉及强化学习的技术。

在一个创新方面,描述训练具有多个网络参数的神经网络的方法。神经网络用于选择将由与环境交互的代理为了在尝试实现指定结果时执行任务而要执行的动作。神经网络被配置为接收表征环境的状态的输入观察并且根据网络参数来处理输入观察以生成网络输出,网络输出包括动作选择输出,动作选择输出定义用于响应于输入观察来选择将由代理执行的动作的动作选择策略。该方法可以包括接收表征环境的当前状态的当前观察。该方法可以进一步包括通过从当前状态开始直到环境到达满足一个或多个终结准则的可能未来状态为止执行环境的可能未来状态的先行搜索,来确定用于当前观察的目标网络输出。可以由神经网络根据网络参数的当前值来引导先行搜索。该方法可以进一步包括使用通过执行先行搜索所生成的目标网络输出、响应于当前观察来选择将由代理执行的动作。该方法可以进一步包括将与当前观察相关联的目标网络输出存储在探索历史数据存贮器中,用于更新网络参数的当前值。

稍后对这样的方式的优点进行描述,但是这些优点能够包括在非常大/复杂的状态空间中和/或在存在非常稀疏的奖励信号的情况下有效地学习的能力。具体而言,这转换为强化学习系统,强化学习系统能够基本上实现关于学习任务的改善的执行,同时基本上减少训练所需要的处理功率和存储器的量。在实施方式中,该减少的处理功率能够例如通过减少在实际的时间帧中执行训练所需要的专用硬件的量来转换为显著减少的电子功率消耗。也能够促进在物理上更小的计算设备上实施高性能强化学习系统。能够在相应训练的强化学习系统的实施方式中实现类似的优点,稍后描述。

在实施方式中,先行搜索可以是通过具有表示环境的状态的节点的状态树进行的搜索,例如从表示当前状态的根节点开始。如稍后所描述的,可以以任何方便的方式组织定义树的数据。搜索可以继续,直到到达表示环境的(可能的)未来状态的搜索的终结(例如,叶节点)状态。通常,这不同于可以通过任务的执行(执行的失败)定义的或稍后以另外方式描述的交互的情景(episode)的终结状态。

在一些实施方式中,该网络或者另一个网络提供预测期望回报输出,即,由环境处于状态中引起的回报的估计。广义上,这可以被考虑为基于状态的值函数。该方法然后可以包括:当在交互的当前情景的终结状态确定时,基于任务的评估进度来确定目标回报,例如基于所实现的最终结果。这可以用于更新生成目标网络输出的神经网络。

执行先行搜索可以包括:遍历状态树,直到到达叶节点。这可以包括:基于边的动作分数来选择连接到第一节点的多个边之一,以识别树中的下一个节点。动作分数涉及当执行时从通过第一节点所表示的环境的(可能的)状态移动到通过下一个节点所表示的(可能的)状态的动作。可以可选地将动作分数调整取决于可以由动作选择神经网络的网络输出提供的动作的先验概率的量。可以根据相应边已经被遍历多少次的计数来减少调整,以促使探索。可选地,可以将噪声添加到节点——具体地,根节点——的先验概率以用于先行搜索。可以根据网络参数的当前值来评估叶节点,更具体地,使用动作的预测概率分布来生成关于叶节点的外出边的先验概率。可以通过初始化动作分数、然后使用遍历对应边的一个或多个先行搜索的结果更新分数来确定动作分数。

在一些实施方式中,方法可以进一步包括从探索历史存贮器中获取训练观察和与训练观察相关联的训练目标网络输出。可以使用神经网络来处理训练观察以生成训练网络输出。该方法然后可以确定关于目标函数的网络参数的梯度,该目标函数促使训练网络输出匹配训练目标网络输出,该训练目标网络输出然后可以用于更新网络参数。

广义上,先行搜索确定目标网络输出,该目标网络输出然后可以被存储以在稍后提供训练目标网络输出。训练目标网络输出用于改善神经网络,其本身用于在下一迭代中确定目标网络输出。来自先行搜索的(训练)目标网络输出可以包括动作分数或概率(π)的矢量;这些可以与来自搜索的根节点的每个动作的访问计数n或者n1/τ成比例,其中τ是温度。

在一些实施方式中,网络输出可以包括策略数据和状态值数据二者,策略数据诸如给出状态的动作分数或概率的矢量,并且状态值数据诸如状态的预测期望回报,并且可以更新这二者。因此动作选择输出可以定义将由代理执行的可能动作的概率分布。然而,通常,可以采用任何强化学习技术。因此,在一些其他实施方式中,动作选择输出可以包括关于多个可能动作中的每一个的相应q值,其中q值表示如果代理响应于观察执行可能动作则将被接收的期望回报。替换地,动作选择输出可以直接识别或定义将由代理响应于观察所执行的最优动作。

促使训练网络输出与训练目标网络输出匹配的目标函数可以例如包括取决于训练网络输出和训练目标网络输出之间的差别(或相似性)的测量的任何适当的损失函数。

作为示例,适当的目标函数可以包括取决于训练目标网络输出中的概率分布(π)和训练网络输出中的概率分布(p)之间的差别的项,例如πtlogp。另外地或替换地,适当的目标函数可以包括取决于训练目标网络输出中的预测期望回报输出和训练网络输出中的预测期望回报输出之间的差别的项,例如这些项之间的均方误差。

也描述了训练神经网络系统,其包括具有多个训练网络参数的训练神经网络。神经网络系统被配置为选择将由与环境交互的代理为了尝试实现指定结果而执行任务所执行的动作。训练神经网络被配置为接收表征环境的状态的输入观察并且根据训练网络参数来处理输入观察以生成网络输出,网络输出包括动作选择输出,动作选择输出定义用于选择响应于输入观察将由代理执行的动作的动作选择策略。神经网络系统可以包括输入来接收表征环境的当前状态的当前观察。神经网络系统可以进一步包括输出用于根据动作选择输出、响应于当前观察来选择将由代理执行的动作。神经网络系统可以被配置为通过执行先行搜索来提供用于选择动作的输出,其中,先行搜索包括从当前状态开始直到环境到达满足一个或多个终结准则的可能未来状态为止的环境的可能未来状态的搜索。可以由训练神经网络根据网络参数的值来引导先行搜索,具体地使得搜索取决于来自训练神经网络的动作选择输出。

进一步提供训练控制器神经网络的方法,其中,控制器神经网络具有:状态矢量输入,从具有多个状态的主体系统接收状态数据;动作概率矢量数据输出,输出定义用于实施对应动作集合中的每个的概率集合的动作概率矢量,其中在主体系统上执行的动作将系统从通过状态数据所定义的状态移动到状态中的另一个;基线值数据输出,取决于当主体系统处于通过状态数据所定义的状态中时主体系统提供奖励的基线可能性来输出基线值;以及状态矢量输入和动作概率矢量数据输出和值数据输出之间的多个神经网络层,其中,通过多个权重来连接层,其中,该方法包括:在主体系统上实施接连的动作以将系统移动通过接连的状态,其中根据由控制器神经网络所引导的引导先行搜索来选择接连的动作中的动作;生成和存储关于根据引导的先行搜索所选择的动作和状态的概率数据;使用所存储的数据来更新控制器神经网络;以及根据由更新的控制器神经网络所引导的引导先行搜索,在主体系统上实施另外的接连的动作。

还提供包括神经网络的数据处理器,该神经网络包括:状态矢量输入,从具有多个状态的主体系统接收状态数据;动作概率矢量数据输出,输出定义用于实施对应动作集合中的每个的概率集合的动作概率矢量,其中在主体系统上执行的动作将系统从通过状态数据所定义的状态移动到状态中的另一个;基线值数据输出,取决于当主体系统处于通过状态数据所定义的状态中时主体系统提供奖励的基线可能性来输出基线值;以及状态矢量输入和动作概率矢量数据输出和值数据输出之间的多个神经网络层,其中,通过多个权重来连接层;以及训练模块,被配置为:在主体系统上实施接连的动作以将系统移动通过接连的状态,其中根据由神经网络所引导的引导先行搜索来选择接连的动作中的动作;生成关于根据引导的先行搜索所选择的动作和状态的引导先行搜索概率;在存储器中存储状态探索历史数据,关于接连的状态中的状态,包括定义状态的状态数据、关于状态的引导先行搜索概率数据、以及定义与状态相关联的期望或实际的奖励的奖励数据;使用状态探索历史数据来训练神经网络以更新神经网络的权重;以及利用更新的权重根据由神经网络所引导的引导先行搜索在主体系统上实施另外的接连的动作,以生成另外的状态探索历史数据用于训练神经网络。

也提供训练电子控制器,包括:状态矢量输入,从具有多个状态的主体系统接收状态数据;动作概率矢量数据输出,输出定义用于实施对应动作集合中的每个的概率的集合的动作概率矢量,其中在主体系统上执行的动作将系统从通过状态数据所定义的状态移动到状态中的另一个;基线值数据输出,取决于当主体系统处于通过状态数据所定义的状态中时主体系统提供奖励的基线可能性来输出基线值;以及状态矢量输入和动作概率矢量数据输出和值数据输出之间的多个神经网络层,其中,通过多个权重来连接层;以及控制系统,其被配置为:在主体系统上实施接连的动作以将系统移动通过接连的状态,其中根据由神经网络所引导的引导先行搜索来选择接连的动作中的动作,其中引导的先行搜索包括通过由神经网络引导的潜在未来动作和状态的搜索,使得通过潜在未来动作和状态的搜索取决于根据通过潜在未来动作所定义的接连的潜在未来状态、来自神经网络的动作概率矢量和基线值中的一个或两者。

能够在特定实施例中实施本说明书中所描述的主题,以便实现以下优点中的一个或多个。能够有效地选择将由与环境交互的代理为了执行具有非常大的状态空间的任务所执行的动作。换句话说,能够有效地选择动作以最大化将实现诸如执行所学习的任务之类的期望结果的可能性。具体地,即使当环境具有太大而不能被穷尽搜索的状态树时,也能够有效地选择动作。通过在学习期间使用神经网络来引导先行搜索,能够提高训练处理的效力并且能够将神经网络训练为通过更少的训练迭代并使用更少的计算资源关于任务具有较高水平的执行。在实施方式中,通过使用同一神经网络来预测动作选择策略和当前状态的值、即预测回报两者,能够减少神经网络为了有效地选择动作所消耗的计算资源的量。另外地,通过在学习期间采用所描述的引导先行搜索,能够训练神经网络以便在没有外部监督(除了非常稀疏的奖励信号之外)或者任何人类或其他专业数据的情况下实现对任务的高水平的执行。

本说明书的主题的一个或多个实施例的详情在附图和以下具体实施方式中被阐述。根据具体实施方式、附图,和权利要求,主题的其他特征、方面,以及优点将变得明显。

附图说明

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

图2是生成体验历史并且使用体验历史来更新神经网络的参数的值的图。

图3是用于生成体验历史的示例处理的流程图。

图4是用于执行先行搜索的示例处理的流程图。

图5是用于确定对当前网络参数值的更新的示例处理的流程图。

在各个图中的相同附图标记和标号指示相同的要素。

具体实施方式

本说明书通常描述一种强化学习系统,其选择将由与环境交互的强化学习代理执行的动作。为了与环境交互,强化学习系统接收表征环境的当前状态的数据并且响应于所接收的数据从将由代理执行的动作集合中选择动作。一旦已经由强化学习系统选择了动作,代理就执行动作以与环境交互。

通常,代理与环境交互以便执行特定任务,即,实现指定的结果,并且强化学习系统选择动作以便最大化完成任务、即实现结果的可能性。

在一些实施方式中,环境是真实世界环境,并且代理是用于与真实世界环境交互的机械代理的控制系统。例如,代理可以是集成到在环境中导航的自主或半自主车辆中的控制系统。在这些实施方式中,动作可以是可能的控制输入,用于控制车辆和代理尝试实现以满足在真实世界环境中用于车辆的导航的目标的结果。例如,目标能够包括以下中的一个或多个:到达目的地、保证车辆的任何乘坐者的安全、最小化在到达目的地中所使用的能量、最大化乘坐者的舒适度,等等。

作为另一个示例,代理可以是与环境交互的机器人或其他机械代理以便实现特定任务,例如,定位环境中的感兴趣对象或将感兴趣对象移动到环境中的指定位置。在这些实施方式中,动作可以是用于控制机器人的可能的控制输入。

在一些其他实施方式中,真实世界环境可以是制造厂或服务设施,观察可以涉及工厂或设施的操作,例如涉及诸如功率消耗的资源使用,并且代理可以控制工厂/设施中的动作或操作,例如用于减少资源使用。

因此,概括地说,在实施方式中,代理可以是机械或电子代理,并且动作可以包括控制输入来控制机械或电子代理。可以从传感器(例如图像传感器)得出观察,和/或可以从来自代理的电子或机械信号得出观察。

在一些另外的实施方式中,环境是真实世界环境,并且代理是生成用于呈现给用户的输出的计算机系统。

例如,环境可以是患者诊断环境,使得每个状态是患者的相应患者状态,即,通过表征患者的健康的健康数据来反映,并且代理可以是用于建议患者的治疗的计算机系统。在该示例中,动作集合中的动作是用于患者的可能的医学治疗,并且将被实现的结果能够包括维持患者的当前健康、改善患者的当前健康、最小化患者的医药费等等中的一个或多个。观察可以包括来自诸如图像传感器或生物标志物传感器的一个或多个传感器的数据,和/或可以包括例如来自病历的已处理文本。

作为另一个示例,环境可以是蛋白质折叠环境,使得每个状态是蛋白质链的相应状态,并且代理是用于确定如何折叠蛋白质链的计算机系统。在该示例中,动作是用于折叠蛋白质链的可能的折叠动作,并且将被实现的结果可以包括例如折叠蛋白质,使得蛋白质是稳定的并且使得其实现特定生物机能。作为另一个示例,代理可以是机械代理,其在没有与人交互的情况下自动执行或控制由系统选择的蛋白质折叠动作。观察可以包括蛋白质的状态的直接或间接观察和/或可以从模拟得出。

在一些其他实施方式中,环境是模拟环境,并且代理被实施为与模拟环境交互的一个或多个计算机程序。例如,模拟环境可以是虚拟环境,其中用户与计算机化的代理竞争以实现目标并且代理是计算机化的代理。在该示例中,动作集合中的动作是能够由计算机化的代理执行的可能的动作,并且将被实现的结果例如可以是相对用户赢得竞争。

通常,系统使用神经网络来选择将由与环境交互的代理执行的动作。神经网络具有网络参数集合,并且被配置为接收表征环境的状态的输入观察且根据网络参数来处理输入观察以生成网络输出,网络输出包括动作选择输出,动作选择输出定义用于响应于输入观察来选择将由代理执行的动作的动作选择策略。

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

强化学习系统100选择将由与环境104交互的强化学习代理102执行的动作。也就是说,强化学习系统100接收观察,其中每个观察是表征环境104的相应状态的数据,并且,响应于每个接收到的观察,响应于观察来从将由强化学习代理102执行的动作集合中选择动作。

一旦强化学习系统100选择将由代理102执行的动作,强化学习系统100就指示代理102并且代理102执行所选择的动作。通常,执行所选择的动作的代理102导致环境104过渡到不同的状态。

观察以适合于强化学习系统100的使用的上下文的方式来表征环境的状态。

例如,当代理102是用于与真实世界环境交互的机械代理的控制系统时,观察可以是由机械代理的传感器在其与真实世界环境交互时所捕捉的图像,以及可选地是由代理的传感器所捕捉的其他传感器数据。

作为另一个示例,当环境104是患者诊断环境时,观察可以是来自当前患者的电子病历的数据。

作为另一个示例,当环境104是蛋白质折叠环境时,观察可以是蛋白质链的当前配置的图像、表征蛋白质链的成分的矢量,或两者。

具体地,强化学习系统100使用动作选择神经网络130来选择动作。

通常,动作选择神经网络130是被配置为接收包括观察的网络输入并且根据动作选择神经网络的参数(“网络参数”)来处理网络输入以生成网络输出的神经网络。网络输出包括动作选择输出,并且在某些情况下包括预测期望回报输出。典型地,预测期望回报是来自动作选择神经网络的另一个“头部”的第二输出,但是其可以通过可以与动作选择神经网络联合训练的单独的第二神经网络来生成。

动作选择输出定义用于响应于输入观察来选择将由代理执行的动作的动作选择策略。

在一些情况下,动作选择输出定义将由代理执行的可能动作的概率分布。例如,动作选择输出能够包括用于能够由代理执行以与环境交互的可能动作集合中的每个动作的相应动作概率。在另一个示例中,动作选择输出能够包括可能动作集合的分布的参数。

在一些其他情况中,动作选择输出包括关于多个可能动作中的每一个的相应q值。关于可能动作的q值表示如果代理响应于观察执行可能动作则将被接收的期望回报。

在一些情况下,动作选择输出从将由代理响应于观察执行的可能动作集合中识别最优动作。例如,在控制机械代理的情况下,动作选择输出能够识别将被施加到机械代理的一个或多个关节的扭矩。

对于给定观察的预测期望回报输出是由环境处于通过观察所表征的状态中引起的回报的估计,其中回报典型地是作为代理与环境交互的结果所接收的数值奖励或者数值奖励的组合(例如,时间折扣总和)。可以通过标量值v(s)来指定预测期望回报。通常,奖励反映代理朝着完成指定的结果的进度。在许多情况下,奖励将是稀疏的,其中仅在交互的任何给定情景的终结状态接收奖励并且奖励指示是否实现了指定的结果。

本说明书的其余部分将描述动作选择输出是或定义将由代理执行的可能动作的概率分布的情况。然而,本领域普通技术人员将理解,这些情况能够容易地被适配为训练和使用生成以上引用的其他种类的动作选择输出中的一个的神经网络。

为了允许代理102有效地与环境104交互,强化学习系统100训练神经网络130以确定网络参数的训练值。

具体地,训练包括两个部分:动作选择部份和参数更新部分。

在动作选择部份期间,动作选择子系统120接收观察并且通过使用神经网络130执行先行搜索(lookaheadsearch)来选择响应于观察将由代理执行的动作以与环境交互。具体地,对于给定的交互情景,即,在情景的初始状态开始并且在终结状态结束的交互集合,动作选择子系统120基于先行搜索的结果来选择动作,而非直接地使用由神经网络130生成的动作选择输出。基于交互的结果,动作选择子系统120生成探索历史并且将探索历史存储在探索历史数据存贮器140中。以下参考图2-4来描述执行先行搜索以及生成探索历史。

在参数更新部分期间,参数更新子系统110从探索历史数据存贮器140中获取探索历史并且使用历史来更新神经网络130的参数的值。以下参考图5来描述更新神经网络130的参数的值。

在训练期间,动作选择子系统120和参数更新子系统110重复地异步且并行地执行训练处理的它们的对应的部分。在一些情况下,处理的这些部分中的一个或两者是分布式的,使得并行地训练神经网络130的许多不同的实例,其中计算展开在多个计算单元上,例如,多个计算机或单个计算机内的多个芯。

在一些实施方式中,动作选择子系统120使用环境104的模拟版本来执行先行搜索。

通常,环境104的模拟版本是模拟由代理120执行的动作将如何影响环境104的状态的虚拟化环境。

例如,当环境104是真实世界环境并且代理是自主或半自主车辆时,环境的模拟版本是模拟真实世界环境中的导航的运动模拟环境。也就是说,运动模拟环境模拟各种控制输入对于真实世界环境中的车辆的导航的效果。更一般地说,当环境104是真实世界环境并且代理是机械代理时,环境的模拟版本是对由代理执行的动作将如何改变环境104的状态进行建模的动态模型。

作为另一个示例,当环境104是患者诊断环境时,环境的模拟版本是模拟医学治疗对患者的效果的患者健康模拟。例如,患者健康模拟可以是接收患者信息和将被应用于患者的治疗并且输出治疗对患者的健康的效果的计算机程序。

作为另一个示例,当环境104是蛋白质折叠环境时,环境的模拟版本是模拟折叠动作对蛋白质链的效果的模拟蛋白质折叠环境。也就是说,模拟蛋白质折叠环境可以是维持蛋白质链的虚拟表示并且对执行各种折叠动作将如何影响蛋白质链进行建模的计算机程序。

作为另一个示例,当环境104是以上描述的虚拟环境时,环境的模拟版本是其中用另一个计算机化的代理来代替用户的模拟。

在一些实施方式中,动作选择子系统120通过执行由神经网络130的输出引导的树形搜索来执行先行搜索。具体地,在这些实施方式中,动作选择子系统120维持表示环境104的状态树的数据。状态树包括表示环境104的状态的节点和连接树中的节点的有向边。树中从第一节点到第二节点的外出边表示响应于表征第一状态的观察被执行并且导致环境过渡到第二状态的动作。

尽管数据在逻辑上被描述为树,但能够通过任何各种合适的物理数据结构来表示动作选择子系统120,例如被表示为多个三元组或邻接表。

动作选择子系统120也在状态树中维持关于每个边的边数据,边数据包括(i)关于通过边所表示的动作的动作分数、(ii)关于通过边所表示的动作的访问计数和(iii)关于通过边所表示的动作的先验概率。

在任何给定时间,关于动作的动作分数表示如果执行动作则将被接收的回报的当前估计,关于动作的访问计数是由代理102响应于表征通过边的相应第一节点所表示的相应第一状态的观察已经执行动作的当前次数,并且先验概率表示动作是代理102响应于表征相应第一状态的观察应当执行的动作的可能性。

动作选择子系统120在训练期间从使用神经网络130所执行的先行搜索来更新表示状态树的数据和关于状态树中的边的边数据。在下面参考图2-4来更详细地描述执行先行搜索。

在一些实施方式中,在神经网络130已经被训练之后,系统100在响应于观察选择动作时直接地使用由神经网络130生成的动作选择输出。在其他实施方式中,即使在神经网络已经被训练之后,系统100也继续使用神经网络130来执行先行搜索并且使用那些先行搜索的结果来选择将由代理执行的动作。

图2是生成体验历史并且使用体验历史来更新神经网络130的参数的值的图200。

如图2中所示,在执行任务的一个情景期间,系统选择将由代理响应于观察s1至st——即,从当环境处于初始状态s1时开始并且直到环境到达终结状态st为止——所执行的动作。情景的终结状态可以是其中已经实现了指定的结果的状态、在环境处于初始状态后已经执行了指定数量的动作之后但还没有实现指定的结果的情况下环境所处于的状态、或其中系统确定不大可能实现该结果的状态。

具体地,响应于每一个观察s,系统生成定义动作集合的概率分布的目标动作选择输出π并且然后根据通过目标动作选择输出π所定义的概率分布来采样将由代理执行的动作a。例如,系统响应于观察s2根据目标动作选择输出π2来采样将由代理执行的动作a2。

为了响应于给定观察而生成目标动作选择输出,系统使用神经网络130来执行先行搜索,即,由神经网络根据网络参数的当前值所引导的先行搜索。因而,系统使用神经网络执行先行搜索来选择用于代理的动作,而非使用神经网络来直接地选择动作。

在网络输出也包括预测回报的情况中,系统也在情景的终结观察t之后获取目标回报z。目标回报能够基于环境的终结状态是否实现指定的结果,例如,如果终结状态实现了结果则是1,并且如果终结状态没有实现结果则是0或-1。

对于在执行任务的实例期间所遇到的每一个观察,系统也生成包括观察的体验历史、通过先行搜索响应于观察所生成的目标输出、以及目标回报z。例如,系统生成包括观察s2、目标输出π2和目标回报z的体验历史。

系统然后能够(相对于生成体验历史异步地)来使用体验历史以更新神经网络130的参数的值。具体地,对于包括观察s、目标输出π和目标回报z的体验历史,系统使用神经网络130来处理观察s以生成包括动作选择输出p和预测回报v的网络输出。系统然后通过调整网络参数的值来训练神经网络130,使得动作选择输出p更紧密地匹配目标输出π并且预测回报v更紧密地匹配目标回报z。

图3是用于生成体验历史的示例处理300的流程图。为了方便起见,处理300将被描述为通过位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的强化学习系统(例如,图1的强化学习系统100)能够执行处理300。

系统接收当前观察(步骤302)。

系统通过使用神经网络并且根据神经网络的当前值执行先行搜索来生成用于观察的目标动作选择输出(步骤304)。具体地,系统执行先行搜索以遍历从通过当前观察所表征的当前状态开始的环境的可能未来状态。系统继续先行搜索,直到遇到满足终结准则的可能未来状态为止。例如,先行搜索可以是树形搜索,并且准则可以是通过状态树中的叶节点来表示未来状态。以下将参考图4更详细地描述执行先行搜索。

系统使用目标动作选择输出、响应于当前观察来选择将由代理执行的动作(步骤306),例如,通过根据通过目标动作选择输出所定义的概率分布进行采样。

系统获取目标回报(步骤308)。目标回报是从动作被执行之后开始并且当环境到达当前情景的终结状态时结束由系统获取的回报。如上所述,目标回报反映代理从处于通过当前观察所表征的状态中开始朝向实现指定的结果的进度。在许多情况下,奖励是稀疏的并且仅仅在终结状态被接收。

系统生成体验历史,体验历史包括当前观察以及包括目标动作选择输出和目标回报的目标网络输出(步骤310),并且然后系统将所生成的体验历史存储在体验历史数据存贮器中。

系统能够对于在代理与环境的交互的情景期间接收的每个情景重复处理300。

图4是用于使用神经网络来执行环境的先行搜索的示例处理400的流程图。为了方便起见,处理400将被描述为通过位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的强化学习系统(例如,图1的强化学习系统100)能够执行处理400。

系统接收标识用于搜索的根节点——即,表示通过当前观察所表征的状态的节点——的数据(步骤402)。

系统遍历状态树,直到状态树到达叶状态,即,通过状态树中的叶节点所表示的状态(步骤404)。

也就是说,在每个树内(in-tree)节点,即,从根节点开始直到到达叶状态为止所遇到的节点,系统使用用于从表示树内状态的树内节点起的外出边的边数据来选择将被遍历的边。系统可以基于动作分数来选择边或可以确定用于选择边的调整的动作分数。

具体地,对于来自树内节点的每个外出边,系统可以基于关于边的动作分数(q(s,a))、关于边的访问计数(n)以及关于边的先验概率(p(s,a))(稍后进一步描述)来确定用于边的调整的动作分数。通常,系统通过向关于边的动作分数添加与关于边的先验概率成比例的但是随重复的访问而衰减的红利以促使探索来计算关于给定边的调整的动作分数。例如,红利可以与先验概率与一比率的乘积直接成比例,该比率具有关于从根节点起的所有外出边的所有访问计数之和的平方根作为分子且具有常数、例如一加上关于表示动作的边的访问计数作为分母。例如,红利可以取决于p(s,a)/(1+n)。

系统然后选择具有最高调整的动作分数的边作为将从树内节点遍历的边。

在一些情况下,为了进一步驱动状态空间的探索,在选择用于根节点的动作之前,系统向关于根节点的先验概率添加噪声。例如,系统可以在关于给定动作的实际先验概率和从狄利克雷(dirichlet)过程中采样的噪声之间进行插值,以生成当在根节点时选择将被执行的动作时所使用的最终先验概率。

系统继续用这样的方式遍历状态树,直到到达状态树中的叶节点。通常,叶节点是在状态树中没有子节点的节点,即,没有通过外出边连接到任何其他节点。

系统然后扩充叶节点(步骤406)。

为了扩充叶节点,系统可以对于作为将由代理响应于表征通过该叶节点所表示的状态的叶观察而执行的有效动作的每个动作,向状态树添加相应的新边。系统也通过将关于新边的访问计数和动作分数设置为零来初始化关于每个新边的边数据。

系统根据参数的当前值、使用动作选择神经网络评估叶节点以生成关于每个新边的相应先验概率(步骤408)。为了确定关于每个新边的先验概率,系统可以使用动作选择神经网络来处理叶观察并且使用来自通过网络输出定义的分布的动作概率作为关于对应边的先验概率。系统也可以从由神经网络处理叶观察的结果来生成关于叶观察的预测回报。

系统然后基于关于叶节点的预测回报来更新关于在搜索期间遍历的边的边数据(步骤410)。

具体地,对于在搜索期间遍历的每个边,系统将关于边的访问计数递增预先确定的常量值,例如,递增一。系统也通过将动作分数设置为等于涉及遍历该边的所有搜索的预测期望回报的新的平均、使用关于叶节点的预测期望回报来更新关于边的动作分数。

系统使用先行搜索的结果来确定用于当前观察的目标动作选择输出(步骤412)。具体地,在已经基于先行搜索的结果更新了边数据之后,系统使用关于从根节点起的外出边的访问计数来确定目标网络输出。例如,系统能够对关于从根节点起的外出边的访问计数应用softmax以确定目标网络输出中的概率。在一些实施方式中,softmax具有降低的温度来促使状态空间的探索。在一些实施方式中,仅仅在已经在情景内执行了阈值数量的先行搜索之后降低softmax温度以确保在各个情景期间遇到各种状态集合。

如上所述,在某些情况下,系统使用环境的模拟版本来执行先行搜索,例如,识别当在叶状态中时采取动作引起哪个状态、识别当关于动作的外出边没有连接到树中的任何节点时采取动作引起哪些状态、或者验证关于树内节点的边数据准确地反映当给定动作被选择时将出现的过渡。

在一些实施方式中,系统分布状态树的搜索,即,通过在多个不同机器(即,计算设备)上或者在一个或多个这样的机器上的多个线程中并行地运行多个不同的搜索。

例如,系统可以实施包括执行主要搜索的主机的架构。可以将整体状态树存储在主设备上,该主设备仅仅执行每个模拟的树内阶段。将叶位置传送到一个或多个工作者,该一个或多个工作者执行模拟的扩充和评估阶段。

在一些情况下,自边数据的最近更新——例如在正在并行地执行多个不同的搜索的情况下为了提高搜索处理的稳定性——起直到预先确定的数量的先行搜索已经被执行之前,系统不更新边数据。

图5是用于确定对网络参数的当前值的更新的示例处理500的流程图。为了方便起见,处理500将被描述为通过位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的强化学习系统(例如,图1的强化学习系统100)能够执行处理500。

系统从体验历史数据存贮器中获取体验历史(步骤510)。例如,体验历史能够是从体验历史数据存贮器采样的一批体验历史之一。

系统使用神经网络并且根据网络参数的当前值来处理体验历史中的观察以生成训练网络输出(步骤520)。

系统关于目标函数的网络参数来确定梯度,该目标函数促使训练网络输出匹配体验历史中的训练目标网络输出(步骤530)。

当训练网络输出和体验历史仅仅包括动作选择输出时,目标函数能够测量训练目标网络输出中的概率分布与训练网络输出中的概率分布之间的差别。例如,目标函数能够是交叉熵损失函数。

当训练网络输出和体验历史包括动作选择输出和回报两者时,目标函数能够是以下(i)和(ii)之间的加权和,其中:(i)训练目标网络输出中的概率分布与训练网络输出中的概率分布之间的差别,例如,两个分布之间的交叉熵损失,以及(ii)训练目标网络输出中的预测期望回报输出与训练网络输出中的预测期望回报输出之间的差别(例如,均方差)。在任一情况中,目标函数也能够包括一个或多个正则项,例如,l2正则项,以防止过适。

因此,优化目标函数促使神经网络生成匹配目标动作选择输出的动作选择输出,并且当使用时,促使神经网络生成匹配目标预测回报的预测回报。

系统根据梯度确定对网络参数的当前值的更新(步骤540),即,使用梯度作为对网络参数的更新。

系统能够对于一批体验历史中的每个体验历史执行处理500以确定关于每一个体验历史的相应更新。系统然后能够应用对网络参数的当前值的更新以确定参数的更新的值,即,根据通过由系统使用的优化器所指定的更新规则进行此,以训练神经网络。例如,当优化器是随机梯度下降优化器时,系统能够将所有更新求和、将和与学习速率相乘,并且然后将结果添加到网络参数的当前值。

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

术语“数据处理装置”指的是数据处理硬件并且包含用于处理数据的种种装置、设备,和机器,作为示例,其包括可编程处理器、计算机,或者多个处理器或计算机。装置也能够或进一步包括专用逻辑电路——例如,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