学习统一嵌入

文档序号:1745755 发布日期:2019-11-26 浏览:12次 >En<

阅读说明:本技术 学习统一嵌入 (The unified insertion of study ) 是由 宋扬 李源 武勃 C-Y.陈 张晓� H.亚当 于 2017-11-17 设计创作,主要内容包括:描述了一种用于在数据处理装置上使用神经网络生成统一机器学习模型的计算机实施的方法。该方法包括数据处理装置为多个对象顶点中的每一个确定相应学习目标。数据处理装置基于神经网络的两个或更多个嵌入输出来确定相应学习目标。该方法还包括数据处理装置训练神经网络以识别与多个对象顶点中的每一个相关联的数据。数据处理装置使用相应学习目标并基于第一损失函数来训练神经网络。数据处理装置使用经训练的神经网络来生成统一机器学习模型,其中该模型被配置为识别与多个对象顶点中的每一个相关联的特定数据项。(It describes a kind of for using neural network to generate the method implemented by computer of unified machine learning model on data processing equipment.This method includes that data processing equipment is that each of multiple object vertex determine corresponding learning objective.Data processing equipment two or more insertion outputs neural network based are to determine corresponding learning objective.This method further includes data processing equipment training neural network to identify data associated with each of multiple object vertex.Data processing equipment trains neural network using corresponding learning objective and based on first-loss function.Data processing equipment generates unified machine learning model using housebroken neural network, and wherein the model is configured as identification specific data item associated with each of multiple object vertex.)

学习统一嵌入

背景技术

本说明书涉及训练统一(unified)神经网络模型。

神经网络是机器学习模型,其采用一层或多层操作来为接收的输入生成输出,例如分类。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即网络的下一隐藏层或输出层)的输入。网络的一些或所有层按照相应参数集的当前值从接收的输入生成输出。

一些神经网络包括一个或多个卷积神经网络层。每个卷积神经网络层具有一组相关联的内核。每个内核包括由用户创建的神经网络模型建立的值。在一些实施方式中,内核识别特定图像轮廓、形状或颜色。内核可以表示为权重输入的矩阵结构。每个卷积层也可以处理激活输入的集合。该激活输入的集合也可以表示为矩阵结构。

发明内容

本说明书描述了用于在数据处理装置上使用神经网络生成统一机器学习模型的系统和方法。根据所描述的技术,数据处理装置为一组对象顶点中的每个对象顶点确定学习目标。数据处理装置可以基于神经网络的两个或更多个嵌入(embedding)输出来确定每个学习目标。每个嵌入输出可以由使用三元组损失函数(triplet loss function)单独训练的独立专用模型生成。每个专用模型被配置为识别与特定对象顶点相关联的数据。

当数据处理装置训练神经网络以识别与组中的每个对象顶点相关联的数据时,生成统一机器学习模型。数据处理装置基于L2损失函数并使用专用模型的相应学习目标来训练神经网络。数据处理装置使用经训练的神经网络来生成统一机器学习模型。统一模型可以被配置为识别包括对象顶点中的每一个中的项的对象表示的特定电子数据项。

本说明书中描述的主题的一个方面可以体现在用于在数据处理装置上使用神经网络生成统一机器学习计算模型的计算机实施的方法中。该方法包括:由数据处理装置并且为神经网络确定多个对象顶点中的每一个的相应学习目标,其中每个对象顶点定义属于该顶点的对象的不同类别;由数据处理装置并且基于第一损失函数来训练神经网络,以识别与多个对象顶点中的每一个相关联的数据,其中神经网络是使用相应学习目标来训练的;以及由数据处理装置并且使用基于第一损失函数训练的神经网络生成统一机器学习模型,该统一机器学习模型被配置为识别包括在与多个对象顶点中的每一个相关联的数据中的项。

这些和其它实施方式可以各自可选地包括以下特征中的一个或多个。例如,在一些实施方式中,为神经网络确定相应学习目标还包括:由数据处理装置并且基于第二损失函数训练至少一个其它神经网络,以识别与多个对象顶点中的每一个相关联的数据;响应于训练,由数据处理装置生成两个或更多个嵌入输出,其中每个嵌入输出指示特定学习目标并且包括对应于与特定对象顶点相关联的数据的参数的向量;以及由数据处理装置并且使用基于第二损失函数训练的至少一个其它神经网络生成相应机器学习模型,每个机器学习模型被配置为使用特定嵌入输出。

在一些实施方式中,为神经网络确定相应学习目标还包括:提供从相应独立模型生成的相应学习目标,用于训练神经网络。在一些实施方式中,多个对象顶点中的每一个对应于项的特定类别,并且与多个对象顶点中的每一个相关联的数据包括项的特定类别中的项的图像数据。在一些实施方式中,特定类别是服饰类别,并且特定类别的项包括以下各项中的至少一个:手提包、鞋子、连衣裙、裤子或外套;并且其中图像数据指示以下各项中的至少一个的图像:特定手提包、特定鞋子、特定连衣裙、特定裤子或特定外套。

在一些实施方式中,相应机器学习模型中的每一个被配置为识别与特定对象顶点相关联的数据且在第一准确度内;并且统一机器学习模型被配置为识别与多个对象顶点中的每一个相关联的数据且在超过第一准确度的第二准确度内。在一些实施方式中,确定多个对象顶点中的每一个的相应学习目标包括:分析两个或更多个嵌入输出,每个嵌入输出对应于多个对象顶点中的特定对象顶点;以及基于该分析,确定多个对象顶点中的每一个的相应学习目标。

