使用文本和视觉嵌入的多模态图像分类器的制作方法

文档序号:23589962发布日期:2021-01-08 14:26阅读:209来源:国知局
使用文本和视觉嵌入的多模态图像分类器的制作方法

优先权申明

本申请要求于2018年11月16日提交的美国专利申请序列第62/768,701号的优先权,其全部内容通过引用合并于此。



背景技术:

本说明书涉及图像处理,尤其涉及多模态图像分类器(multimodalimageclassifier)。

机器学习图像分类模型将图像像素作为输入并以预定义的分类法产生标签。图像分类通常是一种监督学习问题,它定义目标类的集合(要在图像中标识的对象),并使用标记的训练图像训练模型以识别它们。这样的系统能够对未见数据具有高的预测准确性和普遍性。这些模型可能依赖于像素数据和从像素数据导出的特征(诸如,颜色直方图、纹理和形状)作为训练特征。



技术实现要素:

本说明书描述了一种系统,该系统被实现为一个或多个位置中的一个或多个计算机上的计算机程序,该系统使用一种模型来预测图像分类,该模型从图像的预测文本的嵌入和图像的图像像素的嵌入获取特征。该说明书还描述了一种由一个或多个数据处理装置执行的用于预测图像分类的方法,以及一个或多个非暂时性计算机存储介质,该非暂时性计算机存储介质存储指令,当所述指令被一个或多个计算机执行时使所述一个或多个计算机执行用于预测图像分类的操作。

根据一个方面,提供了一种方法,该方法包括针对多个图像中的每个图像:通过文本生成器模型处理该图像以获得描述该图像的内容的短语的集合,其中每个短语为一个或多个术语,通过文本嵌入模型处理短语的集合以获得图像的预测文本的嵌入,并使用图像嵌入模型处理图像以获得图像的图像像素的嵌入;在图像的预测文本的嵌入和图像的图像像素的嵌入上训练多模态图像分类器,以产生输出分类法的标签作为输出,以基于作为输入的图像对图像进行分类。可以在装置、系统和计算机程序产品中提供附加方面。

在本说明书中描述的主题的特定实施例可以被实现以实现以下优点中的一个或多个。虽然文本信息(例如,围绕图像的文本)可以提供有价值的正交信号,但是机器学习模型通常依赖于像素数据作为输入。此外,对于图像集,文本数据可能是不可获得的。本公开的新颖特征包括从由文本生成器生成的短语生成的图像的文本嵌入,而不需要周围文本作为输入。然后在图像的文本嵌入和像素嵌入上训练多模态图像分类器。使用文本嵌入进行训练导致总体性能优于没有文本嵌入的经训练的模型的总体性能,从而在图像分类领域得到了显著改善。

此外,本文描述的系统和方法可以提供语言不可知的和跨语言的文本嵌入。例如,这可以由于在查询-图像对上进行训练来实现。

另外地或可替代地,本文描述的系统和方法可以允许对个体局部特性和总体视觉结构两者进行表征。例如,这可以通过在输入数据集上训练网络权重,标识瓶颈层以及提取该层针对任意图像的输出来实现。

本公开还可以提供仅需要输入图像来产生部分基于文本特征的预测的系统框架(和关联的方法)。例如,通过将图像的n维文本特征向量与m维视觉特征向量进行拼接(concatenate),本文所述的系统和方法允许表示两个概念的奇异特征向量(singularfeaturevector)。

本文所述的系统和方法还可以允许产生跨每个可能的预测短语的概率分布。例如,软最大值(softmax)层可用于产生跨大量查询的概率分布。

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

附图说明

图1是多模态图像分类系统的图示。

图2是用于训练多模态图像分类器的示例过程的流程图。

在各个附图中,相同的参考标记和名称指示相同的元件。

具体实施方式

该专利文档描述了一种框架,该框架包括:文本生成器,其从图像数据生成文本标签,称为短语;以及多模态图像分类器,其从文本生成器获取文本特征,并从图像像素获取视觉特征,以及根据输出分类法产生标签。在一些实现方式中,使用基于web的查询/图像对来训练文本生成器以合并与每个图像关联的上下文信息。在一些实现方式中,文本生成器的输出可超过图像分类器的输出分类法,例如,文本生成器可生成不包括在多模态图像分类器的输出分类法中的短语。

这些特征和其他特征在下面更详细地描述。

图1是多模态图像分类系统100的图示。多模态图像分类系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中,实现了以下描述的系统、组件和技术。

多模态图像分类系统100被配置为处理图像以生成用于训练多模态图像分类模型110的文本嵌入(embedding)和图像像素嵌入。系统100包括文本生成器120和文本嵌入神经网络122。文本生成器120为图像102中的每个图像生成描述图像的内容的一个或多个术语的短语。文本嵌入神经网络122处理由文本生成器为图像生成的短语,并生成文本嵌入。

在一些实现方式中,文本生成器100是在基于web的查询-图像对上训练的神经网络。查询-图像对是与用户针对其选择图像的相应查询配对的图像。

