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

使用自举潜在表示的自监督表示学习的制作方法

2022-12-02 19:04:55 来源:中国专利 TAG:

使用自举潜在表示的自监督表示学习
1.相关申请的交叉引用
2.本技术要求2020年6月5日提交的美国临时申请第63/035,583号和2020年6月15日提交的美国临时申请第63/039,343号的优先权。该在先申请的公开内容被认为是本技术公开内容的一部分,并通过引用并入于此。


背景技术:

3.本说明书涉及使用机器学习模型的图像处理。
4.神经网络是采用一层或多层非线性单元对接收到的输入来预测输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一个层的输入,即下一个隐藏层或输出层。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。


技术实现要素:

5.本说明书描述了一种被实现为位于一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统被配置成通过自监督学习过程来学习诸如图像之类的数据项的表示。
6.本公开的第一方面提供了一种计算机实现的训练神经网络的方法。该方法包括:用目标神经网络处理训练数据项(例如图像)的第一变换视图以生成目标输出,用在线神经网络处理训练数据项(例如图像)的第二变换视图以生成目标输出的预测,更新在线神经网络的参数以最小化目标输出的预测和目标输出之间的误差,以及基于在线神经网络的参数更新目标神经网络的参数。
7.术语“变换视图”是指例如图像之类的训练数据项的变换版本,并且用于将训练数据项经历了变换(例如图像变换)之后的训练数据项与原始(未变换的)训练数据项区分开。
8.神经网络的参数可以包括神经网络的权重,并且更新神经网络的参数可以包括调整权重的值。
9.更新目标神经网络的一个或多个参数可以包括用在线神经网络的参数的移动平均值来更新目标神经网络的一个或多个参数。移动平均值可以是指数移动平均值。
10.更新目标神经网络的一个或多个参数可以包括根据ξ