在一些实施方式中,第一损失函数是L2损失函数,并且生成统一机器学习模型包括:生成最小化与L2损失函数相关联的计算输出的特定统一机器学习模型。在一些实施方式中,神经网络包括接收多个层输入的多个神经网络层,并且其中基于第一损失函数训练神经网络包括:执行批量规范化(batch normalization)以规范化到特定神经网络层的层输入;以及响应于执行批量规范化,最小化协变量偏移。在一些实施方式中,第二损失函数是三元组损失函数,并且生成相应机器学习模型包括:基于锚图像、正图像和负图像之间的关联生成特定机器学习模型。

该方面和其它方面的其它实施方式包括对应系统、装置和计算机程序,其被配置为执行编码在计算机存储设备上的方法的动作。一个或多个计算机或电路的计算系统可以通过安装在系统上的软件、固件、硬件或它们的组合来如此配置,使得在操作中使系统执行这些动作。一个或多个计算机程序可以通过具有指令来如此配置,该指令在被数据处理装置运行时使得装置执行这些动作。

本说明书中描述的主题可以在特定实施例中实施,以实现一个或多个以下优点。对象辨别在视觉研究中受到越来越多的关注。在这种背景下,所描述的教导包括使用神经网络来使用L2损失函数生成统一机器学习模型的过程,其中该统一模型可以用于识别或辨别多个对象顶点的各种对象(例如,连衣裙、手提包、鞋子)。

例如,给定描绘一件衣服的表示的图像数据,根据所描述的教导生成的统一模型可用于定位或检索相同或相似的项。在一些实例中,项的外观可能随着光照、视点、遮挡和背景条件而改变。不同的对象顶点也可以具有不同的特性,使得来自连衣裙顶点的图像可能比来自鞋子顶点的图像经历更多的变形。因此,由于这些区别,独立模型被训练来识别每个对象顶点中的项。

然而,独立专用模型要求用于模型存储的大量资源和增加的计算需求来支持多个模型的部署。当在移动平台上使用多个模型时,这些资源负担可能会变得更加严重。因此,用于跨不同服饰顶点的对象辨别的统一模型可以降低处理器利用率,并提供增加的示例对象辨别系统的计算效率。此外,对象检索功能可以通过将多个专用模型组合到使用更小计算覆盖量(footprint)的单个统一模型中来高效地执行。这导致模型生成和使用技术领域的技术改进。

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

附图说明

图1示出了用于基于第一损失函数生成机器学习模型的神经网络架构。

图2示出了用于基于第二损失函数生成机器学习模型的神经网络架构。

图3示出了与不同对象顶点相关的嵌入数据的示例图形表示。

图4是基于特定损失函数为多个对象顶点生成统一机器学习模型的过程的示例流程图。

图5示出了包括对应于特定服饰类别的对象顶点的相应嵌入模型的图形表示的图示。

图6示出了具有用于获得用于训练一个或多个机器学习模型的图像数据的计算功能的图示。

不同附图中相同的附图标记和名称指示相同的元素。

具体实施方式

机器学习系统可以使用深度神经网络来训练,以基于学习到的推理来辨别特定类别的项。深度神经网络可以基于对机器学习系统接收的输入数据的分析来生成推理。经训练的机器学习系统可以产生或生成一个或多个专用模型,所述专用模型使用学习到的推理的特定集合用于特定类别的项的识别或辨别。

例如,在服饰辨别的上下文中,可以训练专用模型来辨别与特定类别或对象顶点(object vertical)相关联的项,诸如向其应用模型的图像数据中的连衣裙、裤子或手提包。在替代实施方式中,类别或对象顶点可以对应于各种项或对象,诸如汽车、动物、人类个体和各种物理对象,例如在图像数据中表示的。在一些实施方式中,对象顶点可以对应于音频信号数据。

一般地,专用模型可能显著优于通用模型,例如,被训练来辨别与宽范围的对象顶点相关联的项的模型。因此,使用深度神经网络生成的项辨别模型通常针对不同的对象顶点独立进行训练。对象顶点定义了属于该顶点的对象的不同类别,例如,对于服饰,对象顶点可以是帽子、鞋子、衬衣、夹克等的项类别。然而,包括用于识别不同对象顶点的项的专用模型组的项辨别系统部署起来可能很昂贵,并且可能不能充分可伸缩(scalable)。

在这种上下文下,本说明书中描述的主题包括用于在数据处理装置上使用神经网络生成统一机器学习模型的系统和方法。统一嵌入模型可以使用深度神经网络来生成,该深度神经网络利用通过由相应专用模型生成的嵌入输出来指示的学习目标。示例机器学习系统可以使用神经网络(或深度神经网络)来学习用于识别跨多个对象顶点(例如,对应于各种服饰种类的项类别)的各种项的推理。

例如,包括神经网络的机器学习系统可以访问一组对象顶点中每个对象顶点的相应学习目标。系统可以基于神经网络的两个或更多个嵌入输出来确定相应学习目标。每个嵌入输出可以由相应专用模型生成,这些专用模型使用三元组损失函数进行单独训练,并识别与特定对象顶点(例如,手提包)相关联的数据(例如,奢侈品手提包的图像)。

