首页 / 任务的强化和模仿学习

任务的强化和模仿学习实质审查 发明

技术领域

[0003] 本说明书涉及用于训练神经网络以控制代理在环境中执行任务的方法和系统。

相关背景技术

[0004] 在强化学习(RL)系统中,代理通过执行由强化学习系统响应于接收到表征环境的当前状态的观察结果而选择的动作来与环境交互。
[0005] 一些强化学习系统依照神经网络的输出来选择要由代理响应于接收到给定观察结果而执行的动作。
[0006] 神经网络是采用非线性单元的一个或多个层来针对接收到的输入预测输出的机器学习模型。一些神经网络是除了包括输出层之外还包括一个或多个隐藏层的深度神经网络。每个隐藏层的输出被用作网络中的下一层即下一个隐藏层或输出层的输入。网络的每个层依照相应的参数集的当前值从接收到的输入生成输出。
[0007] 一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,递归神经网络可在在当前时间步计算输出时使用来自前一个时间步的网络的一些或全部内部状态。递归神经网络的示例是包括一个或多个长短期(LSTM) 记忆块的LSTM神经网络。每个LSTM记忆块可包括一个或多个单元,所述单元各自包括输入门、遗忘门和输出门,所述输出门允许单元为该单元存储先前的状态,例如,用于在生成当前激活时使用或者被提供给LSTM神经网络的其它组件。
[0008] 在模仿学习(IL)系统中,神经网络被训练以使用表征其中任务先前已由代理在专家诸如人类用户的控制下执行的实例的数据来控制代理执行任务。

具体实施方式