τξ (1-τ)θ来确定目标神经网络的一个或多个参数的更新值,其中ξ代表目标神经网络的参数,θ代表在线神经网络的参数,并且τ是衰减率。衰减率可以是零和一之间的值。
11.在线神经网络和目标神经网络可以各自包括相应的编码器神经网络。由此,该方法还可以包括由每个编码器神经网络执行操作,这些操作包括接收例如图像之类的训练数据项的变换视图,以及处理例如图像之类的训练数据项的变换视图,以生成训练数据项的表示。
12.可选地,每个编码器神经网络可以包括残差神经网络,即在神经网络的一层或多层周围具有一个或多个残差或跳过连接的神经网络。
13.当在线神经网络已经被训练时,在线神经网络的编码器神经网络可以用于生成任何合适的输入数据项的表示,例如输入图像(的像素)的表示。如此生成的图像表示可以被其他下游任务使用。
14.例如,可以对图像表示执行图像分类操作。作为另一个示例,可以对图像表示执行图像分割操作。可选地或附加地,可以执行其他图像处理任务。
15.在线神经网络和目标神经网络可以各自包括相应的投影神经网络。该方法还可以包括由每个投影神经网络执行操作,所述操作包括接收例如图像之类的训练数据项的表示,以及处理例如图像之类的训练数据项的表示,以减少表示的维数。可选地,每个投影神经网络可以包括多层感知器。
16.投影神经网络的使用是可选的,因为在线神经网络可以直接预测由目标神经网络生成的例如图像之类的训练数据项的表示(而不是预测表示的投影)。然而,使用投影神经网络可以提供改进的性能。
17.在线神经网络可以包括预测神经网络。该方法还可以包括;由预测神经网络执行操作,所述操作包括接收例如图像之类的训练数据项的表示,,以及使用由预测神经网络的参数体现的回归模型来处理训练数据项的表示,以生成目标输出的预测。可选地,预测神经网络可以包括多层感知器。预测神经网络的使用不是必需的,但是可以帮助提高训练的稳定性。在实现方式中,目标神经网络不包括预测神经网络。
18.因此,在实现方式中,在线神经网络和目标神经网络可以具有相同的神经网络结构,但是具有不同的参数值,除了在神经网络之一中,具体是在线神经网络中的一个或多个附加处理阶段。
19.目标神经网络可以具有停止梯度(“sg”)。停止梯度防止反向传播到目标神经网络中,使得当误差被最小化时,不更新目标神经网络的参数。
20.该方法可以进一步包括将在线神经网络和/或目标神经网络的参数初始化为随机值。
21.该方法还可以包括将第一数据项变换(例如图像变换)应用于训练数据项(例如图像)以生成训练数据项的第一变换视图,以及将第二数据项变换(例如图像变换)应用于训练数据项以生成训练数据项(例如图像)的第二变换视图。第二数据项变换(例如图像变换)不同于第一数据项变换(例如图像变换)。
22.在训练数据项包括训练图像的情况下,第一图像变换和第二图像变换可以包括以下任意一个或多个的任意组合:随机裁剪;沿着水平和/或垂直轴翻转;颜色抖动;转换为灰度;高斯模糊;或者过度曝光(solarization)。可替换地或附加地,可以使用其他图像变换。通过使用训练图像的变换视图,在线神经网络基于同一训练图像的另一变换视图的目标网络表示进行学习。
23.尽管本公开关注其中将训练数据项(例如图像)的两个不同的变换视图输入到在线神经网络和目标神经网络的示例,但是在其他示例中,可以仅仅将训练数据项(例如图像)的变换视图输入到在线神经网络和目标神经网络之一。在这些示例中,将原始(未变换的)训练数据项,例如图像,输入到在线神经网络和目标神经网络中的另一个。
24.更新在线神经网络的一个或多个参数可以涉及使用机器学习优化器,例如基于随机性梯度下降,以最小化上述误差。更新在线神经网络的一个或多个参数可以包括对目标
输出的预测进行归一化;以及最小化目标输出的归一化预测和目标输出之间的平方误差。
25.可以针对包括多个训练数据项的一批中的每个训练数据项迭代地执行以下操作:用目标神经网络处理训练数据项的第一变换视图、用在线神经网络处理训练数据项的第二变换视图、更新在线神经网络的一个或多个参数,以及更新目标神经网络的一个或多个参数。可以在该批中的每个训练数据项被处理后更新在线神经网络和目标神经网络的参数。
26.本公开的另一方面提供了一种处理数据项(例如处理图像)的计算机实现的方法。该方法包括向在线神经网络(即向经训练的在线神经网络的一部分)提供输入数据项(例如图像),该在线神经网络已经根据本公开进行了训练;通过在线神经网络(即使用经训练的在线神经网络的一部分)处理输入数据项(例如图像);从在线神经网络(即从经训练的在线神经网络的一部分)将输入数据项的表示进行输出;以及处理输入数据项(例如图像)的表示。
27.在线神经网络可以包括残差神经网络,该残差神经网络被配置成生成输入数据项(例如图像)的表示。
28.在输入数据项包括图像的情况下,处理输入图像的表示可以包括使用输入图像的表示对输入图像进行分类。此外或替代地,处理输入图像的表示可以包括使用输入图像的表示来分割输入图像。此外或替代地,可以执行其他图像处理任务。
29.本公开的另一方面提供了一种系统,该系统包括一个或多个计算机和一个或多个存储指令的存储设备,当由一个或多个计算机执行指令时,使得一个或多个计算机进行这里公开的任何方法。
30.本公开的另一方面提供了存储指令的一个或多个计算机存储介质,当由一个或多个计算机执行时,所述指令使得一个或多个计算机执行这里公开的任何方法。
31.本说明书中描述的主题可以在特定实施例中实现,以便实现一个或多个以下优点。
32.通过自我监督的学习过程来训练在线神经网络,由此在线神经网络学习从原始的未带标签的训练数据中表示图像。与使用对比损失函数的自监督学习方法不同,本文公开的技术避免了对训练样例(例如图像)的负对(即,不同训练样例(例如图像)的对)的需要。这继而可以避免与使用负对相关的困难,诸如需要大批量、由训练数据集中的样本表示组成的记忆库,以及需要仔细选择负对。然而,当应用于例如图像分类任务时,已经发现由如本文所公开的那样训练的在线神经网络生成的图像表示实现了与使用带标签的示例的训练相当的分类精度,并且优于一些对比方法。
33.本文公开的技术还避免了一些方法的高计算要求,因此本文公开的技术在计算上是高效的。
34.在线神经网络和目标神经网络的输入可以包括例如任何合适类型的图像数据,例如包括视频图像数据。图像数据可以包括彩色或单色像素值数据。这种图像数据可以从诸如照相机或lidar传感器之类的图像传感器中捕获。
35.由本文公开的在线神经网络生成的图像表示可以用于各种各样的图像处理任务。例如,图像表示可以用于图像分类,由此分类系统为给定的输入图像表示输出一个或多个类别标签。继续该示例,分类系统可以处理图像表示并输出一组对象类别中的每一个的分数,每个分数表示图像包含属于该类别的对象的估计可能性。
36.作为图像处理任务的另一个示例,图像表示可以用于图像分割,由此分割系统使用图像表示对输入图像的各个像素属于多个不同类别之一做标签。图像分割的一个示例用例是在对象检测中,由此分割系统根据每个像素所代表的对象类型对输入图像的像素做标签。
37.对象检测可以用作机械体(mechanical agent)的输入,例如机器人或车辆,其可以在真实世界环境中操作。检测到的物体可以是例如障碍物(例如,人、其他机械媒介、墙壁)和/或路径(例如,机械体可以在其上移动的道路或其他表面)。这样检测到的对象可以被机械体的控制系统用来决定如何完成机械任务,例如控制机械体的运动方向和/或速度。
38.图像分割的另一个示例用例是分割医学图像,由此分割系统根据输入医学图像的像素是否示出了存在特定医学状况的人体或动物体的区域来对这些像素做标签。这些纯粹是图像分割的非限制性示例,还有许多图像分割的其他实际应用。
39.在整个说明书中,使用神经网络处理图像是指使用神经网络处理与图像的像素相关联的强度值。
40.本说明书中描述的主题的一个或多个实现方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得明显。
附图说明
41.图1示出了包括编码器神经网络的示例神经网络系统。
42.图2示出了用于训练图1的系统的示例过程。
43.图3示出了使用经训练的编码器神经网络的示例过程。
44.图4a和4b示出了包括经训练的编码器神经网络的示例神经网络系统,以及用于训练和使用该系统的示例过程。
45.图5示出了经训练的编码器神经网络在图像分类任务上的性能。
46.在附图中,相同的附图标记表示相同的要素。
具体实施方式
47.本说明书描述了一种在不使用带标签的训练数据项也不使用对比损失的情况下,训练编码器神经网络以生成数据项的表示的方法。使用对比损失的方法学习区分正样例(即同一数据项的两个变换或“加强”视图)和包括不同数据项的加强的变换或“加强的”视图的负样例。所描述的方法的实现方式只需要针对其对象函数的正样例,而不需要可能难以生成的负样例。它们还可以实现接近具有带标签的训练数据的神经网络的性能。
48.在一些描述的示例中,数据项包括图像,但是通常可以处理任何类型的数据项。稍后将描述不同类型的数据项的一些示例。该方法可用于训练编码器神经网络,以执行任何类型的任务,涉及处理与训练中使用的相同类型的数据项,例如图像。
49.在图像数据项的情况下,这里使用的包括视频数据项,任务可以包括任何种类的图像处理或视觉任务,诸如图像分类或场景辨识任务,图像分割任务,例如语义分割任务,对象定位或检测任务,深度估计任务。当执行这样的任务时,输入可以包括图像的像素或者从图像的像素导出输入。对于图像分类或场景辨识任务,输出可以包括分类输出,该分类输出为多个图像或场景类别中的每一个提供分数,例如表示输入数据项或输入数据项的对象
或元素、或视频数据项内的动作属于某一类别的估计可能性。对于图像分割任务,对于每个像素,输出可以包括分配的分割类别或像素属于分割类别的概率,例如属于图像或视频中表示的对象或动作。对于对象定位或检测任务,输出可以包括定义图像中表示的一个或多个对象的边界框或区域的坐标的数据。对于深度估计任务,输出可以包括每个像素的估计深度值,使得输出像素定义图像的(3d)深度图。这种任务也可能有助于更高级别的任务,例如跨视频帧的对象跟踪;或者手势辨识,即由视频中描绘的实体执行的手势的辨识。
50.另一示例图像处理任务可以包括图像关键点检测任务,其中输出包括一个或多个图像关键点的坐标,诸如图像中表示的对象的界标,例如,其中关键点定义身体关节的位置的人体姿势估计任务。另一个示例是图像相似性确定任务,其中输出可以包括表示两个图像之间相似性的值,例如作为图像搜索任务的一部分。
51.该方法用于训练神经网络系统,编码器神经网络构成该神经网络系统的一部分。训练后不需要系统的其余部分。经训练的编码器神经网络可用于执行任务,而无需进一步训练,例如其参数可被冻结,或者其可被进一步训练以执行特定任务。一般来说,经训练的编码器神经网络可并入更大的系统中以执行特定任务,例如经配置以执行图像分类、图像分割、对象定位或深度估计任务的系统。因此,还提供了一种并入了经训练的神经网络的图像处理系统。
52.在图像数据项的情况下,变换或“加强”的视图可以是同一图像的变换视图。例如,图像可以以不同的方式被随机裁剪或扭曲,以生成两个视图。从广义上讲,该方法学习生成对这种变换鲁棒的表示。
53.图1示出了用于实现该方法示例的神经网络系统100。图1的系统可以被实现为一个或多个位置的一个或多个计算机上的一个或多个计算机程序。
54.系统100包括在线神经网络110和目标神经网络120。
55.目标神经网络120被配置成接收数据项102的第一变换视图(v

)。在线神经网络110被配置成接收同一数据项102的第二变换视图(v)。如稍后进一步描述的,通过对数据项102应用相应的变换(t

,t)来生成经变换的视图。在一些实现方式中,数据项102包括图像,如这里所使用的,其包括视频的图像帧。
56.目标神经网络120被配置成处理数据项的第一变换视图(v

),以生成目标输出126(z

)。在线神经网络110被配置成处理数据项的第二变换视图(v),以生成目标输出的预测118(q(z))。例如由训练引擎130通过使用机器学习优化器更新在线神经网络的参数来训练在线神经网络110,以最小化目标输出126的预测118和目标输出126之间的差异或误差。
57.在线神经网络110包括编码器神经网络112、可选的投影神经网络114和预测神经网络116,并且由这些神经网络的一组参数定义。目标神经网络120包括编码器神经网络122和可选的投影神经网络124,并且由这些神经网络的一组参数定义。
58.在一些实现方式中,但不是本质上,目标神经网络120具有与在线神经网络110相同的架构(除了预测神经网络),但具有不同的参数(权重)。也就是说,编码器神经网络112、122可以是相同的神经网络,但是具有不同的参数;并且类似地,投影神经网络114、124可以是相同的神经网络,但是具有不同的参数。
59.编码器神经网络112、122各自接收数据项102的变换视图,并对其进行处理以生成数据项102的各自变换视图的表示,即高维特征向量。这可以由随后的相应投影神经网络
114、124接收和处理,以分别生成它们相应的数据项102的变换视图的降维表示,即降维特征向量z,z