系统的数据处理装置训练神经网络来识别与该组对象顶点中的每个顶点相关联的数据。神经网络可以使用专用模型的相应学习目标并基于L2损失函数来训练。数据处理装置使用经训练的神经网络来生成统一机器学习模型,该统一机器学习模型被配置为识别与该组中的每个对象顶点(例如,鞋子、手提包、上衣/衬衣等)相关联的特定数据项(例如,品牌运动鞋、奢侈品钱包、奢侈品衬衫等)。

图1示出了用于基于第一损失函数生成示例机器学习模型的神经网络系统架构100(“系统100”)。生成机器学习模型可以包括系统100执行与推理工作负载相关联的神经网络计算。具体地,推理工作负载的计算可以包括通过神经网络的层处理神经网络输入(例如,输入激活)。神经网络的每一层可以包括一组参数(例如,权重),并且通过神经网络层处理输入可以包括使用输入激活和参数作为计算的操作数来计算点积。

系统100通常包括由神经网络架构102指示的示例神经网络。架构102的神经网络可以包括基础网络103、池化层104、第一连接层集106、第二连接层集108和嵌入输出110。基础网络103可以包括架构102的神经网络层的子集。

例如,深度神经网络可以包括包含多个卷积层的基础网络103。这些卷积层可用于执行复杂的计算,所述复杂的计算用于包括在各种图像数据中的各种项的基于计算机的辨别。在一些实施方式中,基础网络103可以是初始(inception)v2、初始v3、初始v4或另一相关神经网络结构。尽管在图像数据的上下文中进行了描述,但是本说明书的过程可以应用于音频信号数据的检测或辨别。

架构102可以包括执行与用于训练机器学***均池化层或最大池化层,其执行与用于下采样操作的、池化输出激活相关的功能。下采样操作可以通过修改与输入数据集相关的某些空间维度来减小输出数据集的大小。

连接层集106、108可以是完全连接层的相应集合,其包括具有到前一层中的所有激活的完全连接的人工神经元。嵌入输出110可以对应于包括给定输出维度(64-d、256-d等)的浮点数/参数的向量的一个或多个输出特征集合。如下文更详细描述的,当系统100的示例神经网络被训练为执行用于对象/项辨别或识别的某些计算功能时,嵌入输出110被形成、产生或生成。

系统100可以包括形成一个或多个神经网络的一个或多个处理器和其它相关电路组件。一般地,本说明书中描述的方法和过程可以使用各种处理器架构来实施,诸如中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)或其它相关的处理器架构。

系统100可以包括多个计算机、计算服务器和其它计算设备,每一个包括处理器和存储可由处理器执行的计算逻辑或软件指令的存储器。在一些实施方式中,系统100包括一个或多个处理器、存储器和数据存储设备,它们共同形成一个或多个架构102。架构102的处理器处理由系统100执行的指令,包括存储在存储器中或存储设备上的指令。存储的指令的执行可以使得执行本文描述的机器学习过程。

再次参考图1,系统100被配置为执行与机器学习过程相关的各种计算操作。例如,系统100执行学习操作112和114以及与训练神经网络以生成一个或多个专用机器学习模型相关的各种其它操作。在一些实施方式中,系统100执行编程代码或软件指令来执行与学习操作112和114相关联的计算。如下文更详细描述的,学习操作112和114由系统100执行,以基于由计算逻辑116指示的三元组损失函数来训练相应专用学习模型。

学习操作112包括系统100使用架构102的神经网络来生成模型训练数据。模型训练数据可以对应于当系统100被训练来生成特定的专用模型时由系统100产生的嵌入输出。在一些实施方式中,系统100生成多个不同的专用模型,并产生单独的嵌入输出的集合,其中特定的嵌入输出的集合对应于特定的专用模型。

例如,在服饰辨别或服饰检索的上下文中,可以生成独立专用模型来辨别和检索不同服饰类别(例如,连衣裙、上衣、手提包等)的服饰项。在一些实施方式中,可以使用独立的子网络来学习用于辨别来自各种网站的图像或其它用户产生的图像(例如,使用移动设备/智能手机捕获的“街道”或“现实生活”数字图像)的嵌入模型。

在模型训练期间,对于每个顶点(诸如连衣裙、手提包、眼镜和裤子)的子网络,都可以独立地微调。对于这些子网络,模型训练的结果可以使机器学习系统产生多达十一个独立专用模型,每个独立专用模型对应于十一个顶点中的一个。如本文所使用的,“顶点(vertical)”或“对象顶点”对应于对象或项类别。对于服饰辨别,对象顶点可以是服饰项类别,诸如连衣裙、手提包、眼镜、裤子等。如下文更详细讨论的,针对特定类别/顶点中的项(例如,服饰项)的对象辨别使用独立模型可以产生基本准确的项辨别结果。

在一些实施方式中,系统100使用服饰项的图像数据来训练架构102的神经网络,所述服饰项各自与不同服饰类别相关联。例如,系统100可以使用多个不同类型的手提包的图像数据来训练神经网络。系统100然后可以基于响应于训练神经网络而产生的嵌入输出来生成识别或辨别特定类型的手提包的专用模型。

