一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通过整合代理运动和优化预测目标来生成空间嵌入的制作方法

2022-11-09 23:20:28 来源:中国专利 TAG:

通过整合代理运动和优化预测目标来生成空间嵌入


背景技术:

1.本说明书涉及使用机器学习模型处理数据。
2.机器学习模型接收输入,并且基于所接收的输入来生成输出,例如,预测输出。一些机器学习模型是参数化模型,并且基于所接收的输入并基于模型的参数的值来生成输出。
3.一些机器学习模型是采用模型的多个层来针对所接收的输入生成输出的深度模型。例如,深度神经网络是包括输出层和各自向所接收的输入应用非线性转换以生成输出的一个或多个隐藏层的深度机器学习模型。


技术实现要素:

4.本说明书一般描述一种实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统和方法,其用于训练具有一组(set)空间嵌入神经网络参数的空间嵌入神经网络。空间嵌入神经网络被配置为处理表征与环境互动的代理的运动的数据,以生成空间嵌入。
5.如贯穿本说明书使用的,“嵌入”是指数值的有序集合,例如,数值的向量或矩阵。
6.更详细地说,示例方法包括:对于多个时间步长中的每一个,使用空间嵌入神经网络(例如,循环神经网络(recurrent neural network))获得(例如,输入)并处理表征在当前时间步长中的代理在环境中的运动的数据,以生成当前时间步长的当前空间嵌入。该方法确定外部存储器(memory)中的多个槽位(slot)中的每一个的预测评分和目标评分,其中,每个槽位存储:(i)表征环境状态的观察的表示和(ii)空间嵌入。每个槽位的预测评分测量(i)当前空间嵌入和(ii)与槽位对应的空间嵌入之间的相似度。每个槽位的目标评分测量(i)表征在当前时间步长中的环境状态的当前观察和(ii)与槽位对应的观察之间的相似度。该方法基于预测评分和目标评分之间的误差,确定对一组空间嵌入神经网络参数的值的更新。
7.在各实施方式中,该方法还包括:对于多个时间步长中的每一个,使用动作选择神经网络处理当前观察和当前空间嵌入,以生成动作选择输出,并且使用动作选择输出选择在当前时间步长中由代理执行的动作。
8.在一些实施方式中,环境是真实世界环境,代理是在真实世界环境中导航的机器代理,并且动作控制代理在环境中的移动,即,动作选择系统选择动作以使代理能够执行涉及在环境中导航的任务。
9.在一些实施方式中,环境是真实世界环境,并且代理是机器代理,或者环境是模拟环境,并且代理被实现为一个或多个计算机程序。该方法可以包括:使用经训练的空间嵌入神经网络来使机器代理能够在新的真实世界环境中导航。也就是说,空间嵌入神经网络可以在真实世界中或在模拟中训练,但是经训练的空间嵌入神经网络可以在真实世界中使用。
10.在新的真实世界环境中导航可以包括:使用经训练的空间嵌入神经网络处理表征
机器代理在真实世界环境中的运动的数据,以生成空间嵌入。动作选择系统(特别是动作选择系统的动作选择神经网络)可以用于处理空间嵌入来选择由机器代理执行的动作,从而控制代理在新的真实世界环境中的运动,以在新的真实世界环境中导航。
11.根据一个方面,提供了一种由一个或多个数据处理装置执行的方法,其用于训练具有一组空间嵌入神经网络参数的空间嵌入神经网络,其被配置为处理表征与环境互动的代理的运动的数据,以生成空间嵌入。该方法包括:对于多个时间步长中的每一个:使用空间嵌入神经网络处理表征在当前时间步长中的代理在环境中的运动的数据,以生成当前时间步长的当前空间嵌入;确定外部存储器中的多个槽位中的每一个的预测评分和目标评分,其中,每个槽位存储:(i)表征环境状态的观察的表示和(ii)空间嵌入,其中,每个槽位的预测评分测量(i)当前空间嵌入和(ii)与槽位对应的空间嵌入之间的相似度,其中,每个槽位的目标评分测量(i)表征在当前时间步长中的环境状态的当前观察和(ii)与槽位对应的观察之间的相似度;以及,基于预测评分和目标评分之间的误差,确定对一组空间嵌入神经网络参数的值的更新。
12.在一些实施方式中,表征在当前时间步长中的代理在环境中的运动的数据包括以下各项中的一个或多个:表征在当前时间步长中的代理速度的速度数据、表征在当前时间步长中的代理角速度的角速度数据、或表征在当前时间步长中的代理平移速度的平移速度数据。
13.在一些实施方式中,表征在当前时间步长中的环境状态的当前观察包括图像。
14.在一些实施方式中,图像在当前时间步长中在代理的视角下捕捉。
15.在一些实施方式中,确定外部存储器中的每个槽位的目标评分包括:获得表征当前环境状态的当前观察和与槽位对应的观察的相应嵌入;以及,基于(i)表征当前环境状态的当前观察的嵌入和(ii)与槽位对应的观察的嵌入之间的相似度测量,确定目标评分。
16.在一些实施方式中,获得当前观察的嵌入包括:使用嵌入神经网络处理当前观察。
17.在一些实施方式中,预测评分和目标评分之间的误差包括预测评分和目标评分之间的交叉熵误差。
18.在一些实施方式中,该方法还包括:基于预测评分和目标评分之间的误差,确定对存储在外部存储器中的空间嵌入的更新。
19.在一些实施方式中,空间嵌入神经网络不处理当前观察来生成当前时间步长的当前空间嵌入。
20.在一些实施方式中,该方法还包括:将当前观察和当前空间嵌入的表示存储在外部存储器中的槽位中。
21.在一些实施方式中,该方法还包括:使用具有一组第二空间嵌入神经网络参数的第二空间嵌入神经网络来处理表征在当前时间步长中的代理在环境中的运动的第二数据,以生成当前时间步长的第二当前空间嵌入,其中,外部存储器中的每个槽位还存储第二空间嵌入,其中,对于外部存储器中的每个槽位,槽位的预测评分还测量(i)第二当前空间嵌入和(ii)与槽位对应的第二空间嵌入之间的相似度;以及,基于预测评分和目标评分之间的误差,确定对该组第二空间嵌入神经网络参数的值的更新。
22.在一些实施方式中,由空间嵌入神经网络处理的表征代理运动的数据是由第二空间嵌入神经网络处理的表征代理运动的第二数据的真子集。
23.在一些实施方式中,对于外部存储器中的每个槽位,确定槽位的预测评分包括确定(i)当前空间嵌入和与槽位对应的空间嵌入之间的相似度测量与(ii)第二当前空间嵌入和与槽位对应的第二空间嵌入之间的相似度测量的乘积。
24.在一些实施方式中,该方法还包括:对于多个时间步长中的每一个:使用动作选择神经网络处理当前观察和当前空间嵌入,以生成动作选择输出;以及,使用动作选择输出选择在当前时间步长中由代理执行的动作。
25.在一些实施方式中,动作选择输出包括在预先确定的一组动作中的每个动作的相应评分。
26.在一些实施方式中,选择在当前时间步长中由代理执行的动作包括选择具有最高评分的动作。
27.在一些实施方式中,动作选择神经网络使用强化学习技术训练,以鼓励代理在环境中执行任务。
28.在一些实施方式中,任务是导航任务。
29.在一些实施方式中,对于多个时间步长中的一个或多个,动作选择神经网络还处理目标空间嵌入,其在代理位于环境中的目标位置时的时间步长中由空间嵌入神经网络生成。
30.在一些实施方式中,空间嵌入神经网络包括循环神经网络,并且其中,生成当前时间步长的当前空间嵌入包括:使用空间嵌入神经网络处理:(i)表征在当前时间步长中的代理在环境中的运动的数据和(ii)在先前时间步长中的空间嵌入神经网络的输出,以更新空间嵌入神经网络的隐藏状态,其中,更新隐藏状态定义当前空间嵌入。
31.在一些实施方式中,该方法还包括:确定当前时间步长的空间嵌入神经网络的输出,包括:将空间嵌入神经网络的更新隐藏状态标识为当前时间步长的空间嵌入神经网络的输出。
32.在一些实施方式中,该方法还包括:确定当前时间步长的空间嵌入神经网络的输出,包括:确定外部存储器中的每个槽位的相应权重值,其表征(i)表征在当前时间步长中的环境状态的当前观察和(ii)与槽位对应的观察之间的相似度;将纠正嵌入确定为与外部存储器中的槽位对应的空间嵌入的线性组合,其中,每个空间嵌入由对应的权重值加权;基于(i)空间嵌入神经网络的更新隐藏状态和(ii)纠正嵌入,确定空间嵌入神经网络的输出。
33.在一些实施方式中,该方法还包括:使用整合嵌入神经网络处理表征在当前时间步长中的代理在环境中的运动的数据,以生成当前时间步长的当前整合嵌入;确定额外的外部存储器中的多个槽位中的每一个的预测评分和目标评分,其中,每个槽位存储:(i)空间嵌入和(ii)整合嵌入,其中,每个槽位的预测评分测量(i)当前整合嵌入和(ii)与槽位对应的整合嵌入之间的相似度,其中,每个槽位的目标评分测量(i)当前空间嵌入和(ii)与槽位对应的空间嵌入之间的相似度;以及,基于额外的外部存储器中的槽位的预测评分和目标评分之间的误差,确定对一组整合嵌入神经网络参数的值的更新。
34.根据另一方面,提供了存储指令的一个或多个(非暂时性)计算机存储介质,指令在由一个或多个计算机执行时,使一个或多个计算机执行本文描述的相应方法的操作。
35.根据另一方面,提供了一种系统,包括:一个或多个计算机;和一个或多个存储设备,其通信耦合到一个或多个计算机,其中,一个或多个存储设备存储指令,指令在由一个
或多个计算机执行时,使一个或多个计算机执行本文描述的相应方法的操作。
36.本说明书描述的主题的特定实施例可以被实施,以便实现一个或多个以下优点。
37.本说明书描述的系统可以训练空间嵌入神经网络,其连续(即,在多个时间步长中)处理表征代理的运动(例如,角度和平移速度)的数据,以生成每个时间步长的相应空间嵌入。具体地,系统可以训练空间嵌入神经网络来处理运动数据,以生成预测表征环境状态的观察(例如,由代理的相机捕捉的环境图像)的空间嵌入。由空间嵌入神经网络生成的空间嵌入可以隐含地表征代理在环境中的定位。
38.动作选择系统可以处理由空间嵌入神经网络生成的空间嵌入,以选择动作来解决(例如,涉及在复杂、陌生和变化的环境中导航的)任务。处理由空间嵌入神经网络生成的空间嵌入可以使动作选择系统能够比其用其他方式更高效(例如,快速)地解决任务,因为空间嵌入编码丰富的空间信息内容,并且提供表示空间信息的高效基础集。例如,处理空间嵌入可以使动作选择系统能够选择使代理使用直接(或近似直接)路线导航到目标位置的动作,路线可以覆盖代理先前没有访问的环境区域。具体地,处理空间嵌入可以使动作选择系统能够利用编码在空间嵌入中的丰富的空间信息来选择使代理采取捷径的动作,导致代理比一些其他系统更高效地到达目标地点(或以其他方式完成任务)。
39.处理由空间嵌入神经网络生成的空间嵌入还可以使动作选择系统在比一些其他系统更少的训练迭代次数内被训练为达到可接受的性能(即,解决任务的)水平,从而减少在训练期间的计算资源的消耗。计算资源可以包括,例如,存储器和计算能力。
40.在经过训练后,空间嵌入神经网络可以生成使代理能够在新的(即,先前没有见过的)环境中高效地导航的空间嵌入,而不用在表征代理与新环境的互动的训练数据上重新训练空间嵌入神经网络。
41.本说明书描述的系统可以联合训练多个空间嵌入神经网络,每个空间嵌入神经网络可以被配置为处理表征在每个时间步长中的代理运动的不同组数据。例如,一个空间嵌入神经网络可以被配置为处理表征在每个时间步长中的代理角速度的数据,并且另一空间嵌入神经网络可以被配置为处理表征在每个时间步长中的代理的角速度和平移速度两者的数据。由每个空间嵌入神经网络生成的空间嵌入可以具有不同的属性,并且是彼此互补的,例如。一个空间嵌入神经网络可能生成基本上根据代理的朝向的空间嵌入,而另一空间嵌入神经网络可能生成基本上根据代理在特定朝向上与环境中的其他物体的距离的空间嵌入。由相应的空间嵌入神经网络生成的一组空间嵌入可以用各种互补方式共同表征代理的定位。处理由空间嵌入神经网络生成的一组空间嵌入可以使动作选择系统能够选择允许代理更高效地完成任务的动作。
42.在附图和下面的描述中,阐述了本说明书的主题的一个或多个实施例的细节。从描述、附图和权利要求中,可以看到本主题的其他特征、方面和优点。
附图说明
43.图1是示例动作选择系统的框图。
44.图2是示例空间嵌入训练系统的框图。
45.图3是示出由空间嵌入训练系统执行的操作的数据流。
46.图4是训练一个或多个空间嵌入神经网络的示例过程的流程图。
47.图5是使用具有循环神经网络架构的空间嵌入神经网络来生成时间步长的空间嵌入的示例过程的流程图。
48.各附图中相似的附图标记和名称指示相似的元素。
具体实施方式
49.图1是示例动作选择系统100的框图。动作选择系统100是实现为在其中实现下面描述的系统、组件和技术的,在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例。
50.系统100选择在多个时间步长中的每一个中由与环境116互动的代理112执行的动作110,以执行涉及在环境中导航的任务。任务可以是,例如,在环境中导航来定位环境中的对象,在环境中导航来到达环境中的指定目的地(称为“目标位置”),或在环境中导航来访问环境中的尽可能多的位置(例如,探索环境)。
51.在一些实施方式中,环境是真实世界环境,并且代理是在真实世界环境中导航的机器代理。例如,代理可以是机器人或者自主或半自主的陆地、海洋或空中载具。在其他实施方式中,环境是模拟环境,并且代理被实现为与模拟环境互动的一个或多个计算机程序。例如,模拟环境可以是运动模拟环境(例如,驾驶模拟或飞行模拟),并且代理可以是在运动模拟中导航的模拟车辆。
52.在每个时间步长中,系统100接收表征在时间步长中的代理在环境中的当前运动的运动数据114和表征在时间步长中的当前环境状态的观察120。系统100处理时间步长的运动数据114和观察120,以选择在时间步长中由代理112执行的动作。
53.在每个时间步长中的运动数据114可以包括以下各项中的一个或多个:表征在时间步长中的代理速度的速度数据、表征在时间步长中的代理角速度的角速度数据、或表征在时间步长中的代理平移速度的平移速度数据。速度数据可以被表示为(例如,以米/秒为单位或任何其他适当单位表示代理速度的)一个或多个标量值,或被表示为例如以弧度/秒为单位的角速度的正弦和余弦。角速度数据可以被表示为,例如,以弧度/秒为单位或任何其他适当单位的表示代理围绕垂直轴线旋转的速率的标量值。平移速度数据可以被表示为二维(2d)向量[u,v],例如,其中,u和v以米/秒为单位或任何其他适当单位表达。
[0054]
在每个时间步长中的观察120可以在时间步长中由代理的传感器生成或从其得出。例如,在时间步长中的观察可以包括表征在时间步长中在代理的视角下的环境的视觉外观或几何形状的数据(例如,由代理的相机传感器所捕捉的一个或多个图像(例如,彩色图像)、由代理的高光谱传感器捕捉的一个或多个高光谱图像、或由代理的激光传感器(例如,激光雷达传感器)捕捉的几何数据(例如,3d点云)形式的图像、或者其组合)。在模拟环境的情况下,在每个时间步长中的观察可以是表征在时间步长中在代理的视角下的模拟环境的视觉外观或几何形状的模拟观察。
[0055]
在每个时间步长中由代理执行的动作110可以(例如,通过改变代理的平移速度、代理的角速度或两者来)控制代理在环境中的运动。这些动作可以被表示为,例如,控制代理的控制信号。每个动作可以表示,例如,应该施加到代理的关节的相应扭矩、改变代理的加速度的加速动作、或改变代理的朝向的转向动作。在一些实施方式中,这些动作可以是多维动作,例如,使得每个动作包括相应的加速控制信号和相应的转向控制信号两者。
[0056]
在每个时间步长中,系统100可以基于在时间步长中的当前环境状态116和由代理112执行的动作110来接收奖励118。奖励118可以表示为数值。奖励118可以指示代理112是否在环境中完成任务,或代理112在环境中完成任务的进度。例如,如果任务指定代理应该在环境中导航到目标位置,则一旦代理到达目标位置,在每个时间步长中的奖励就可以具有正值,否则具有零值。作为另一示例,如果任务指定代理应该探索环境,则如果代理在时间步长中导航到先前没有探索的位置,则在时间步长中的奖励可以具有正值,否则具有零值。
[0057]
动作选择系统100包括接下来分别更详细描述的一个或多个空间嵌入神经网络102、空间嵌入训练系统200和动作选择神经网络106。
[0058]
每个空间嵌入神经网络102被配置为在每个时间步长中处理该时间步长的代理运动数据114的子集(例如,所谓的真子集(proper subset)),以生成时间步长的相应的空间嵌入104。由空间嵌入神经网络102生成的空间嵌入104是隐含地表征在时间步长中的代理在环境中的位置的嵌入。
[0059]
在系统100包括单个空间嵌入神经网络102的实施方式中,单个空间嵌入神经网络102可以处理在每个时间步长中的全部代理运动数据114。在系统100包括多个空间嵌入神经网络102的实施方式中,每个空间嵌入神经网络可以处理在每个时间步长中的代理运动数据114的不同子集。例如,一个空间嵌入神经网络可以被配置为处理表征在每个时间步长中的代理角速度的数据,并且另外的第二空间嵌入神经网络可以被配置为处理表征在每个时间步长中的代理的角速度和平移速度的数据。根据它们接收的代理运动数据,由每个空间嵌入神经网络生成的空间嵌入可以具有不同属性,并且是彼此互补的。例如,接收例如角速度数据的一个空间嵌入神经网络可能生成基本上根据代理的朝向的空间嵌入,而接收例如角速度和平移速度数据的另一空间嵌入神经网络可能生成基本上根据代理在特定朝向上与环境中其他对象的距离的空间嵌入。
[0060]
在实施方式中,接收仅包括角速度的代理运动数据的空间嵌入神经网络可以生成编码代理朝向的空间嵌入,例如其中,生成空间嵌入的神经网络单元的激活具有编码朝向的“激活凸块(activation bump)”。空间嵌入(特别是这种激活凸块)可以针对环境中的视觉线索(cue)来编码朝向。
[0061]
每个空间嵌入神经网络102可以具有使其能够执行其描述的功能(即,处理代理运动数据114以生成对应的空间嵌入104)的任何适当的神经网络架构。具体地,每个空间嵌入神经网络102可以包括任何适当数量(例如,5层、25层或125层)并以任何适当配置(例如,作为层的线性序列)连接的任何适当类型的神经网络层(例如,循环层、注意层、全连接层、卷积层等)。
[0062]
在一些实施方式中,每个空间嵌入神经网络102可以是保持相应的隐藏状态的循环神经网络(例如,具有一个或多个循环神经网络层(例如,长短期记忆(lstm)层或任何其他适当的循环神经网络层)的神经网络)。在每个时间步长中的空间嵌入神经网络102的隐藏状态可以定义在该时间步长中由空间嵌入神经网络102生成的空间嵌入104。每个空间嵌入神经网络可以通过处理(i)时间步长的代理运动数据114和(ii)在先前时间步长中由空间嵌入神经网络102生成的数据,更新其在每个时间步长中的隐藏状态。参考图5将更详细描述用于使用实现为循环神经网络的空间嵌入神经网络102来处理时间步长的代理运动数
据114的示例过程。(如果空间嵌入神经网络被实现为具有各自保持相应的隐藏状态的多个循环神经网络层的循环神经网络,则空间嵌入神经网络的隐藏状态可以被理解为一个或多个循环神经网络层的相应隐藏状态的级联(concatenation))。
[0063]
在每个时间步长中,动作选择神经网络106接收包括(i)在时间步长中由空间嵌入神经网络102生成的当前空间嵌入104和(ii)表征在时间步长中的环境状态的当前观察120的输入。可选地,由动作选择神经网络106接收的输入可以包括额外数据,例如,在先前时间步长中接收的奖励118、在先前时间步长中执行的动作110的表示或两者。在一些情况下,由代理执行的任务涉及重复导航到环境中的“目标”位置,并且由动作选择神经网络106接收的输入可以包括“目标”空间嵌入。目标空间嵌入可以是在代理位于环境中的目标位置时的先前时间步长中由空间嵌入神经网络102生成的空间嵌入。
[0064]
动作选择神经网络106处理其输入以生成动作选择输出108,并且系统100基于动作选择输出108,选择在时间步长中由代理112执行的动作110。例如,动作选择输出108可以包括在一组可能的动作中的每个动作的相应的动作评分,并且系统100可以使用动作评分来选择在时间步长中由代理执行的动作110。在一个示例中,系统100可以选择具有最高动作评分的动作作为在时间步长中执行的动作。在另一示例中,系统100可以(例如,使用软最大(soft-max)函数)处理动作评分,以确定一组可能的动作的概率分布,然后根据概率分布来对在时间步长中执行的动作进行采样。
[0065]
在一些实施方式中,系统100可以根据探索策略(例如,∈贪婪探索策略)来选择在每个时间步长中执行的动作。在∈贪婪探索策略中,系统100以概率∈从一组可能的动作中随机选择动作,并且系统100以概率1-∈(其中,∈》0是小的正值)使用动作选择输出108选择时间步长的动作。根据探索策略来选择由代理执行的动作可以使代理能够迅速探索环境,从而生成可促进更高效地训练动作选择神经网络106的更高多样性的训练数据。
[0066]
动作选择神经网络106可以具有使其能够执行其描述的功能(例如,处理空间嵌入和观察以生成动作选择输出,以用于选择由代理执行的动作)的任何适当的神经网络架构。例如,动作选择神经网络架构可以包括任何适当数量(例如,5层、25层或125层)并以任何适当配置(例如,作为层的线性序列)连接的任何适当类型的神经网络层(例如,循环层、注意层、全连接层、卷积层等)。
[0067]
空间嵌入训练系统200被配置为训练空间嵌入神经网络102,以生成编码丰富的空间信息内容并提供表示空间信息的高效基础集的的空间嵌入。具体地,训练系统200训练空间嵌入神经网络102来处理表征代理运动的数据,以生成预测表征环境状态的观察的空间嵌入104。更具体地,训练系统200训练空间嵌入神经网络102,以基于代理运动来生成预测在代理的视角下的环境的视觉或几何外观的空间嵌入。参考图2将更详细描述用于训练空间嵌入神经网络102的空间嵌入训练系统200的示例。
[0068]
处理由空间嵌入神经网络102生成的空间嵌入104可以使系统100能够选择高效地解决(例如,涉及在不熟悉和变化的环境中导航的)复杂导航任务的动作。例如,处理空间嵌入可以使系统100能够选择使代理使用直接(或近似直接)路线导航到目标位置的动作,这些路线可以覆盖代理先前没有访问的环境区域。
[0069]
空间嵌入训练系统200可以基于表示代理与一个或多个环境的互动的轨迹来训练空间嵌入神经网络102。对于每个时间步长,每个轨迹可以包括表示在时间步长中的代理运
动的数据和在时间步长中的环境状态的观察。在基于表示代理与一个或多个环境的互动的轨迹来训练后,空间嵌入神经网络102可以由动作选择系统用来控制与新的环境互动的代理,而不用在表示代理与新的环境的互动的轨迹上重新训练。也就是说,空间嵌入神经网络102的训练参数值可以推广(generalize)到新的环境,而不用基于代理与新的环境的互动来重新训练。
[0070]
系统100使用强化学习技术训练动作选择神经网络106,以选择增加由系统100接收的作为代理与环境的互动的结果的奖励的累积测量(例如,奖励的时间折扣总和)的动作。更具体地,系统100通过使用强化学习目标函数的梯度来迭代地调整动作选择神经网络106的一些或全部参数的值,训练动作选择神经网络106。系统100可以使用任何适当的强化学习技术(例如,演员评判家(actor-critic)技术或q-learning技术)训练动作选择神经网络106。可选地,系统100可以独立于空间嵌入神经网络102来训练动作选择神经网络106,例如,使得强化学习目标函数的梯度不被反向传播到空间嵌入神经网络102中。
[0071]
一般来说,系统100可以用于控制与上述的模拟环境或真实世界环境互动的代理。在一些情况下,系统100可以用于控制与模拟环境互动的代理,并且系统100(特别是空间嵌入神经网络102和动作选择神经网络106)可以基于代理与模拟环境的互动来训练。然后,代理可以被部署在真实世界环境中,并且经训练的系统100可以用于控制代理与真实世界环境的互动。基于代理与模拟环境(即,代替真实世界环境)的互动来训练系统100可以避免代理的磨损,并且可以减少由于执行选择不当的动作而导致代理可能损坏自身或其环境的各方面的可能性。
[0072]
图2是示例空间嵌入训练系统200的框图。空间嵌入训练系统200是实现为实现下面描述的系统、组件和技术的,在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例。
[0073]
训练系统200训练参考图1描述的(例如,包括在动作选择系统中的)一个或多个空间嵌入神经网络102。
[0074]
每个空间嵌入神经网络102被配置为处理表征在时间步长中的代理在环境中的运动的相应的代理运动数据202,以生成隐含地表征在时间步长中的代理在环境中的位置的空间嵌入208。
[0075]
训练系统200包括接下来分别更详细描述的观察嵌入神经网络206、外部存储器220、评分引擎212和训练引擎218。
[0076]
观察嵌入神经网络206被配置为处理表征环境状态的观察204,以生成观察204的嵌入210。在使用观察嵌入神经网络作为训练空间嵌入神经网络102的部分之前,训练系统200可以训练观察嵌入神经网络206来在环境观察的训练集上执行自动编码任务。为了执行自动编码任务,观察嵌入神经网络206处理观察,以生成对应的观察嵌入,观察嵌入在由“解码器”神经网络处理时,能够重构原始观察。因此,在各实施方式中,空间嵌入神经网络102放训练使用训练的观察嵌入神经网络206。
[0077]
观察嵌入神经网络可以具有使其能够执行其描述的功能(例如,处理观察以生成观察嵌入)的任何适当的神经网络架构。例如,观察嵌入神经网络架构可以包括任何适当数量(例如,5层、25层或125层)并以任何适当配置(例如,作为层的线性序列)连接的任何适当类型的神经网络层(例如,注意层、全连接层、卷积层等)。
[0078]
外部存储器220包括一组逻辑数据存储空间,称为“槽位”222。每个槽位对应于在代理与环境的互动期间的相应时间步长,并且存储:(i)时间步长的观察嵌入226和(ii)与每个空间嵌入神经网络102对应的时间步长的相应空间嵌入224。
[0079]
训练系统200通过使用观察嵌入神经网络206处理对应时间步长的观察,生成存储在外部存储器220的每个槽位中的相应观察嵌入226。
[0080]
训练系统通过使用空间嵌入神经网络102处理对应的时间步长的代理运动数据,生成存储在外部存储器的每个槽位中的相应空间嵌入224。如下面将更详细描述的,训练系统200可以在训练过程中(例如,使用目标函数的梯度)修改存储在外部存储器的槽位中的空间嵌入。
[0081]
在时间步长的序列中的每个时间步长中,训练系统200接收:(i)表征在时间步长中的代理运动的代理运动数据202和(ii)表征在时间步长中的环境状态的观察204。
[0082]
训练系统200向空间嵌入神经网络102提供时间步长的代理运动数据202,并且每个空间嵌入神经网络102基于代理运动数据202来处理相应输入,以生成相应的当前空间嵌入208。
[0083]
训练系统200将时间步长的观察204提供给观察嵌入神经网络206,并且观察嵌入神经网络206处理观察204,以生成当前观察嵌入210。
[0084]
评分引擎212基于当前观察嵌入210和当前空间嵌入208,生成外部存储器220中的每个槽位的(i)相应的目标评分216和(ii)相应的预测评分214。
[0085]
外部存储器220中的每个槽位的目标评分216表征(i)当前观察嵌入210和(ii)存储在外部存储器220中的槽位中的观察嵌入之间的相似度。评分引擎212可以基于当前观察嵌入210和存储在外部存储器中的槽位中的观察嵌入之间的相似度测量(例如,余弦相似度测量、欧几里得相似度测量或任何其他适当的相似度测量)来生成每个槽位的目标评分216。在一个示例中,评分引擎212可以将每个槽位s的目标评分ts生成为:
[0086][0087]
其中,β是正标量参数,是当前观察嵌入210的转置,是存储在槽位s中的观察嵌入。参数β是逆温(inverse-temperature)参数,其可以被选择用于存储器槽位的稀疏选择,使得各存储器之间的干扰低。
[0088]
外部存储器220中的每个槽位的预测评分214表征(i)当前空间嵌入208和(ii)存储在外部存储器220中的槽位中的空间嵌入之间的相似度。为了生成外部存储器220中的槽位的预测评分214,对于每个空间嵌入神经网络102,评分引擎212可以确定(i)由空间嵌入神经网络生成的当前空间嵌入208和(ii)存储在槽位中的与空间嵌入神经网络对应的空间嵌入之间的相应相似度测量。相似度测量可以是,例如,余弦相似度测量、欧几里得相似度测量、或任何其他适当的相似度测量。然后,评分引擎212可以通过(例如,通过乘积操作、求和操作或任何其他适当的操作)聚合当前空间嵌入208和存储在外部存储器220中的槽位中的空间嵌入之间的确定的相似度测量来确定槽位的预测评分214。例如,评分引擎212可以将每个槽位s生成预测评分ps生成为:
[0089]
[0090]
其中,r索引空间嵌入神经网络,r是空间嵌入神经网络的数量,是确定每个空间嵌入神经网络的相对重要性的标量参数,是由空间嵌入神经网络r生成的当前空间嵌入的转置,是存储在槽位s中的与空间嵌入神经网络r对应的空间嵌入。
[0091]
训练引擎218接收时间步长的预测评分214和目标评分216,并且更新空间嵌入神经网络102的参数值,以优化测量预测评分214和目标评分216之间的误差的目标函数。目标函数可以是测量预测评分214和目标评分之间的误差的任何适当的目标函数,例如,由如下给出的交叉熵目标函数
[0092][0093]
其中,s索引外部存储器的槽位,s是外部存储器中的(占用的)槽位的数量,ts是槽位s的目标评分,并且ps是槽位s的预测评分。
[0094]
为了更新空间嵌入神经网络参数,训练引擎218可以(例如,使用反向传播法)针对空间嵌入神经网络参数来确定目标函数的梯度。然后,训练引擎218可以通过使用任何适当的梯度下降优化技术(例如,rmsprop或adam),使用梯度来更新空间嵌入神经网络参数。
[0095]
可选地,除了更新空间嵌入神经网络参数之外,训练引擎218还可以使用目标函数的梯度来更新各种其他系统参数。例如,训练引擎218可以额外地更新参考等式(2)描述的参数、存储在外部存储器220中的空间嵌入224或两者。空间嵌入224的学习率可以高于空间嵌入神经网络参数的学习率,例如,阶数为10-2
而不是10-4
,因为存储器之间的干扰小。如先前所述,在新的环境中,空间嵌入神经网络参数可以被冻结,同时将新的空间嵌入224存储在外部存储器220中并可选地更新新的空间嵌入224,还有可选地使用强化学习重新训练动作选择神经网络。
[0096]
训练空间嵌入神经网络以最小化预测评分和目标评分之间的误差鼓励空间嵌入神经网络生成预测环境的观察的空间嵌入。更具体地,训练鼓励空间嵌入神经网络整合代理运动数据,以生成预测在代理的视角下的(即,由观察表征的)环境的视觉或几何外观的嵌入。因此,在各实施方式中,存储在外部存储器中的观察嵌入210不是由训练引擎218更新的参数。
[0097]
可选地,训练系统200可以以某种预定义的概率将在时间步长中生成的空间嵌入208和观察嵌入210存储在外部存储器中的槽位中。如果外部存储器中的一个或多个槽位为空,则训练系统200可以将空间嵌入208和观察嵌入210存储在空的槽位中。否则,训练系统200可以(可能以较低概率)通过覆盖当前存储在槽位中的数据,将空间嵌入208和观察嵌入210存储在外部存储器中。例如,槽位可以被初始化为空白,以第一概率(例如p=0.01)覆盖,直到槽位填满,然后以第二较低的概率(例如,p=0.001)覆盖。
[0098]
在一些实施方式中,训练系统200可以训练一个或多个额外神经网络(称为“整合嵌入神经网络”),其各自被配置为处理在每个时间步长中的一些或全部代理运动数据202,以生成对应的嵌入(称为时间步长的“整合嵌入”)。可选地,每个整合嵌入神经网络可以处理在每个时间步长中的一个或多个额外输入(即,除了时间步长的代理运动数据之外的输入),例如,在时间步长中由一个或多个空间嵌入神经网络生成的空间嵌入。与由空间嵌入神经网络生成的空间嵌入类似,由整合嵌入神经网络生成的整合嵌入可以作为输入被提供
给动作选择神经网络(即,参考图1描述的动作选择系统)。
[0099]
作为训练每个整合嵌入神经网络的部分,训练系统200可以在外部存储器220的每个槽位中(或在额外的外部存储器的槽位中)存储与槽位对应的时间步长的相应整合嵌入。训练系统通过使用整合嵌入神经网络处理对应的时间步长的代理运动数据(和任何其他适当的输入),生成存储在外部存储器的每个槽位中的相应整合嵌入。如下面将更详细描述的,训练系统可以在训练过程中(例如,使用目标函数的梯度)修改存储在外部存储器的槽位中的整合空间嵌入。
[0100]
为了训练整合嵌入神经网络,在时间步长的序列中的每个时间中,训练系统确定外部存储器中的每个槽位的“整合”预测评分和“整合”目标评分。训练系统基于(i)时间步长的由整合嵌入神经网络生成的当前整合嵌入和(ii)与外部存储器中的槽位对应的整合嵌入之间的相似度,生成槽位的整合预测评分。训练系统可以使用任何适当的相似度测量(例如,欧几里得相似度测量、余弦相似度测量或参考等式(1)描述的相似度测量)来生成整合预测评分。
[0101]
训练系统还生成每个槽位的整合目标评分,其测量(i)时间步长的由空间嵌入神经网络生成的一个或当前空间嵌入和(ii)与槽位对应的一个或多个空间嵌入之间的相似度。例如,训练系统可以使用任何适当的相似度测量(例如,欧几里得相似度测量或余弦相似度测量)生成整合目标评分,以测量(i)时间步长的一个或多个当前空间嵌入的级联和(ii)与槽位对应的一个或多个空间嵌入的级联之间的相似度。
[0102]
训练系统可以更新整合嵌入神经网络的参数值,并且可以可选地更新存储在外部存储器的槽位中的整合嵌入,以优化测量整合预测评分和整合目标评分之间的误差的目标函数。目标函数可以是,例如,(例如,参考等式(3)描述的)交叉熵目标函数。训练系统可以(例如,通过将目标函数的梯度反向传播到整合神经网络中来)更新整合嵌入神经网络的参数值。
[0103]
图3示出说明参考图2更详细描述的由空间嵌入训练系统200执行的操作的数据流300。
[0104]
在每个时间步长中,训练系统200使用观察嵌入神经网络206处理时间步长的观察204,以生成当前观察嵌入y
t
。然后,训练系统200可以基于(i)当前观察嵌入y
t
和(ii)存储在外部存储器的相应槽位中的观察嵌入中的每一个之间的相应相似度测量,确定(例如,如上面参考等式(1)描述的)与外部存储器中的每个槽位对应的相应目标评分216。
[0105]
在每个时间步长中,训练系统200使用空间嵌入神经网络102-1至102-3中的每一个来处理相应的代理运动数据,以生成相应的当前空间嵌入x
1,t
,x
2,t
,x
3,t
。然后,对于空间嵌入神经网络r∈{1,2,3}中的每一个,训练系统200可以基于(i)由空间嵌入神经网络r生成的当前空间嵌入x
r,t
和(ii)存储在外部存储器的相应槽位中的与空间嵌入神经网络r对应的空间嵌入中的每一个之间的相应相似度测量,确定一组相似度测量(示为302-1至302-3)。然后,训练系统200(例如,通过乘积运算)聚合相似度测量集302-1至302-3,以确定与外部存储器中的每个槽位对应的相应预测评分214。
[0106]
在每个时间步长中,训练系统200确定测量目标评分216和预测评分214之间的误差的目标函数304(例如,交叉熵目标函数)的梯度,并且使用梯度来更新空间嵌入神经网络的参数值。
[0107]
图4是用于训练一个或多个空间嵌入神经网络的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的训练系统(例如,图2的空间嵌入训练系统200)可以执行过程400。
[0108]
一般来说,过程400的步骤是为在代理与环境互动的时间步长的序列中的每个时间步长执行的。为方便起见,下面对过程400的描述是指时间步长的序列中的当前时间步长。
[0109]
系统接收表征在当前时间步长中的代理在环境中的运动的数据和表征在当前时间步长中的环境状态的观察(402)。代理运动数据可以包括以下各项中的一个或多个:表征在当前时间步长中的代理速度的速度数据、表征在当前时间步长中的代理角速度的角速度数据、或表征在当前时间步长中的代理平移速度的平移速度数据。观察可以包括,例如,由代理的相机捕捉的描绘在时间步长中在代理的视角下的环境的视觉外观的图像。
[0110]
系统使用观察嵌入神经网络处理观察,以生成观察嵌入(404)。观察嵌入神经网络可以是,例如,卷积神经网络,其被训练为(即,通过生成在由解码器神经网络处理时能够重构原始观察的观察嵌入)执行自动编码任务。在一些情况下,观察嵌入神经网络是降维神经网络,即,使得观察嵌入的维度低于观察本身的维度。
[0111]
系统使用每个空间嵌入神经网络处理代理运动数据的相应子集,以使用每个空间嵌入神经网络生成相应空间嵌入(406)。下面,将参考图5更详细描述用于使用空间嵌入神经网络生成空间嵌入的示例过程。
[0112]
系统基于当前观察嵌入,确定外部存储器中的每个槽位的相应目标评分(408)。外部存储器中的每个槽位对应于相应的先前时间步长,并且存储:(i)表征在先前时间步长中的环境状态的观察嵌入(表示)和(ii)对应于每个空间嵌入神经网络的时间步长的相应空间嵌入。系统基于(i)当前观察嵌入和(ii)存储在外部存储器中的槽位处的观察嵌入之间的相似度测量,确定(例如,如上面参考等式(1)描述的)外部存储器中的每个槽位的目标评分。
[0113]
系统基于当前空间嵌入,确定外部存储器中的每个槽位的相应预测评分(410)。为了生成外部存储器中的槽位的预测评分,对于每个空间嵌入神经网络,系统可以确定(i)由空间嵌入神经网络生成的当前空间嵌入和(ii)存储在槽位中的与空间嵌入神经网络对应的空间嵌入之间的相应相似度测量。然后,系统可以通过聚合当前空间嵌入和存储在外部存储器中的槽位中的空间嵌入之间的确定的相似度测量,确定(例如,如上面参考等式(2)描述的)槽位的预测评分。
[0114]
系统基于预测评分和目标评分之间的误差,更新每个空间嵌入神经网络参数的参数值(412)。例如,系统可以确定测量预测评分和目标评分之间的误差的目标函数(例如,交叉熵目标函数)的梯度,并且将目标函数的梯度反向传播到空间嵌入神经网络参数中。
[0115]
图5是用于使用具有循环神经网络架构的空间嵌入神经网络生成时间步长的空间嵌入的示例过程500的流程图。为方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的训练系统(例如,图2的空间嵌入训练系统200)可以执行过程500。
[0116]
系统接收空间嵌入神经网络的网络输入,其包括:(i)表征在时间步长中的代理运动的代理运动数据和(ii)在先前时间步长中由空间嵌入神经网络生成的输出(502)。在先
前时间步长中由空间嵌入神经网络生成的输出可以是,例如,先前时间步长的空间嵌入,或部分基于在先前时间步长中的观察生成的替换输出。将参考步骤508至512更详细描述部分基于在时间步长中的观察来生成空间嵌入神经网络的替换输出。
[0117]
系统使用空间嵌入神经网络处理网络输入,以更新空间嵌入神经网络的隐藏状态(504)。空间嵌入神经网络的更新隐藏状态定义时间步长的空间嵌入。在一个示例中,空间嵌入神经网络的更新隐藏状态h
t
可以由下面给出:
[0118]ht
=σ(wh
t-1
vx
t
b)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0119]
其中,σ(
·
)是逐元素(element-wise)的sigmoid函数,w、v和b是权重矩阵,h
t-1
是空间嵌入神经网络在先前时间步长中的隐藏状态,并且x
t
是网络输入。
[0120]
系统可以提供更新隐藏状态作为时间步长的空间嵌入神经网络的输出(506)。
[0121]
可选地,作为标识更新隐藏状态作为空间嵌入神经网络的输出的替换方式,系统可以生成部分基于在时间步长中的观察的替换输出,如参考步骤508至512描述的。系统可以在随机选择(例如,概率为p=0.1)的时间步长中,生成部分基于时间步长的观察的替换输出。生成部分基于时间步长的观察的替换输出可以使空间嵌入神经网络能够纠正累积的误差,并且将来自观察的位置和方向信息并入下一时间步长的隐藏状态。
[0122]
为了生成基于时间步长的观察的时间步长的替换输出,系统确定外部存储器中的每个槽位的相应权重值(508)。系统可以基于(i)当前观察嵌入和(ii)存储在槽位中的观察嵌入之间的相似度测量,确定每个槽位的相应权重值。例如,系统可以将槽位s的权重值ws确定为:
[0123][0124]
其中,γ是确定权重分布的熵的正标量参数,,是当前观察嵌入的转置,是存储在外部存储器的槽位s中的观察嵌入,s