。来自投影神经网络124的降维表示提供了目标输出126。
60.预测神经网络116接收来自投影神经网络114的降维表示(或来自编码器神经网络112的表示),并对其进行处理以生成预测118。在实现方式中,预测118包括具有与目标输出126相同维度的向量。预测神经网络116的输入可以包括数据项的特征向量表示,除了特征向量的值之外,其与目标输出126的特征向量表示相同。目标输出126可以是如前所述的投影神经网络124的输出,或者在一些实现方式中,是来自编码器神经网络122的表示。
61.编码器神经网络112、122可以具有适于编码数据项102的任何架构。这里描述的训练方法的结果是经训练的编码器神经网络112。训练编码器神经网络112以生成输入数据项的表示,并且可以是被配置成接收数据项之一作为输入并生成所接收数据项的特征向量表示的任何神经网络。
62.例如,在数据项包括图像或视频的情况下,编码器神经网络112、122可以各自包括任何类型的图像或视频编码神经网络,其被配置为生成输入图像或视频的表示,例如特征向量表示。这种图像或视频编码神经网络可以包括一个或多个卷积神经网络层,或者可以具有适用于图像或视觉处理的任何其他架构。在实现方式中,这样的图像或视频编码器神经网络112、122可以各自包括残差神经网络,即具有一个或多个残差或跳过连接的神经网络。仅作为说明性示例,可以使用具有一个或多个剩余或跳过连接的卷积神经网络,例如基于resnet(he等人,arxiv:1512.03385);但是不一定使用卷积神经网络。
63.通常,编码器神经网络112、122被配置为处理编码器神经网络112要被训练的类型的数据项,例如图像、视频、音频、文本或其他。
64.投影神经网络114、124可以是被配置成降低特征表示的维度的任何神经网络。例如,每一个都可以包括多层感知器,其输出空间小于输入空间,例如包括一个或多个完全连接层,每一层可选地跟随有批量归一化层(ioffe和szegedy,arxiv:1502.03167),其后跟随有完全连接的可选线性输出层。
65.仅作为示例,对于224
×
224像素图像,由每个编码器神经网络生成的特征向量表示可以具有4096的维度,并且降维表示可以具有256的维度。
66.在实现方式中,系统可以训练编码器神经网络112忽略应用于数据项的变换。以图像数据项为例,如果对训练图像的变换包括颜色改变,则特征表示可以学习忽略颜色。将特征表示投影到降维表示可以帮助保持特征表示中的有用信息。
67.在实现方式中,预测神经网络116可以是相对较小的神经网络,其学习预测目标输出,例如根据来自投影神经网络114的降维表示来预测来自投影神经网络124的降维表示。因此,预测神经网络116的参数体现了回归模型。在一个示例实现方式中,预测神经网络116包括另一个多层感知器。
68.可选地,可以例如使用l2范数对目标输出126和预测118中的每一个的输出向量进行归一化。例如,目标输出126,z