如上所述,特定的嵌入输出的集合可以对应于特定专用模型。例如,在服饰辨别中,嵌入输出的第一集合可以对应于用于生成用于辨别特定衬衣/衬衫或上衣的第一模型的学习到的推理的神经网络训练数据(例如,参见操作114)。类似地,嵌入输出的第二集合可以对应于用于生成用于辨别特定牛仔裤/裤子/短裙或下装的第二模型的学习到的推理的神经网络训练数据。

嵌入输出的每个集合包括嵌入特征向量,这些嵌入特征向量可以被提取并用于对象或项检索。如下文更详细描述的,提取出的嵌入特征向量的集合可以对应于相应学习目标,并且经训练的神经网络模型的嵌入输出可以包括这些嵌入特征向量。

一个或多个学习目标可用于训练机器学习系统(例如,系统100)以生成特定类型的专用计算模型。例如,如下面参考图2的特征所讨论的,多个不同的学习目标可以用于训练辨别与多个不同的顶点或类别相关联的项的至少一个统一机器学习模型。

再次参考图1,系统100执行学习操作114,以基于在学习操作112确定的模型训练数据生成专用学习模型。在一些实例中,确定或生成模型训练数据对应于“学习”单独的嵌入模型的示例过程。在一些实施方式中,对于模型训练和特征向量提取,系统100在训练(例如,第一级)时和在提取用于对象检索的嵌入特征向量(例如,第二级)时使用两级方法。

在从图像数据中检索服饰的上下文中,第一级可以包括对图像数据的服饰项进行定位(localize)和分类。在一些实例中,对图像数据的服饰项进行分类包括系统100为图像数据的服饰项确定对象类别标签。例如,系统100可以使用示例对象检测器来分析图像数据。系统100然后可以使用分析数据来检测包括与手提包相关联的对象属性的图像数据的对象或服饰项。基于该分析和检测,系统100然后可以确定服饰项的对象类别标签是“手提包”类别标签。

在一些实施方式中,系统100包括对象检测架构,其是用于基础网络103的单发多框(single-shot multi-box,SSD)检测器,基础网络103是初始V2基础网络。在其它实施方式中,系统100可以被配置为使用或包括各种其它对象检测架构和基础网络组合。SSD可以是系统100的示例计算模块,其执行程序代码以使得执行一个或多个对象检测功能。

例如,该SSD检测器模块可以提供界定(bound)图像数据的对象的边界框。SSD还可以提供指示界定对象是手提包、眼镜项还是连衣裙的服饰类别标签。在一些实施方式中,图像数据的对象像素可以被裁剪(crop),然后可以使用系统100的特定嵌入模型在裁剪图像上提取各种特征。与两级过程中的第一级相关联的子过程步骤可以用于基于各种图像数据来训练专用嵌入模型。

响应于在第一级确定对象类别标签,系统100可以前进到第二级并训练专用嵌入模型来计算用于对象检索的相似性特征。例如,系统100可以使用由计算逻辑116指示的三元组损失函数来执行嵌入模型训练。更具体地,系统100使用三元组排序损失(tripletranking loss)来学习每个单独项/对象顶点或类别的特征嵌入。

例如,三元组包括锚图像、正图像和负图像。在三元组学习期间,系统100寻求产生嵌入,使得在神经网络的特征空间中正图像接近锚图像,而负图像被推离锚图像。从三元组训练中学习到的嵌入被用于计算图像相似性。

例如,令为三元组,其中分别表示锚图像、正图像和负图像。系统100的学习目的是最小化与如等式(1)所示的以下损失函数相关联的计算输出,

(1)

其中:i)α是正负对之间强制的间距(margin),ii)是f(I)图像I的特征嵌入,以及iii)D(fx,fy)是两个特征嵌入fx和fy之间的距离。

对于涉及为特定服饰对象顶点训练独立模型的实施方式,正图像是与锚图像相同的产品(例如,香奈儿手提包),而负图像是另一个产品的,但在相同的服饰顶点(例如,奢侈品手提包)中。在一些实施方式中,系统100执行用于半硬负挖掘函数(semi-hard negativemining function)的计算逻辑用于获得负图像数据。例如,系统100可以访问在线/基于网络的资源,并使用半硬负挖掘来识别强的负对象图像。系统100然后可以使用这些对象图像来增强或提高特定专用模型的训练的有效性。

如上所述,基于逻辑116的三元组损失函数的模型训练产生诸如包括特征向量的嵌入输出的训练数据。提取出的嵌入特征向量的集合可以对应于相应学习目标。因此,在学习操作118,系统100可以基于三元组损失模型训练数据来确定相应学习目标。系统100然后可以使用两个或更多个学习目标来训练机器学习系统(例如,图2的系统200),以生成至少一个统一计算模型,如下所述。

图2示出了用于基于第二损失函数(例如,L2损失函数)生成示例机器学习模型的神经网络系统架构200(“系统200”)。如图所示,系统200包括与上述系统100基本相同的特征。然而,系统200包括L2规范化层212,这将在下面更详细地描述。在一些实施方式中,系统200是系统100的子系统,并且可以被配置为执行上述系统100的各种计算功能。

系统200被配置为学习或生成基于学习到的推理来训练的统一嵌入模型。这些学习到的推理使得能够对各种项分组进行对象辨别,其中每个分组对应于不同的对象顶点或类别(例如,服饰类别)。系统200通过组合当系统100如上所述用于训练相应专用模型时产生的训练数据来学习一个或多个统一模型。在一些相关的模型学习/训练场景中,当三元组损失用于训练统一模型时,组合来自独立模型的训练数据以生成统一模型会导致性能下降。