[0043] 图1示出根据本公开的示例的系统100。它包括至少一个图像捕获设备(例如静态相机或摄像机)101和至少一个代理102。代理是在包括至少一个对象103的真实世界环境中对一个或多个真实世界对象进行操作的“真实世界”设备。该设备可以例如是机器人,但可替选地可以是交通工具,诸如自主或半自主陆地或空中或海上交通工具。为了简单图示了仅单个图像捕获设备101、仅单个对象103和仅单个代理 102,但是在其它示例中多个图像捕获设备和/或对象和/或代理是可能的。
[0044] 由图像捕获设备100捕获的图像包括对象103,并且通常还包括代理102。图像捕获设备100可以具有静态位置,在所述静态位置处它捕获一些或所有环境的图像。可替选地,可以能够在控制机构(未示出)的影响下控制图像捕获设备101以改变其视场。在一些实施方式中,图像捕获设备101可以被定位在代理102上,以便它随代理102 而移动。图像捕获设备101使用图像来生成图像数据104。图像数据可以针对阵列中的多个像素中的每一个采取RGB(红色-绿色-蓝色)数据的形式。
[0045] 用于控制代理102的控制信号105由控制系统106生成,所述控制系统106被实现为神经网络。控制系统106接收由图像捕获设备101 生成的图像数据104作为一个输入。
[0046] 控制系统106的另一个输入是表征代理102的目前定位和目前配置的数据107。此数据被称为“本体感受”数据107。
[0047] 在第一示例中,代理102可以包括一个或多个接合部,所述接合部允许代理102的一个构件(组件)按一个、两个或三个自由度绕代理102的另一构件旋转(例如,代理的第一臂可以绕代理的第二臂枢转;或者代理的“手”可以相对于支撑它的代理的臂围绕一个或多个轴旋转),并且如果是这样的话,则本体感受数据107可以指示这些接合部中的每一个的目前角度配置。
[0048] 在第二示例中,本体感受数据107可以指示机器人的第一构件相对于机器人的另一构件平移的量。例如,第一构件可以沿着由机器人的另一构件限定的轨道平移。
[0049] 在第三示例中,代理102可以包括一个或多个驱动机构以(通过平移和/或旋转)使代理总体上相对于其环境位移。例如,此位移可以是代理102的基础构件在环境内平移/旋转的量。本体感受数据107可以指示代理已被位移的量。
[0050] 本体感受数据的这三个示例可按照任意组合彼此组合。附加地或可替选地,本体感受数据107可以包括指示本体感受数据的这三个示例中的任一个的至少一个时间导数的数据,例如对时间的一阶导数。也就是说,本体感受数据107可以包括在机器人的一个构件在接合部处绕机器人的另一构件旋转的一个、两个或三个维度上角速度中的任何一个或多个;和/或机器人的一个构件相对于另一构件的平移速度;和/或机器人总体上在其环境中的角速度或平移速度。
[0051] 控制系统106包括多个神经网络层。在图1的示例中它包括接收图像数据104的卷积网络108。卷积网络108可以包括一个或多个卷积层。控制系统106还包括神经网络109(其可以作为单层或多层感知器被实现),所述神经网络109接收本体感受数据107和卷积网络108 的输出两者。例如,本体感受数据107可以与卷积网络108的输出级联以形成用于感知器109的输入串。
[0052] 控制系统106还包括递归神经网络110,诸如LSTM单元,其接收感知器109的输出,并且生成输出。
[0053] 控制系统106还包括接收递归神经网络110的输出并且从其生成控制数据105的输出层111。这可以针对代理102的自由度中的每一个采取期望速度的形式。例如,如果代理102的自由度包括一个或多个接合部的角位置,则控制数据105可以包括为接合部的每个自由度指定期望角速度的数据。
[0054] 可选地,输出层111可以根据通过输出层111的输入所定义的分布生成控制数据作为样本。因此,控制系统106总体上定义根据动作空间 上的概率分布来输出样本的随机策略πθ,即为动作空间中的任何可能的动作a指定相应的概率值。概率分布取决于到控制系统106的输入数据。实现控制系统106的神经网络可以被称为“策略网络”。
[0055] 图2图示在其中训练控制系统106的系统200。在图2中具有与图1的元素相同的重要性的元素被给出高100的附图标记。因此,控制系统106被标明为206。卷积网络108被标明为208,感知器109被标明为209,并且层110和111被表示为210、211。将在下面参考图3 更详细地描述系统200的操作方法。
[0056] 系统200包括存储“专家轨迹”的数据库220。这些在下面被详细地说明,但是一般地说是代理在人类专家的控制下执行计算任务的实例的记录。
[0057] 系统200还包括定义环境和代理的初始状态的初始状态定义单元221。如下所述,初始状态定义单元221可以通过从数据库220中选择状态或者通过随机生成新状态来做这个。初始状态通过表示为st的“物理状态数据”定义,所述“物理状态数据”指定当环境中的所有对象处于初始状态时它们的位置和可选地速度(整数索引t可以例如表示当初始状态被定义时用于控制系统206的训练算法已经运行的时间量),并且通常还指定代理的所有构件(组件)的位置/速度。基于由初始状态定义单元221生成的初始状态的物理状态数据,初始状态定义单元221 生成包括图像数据204和本体感受数据207的对应的“控制系统状态数据”,并且将它们分别发送到卷积网络208和感知器209。控制系统状态数据的本体感受数据207可以是包括在物理状态数据中的数据。可以根据物理状态数据在计算上生成图像数据
204,因为它是通过使用“虚拟相机”对环境的初始状态进行成像来捕获的。例如对于每个相应的初始状态,可以随机选择虚拟相机的位置和/或定向。
[0058] 卷积网络208的输出被既发送到感知器209,并且也发送到可选的辅助任务神经网络224。辅助任务神经网络224包括输入神经网络 225(诸如多层感知器)和输出层226。输入神经网络225的输出被发送到输出层226,所述输出层226对它进行格式化以生成输出P。如下所述,可训练辅助任务神经网络222以执行辅助任务,例如使得输出层226输出表征环境中的对象的位置的数据P。
[0059] 控制系统206的输出是适合于控制代理的控制数据205。没有代理被包括在系统200中。替代地,控制数据被发送到已从初始状态定义单元221附加地接收到与初始系统状态相对应的物理状态数据st的物理模拟单元223。基于物理状态数据st和控制数据205,物理模拟单元223被配置成如果代理102执行了通过控制数据205所定义的动作,生成模拟物理状态数据st+1,其指示环境和代理在从初始系统开始会产生的紧接着的时间步的配置。
[0060] 控制数据205以及由初始状态定义单元221生成的初始物理状态数据st被发送到鉴别器网络222,所述鉴别器网络222可以作为多层感知器被实现。(在通过整数索引i=1,...,K计数的下面描述的后面的步骤中,其中K是优选地大于1的整数,初始物理状态数据st被由物理模拟单元223生成的物理状态数据st+i替换)。在下面更详细地说明鉴别器网络
222,但是一般而言它生成指示通过控制数据205所指定的动作a与人类专家在环境和代理处于初始状态的情况下将会指示代理进行的动作有多类似的输出值
[0061] 物理模拟单元223可以被配置成使用st和a来生成更新的物理状态数据st+1,直接地指示环境中的对象和代理在代理执行动作a之后的位置/配置。根据更新的物理状态数据st+1,物理模拟单元223生成更新的控制系统状态数据,即新的图像数据和新的本体感受数据,并且将这些分别反馈给卷积网络208和感知器209,以便控制系统206可生成新的控制数据205。此循环继续直到更新的物理状态数据已被生成K 次为止。最终一批物理状态数据是环境和代理的最终状态的物理状态数据st+K。
[0062] 因此,系统200能够从由初始状态定义单元221定义的初始状态开始生成用于代理采取的一系列动作(通过相应的控制数据集来定义)。
[0063] 如在下面参考图3所描述的,在控制系统206的训练期间,初始状态的物理状态数据st以及在K步之后系统的最终状态的随后更新的物理状态数据st+K被发送到值神经网络227以用于计算值Vφ(st)和 Vφ(st+K)。值神经网络227可以包括被布置成接收物理状态数据的多层感知器228,以及被布置成接收感知器228的输出的递归神经网络229,诸如LSTM单元。它还包括用于基于输出层230的输入来计算值函数 Vφ(s)的输出层230。
[0064] 由初始状态定义单元221和物理模拟单元223输出的物理状态数据、由值网络227生成的值Vφ(st)和Vφ(st+K)、辅助任务网络224的输出 P以及鉴别器网络222的输出全部都被馈送到更新单元231。更新单元231基于其输入被配置成更新控制系统206,例如卷积网络 208和层209、210。更新单元231还被配置成更新辅助任务网络224 (例如单元225)、值网络227和鉴别器网络222。
[0065] 系统200还包括负责发起并终止训练过程的控制器232。
[0066] 我们现在转向图3中图示的用于训练控制系统206以在系统200 内执行任务并且用于随后使用图1的系统100来在真实世界环境中执行该任务的方法300的描述。训练采用描述由专家对任务的执行的数据集以及随着控制系统206学习而表征由代理102在控制系统206的控制下对任务的附加模拟执行的附加数据集两者。训练组合模仿学习和强化学习的优势。
[0067] 在方法300的第一步骤301中,获得表征由人类代理对任务的执行的相应实例(“专家轨迹”)的多个数据集。这些数据集通常通过人类控制代理102执行任务(而不是人类在不使用代理102的情况下手动执行任务)的实例来生成。描述专家轨迹的每个数据集包含描述在当专家执行任务时的多个时间步中的每一个处对象的位置和可选地速度的物理状态数据。它还包含定义在这些时间步处代理的所有构件的位置和可选地速度的数据(这个可以形式为本体感受数据)。数据集还可以可选地包含每个时间步的对应的图像数据。然而,更优选地这种图像数据由初始状态定义单元221稍后在方法中(在步骤302中,如在下面所说明的那样)从物理状态数据生成。数据集被存储在数据库 220中。
[0068] 可选地,可以将任务划分成许多任务阶段。例如,如果任务是控制代理102拾取块并堆叠它们的任务,则我们定义三个任务阶段:到达块、抬升块和堆叠块(即将抬升的块放置到另一块上)。可以将每个专家轨迹分割成与任务阶段相对应的相应部分。这是有利的,因为对于具有长持续时间的任务来说强化学习往往是不太成功的。
[0069] 步骤302-311描述用于训练系统200内的控制系统206的迭代过程312。目标是为了学习采用图像数据100(例如RGB相机观察结果) 和本体感受数据107(例如描述接合部位置和角速度的特征矢量)两者作为输入的视觉运动策略。整个网络被端到端训练。
[0070] 在步骤302中,环境和代理102的起始状态(“初始状态”)由初始状态定义单元221定义。使初始状态的分布成形为最优策略往往访问的状态可大大地改进策略学习。由于这个原因,优选地对于每个任务阶段使用作为针对环境和代理的从专家轨迹中取得的状态的物理状态数据的演示状态的相应预定义集(状态的“聚类”)来执行步骤302,使得用于每个任务阶段的演示状态集由在与该任务阶段相关联的对应专家轨迹的部分中的状态组成。在步骤302中,在概率f情况下,随机地定义初始状态。这是环境以及代理的实际上例如通过根据基于任务定义的预定义概率分布进行选择生成的可能的状态。相反地,在概率 1-f情况下随机地选择聚类,并且初始状态被定义为来自该聚类的随机地选取的演示状态。这是可能的,因为模拟系统完全通过物理状态数据来表征。
[0071] 初始状态st定义对象和代理102的模拟中的初始位置、定向、配置和可选地速度。
[0072] 从初始物理状态数据,初始状态定义单元221生成模拟控制系统状态数据,即作为对会在处于初始状态的环境(和可选地代理)由处于假定(例如,随机地选取的)位置和定向的虚拟相机捕获的情况下捕获的图像进行编码的图像数据的图像数据204。可替选地,初始状态定义单元221可以从数据库220读取此图像数据(如果它存在于那里的话)。初始状态定义单元221将图像数据204发送到卷积网络208。
[0073] 初始状态定义单元221还从数据库220生成或者读取初始状态的本体感受数据207,并且将这个作为控制系统状态数据的一部分发送到感知器209。注意,即使相结合地,图像数据204和本体感受数据207 也可能不足以唯一地确定初始状态。
[0074] 初始状态定义单元221将完全描述初始状态的物理状态数据st传递给物理模拟单元223和更新单元231。物理模拟单元223将物理状态数据st转发到鉴别器网络222和值网络227。(在该实施例的变体中,初始状态定义单元221将初始物理状态数据st直接地发送到鉴别器网络222和/或值网络227。)值网络227使用st来生成Vφ(st),并且将它发送到更新单元
231。
[0075] 在步骤303中,控制系统206生成指定表示为“at”的动作的控制数据205,并且将它发送到物理模拟单元223和鉴别器网络222。
[0076] 在步骤304中,鉴别器网络222生成被发送到更新单元231的鉴别值
[0077] 在步骤305中,物理模拟单元221模拟代理102执行通过控制数据205所指定的动作at的效果,并且因此生成更新的物理状态数据st+1。基于更新的物理状态数据st+1,物理模拟单元222生成更新的控制系统状态数据(更新的图像数据204和更新的本体感受数据207;更新的本体感受数据在一些实施方式中可以是更新的物理状态数据的一部分),并且将它们分别发送到卷积网络208和感知器209。
[0078] 物理模拟单元221还将更新的物理状态数据st+1发送到更新单元 231,并且发送到鉴别器网络222。
[0079] 在步骤306中,辅助任务网络224生成被发送到更新单元231的数据P。
[0080] 在步骤307中更新单元391使用st+1和任务奖励函数来计算奖励值。注意,步骤306和307的次序可以是不同的。
[0081] 在步骤308中,确定了自步骤302被执行的最后时间以来步骤 303-307是否已被执行了至少K次。这里K是优选地大于一的正整数。注意,K=1的情况相当于省略步骤308。
[0082] 如果步骤308中的确定是否定的,则方法返回到步骤303并且使用st+1代替st再次执行步骤的循环,并且生成st+2而不是st+1。更一般地,在步骤304-308组被执行的第(i+1)次中,使用st+i代替st,并且生成st+i+1而不是st+1。
[0083] 如果步骤308中的确定是肯定的,则在步骤309中值网络227生成Vφ(st+K)。此值被发送到更新单元231。注意在变体中,值网络228 也可以在此时而不是在步骤302中生成值Vφ(st)。
[0084] 在步骤310中,更新单元231基于鉴别值 在步骤307中获得的奖励值以及值Vφ(st)和Vφ(st+K)调整控制系统206的参数(即,卷积网络208和神经网络209、210的参数)。在下面更详细地说明此步骤。更新单元231还基于K个输出P与K个状态s的比较调整卷积网络208和辅助任务网络224的网络225的参数。它还调整值网络227 的网络228、229的参数。它还调整鉴别器网络222的参数。
[0085] 在步骤311中,控制器232确定是否满足终止准则(例如已经过某个时间量)。如果不是,则方法返回到步骤302,以便选择新的初始状态。
[0086] 如果步骤311中的确定是肯定的,则在步骤313中训练后的控制系统206被用作系统100的控制系统106,即基于真实世界图像和本体感受数据控制真实世界中的真实代理102。
[0087] 为了说明在步骤310中执行的更新,我们从对两种已知技术的基本要素的简要回故开始:生成对抗模仿学习(GAIL)和近端策略优化 (PPO)。
[0088] 如上面所指出的,模仿学习(IL)是通过模仿人类轨迹(专家轨迹)来学习行为策略的问题。可以将人类演示作为N个状态-动作对 的数据集来提供。一些模仿学习方法将所述问题视为监督学习即行为克隆的问题。这些方法使用最大似然来训练参数化策略 其中 是状态空间(即每个可能的状态s是 中的一点) 并且 是
动作空间(即每个可能的动作a是 中的一点),使得θ*=arg maxθ∑Nlog πθ(ai|si)。策略πθ通常是随机策略,所述随机策略对于给定输入s,输出动作空间 上的概率分布,即为空间中的任何可能的动作a指定相应的概率值;因此,代理102被提供有作为来自此概率分布的样本的控制数据a。
[0089] GAIL(“生成对抗模仿学习(Generative adversarial imitation learning)”Jonathan Ho和Stefano Ermon。在NIPS,2016年第4565-4573 页)技术允许代理在其训练期间与环境交互并根据其经验学习。与生成对抗网络(GAN)类似,GAIL采用两个网络,即策略网络 和鉴别器网络
[0090] GAIL使用与GAN的最小最大目标函数类似的最小最大目标函数来一起训练πθ和[0091]
[0092] 其中πE表示生成了专家轨迹的专家策略。此目标鼓励策略πθ具有接近于专家策略πE的占用量度的占用量度。鉴别器网络 被训练以针对状态s和动作a产生高值,使得动作a在专家策略πE(s)下具有高(低) 概率而在策略πθ(s)下具有低(高)概率。
[0093] 如果演示丰富,IL方法有效地工作,但是机器人演示收集起来费用大且费时,所以方法200使用不需要这么多它们的过程。
[0094] 在连续域中,信任区方法大大地使策略训练稳定。最近,已经提出近端策略优化PPO(John Schulman等人,“Proximal policy optimization algorithms”,arXiv preprint,arXiv:1707.06347,2017)作为用于策略优化的简单且可扩展的技术。PPO仅依靠一阶梯度并且可在分布式设定中用递归网络容易地实现。PPO实现限制每次迭代的策略改变的近似信任区。这经由基于取决于过去迭代中的策略的实际改变而动态地调整强度的Kullback-Leibler(KL)散度的正则化项来实现。
[0095] 返回到方法300的讨论,步骤310用策略梯度方法调整πθ以使通过混合奖励函数给出的混合奖励r(st,at)最大化:
[0096] r(St,at)=λrgail(St,at)+(1-λ)rtnsk(St,at) λ∈[0,1]   (2)[0097] 此奖励函数在右边的第一项使用鉴别器222来表示模仿学习并且右边的第二项表示强化学习的意义上是混合体。
[0098] 这 里 ,rg a i l 是 作 为 奖 励函 数 的 折 扣 和 、通 过 模 仿 奖 励 函 数来定义、在最大值10处削波的第一奖励值(“模仿奖励值”)。
[0099] rtask(st,at)是通过任务奖励函数定义的第二奖励值(“任务奖励值”),所述任务奖励函数可以针对任务用手设计。例如,当进行块抬升时,rtask(st,at)在手靠近块的情况下可以是0.125,而在块被抬升的情况下可以是1。任务奖励允许强化学习。
[0100] 可选地,任务奖励函数可以被设计成对每个任务阶段来说为不同相应的函数。例如,任务奖励函数对任务的不同任务阶段中的每一个来说可以是相应的分段常数函数。因此,任务奖励值仅在任务从一个阶段转变到另一阶段时改变。我们已发现定义这种稀疏多阶段奖励比手工制作密集成形奖励更容易并且不太易于产生次优行为。
[0101] 可将使混合奖励最大化解释为同时强化和模仿学习,其中模仿奖励鼓励策略生成更接近于专家轨迹的轨迹,而任务奖励鼓励策略实现对任务的高回报。将λ设定为0或1将此方法缩减为标准RL或GAIL 设置。在实验上,我们发现将λ选取为介于0与1之间以给出两个奖励的平衡贡献产生了能控制代理解决GAIL和RL均不能单独解决的任务的训练后的控制系统206。另外,由于对任务奖励的暴露,受控代理实现了比人类演示更高的回报。
[0102] 注意,尽管在图2的训练系统200中,被训练的控制系统206仅接收图像数据204和本体感受数据207(像图1的系统100中的控制系统106一样),然而鉴别器网络222和值网络227接收指定模拟环境的对象的位置和/或定向和/或速度并且可选地还指定模拟代理的构件的位置和/或定向和/或速度的输入数据。此输入数据是由初始状态定义单元221和物理模拟单元223生成的物理状态数据(或者是从该物理状态数据生成的)。即使这种特许信息在系统100中不可用,系统200 当在模拟中训练控制系统206时也可利用它。
[0103] 可选值网络227由更新单元231使用来获得与在步骤307中计算出的奖励值一起使用来获得优势函数估计器的值Vφ(st)和Vφ(st+K)。优势函数估计器是用于为r(st,at)获得梯度估计器的参数。梯度估计器可以例如采取形式:
[0104]
[0105] 在步骤310中,更新单元231使用奖励和值的折扣和作为优势函数估计器:
[0106]
[0107] 其中γ是折扣因子并且rt+i≡r(st+i-1,at+i-1)。
[0108] 值网络227被以与在上面提及的PPO论文中相同的方式训练。因为策略梯度使用值网络的输出来减少差异,其对加速值网络227的训练是有益的。不是使用像素作为值网络227的输入(对于控制系统(策略网络)206),如上面所指出的值网络227优选地接收由初始状态定义单元221和物理模拟单元223输出的物理状态数据(例如,指定模拟3D对象和代理
102的构件的位置和速度)。在实验上已经发现,基于不同的输入数据来训练控制系统206和值网络227使训练稳定并且减少代理的性能的振荡。此外,值网络227的多层感知器228优选地比控制系统206的感知器209小(例如包括更少的神经元和/或层),所以它在更少的迭代之后收敛到训练状态。
[0109] 如上面所指出的,像值网络227一样,鉴别器网络222优选地接收指定模拟环境的对象的位置和/或取向和/或速度并且可选地还指定模拟代理的构件的位置和/或取向和/或速度的输入数据。此外,可选地,可以以任务特定方式对此数据进行编码,即作为基于任务选取的任务特定特征。鉴别器网络222的输入数据被格式化以指示(直接地,不隐式地)在模拟环境中与任务相关联的对象的绝对或相对位置。我们将这称为“以对象为中心的”表示,并且它导致对控制系统206的改进训练。因此,此以对象为中心的输入数据向鉴别器网络222提供显著且相关信号。对比起来,鉴别器网络222的输入数据优选地不包括指示模拟代理的构件的位置/速度的数据。在实验上,已经发现将这种信息包括在鉴别器网络222的输入中致使鉴别器网络222专注于代理的行为的不相关方面并且对控制系统206的训练是有害的。因此,优选地鉴别器网络222的输入数据仅包括以对象为中心的特征作为输入,同时屏蔽出代理相关信息。
[0110] 以对象为中心的表示的构造基于任务的一定量的域知识。例如,在代理包括抓器的任务的情况下,对象的相对位置和从抓器到对象的位移通常提供任务的最具信息性表征。凭经验,人们发现系统100、200 对以对象为中心的特征的特定选择不太敏感,只要它们携带足够的任务特定信息即可。
[0111] 可选的辅助任务神经网络224的功能是为了训练卷积神经网络 208,同时同时地训练多层感知器225。此训练在提高卷积神经网络208 被训练的速度时是有效的,同时还改进最终性能。注意,卷积神经网络208优选地不经由辅助任务排他地训练,而是在对控制系统206的更新中被训练以便学习策略。
[0112] 例如,可以训练辅助任务神经网络224以从相机观察结果预测模拟环境中的对象的位置。可以将输出层226实现为完全连接层以输出任务中的对象的3D坐标,并且执行神经网络225(以及可选地输出层 226)的训练以及卷积网络208的训练以使预测对象位置与地面真实对象位置之间的l2损失最小化。
[0113] 在步骤310中系统200的所有神经网络208、225、209、210、228、 229被优选地更新,以便在方法300中总体上它们全部被同时地训练。
[0114] 可以以与在上面提及的GAIL论文中相同的方式执行对鉴别器网络222的更新。
[0115] 尽管上面对图3的说明是由图2的系统200执行的方法的术语,然而更优选地方法由多个工作者在控制器232的控制下并行执行。对于每个工作者,在控制系统206的相应实例上使用等式(2)来根据步骤302-310执行训练。可以在所有工作者之间共享卷积网络208。
[0116] 可以在所有工作者之间提供共享单个鉴别器网络222。可以通过表达式的最大化来产生鉴别器网络222,所述表达式是等式(1)的变体,其中在θ上没有最小化,并且其中最终项是遍及所有工作者的平均,而不是基于单个策略网络。
[0117] 示例性结果的网络被发现在各种任务中在模仿学习和强化学习上改进了。
[0118] 本说明书使用连同系统和计算机程序组件一起“配置”的术语。针对被配置成执行特定操作或动作的一个或多个计算机的系统意味着系统已在其上安装了在操作中使系统执行操作或动作的软件、固件、硬件或其组合。针对被配置成执行特定操作或动作的一个或多个计算机程序意味着这一个或多个程序包括当由数据处理装置执行时使该装置执行操作或动作的指令。
[0119] 本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形具体实现的计算机软件或固件、用计算机硬件(包括本说明书中公开的结构及其结构等同物)或者用它们中的一个或多个的组合加以实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序(即,在有形非暂时性存储介质上编码以供由数据处理装置执行或者用于控制数据处理装置的操作的计算机程序指令的一个或多个模块)被实现。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或它们中的一个或多个的组合。可替选地或此外,可将程序指令编码在人工生成的传播信号(例如,机器生成的电、光学或电磁信号)上,所述信号被生成来对信息进行编码以便传输到适合的接收器装置以供由数据处理装置执行。
[0120] 术语“数据处理装置”指代数据处理硬件并且包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或者进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外还能可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0121] 计算机程序,也可以被称为或者描述为程序、软件、软件应用、 app、模块、软件模块、脚本或代码,可用任何形式的编程语言包括编译或解释语言或声明或过程语言编写;并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。程序可以但不必对应于文件系统中的文件。可在保持其它程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、在专用于所述程序的单个文件中或者在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中存储程序。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者跨越多个站点分布并且通过数据通信网络互连的多个计算机上执行。
[0122] 在本说明书中,术语“数据库”广泛地用于指代数据的任何合集:数据不需要被以任何特定方式构造,或者根本不构造,并且数据可被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可包括数据的多个合集,其中的每一个均可以被不同地组织和访问。
[0123] 类似地,在本说明书中术语“引擎”广泛地用于指代被编程来执行一个或多个具体功能的基于软件的系统、子系统或过程。一般地,引擎将作为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可在同一个或多个计算机上安装并运行多个引擎。
[0124] 本说明书中描述的过程和逻辑流程可通过一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能而被执行。过程和逻辑流程还可由专用逻辑电路例如FPGA 或ASIC执行,或者通过专用逻辑电路和一个或多个编程的计算机的组合来执行。
[0125] 适合于执行计算机程序的计算机可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理单元。一般地,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可由专用逻辑电路补充,或者并入专用逻辑电路。一般地,计算机还将包括或者在操作上耦合以从用于存储数据的一个或多个大容量存储设备例如磁盘磁光盘或光盘接收数据,或者将数据转移到所述一个或多个大容量存储设备,或者兼而有之。然而,计算机不必具有此类设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如为移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备例如通用串行总线(USB)闪存驱动器等等。
[0126] 适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括:半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
[0127] 为了提供与用户的交互,可将本说明书中描述的主题的实施例实现在计算机上,所述计算机具有用于向用户显示信息的显示设备例如, CRT(阴极射线管)或LCD(液晶显示器)监视器以及用户可用来向该计算机提供输入的键盘和指点设备,例如鼠标或跟踪球。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而将向用户的设备上的web浏览器发送web页面。另外,计算机可通过向个人设备例如正在运行消息传送应用的智能电话发送文本消息或其它形式的消息并且接收作为回报来自用户的响应消息来与用户交互。
[0128] 用于实现机器学习模型的数据处理装置还可包括例如用于处理机器学习训练或产生即推理工作负荷的公共和计算密集部分的专用硬件加速器单元。
[0129] 可使用机器学习框架例如TensorFlow框架、Microsoft Cognitive Toolkit(微软认知工具包)框架、Apache Singa框架或Apache MXNet 框架来实现并部署机器学习模型。
[0130] 本说明书中描述的主题的实施例可被实现在计算系统中,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可用来与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或app的客户端计算机),或者包括一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN) 和广域网(WAN)例如因特网。
[0131] 计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备发送数据例如HTML页面,例如,以用于向与作为客户端的设备交互的用户显示数据并且从与作为客户端的设备交互的用户接收用户输入的目的。可在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0132] 虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可以要求保护的范围构成限制,而是相反被解释为可能特定于特定发明的特定实施例的特征的描述。还可在单个实施例中相结合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,还可在多个实施例中单独地或者按照任何适合的子组合实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为按照某些组合起作用并且甚至最初被如此要求保护,然而可在一些情况下从该组合中除去来自要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。
[0133] 类似地,虽然在附图中描绘并且在权利要求中按照特定次序叙述操作,但是这不应该被理解为要求按照所示特定次序或者按照顺序次序执行此类操作,或者要求执行所有图示的操作以实现所希望的效果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述的实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中要求这种分离,并且应该理解的是,所描述的程序组件和系统一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。
[0134] 已经描述了主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中叙述的动作可被以不同的次序执行并仍然实现所希望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所希望的结果。在一些情况下,多任务处理和并行处理可以是有利的。

当前第1页 第1页 第2页 第3页