,可以归一化为预测118,q(z),可以归一化为其中q(
·
)表示预测神经网络116,并且z是来自投影神经网络114的降维表示。
69.神经网络系统100还包括训练引擎130,其被配置为实现系统的训练过程。
70.图2示出了用于训练图1的神经网络系统100,具体是编码器神经网络112的示例过程。图2的过程可以被实现为一个或多个位置的一个或多个计算机上的一个或多个计算机程序。
71.在线神经网络110和目标神经网络120的参数可以被初始化为随机值。在步骤200,获得训练数据项,例如训练图像。然后对其进行处理,以获得数据项的第一和第二不同变换或“加强”的视图(步骤202)。这可能涉及将一个或一系列变换应用于数据项以生成每个经变换的视图。例如,可以通过以预定概率应用一组变换中的每一个来获得每个经变换的视图。
72.例如,在训练数据项包括图像的情况下,变换可以包括以下一项或多项:图像的随机裁剪、翻转图像、颜色抖动、降色、高斯模糊,和过度曝光。随机裁剪可以包括选择图像的随机碎片(patch),然后将其扩展到图像的原始尺寸。翻转图像可以涉及对图像应用水平或垂直翻转。色彩抖动可以包括通过随机偏移来改变图像的一些或所有像素的亮度、对比度、饱和度和色调中的一个或多个。降色可以包括将图像转换成灰度。高斯模糊可以包括对图像应用高斯模糊核;其他类型的核可以用于其他类型的过滤。过度曝光可以包括对图像应用曝光颜色变换;可以使用其他颜色变换。其他变换也是可能的,诸如旋转或剪切图像的一部分(将随机补片的像素设置为统一值)。
73.例如图像的变换可以包括不利的扰动,即被选择来增加编码器神经网络112生成错误表示的可能性的扰动。例如,可以使用madry等人的arxiv:1706.06083中描述的技术,对一对变换视图中的一个变换视图实施不利攻击,例如,以最大化预测118和目标输出126之间的误差。
74.有许多不同的变换可以用来获得变换后的视图。所使用的具体类型的变换可以根据例如编码器神经网络112被训练的任务以及数据项之间预期的变化类型而变化。可选地,在图像的情况下,变换的视图可以例如在颜色通道上被归一化。归一化可以涉及减去平均值并除以标准偏差。
75.数据项的第一变换视图由目标神经网络120处理以生成目标输出126(步骤204),数据项的第二变换视图由在线神经网络110处理以生成目标输出的预测118(步骤206)。然后,确定预测118和目标输出126之间的预测误差,特别是基于预测118和目标输出126的预测损失(步骤208)。预测损失可以包括预测118和目标输出126之间的差异的任何度量,可选地如前所述进行归一化。例如,预测损失或误差可以包括(均)平方误差、负余弦或点积相似性、或交叉熵损失(如果特征向量值被解释为概率并被归一化)。例如,预测损失或误差l,可以被确定为l范数,例如其中‖
·
‖2表示l2范数。
76.在一些实现方式中,该方法确定进一步的预测损失或误差l