例如,使用逻辑118的三元组损失函数来基于不同对象顶点的组合训练数据(例如,嵌入输出112)训练统一模型,与针对每个单独的顶点训练的模型的准确度相比,可能导致辨别准确度的显著下降。随着更多的对象类别(或顶点)累积到单个统一模型中,这些下降可能会发生。然而,如下文更详细描述的,当组合来自多个专用模型的嵌入以生成单个统一模型时,降低训练难度和训练复杂度可以导致性能和辨别准确度的实质提高。

根据所描述的教导,系统200可以生成统一嵌入模型,当与单独的专用模型相比时,该统一嵌入模型实现等同的性能和辨别准确度。此外,统一模型可以具有与单个单独的专用模型相同甚至更少的模型复杂度。因此,本说明书描述了用于减轻或降低训练多个顶点的模型嵌入中的难度的使得可以生成统一模型改进的过程和方法。

例如,可以首先训练独立专用模型,以实现辨别图像数据中包括的对象的期望的阈值准确度水平。如上所述,可以使用系统100并基于计算逻辑118的三元组损失函数来训练独立模型。然后将每个独立训练的模型的嵌入输出用作学习目标,以训练示例统一模型。

在一些实施方式中,特定专用模型可以具有0.66的示例准确度度量,其中在66.1%(66.1)的时间上模型准确地识别特定手提包。根据所描述的教导生成的统一模型可以实现超过特定专用模型的对象辨别结果的准确度度量(例如,66.1)的准确的对象辨别结果。例如,在服饰辨别的上下文中,根据所描述的教导生成的统一模型对于手提包服饰类别可以具有0.723的准确度度量或72.3%的准确度的对象检索或辨别准确度。

在一些实施方式中,使用统一模型准确辨别/识别对象包括确定对象的类别(例如,“手提包”),确定对象的所有者或设计者(例如,“香奈儿(Chanel)”或“古驰(Gucci)”),和/或确定手提包的类型/风格(例如,“香奈儿2.55经典翻盖包”)。在一些实例中,通过统一模型识别对象可以包括模型检索(例如,对象检索)包括对象的图形表示的相关联的图像数据。

再次参考图2,系统200被配置为生成统一模型,该统一模型可以执行用于准确对象辨别和检索的多个任务,在现有系统中,这些任务是由独立模型执行的,但是准确度更低。此外,所描述的教导包括通过使用L2损失函数来改进仿真独立模型嵌入输出(例如,学习目标)的方法和过程。

例如,基于三元组损失并通过组合两个不同对象顶点(例如,手提包和鞋子)的训练数据来训练统一模型,可以生成以合理的准确度执行那些顶点中的项的对象辨别的统一模型。然而,当组合三个或更多个不同对象顶点的训练数据时使用三元组损失可能导致以基本上差的对象辨别准确度执行的统一模型。在针对几个不同的顶点基于三元组损失函数训练统一模型时出现的困难和复杂的计算挑战造成差的准确度。

为了减轻这种训练难度,本说明书提出了一种学习方案,该学习方案使用来自专用模型的嵌入输出作为学习目标,使得可以使用L2损失代替三元组损失。L2损失函数的使用减轻了生成统一模型的训练难度,并提供了神经网络的特征空间的更有效使用。最终结果是一个统一模型,它可以获得与许多独立专用模型相同(或更高)的检索准确度,同时具有单个专用模型的模型复杂度。

例如,系统200使用独立模型的相应学习目标来学习统一学习模型,使得从该统一模型生成的嵌入与系统100生成的独立专用模型的嵌入相同(或非常接近)。在一些实施方式中,系统200使用架构102的神经网络来确定一组对象顶点中的每个对象顶点的相应学习目标。相应学习目标中的每一个可以基于神经网络的特定嵌入输出。

图2示出了用于生成统一机器学习模型的计算操作。例如,在图2的学习操作214,系统200访问与相应专用模型的特征嵌入对应的学习目标。在学习操作216,系统200生成与用于检测各种顶点的对象的特征嵌入对应的统一模型训练数据。特征嵌入基于在统一模型学习期间发生的神经网络推理计算。

例如,令其中每个Vi是其数据可以被组合以训练嵌入模型的顶点的集合。令为嵌入模型的集合,其中每个Mi是为顶点集合Vi学习的模型。令为N个训练图像的集合。如果Ij的顶点∈Vs,s=1...K,则其对应的模型Ms用于生成图像Ij的嵌入特征。令fsj表示为图像Ij从Ms生成的特征嵌入。

在学习操作220,系统200生成统一机器学习模型,该统一机器学习模型被配置为识别包括在示例图像数据中的特定项。图像数据可以与组中的每个对象顶点相关联,并且使用基于特定损失函数(例如,L2损失)训练的神经网络来生成统一模型。例如,系统200被配置为学习模型U,使得从模型U产生的特征与从由系统100生成的独立专用模型产生的特征相同。

具体地,令fuj表示从模型U生成的特征嵌入。系统200的学习目的是确定可以最小化与如等式(2)所示的以下损失函数相关联的计算输出的模型U。

(2)

参考等式(2),特征fuj从模型U计算,而特征fsj可以从上述不同的专用模型计算。上面的模型学习描述使用由计算逻辑218和上面的等式(2)指示的L2损失函数,而不是由计算逻辑116和上面的等式(1)指示的三元组损失函数。