对槽位进行索引,s是槽位的总数量。在各实施方式中,γ是由训练引擎218优化的参数之一。
[0125]
系统基于外部存储器中的槽位的权重值,确定“纠正(correction)”嵌入(510)。例如,系统可以将纠正嵌入确定为:
[0126][0127]
其中,s索引外部存储器中的槽位,s是槽位的数量,ws是槽位s的权重值,并且是存储在槽位s中的与空间嵌入神经网络对应的空间嵌入。
[0128]
系统使用纠正嵌入生成时间步长的输出(512)。例如,系统可以使用空间嵌入神经网络的一个或多个神经网络层(例如,循环层)来处理:(i)空间嵌入神经网络的更新隐藏状态和(ii)纠正嵌入,以生成时间步长的输出。时间步长的输出可以是具有与空间嵌入神经网络的隐藏状态相同的维度的嵌入。取决于时间步长的观察的时间步长的输出可以作为输入在下一时间步长中被提供给空间嵌入神经网络,并且在下一时间步长中作为更新空间嵌入神经网络的隐藏状态的部分来处理。通过在下一时间步长中将来自观察的信息(例如,来自包括图像的观察的视觉信息)并入空间嵌入神经网络的隐藏状态中,空间嵌入神经网络
可以纠正由隐藏状态表示的空间信息中的误差,作为在可能很长的时间步长序列中主要整合运动信息的结果。
[0129]
本说明书将术语“配置”与系统和计算机程序组件结合使用。对于一个或多个计算机的系统被配置为执行特定的操作或动作,意味着该系统已经安装有在操作中使系统执行操作或动作的软件、固件、硬件或它们的组合。对于一个或多个计算机程序被配置为执行特定的操作或动作,意味着一个或多个程序包括指令,指令在由数据处理装置执行时,使装置执行操作或动作。
[0130]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中实现,在有形体现的计算机软件或固件中实现,在计算机硬件中实现,其包括在本说明书中公开的结构和它们的结构等同物,或在它们的一个或多个的组合中实现。本说明书描述的主题的实施例可以被实现为一个或多个计算机程序,即,编码在有形的非暂时性存储介质上以由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备、或它们中的一个或多个的组合。可替换或附加地,程序指令可以被编码在人工生成的传播信号上(例如,机器生成的电、光或电磁信号),该信号被生成以编码信息来传输到适当的接收器装置,以由数据处理装置执行。
[0131]
术语“数据处理装置”是指数据处理硬件,并且包含用于处理数据的各个种类的装置、设备和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。该装置也可以是或还包括专用的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以可选地包括创造计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0132]
计算机程序(也可称为或描述为程序、软件、软件应用、应用(app)、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或声明性或程序性语言;而且,计算机程序可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不需要对应于文件系统中的文件。程序可以被存储在保持其他程序或数据的文件的部分(例如,存储在标记语言文档中的一个或多个脚本)中,在专用于有关程序的单个文件中,或在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上执行,或在位于一个地点或者分布在多个地点并通过数据通信网络相互连接的多个计算机上执行。
[0133]
在本说明书中,术语“引擎”被广泛用于指编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。一般来说,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,多个引擎可以被安装并运行在相同的一个或多个计算机上。
[0134]
本说明书中描述的过程和逻辑流可以由一个或多个可编程计算机来执行,所述一个或多个可编程计算机还行一个或者多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流还可以由专用的逻辑电路(例如,fpga或asic)或由专用的逻辑电路和一个或多个编程计算机的组合执行。
[0135]
适合执行计算机程序的计算机可以基于通用或专用的微处理器或两者,或任何其他种类的中央处理单元。一般来说,中央处理单元将从只读存储器或随机存取存储器或两
者中接收指令和数据。计算机的基本元素是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用的逻辑电路补充,或并入其中。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从大容量存储设备接收数据,或将数据传输到大容量存储设备,或者两者皆有。然而,计算机不需要这种设备。此外,计算机可以被嵌入到另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。
[0136]
适合存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如,eprom、eeprom和闪存存储器设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd rom和dvd-rom盘。
[0137]
为了提供与用户的互动,本说明书描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器),以及用户可通过其向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)。其他种类的设备也可用于提供与用户的互动;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及,可以以任何形式(包括声音、语言或触觉输入)接收来自用户的输入。此外,计算机可以通过向由用户使用的设备发送文档和从该设备接收文档来与用户互动;例如,通过响应于从网络浏览器接收到的请求而向用户的设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息并且进而从用户接收响应信息,与用户互动。
[0138]
用于实现机器学习模型的数据处理装置还可以包括,例如,用于处理机器学习训练或生产(即,推理)的工作负载的共同和计算密集型部分的专用的硬件加速器单元。
[0139]
机器学习模型可以使用机器学习框架来实现和部署,例如,tensorflow框架、microsoft cognitive toolkit(微软认知工具包)框架、apache singa框架或apache mxnet框架。
[0140]
本说明书描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有用户可通过其与本说明书描述的主题的实现进行交互的图形用户界面、网络浏览器或应用(app)的客户端计算机)、或者一个或多个这种后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)来相互连接。通信网络的示例包括局域网(“lan”)和广域网(“wan”)(例如,互联网)。
[0141]
计算系统可以包括客户端和服务器。客户端和服务器一般是彼此远离的,并且通常通过通信网络进行互动。客户端和服务器的关系是由于在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,html页)传输到用作客户端的用户设备(例如,以便向与设备互动的用户显示数据和从其接收用户输入)。在服务器处可以从用户设备接收在设备处生成的数据(例如,用户互动的结果)。
[0142]
虽然本说明书包含许多具体的实施细节,但是这些不应被理解为对任何发明或可能要求保护的内容的范围的限制,而是应被理解为对特定发明的特定实施例所特定的特征
的描述。本说明书中的在单独实施例的上下文中描述的特定特征也可以在单个实施例中以组合方式实现。反之,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开或以任何适当的子组合实现。此外,尽管上面可能将特征描述为在特定组合中起作用,甚至最初也是如此要求保护的,但是在一些情况下,可以从所要求保护的组合中去除组合中的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
[0143]
类似地,虽然附图按特定顺序描绘操作,并且权利要求按特定顺序叙述,但是这不应被理解为要求按所示的特定顺序或按依次顺序执行这些操作,或者执行所有示出的操作才能达到期望结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各系统模块和组件的分离不应被理解为在全部实施例中都要求这样的分离,应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或打包成多个软件产品。
[0144]
已经描述了本主题的特定实施例。其他实施例落入所附的权利要求的范围中。例如,权利要求叙述的动作可以按不同的顺序执行,并且仍然达到期望结果。作为一个示例,附图描绘的过程不一定要求所示的特定顺序或依次顺序来达到期望结果。在一些情况下,多任务和并行处理可能是有利的。
[0145]
所要求保护的是:
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献