,,其中第一和第二变换视图被交换,即数据项的第一变换视图由在线神经网络110处理,而数据项的第二变换视图由目标神经网络120处理。然后可以通过对损失求和来确定对称预测损失或误差l
total
,即l
total
=l l


77.该过程可以在继续之前在一批训练数据项上累积预测损失或误差。
78.在步骤210和212,更新在线神经网络110和目标神经网络120的参数。然而,只有在线神经网络110的参数,而不是目标神经网络120的参数,通过梯度下降,即通过预测损失或误差的反向传播梯度来更新。这可以表示为给目标神经网络120提供“停止梯度”,即通过停
止梯度回流到目标神经网络120中。然而,在实践中,这可以通过使用预测损失或误差仅训练在线神经网络110来实现。
79.因此,在步骤210,更新在线神经网络110的参数以最小化预测损失或误差,而在步骤212,目标神经网络120的参数基于在线神经网络的参数而更新。在一些实现方式中,最小化误差可以涉及最大化预测118和目标输出126之间的相似性,例如余弦相似性。
80.在实现方式中,使用由机器学习优化器(诸如基于梯度下降的优化器)实现的随机性优化步骤来更新在线神经网络110的参数,以最小化预测损失或误差。可以使用其他类型的机器学习优化器。在实现方式中,优化器最小化预测损失或误差,例如,l或l
total
,仅相对于在线神经网络110的参数,即,不相对于目标神经网络120的参数。例如,更新的在线神经网络110的参数可以通过预测神经网络116、投影神经网络114(如果存在)和编码器神经网络112反向传播预测损失或误差的梯度来更新。
81.在实现方式中,基于在线神经网络110的对应部分的参数,即,不基于预测损失或误差,来更新目标神经网络120的参数。例如,目标神经网络120的参数可以被确定为在线神经网络110的参数的拷贝或移动平均值,例如加权或指数移动平均值。通常,目标神经网络120的参数包括在线神经网络110的参数的延迟(和更稳定)的版本。
82.在一些实现方式中,可以使用更新ξ