在一些实施方式中,系统200被配置为生成具有256-d的输出维度107的统一模型。相反,在学习操作114生成的单个专用模型可以具有大于或基本上大于统一模型的256-d输出维度的输出维度107,例如4096-d。如上所述,L2损失的使用提供了比三元组损失不那么复杂和不那么困难的训练过程。

此外,L2损失函数的使用在学习技术(诸如批量规范化)的应用中提供了更小的复杂度和难度。例如,通过批量规范化,神经网络层输入可以被规范化,以允许更高的学习速率。对于示例图像分类模型,当与同其它损失函数一起使用的学习技术相比时,批量规范化可以用于使用更少的训练步骤来实现期望的阈值准确度度量(例如,0.60或更高)。

在一些实施方式中,响应于系统200执行经由L2规范化层212应用的批量规范化功能,协变量偏移(covariate shift)可以被最小化。例如,深度神经网络可以包括序列中的多个层。训练深度神经网络通常由于如下事实被复杂化:例如,随着序列中先前层的参数改变,每个层的输入的分布在模型训练期间可能改变。

这种改变会降低使用深度神经网络训练模型的速度,从而需要更慢的学习速率和小心的参数初始化。对训练速度有不利影响的参数改变可以描述为神经网络内部协变量偏移。然而,通过使用L2损失,可以执行用于规范化层输入的批量规范化过程,以解决或最小化由协变量偏移引起的对训练速度的不利影响。

此外,使用L2损失生成统一模型的学习方法允许使用相对于三元组损失增加量的未贴标签数据。例如,利用用于训练服饰辨别模型的三元组损失学习方法,可能要求产品标识(例如,“香奈儿2.55经典翻盖包”)来生成训练三元组的嵌入数据。然而,使用L2损失的模型训练和学习方法只要求顶点标签,其可以通过示例定位/分类模型自动生成。因此,L2损失的使用可以通过用于确定产品标识的前述计算降低处理器利用率,并增加用于额外计算的系统带宽。

替代地,所描述的教导还包括用于选择顶点数据组合以产生可用于减少专用模型的数量的特定模型(例如,统一模型或其它相关的组合模型形式)的方法。这个特定的组合模型可以被成功地学习,并且可以具有类似于、等于或大于每个独立专用模型的辨别准确度的相当的对象辨别准确度。

例如,选择性的或“智能的”顶点组合可用于确定组合模型(例如,示例统一模型)。在一些实施方式中,系统200可以包括计算逻辑,该计算逻辑用于确定可以组合来自专用模型的不同顶点的哪些嵌入数据以产生示例组合模型。具体地,从第一顶点开始,系统200可以逐步添加来自其它顶点的嵌入数据。当添加嵌入数据时,系统200可以执行样本项辨别任务,以确定从组合数据中学习到的模型是否导致观察到的准确度下降。

在一些实例中,系统200可以稳定地添加来自其它顶点的嵌入数据,直到观察到准确度下降。在其它实例中,系统200为多个专用模型确定顶点的特定组合,其中每个专用模型用于跨顶点子集的项辨别。此外,系统200可以为多个专用模型确定顶点的特定组合,同时还保持阈值准确度水平。系统200然后可以使用与子集中的特定顶点对应的专用模型的特征嵌入,并基于特征嵌入产生组合模型。

图3示出了示例神经网络的特征空间中不同对象顶点的嵌入数据300的图形表示。图形表示通常指示基于所描述的教导训练(例如,学习)的统一模型可以提供神经网络的特征空间的更有效和更广泛的使用。例如,所描述的使用L2损失的学习方法可以通过利用为独立专用模型学习的预先建立的特征映射(例如,学习目标)来有效地训练统一模型。

嵌入数据300包括从独立专用模型的特征嵌入生成的t分布随机邻域嵌入(t-distributed stochastic neighbor embedding,t-SNE)可视化。具体地,嵌入数据300包括来自每个顶点302、304和306的两千个图像,其中数据被向下投影到2D空间用于可视化。

图3指示了特征嵌入fsj在特征空间中是跨顶点302、304、306分开的。换句话说,(来自模型Ms)的每个顶点fsj的嵌入模型仅使用维度空间的一部分(例如,64-d),因此一个统一模型可以被学习来组合数据300的嵌入中包括的每个服饰顶点(例如,总共8个顶点)的嵌入输出。

图4是基于特定损失函数为多个对象顶点生成统一机器学习模型的过程的示例流程图。过程400对应于用于生成统一机器学习模型的改进过程,其中所生成的模型具有至少等于两个或更多个不同专用模型的准确度度量的项辨别准确度度量。过程400可以使用上述系统100或200来实施,其中系统100可以执行与子系统200相关联的所有描述的功能。

过程400包括块402,在块402中,系统100确定一组对象顶点中的每个对象顶点的相应学习目标。在一些实施方式中,系统100的神经网络基于神经网络的两个或更多个嵌入输出来确定相应学习目标。

例如,对象顶点可以是服饰类别,诸如连衣裙、鞋子或手提包。此外,每个顶点可以对应于在特定模型被训练来识别或辨别该顶点中的服饰或服装项时产生的嵌入输出。示例服饰项可以包括鸡尾酒连衣裙、篮球运动鞋或品牌名称字母组合手提包。