在一些实现方式中,长尾查询被包括在查询-图像对中。这导致细粒度和描述性的查询,例如,[2016lamborghiniaventadorwhite],[equestrianstatueofbartolomeocolleoni]等。查询-图像对空间还涵盖了多个视觉概念,包括地标、动物、人造产品、人物、艺术品等。相对于在具有小得多的词汇量大小和/或较少描述性的短语(例如,在有限的图像域中的[goldenretriever],例如“dog.”)的图像数据集上训练的系统,这导致了准确性的技术改进。

在一些实现方式中,文本生成器120是具有分类损失的卷积神经网络。一种示例架构是基于resnet-101的,其后是将resnet响应投射到低维向量的嵌入层,顶部是一个多路softmax。在一个示例实现方式中,向量具有m个维度,并且其后是k百万路softmax。在一些实现方式中,m为64,且k为4千万。但是,也可以使用其他值。

在此特定示例中,文本生成器网络120的特征是其从输入图像预测大量查询(例如4千万个)的能力。为了容纳较大的输出空间,resnet输出被约简(reduce)到64维瓶颈层。网络120因此可以被概念化为包含三个阶段:学习的权重和偏差的主要训练机制,代表图像嵌入的64维特征层以及产生跨4千万个查询的概率分布的softmax层。

在该示例架构中,在推断时,为每个输入图像生成64维嵌入,并且从查询嵌入索引提取顶部n个最可能的查询及其关联的相似性分数。在一些实现方式中,n=3,但是也可以使用n的其他值。由于查询代表上下文信息,因此该过程标识任意图像的相关文本,而不具有web依赖性。此外,嵌入额外地产生了在查询空间中测量图像至图像相似性的方式。

对于大规模训练,使用诸如张量处理单元(tensorprocessingunit)的ai加速器专用电路和采样的softmax损失算法。也可以使用其他适当的训练管道(pipeline),但是,使用的特定管道可能取决于训练语料库的规模。

在一些实现方式中,在训练之后,由softmax函数计算的查询qc的预测的概率为:

其中,x是图像嵌入(例如,来自瓶颈层),wc是来自瓶颈层之后的完全连接层的、与k百万个查询中的查询qc对应的权重,并且d(·,·)是距离函数,诸如余弦距离函数。此函数的使用是可选的,但是也可以使用为查询预测概率的其他方式。

为了进一步增加来自短语生成模型的预测的短语的词汇量,在一些实现方式中,可以采用原型网络方法(prototypicalnetworkapproach)来构建显著更大量查询的原型。通过此过程来增加词汇量是可选的。原型网络通过具有可学习参数φ的嵌入函数计算每类的m维表示或原型。在一些实现方式中,每个查询c的原型φc被定义为与该查询关联的图像的嵌入的平均向量:

其中,sc是与查询c关联的图像的集合。原型也可以使用其他方法获得。可以通过φc代替等式(1)的权重wc,以将输出大小从k增加到短语生成模型的更大的输出空间。在一些实现方式中,k为4千万。也可以使用增加输出空间的其他方式。

在一些实现方式中,可以通过使用最近邻过程来更有效地完成针对给定图像的最相关查询(短语)的预测。由于输出空间中的许多查询可能与给定图像无关,因此无需计算它们的softmax概率以取回顶部查询。因此,在一些实现方式中,系统将顶部k(top-k)最近邻搜索技术用于短语生成:

文本生成器120实现了若干优点,包括区分图像的非常细粒度的概念的能力,例如与[whitelamborghini]相比,[2016lamborghiniaventadorwhite]和[2010lamborghiniaventadorwhite]。图像的如此细粒度的概念源自来自查询图像对的长尾查询。另外,由于在查询-图像对上进行训练,所得到的文本嵌入是语言不可知的和跨语言的。

文本嵌入神经网络122是人工神经网络,其被训练为将离散输入(例如,由文本生成器120生成的短语的特征向量)映射到连续值的输出(例如,向量或矩阵)。文本嵌入神经网络122的输出具有以下性质:相似的输入被映射到在多维空间中彼此接近的输出。因此,文本嵌入神经网络122的输出可以被描述为被输入到嵌入神经网络的数据的潜在表示。在本说明书中,数据的集合的潜在表示是指由网络在内部生成的数据的数字表示(例如,作为向量或矩阵)。

在示例实现方式中,文本嵌入网络122是在查询-查询关联的数据集上预训练的孪生网络(siamesenetwork)。孪生网络是一种人工神经网络,其在两个不同的输入向量上协同工作时使用相同的权重,以计算可比较的输出向量。为了提高嵌入质量,可以可选地使用注意机制。得到的嵌入具有相关的查询在输出嵌入空间中紧密放置在一起的性质。

随后,嵌入模型被用于嵌入从文本生成器120获得的顶部n个文本结果。在一些实现方式中,文本嵌入是经由一元(unigram)和二元(bigram)的词袋模型(bag-of-wordsmodel)获得的。随后对顶部n个查询的嵌入(或文本预测)进行平均,得到m维文本特征向量。在一些实现方式中,n为3,并且m为200。但是,也可以使用其他值。