τξ (1-τ)θ来确定目标神经网络120的参数,其中,t是范围[0,1]中的目标衰减率,ξ是目标神经网络120的一组参数,并且θ是除了预测神经网络的参数之外的在线神经网络110的一组参数,即,编码器神经网络112和投影神经网络114(如果存在)的参数。仅作为示例,τ可以大于0.99,并且可以在训练期间增加。
[0083]
因此,该方法的实现方式使用自举,因为更新的(即,部分训练的)在线神经网络110用于更新目标神经网络120,以生成新的目标输出,用于在线神经网络110的进一步训练。使用新的目标训练在线神经网络110改善了来自编码器神经网络112的表示。
[0084]
比方说,图像的一个加强视图(例如,一个随机裁剪)的表示可以预测同一图像的另一个加强视图(例如,邻近裁剪)的表示。然而,令人惊讶的是,上述训练没有导致编码器神经网络112的特征表示折叠成恒定向量,这对于所有加强都是相同的。相反,目标神经网络有助于稳定训练。目标神经网络120不必与在线神经网络同时或以相同的频率更新。
[0085]
在已经训练了神经网络系统100之后,除了编码器神经网络112(及其训练的参数)之外的所有系统可以被丢弃。也就是说,图2的过程的结果是编码器神经网络112的训练版本。
[0086]
图3示出了使用经训练的编码器神经网络112来处理数据项(例如图像)的过程。该过程可以被实现为一个或多个位置的一个或多个计算机上的一个或多个计算机程序。
[0087]
在步骤300,将输入数据项,例如图像或视频,提供给经训练的在线神经网络110的经训练的编码器神经网络部分。使用部分或全部经训练的编码器神经网络112来处理输入数据项(步骤302),以输出输入数据项的表示(步骤304)。然后进行进一步处理以执行任务(步骤306),例如如前所述的图像处理任务。经训练的编码器神经网络112可用于执行任何处理任务,例如处理与用于训练系统的数据项类型相同的数据项。
[0088]
取决于任务,可能不需要所有经训练的编码器神经网络112来处理数据项。因此,来自经训练的编码器神经网络112的表示输出可以是上述特征向量表示,或者表示输出可以是来自编码器神经网络112的中间层或“主干”的输出,而不是例如来自最终全连接层的
输出。例如,在编码器神经网络具有resnet架构的情况下,表示输出可以是来自中间卷积神经网络层的输出。
[0089]
图4a示出了计算机实现的数据项处理神经网络系统400,其包括经训练的编码器神经网络112(或其一部分)和可选的系统头部402,适配于要执行的数据项处理任务。系统400被配置成接收数据项作为输入,并使用经训练的编码器神经网络112(或其一部分)来处理数据项,以输出该输入数据项的表示。
[0090]
在一些实现方式中,用于执行数据项处理任务的系统输出404包括来自经训练的编码器神经网络112的表示输出。在一些实现方式中,来自经训练的编码器神经网络112的表示输出由系统头部402进一步处理,以生成任务的系统输出404。
[0091]
作为一个示例,来自经训练的编码器神经网络112的表示输出包括特征向量表示,其可以用于评估两个数据项之间,例如两个图像之间的相似性。这可能涉及将每个数据项依次呈现给编码器神经网络112以生成相应的特征向量表示,然后使用相似性度量来比较这些表示,所述相似性度量例如是距离度量,诸如l-范数,或者点积或余弦相似性度量。相似性度量可用于例如检测数据项何时可能已被复制用于重复或近似重复检测。这也可以用于数据项验证。作为另一个示例,从经训练的编码器神经网络112输出的特征向量表示可以用于评估目标数据项(例如目标图像或视频)和数据库中多个数据项(例如图像或视频)中的每一个之间的相似性。可以选择最接近的或最接近之一来从数据库中检索与目标数据项相似的一个或多个数据项。
[0092]
作为另一个示例,经训练的编码器神经网络112的一个或多个最终输出层可以在训练之后被丢弃,并且来自经训练的编码器神经网络112的表示输出可以包括从编码器神经网络112的中间层(先前)生成的特征映射输出。这种特征映射可以具有例如识别诸如输入图像之类的输入数据项的特征的效用,并且数据项处理任务可以是从输入数据项,例如从一个或多个输入图像,生成这种特征映射的任务。
[0093]
一些示例实现方式中,其中数据项是图像并且其中来自经训练的编码器神经网络112的表示输出由系统头部402进一步处理,神经网络系统400是图像处理系统。对于图像分类或场景辨识任务,系统头部402可以包括分类器,例如线性分类器。对于语义分割任务,表示输出可以是来自编码器神经网络112的中间层或“主干”的输出,例如来自resnet卷积层的输出,并且系统头部402可以包括语义分割解码器神经网络,例如具有用于每像素分类的最终1
×
1卷积的卷积神经网络。对于对象检测任务,表示输出也可以是来自编码器神经网络112的中间层或“主干”的输出,并且系统头部402可以包括边界框预测神经网络头部。对于深度估计任务,表示输出可以是来自编码器神经网络112的中间层或“主干”的输出,并且系统头部402可以包括具有一个或多个上采样块的卷积神经网络。在这些示例中,系统输出404可以是如前所述的任务的输出。
[0094]
作为另一个示例,表示输出可以是来自编码器神经网络112的中间层或“主干”的输出,系统头部402可以包括强化学习系统,并且系统输出404可以是用于选择将由实体(例如真实世界环境中的机械体)执行的动作的动作选择输出。
[0095]
可以训练数据项处理神经网络系统400来执行数据项处理任务。在一些实现方式中,在这种训练期间,可以冻结系统400中经训练的编码器神经网络112的参数,同时训练系统头部402的参数。在一些实现方式中,在这种训练期间,可以联合训练经训练的编码器神
经网络112的参数和系统头部402的参数,以针对任务微调编码器神经网络112的参数,可选地进行一些调整。
[0096]
图4b示出了用于训练和使用数据项处理神经网络系统400来执行数据项处理任务的过程。该过程可以被实现为一个或多个位置的一个或多个计算机上的一个或多个计算机程序。
[0097]
图4b示出了包括编码器神经网络112的在线神经网络110先前已经例如通过图2的自举过程进行了训练(步骤400)。在步骤402,该过程通过任何机器学习技术,例如对象函数的梯度的反向传播,来训练系统400,以使用与先前相同的训练数据项或新的训练数据项来执行数据项处理任务。步骤402可以但不需要包括对编码器神经网络112(或在系统400中包括的其一部分)的参数的进一步训练。然后在步骤404,经训练的系统400可以用于执行数据项处理任务。
[0098]
图5涉及来自imagenet数据库的图像分类(russakovsky等人,arxiv:1409.0575)。y轴示出百分比前1的准确度,即具有最高概率的预测的准确度;x轴示出执行分类的神经网络中的参数数量。
[0099]
在图5中,曲线510用于具有监督训练的resnet-200图像分类器。曲线520用于包括resnet-50编码器神经网络的图像分类系统,其后跟随有在特征向量表示之上训练的线性分类器,其中编码器神经网络参数被冻结。resnet-50编码器神经网络是已经如上所述经训练的编码器神经网络112。经训练的编码器神经网络112比使用对比损失(图5中未示出)的其他自监督方法执行得更好,并且接近监督训练的性能。
[0100]
数据项通常可以是任何类型的数据项,包括如前所述的图像和视频帧。例如,数据项可以是音频数据项,即包括数字化音频波形(例如语音波形)的表示的数据项。这种表示可以包括表示波形的数字化幅度值的样本,或者例如波形的时间-频率域表示,诸如stft(短期傅立叶变换)或mfcc(梅尔频率倒谱系数)表示。在这种情况下,数据项的变换或加强的“视图”也可以包括随机剪切,但是在时域或频域中而不是在空间域中,例如选择具有随机开始和结束时间或者具有随机选择的较高和较低频率的音频数据项的部分。数据项的其他变换或加强的“视图”可以包括对数据项的幅度的修改,例如通过随机增加或减小音频的幅度;或者例如通过随机过滤音频来修改音频的频率特性。
[0101]
代替表示音频波形的数据项,该数据项可以表示任何信号的波形,例如来自传感器的信号,该传感器例如是感测对象或真实世界的特性的传感器。然后数据项的变换视图可以对应于以上针对音频波形描述的那些视图。
[0102]
在数据项表示例如音频波形的波形的情况下,数据项处理任务可以包括例如:识别或分类任务,诸如语音或声音识别任务、电话或扬声器分类任务、或音频标记任务,在这种情况下,输出可以是数据项或数据项片段的类别分数或标记;或者相似性确定任务,例如音频拷贝检测或搜索任务,在这种情况下,输出可以是相似性分数。
[0103]
在一些实现方式中,数据项可以是文本数据项,并且数据项的经变换或加强的“视图”可以包括数据项的裁剪或数据项的失真,诸如语法或拼写失真。数据项处理任务可以包括识别或分类任务,或相似性确定任务,例如生成如上所述的类别分数、相似性分数或标记;或者机器翻译任务。数据项还可以表示观察,例如广告印象或点击计数或比率的观察,例如与诸如文本数据的其他数据相结合。然后,经变换的视图可以类似地包括数据项的失
真,并且可以执行类似的任务。
[0104]
对于被配置成执行特定操作或动作的一个或多个计算机的系统,意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得该系统执行这些操作或动作。一个或多个计算机程序被配置成执行特定的操作或动作意味着一个或多个程序包括指令,当由数据处理装置执行时,这些指令使得该装置执行这些操作或动作。
[0105]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。
[0106]
本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是机器可读存储器件、机器可读存储基底、随机或串行存取存储器件,或者它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
[0107]
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,作为示例,包括可编程处理器、计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0108]
计算机程序(也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言来编写,包括编译或解释语言,或者声明性或过程性语言,并且它可以以任何形式来部署,包括作为独立程序或者作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一台计算机或位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
[0109]
如本说明书中所使用的,“引擎”或“软件引擎”是指提供不同于输入的输出的软件实现的输入/输出系统。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“sdk”)或对象。每个引擎可以在包括一个或多个处理器和计算机可读介质的任何适当类型的计算设备上实现,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、pda、智能电话或其他固定或便携式设备。另外,两个或更多个引擎可以在同一计算设备上实现,或者在不同的计算设备上实现。
[0110]
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,所述一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。例如,过程和逻辑
流程可以由图形处理单元(gpu)或张量处理单元(tpu)来执行,并且装置也可以使用图形处理单元或张量处理单元来实现。
[0111]
例如,适于执行计算机程序的计算机包括,作为示例可以基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的典型元件是用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几个示例。
[0112]
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
[0113]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户可以用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
[0114]
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实现方式进行交互,或者包括一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如因特网。
[0115]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的并且彼此具有客户端-服务器关系的计算机程序而产生的。
[0116]
虽然本说明书包含许多具体的实现细节,但是这些不应该被解释为对任何发明或所要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在分开实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
[0117]
类似地,虽然在附图中以特定的顺序描述了操作,但是这不应该被理解为要求这些操作以所示的特定顺序或以序执行,或者要求所有示出的操作都被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包成多个软件产品。
[0118]
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中所述的动作可以以不同的顺序来执行,并且仍然可以实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或依序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。
再多了解一些

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

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

相关文献