在过程400的块404,系统100基于第一损失函数(例如,L2损失)训练神经网络,以识别与组中每个对象顶点相关联的数据。在一些实施方式中,使用为每个对象顶点确定的相应学习目标来训练神经网络。例如,给定图像文件或图像数据,系统100可以训练神经网络来至少:i)基于对图像的像素数据的分析来识别图像中的连衣裙项;ii)基于对图像的像素数据的分析来识别图像中的鞋子项;或者iii)基于对图像的像素数据的分析来识别图像中的手提包项。

在块406,系统100生成统一机器学习模型,该统一机器学习模型被配置为识别包括在与该组顶点中的每个对象顶点相关联的数据中的项。例如,系统100的数据处理装置可以使用基于第一损失函数训练的神经网络来生成执行本文描述的对象辨别功能中的一个或多个的统一机器学习模型。

在一些实例中,确定相应学习目标包括:i)训练神经网络以识别与对象顶点中的每一个相关联的数据,其中基于第二损失函数训练神经网络;以及ii)生成至少两个嵌入输出,其中每个嵌入输出指示相应学习目标的特定学习目标。除了指示特定学习目标之外,每个嵌入输出可以包括通常对应于与特定对象顶点相关联的图像数据的属性的浮点数(或参数)的向量。

在一些实施方式中,系统100生成相应机器学习模型,其中模型中的每一个是使用基于不同于第一损失函数的第二损失函数(例如,三元组损失)训练的神经网络生成的。此外,模型中的每一个可以使用特定嵌入输出的浮点数的向量来识别特定对象顶点的服饰或服装项。在一些实例中,生成嵌入是响应于训练神经网络而发生的。

如上面简要参考图2所讨论的,在一些实施方式中,生成统一机器学习模型可以包括组合与不同服饰顶点相关联的训练数据。为了校准对象识别和检索性能(例如,确定学习目标),首先使用三元组损失来学习每个顶点的嵌入。顶点组合的目的可以是使用更少数量的单独的专用模型,而没有任何观察到的检索准确度下降。

表1:不同顶点组合的检索准确度(百分比)比较

表1示出了(1)单独模型、(2)连衣裙-上衣联合或组合模型、以及(3)连衣裙-上衣-外套联合模型在“连衣裙”、“上衣”和“外套”顶点上的检索准确度度量的示例。与单独模型相比,在“连衣裙”和“上衣”上,连衣裙-上衣联合模型的性能非常相似或稍好,然而,连衣裙-上衣联合模型在“外套”顶点类别中服饰项的检索准确度方面表现不佳。

此外,连衣裙-上衣-外套联合模型会导致在所有三个顶点上的显著的准确度下降。表1的准确度数据指示,一些顶点可以被组合以获得比单独训练的模型更好的准确度,但是仅在一定程度上,之后三元组损失函数的模型训练困难导致准确度下降(如上所述)。

系统100、200的示例过程可以包括组合训练数据的不同顶点。具体地,九个服饰顶点可以被组合成四个组,其中为每组训练一个组合模型。在一些实例中,可以基于用户需求将多于或少于九个服饰顶点组合成特定数量的组。

顶点组
连衣裙、上衣
鞋类、手提包、眼镜
外套
短裙、短裤、裤子

表2:顶点组合组

四个组在表2中示出,且可以具有与每个组的单独训练的模型相当的性能检索准确度。在一些实施方式中,“洁净三元组(clean triplets)”用于微调四个模型中的每一个,其中洁净三元组是从“图像搜索”三元组中获得的(如下所述)。例如,系统200可以被配置为使用洁净数据来微调模型性能,以实现四个模型中的每一个的检索准确度的有效提高。

通常,通过组合训练数据,可以为九个不同的服饰顶点获得四个嵌入模型。基于上述教导,可以为所有九个顶点训练或学习统一模型,然后生成该模型。在一些实施方式中,生成的模型被部署用于多个用户的操作使用。例如,统一模型可以接收用户发送的图像数据,其中用户寻求获得关于图像中包括的特定对象或服饰项的识别数据。

在一些实施方式中,统一模型被配置为接收图像的图像数据,识别或辨别图像中的服饰项,并确定关于图像中的服饰项的识别信息。在一些实例中,统一模型被配置为检索服饰项的相关图像,并且提供关于服饰项和/或服饰项的相关图像的识别信息,以便经由移动设备输出给用户。

图5示出了包括对应于特定服饰类别的对象顶点的相应嵌入模型的图形表示的图示500。此外,图示500的描绘可以对应于可由系统100、200执行的用于提取一个或多个特征嵌入的过程。如上所述,在服饰辨别的上下文中,示例两级方法可用于提取与项或服饰对象的图像数据相关联的特征嵌入。

如图示500所示,对于给定的图像/图像数据502,在块504,可以首先在图像中检测和定位服装项。在块506,然后从裁剪图像中获得嵌入(例如,浮点数的向量),以表示服装项。系统100、200使用嵌入来比较用于项/对象检索的相似性图像。在一些实施方式中,从裁剪图像获得的嵌入可以对应于服装项所属的服饰顶点的学习目标。

如相应的箭头507所示,每个嵌入模型508、510、512和514对应于用于识别和检索某些服饰项的对象检索功能。服饰项可以对应于图像数据的特定裁剪部分中描绘的项。相比之下,箭头515指示统一嵌入模型516对应于用于识别和检索在块506中图像数据的每个裁剪部分中描绘的对象的服饰项的对象检索功能。