在此处理阶段,系统从在文本信号(查询-查询关联)上训练的网络生成了嵌入,该嵌入表示图像,系统最初针对该图像仅被给予了像素作为输入。因此,生成的文本查询的独立文本嵌入在视觉和文本模式之间的间隙上搭起桥梁。

像素嵌入神经网络124生成具有与文本嵌入神经网络122的嵌入类似的性质的嵌入,即,像素嵌入神经网络124的输出具有相似的输入被映射到多维空间中彼此接近的输出的性质。在一些实现方式中,从预训练的卷积网络的瓶颈层获得图像特征的嵌入。这涉及在输入数据集上训练网络权重,标识瓶颈层(通常是输出之前的层)以及提取该层针对任意图像的输出。以这种方式,获得表征个体局部特性和总体视觉结构的特征。

多模态图像分类器110从文本嵌入神经网络122接收文本嵌入,并且从像素嵌入神经网络124接收像素嵌入。在这些嵌入上对分类器进行训练,以产生输出分类法的标签作为输出以基于作为输入的图像对该图像进行分类。已经获得了针对任意输入图像的像素和文本嵌入,随后将这些嵌入进行组合,以生成合并两种类型的特征的图像的表示。在一些在实现方式中,用于组合这些特征的过程涉及将200维文本特征向量与1024维视觉特征向量拼接成代表两个概念的奇异特征向量。随后将所得向量输入到两阶段完全连接的神经网络中,其中输出softmax层根据指定的分类法预测与类关联的概率。但是,也可以使用其他适当的训练程序。

有利地,虽然提取正交文本特征以补充像素信息并生成上下文感知的预测,但是系统100仅需要图像生成标签级别(label-wise)结果。由于利用文本生成器120生成文本使得能够标识任意输入图像的相关文本,因此系统框架仅需要输入图像来产生部分基于文本特征的预测。这是图像分类领域的又一项技术改进。

图2是用于训练多模态图像分类器的示例过程200的流程图。可以在一个或多个位置的一个或多个计算机中实现过程200。

对于图像的集合中的每个图像(202),过程200获得图像的文本嵌入(204),并获得图像的像素嵌入(206)。例如,如上所述,可以通过由文本生成器120处理图像,并由文本嵌入神经网络122处理输出短语(文本或查询),来获得针对每个图像的文本嵌入。可通过由像素嵌入神经网络124处理图像来获得针对每个图像的像素嵌入。

然后,过程200使用文本嵌入和像素嵌入来训练多模态图像分类器(208)。如上所述,在这些嵌入上训练分类器,以产生输出分类法的标签作为输出,以基于作为输入的图像对该图像进行分类。一旦生成视觉和文本嵌入两者,多模态图像分类器110就将两个信号融合以产生最终的图像分类。如上所述,在一些实现方式中,输入是来自1024维视觉嵌入和200维文本嵌入的特征的拼接。得到的向量被输入到多阶段完全连接的神经网络,其中输出softmax层根据目标分类法预测与类关联的概率。

本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作时使系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行操作或动作。

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

术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

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

在本说明书中,术语“引擎”广泛地用于指代被编程以执行一个或多个具体功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一个计算机或多个计算机上安装并运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程也可以通过专用逻辑电路(例如,fpga或asic)或者通过专用逻辑电路与一个或多个编程计算机的组合来执行。

适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦接以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传送到一个或多个大容量存储设备或接收和传送数据两者。但是,计算机不必具有此类设备。此外,计算机可以被嵌入另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几例。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和cd-rom和dvd-rom磁盘。

为了提供与用户的交互,可以在具有显示设备以及键盘和指示设备的计算机上实现本说明书中描述的主题的实施例,该显示设备例如是crt(阴极射线管)或lcd(液晶显示器)监视器,用于向用户显示信息;用户可以通过键盘和指示设备(例如鼠标或轨迹球)向计算机提供输入。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从web浏览器接收到的请求,将网页发送到用户的设备上的web浏览器。而且,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息收发应用的智能手机)并转而从用户接收响应消息来与用户交互。

用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的通用部分和计算密集部分,即推理、工作载荷。

可以使用机器学习框架(例如tensorflow框架、微软认知工具包框架、apachesinga框架或apachemxnet框架)来实现和部署机器学习模型。

本说明书中描述的主题的实施例可以在计算系统中实现,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如具有图形用户界面、web浏览器或app的客户端计算机,用户可通过该图形用户界面、web浏览器或app与本说明书中描述的主题的实现方式进行交互),或一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如因特网。

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

尽管本说明书包含许多具体的实现方式细节,但是这些细节不应解释为对任何发明的范围或所要求保护的范围的限制,而应视为对可以特定于特定发明的特定实施例的特征的描述。在本说明书中在分离的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例中或以任何合适的子组合实现。此外,尽管以上可能将特征描述为以某些组合起作用,甚至最初是这样要求保护的,但是在某些情况下,可以从所要求保护的组合中切除来自该组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。

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

已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续的顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1