块506包括相应裁剪图像,每个裁剪图像包括嵌入模型的对象顶点类别的服装或服饰项的表示。例如,描绘手提包的第一裁剪图像数据对应于用于识别和检索手提包的图像数据的嵌入模型510。同样地,描绘裤子的第二裁剪图像数据对应于用于识别和检索裤子的图像数据的嵌入模型512。然而,块506处的每个裁剪图像数据对应于用于识别和检索各种类型的服饰项的图像数据的统一嵌入模型516。

图6示出了包括用于获得用于训练一个或多个机器学习模型的图像数据的计算功能的示例图示600。图示600可以对应于可由上述系统100或200的一个或多个计算模块执行的计算功能。

在逻辑块602,首先从搜索查询中收集与图像相关的训练数据。可以从接收和存储大容量图像搜索查询的示例搜索系统中访问搜索查询。例如,系统100可以被配置为访问查询数据存储设备,诸如存储使用谷歌图像搜索(Google Image Search)提交的数千(例如,200,000)个用户查询的私有查询储存库。搜索查询可以包括指定的产品或服饰项名称。

在块604,系统100执行用于示例查询文本解析器的解析逻辑,以获得从查询储存库中获得的每个文本查询的服饰类别标签。文本查询可以与九个不同的顶点相关联:i)连衣裙,ii)上衣,iii)鞋类,iv)手提包,v)眼镜,vi)外套,vii)短裙,viii)短裤,和ix)裤子。在块606,系统100为每个搜索查询选择特定数量的最高评级图像(例如,30个图像),其中图像是基于图像像素质量和查询文本数据准确描述该图像的服饰项的程度来评级的。

最高评级图像的图像数据可用于形成上述“图像搜索三元组”,其中三元组包括正图像、负图像和锚图像。系统100可以至少识别三元组的子集(例如,每个对象顶点20,000个三元组),用于对三元组中每个图像的正确性进行系统或用户评级和验证。在一些实施方式中,评级和图像验证包括确定三元组中的锚图像和正图像是否来自相同的产品/顶点类别。被评级和验证为正确的三元组图像的子集可以用于形成三元组的第二集合,这里称为“洁净三元组”。

在逻辑块608,在生成统一模型之前,可以从使用一种或多种类型的图像数据(例如,图像网(ImageNet)数据)预训练的模型初始化基础网络103。在一些实施方式中,当生成统一嵌入模型时,可以使用与用于两个或更多个专用模型的三元组特征学习相同的训练数据来学习统一嵌入模型。例如,生成统一嵌入学习模型可以只要求顶点标签数据,如上所述,其可以经由***/分类器获得。因此,可以使用与在三元组嵌入学习期间生成的训练图像相同的训练图像来生成统一嵌入学习。

本说明书中描述的主题和操作的实施例可以在数字电子电路中实施,或者在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为编码在计算机存储介质上的一个或多个计算机程序,即计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。

替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合或包括在其中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个独立的物理组件或介质(例如,多个CD、磁盘或其它存储设备)或包括在其中。

本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它来源接收的数据执行的操作。

术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或上述中的多个或组合。装置可以包括专用逻辑电路,例如FPGA(Field Programmable Gate Array,现场可编程门阵列)或ASIC(Application-Specific Integrated Circuit,专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和运行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。

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

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

举例来说,适于运行计算机程序的处理器包括通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于按照指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。

通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传送到其或接收传送两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(Personal Digital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如通用串行总线(Universal Serial Bus,USB)闪存驱动器),仅举几个示例。

适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM以及DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示器设备(例如,CRT(Cathode Ray Tube,阴极射线管)或LCD(LiquidCrystal Display,液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实施。

也可以使用其它种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络(web)浏览器接收的请求,向用户的用户设备上的网络浏览器发送网页。

本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有用户可以通过其与本说明书中描述的主题的实施方式进行交互的图形用户界面或网络浏览器的用户计算机,或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)相互连接。通信网络的示例包括局域网(Local Area Network,“LAN”)和广域网(Wide Area Network,“WAN”)、互联网络(例如,因特网)和对等网络(例如,自组织对等网络)。

计算系统可以包括用户和服务器。用户和服务器一般彼此远离,并且通常通过通信网络进行交互。用户和服务器之间的关系是通过在相应计算机上运行并且彼此具有用户-服务器关系的计算机程序而产生的。在一些实施例中,服务器向用户设备发送数据(例如,HTML页面)(例如,为了向正在与用户设备交互的用户显示数据和从正在与用户设备交互的用户接收用户输入的目的)。在服务器处可以从用户设备接收在用户设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可能要求保护的范围的限制,而是对特定于特定发明的特定实施例的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。

相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开地或以任何合适的子组合来实施。此外,尽管特征在上面可以被描述为以某些组合起作用,甚至最初如此被要求保护,但是在某些情况下,可以从所要求保护的组合中删除组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变型。

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

因此,已经描述了主题的特定实施例。其它实施例在所附权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然获得期望的结果。此外,附图中描绘的过程不一定要求所示的特定顺序或连续顺序来获得期望的结果。在某些实施方式中,多任务处理和并行处理可能是有利的。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:RPU阵列的更新管理

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!