使用比较集对输入样本进行分类的制作方法

文档序号:17117310发布日期:2019-03-15 23:27阅读:197来源:国知局
使用比较集对输入样本进行分类的制作方法

本申请是2016年5月20日提交的美国临时专利申请no.62/339,782的非临时申请并要求其优先权,其全部内容通过引用并入于此。



背景技术:

本说明书涉及使用神经网络对数据进行分类。

神经网络是采用一个或多个非线性单元层来预测对于接收的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层的输入,即下一隐藏层或输出层。网络的每个层根据相应参数集的当前值从接收的输入生成输出。

一些神经网络是递归神经网络。递归神经网络是接收输入序列并从输入序列生成输出序列的神经网络。特别地,递归神经网络能够使用来自先前时间步骤中的网络的一些或全部内部状态来计算当前时间步骤的输出。



技术实现要素:

本说明书描述了在一个或多个位置中的一个或多个计算机上实施为计算机程序的系统。该系统是用于使用比较样本的比较集来对输入样本进行分类的系统。

本公开的一个示例方面涉及由一个或多个计算机执行的、用于使用比较样本的比较集来对新样本进行分类的方法,该方法包括:维持比较集,该比较集包括多个比较样本和多个比较样本中的每一个的相应标签矢量,每个标签矢量包括预定标签集中的每个标签的相应分数;接收新样本;通过将神经网络注意力机制应用于新样本和比较样本来确定每个比较样本的相应注意力权重;以及根据比较样本的相应注意力权重和比较样本的相应标签矢量为每个比较样本生成预定标签集中的每个标签的相应标签分数,其中每个标签的相应标签分数表示标签是新样本的正确标签的可能性。

在该方面的实施方式中,该方法还可以包括基于预定标签集中的标签的相应标签分数对新样本进行分类。例如,可以使用从标签分数导出的分类来对新样本进行分类。作为进一步的示例,可以使用/基于是正确的可能性最高的标签来对新样本进行分类,或者可以使用/基于是正确的可能性最高的n(n>1)个标签来对新样本进行分类,或者可以使用/基于是正确的可能性超过阈值的所有标签来对新样本进行分类,等等。

本公开的另一示例方面涉及由一个或多个计算机执行的用于控制环境中的代理的方法。该方法包括基于第一方面的方法的输出(例如,基于生成的标签分数,或者基于从生成的标签分数中导出的分类)生成用于控制代理的一个或多个控制输入。

本说明书中描述的主题能够在特定实施例中实施,以便实现以下优点中的一个或多个。包括神经网络的数据分类系统能够有效地确定未观察到的分类的标签,而无需对神经网络进行任何改变或从头开始重新训练神经网络。特别地,神经网络能够将有标签的新样本集以及需要被分类的新输入样本作为其输入,并且即使有标签的新样本集与先前用于训练神经网络的有标签的样本集不同,神经网络也能够使用有标签的新样本集来有效地对新输入样本进行分类。因此,本主题的实施例可以提供可以被训练为处理输入数据(例如图像数据)以生成以更有效的方式指示与图像数据相关联的属性的输出数据的神经网络。

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

附图说明

图1示出了示例数据分类系统。

图2是使用比较样本的比较集来对新样本进行分类的示例过程的流程图。

图3是用于确定每个比较样本的相应注意力权重的示例过程的流程图。

图4是用于训练神经网络注意力机制的示例过程的流程图。

在各个附图中,相同的参考标号和标记指示相同的元素。

具体实施方式

本说明书一般描述了一种数据分类系统,其被配置为对各种数据中的任何一种(即,能够被分类为属于一个或多个类别的任何类型的数据对象)进行分类。

例如,如果输入数据是图像,则数据分类系统可以是确定输入图像是否包括属于来自预定对象类别集的对象类别的对象的图像的视觉识别系统。作为另一示例,如果输入数据是视频或视频的部分,则数据分类系统可以是确定输入的视频或视频部分与哪个或哪些主题相关的视频分类系统。作为另一示例,如果输入数据是音频数据,则数据分类系统可以是为给定的口头话语确定该话语表示的一个或多个术语的语音识别系统。作为另一示例,如果输入数据是文本数据,则数据分类系统可以是确定输入文本片段与哪个或哪些主题相关的文本分类系统。

图1示出了示例数据分类系统100。

数据分类系统100是在一个或多个位置中的一个或多个计算机上实施为实施下面描述的系统、组件和技术的计算机程序的系统的示例。

数据分类系统100被配置为接收输入样本102并生成输出116,输出116对输入样本102进行分类,例如,确定输入样本102所属的类别或输入样本102涉及的主题。

数据分类系统100存储包括比较集的比较样本数据104。比较集包括多个比较样本和每个比较样本的相应标签矢量。每个标签矢量包括预定标签集中的每个标签的相应分数。通常,给定标签矢量中的标签分数标识相应的比较样本的已知的一个或多个标签。

数据分类系统100包括分类器112,其将比较样本数据104和输入样本102作为输入。分类器112使用神经网络注意力机制114生成作为比较样本数据和输入样本102的函数的输出116。下面参考图2和图3更详细地描述使用神经网络注意力机制114生成输出116的过程。

来自数据分类系统100的输出116可以用在许多应用中。作为一个示例应用,来自数据分类系统100的输出116可以用于选择用于控制环境中的代理的一个或多个动作。例如,数据分类系统100的输出116可以用作或用于生成提供对环境中的代理的控制的一个或多个控制输入。环境可以是其中真实世界环境中的对象被控制的真实世界环境。诸如,对象/代理可以是车辆,诸如自主(“自动驾驶”)或部分自主的车辆,并且数据分类系统100的输出116可以用作或可以用于生成控制车辆(例如控制车辆的导航)的控制输入。因此,一些方面可以解决与基于输入数据高效、有效地选择用于控制代理的动作相关联的问题。

图2是用于使用比较样本的比较集来对新样本进行分类的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的数据分类系统(例如,图1的数据分类系统100)能够执行过程200。

系统维持比较集(步骤202)。如上所述,比较集能够包括k个比较样本,并且能够表示为:

其中xi是比较样本,yi是比较样本xi的相应标签矢量。每个标签矢量yi包括预定标签集中的每个标签的相应分数。给定标签矢量中的标签分数通常标识相应的比较样本的已知的一个或多个标签。

在一些情况下,比较集能够与用于训练神经网络的比较集不同。也就是说,神经网络能够用于使用与用于训练神经网络的集不同的新的比较样本集来对新样本进行分类,而无需重新训练神经网络。在这些情况中的一些情况下,新的比较样本集能够包括用于训练神经网络的一些比较样本以及一些额外的或“看不见的”比较样本。在这些情况中的其他情况下,新的比较样本集能够仅包括“看不见的”比较样本,并且不包括用于训练的比较样本。

系统接收新样本(步骤204)。新样本能够表示为

在接收到新样本之后,系统通过将神经网络注意力机制应用于新样本和比较样本来确定每个比较样本的相应注意力权重(步骤206)。下面参考图3更详细地描述用于确定每个比较样本的相应注意力权重的过程。

然后,系统为新样本生成预定标签集中的每个标签的相应标签分数,使得每个标签的相应标签分数表示标签是新样本的正确标签的可能性(步骤208)。特别地,系统根据比较样本的相应注意力权重和比较样本的相应标签矢量中的分数为每个比较样本生成标签分数。

在一些实施方式中,标签分数能够如下计算:

其中,xi是比较样本,yi是来自比较集中的比较样本的标签矢量,是给定新样本的比较样本xi的注意力权重。

等式1描述了新样本的输出,其作为比较集中的标签矢量的线性集合。对于每个比较样本xi,系统将比较样本xi的标签矢量yi乘以比较样本xi的注意力权重以生成比较样本xi的加权标签矢量然后,系统对所有加权标签矢量求和,以生成包括预定标签集中的每个标签的相应标签分数的组合的标签矢量每个标签的每个标签分数表示标签是新样本的正确标签的可能性。

在一些实施方式中,系统还可以基于预定标签集中的标签的相应标签分数来对新样本进行分类。例如,可以使用从标签分数导出的分类来对新样本进行分类。作为进一步的示例,可以使用/基于是正确的可能性最高的标签来对新样本进行分类,或者可以使用/基于是正确的可能性最高的n(n>1)个标签来对新样本进行分类,或者可以使用/基于是正确的可能性超过阈值的所有标签来对新样本进行分类。

在对新样本进行分类之后,系统能够将预定标签集中的标签的相应标签分数、是正确的可能性最高的一个或多个标签、或者两者提供给另一个系统以便进一步处理。例如,新样本能够是由代理的传感器捕获的传感器数据(例如,图像),并且其他系统能够是使用接收到的标签分数、是正确的可能性最高的一个或多个标签、或者两者来决定如何控制环境中的代理的控制系统。

图3是用于使用神经网络注意力机制确定每个比较样本的相应注意力权重的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的数据分类系统(例如,图1的数据分类系统100)能够执行过程300。

系统使用比较样本神经网络g(xi)来处理比较样本xi,以确定比较样本的数字嵌入(numericembedding)(步骤302)。通常,数字嵌入是数值的有序集合,例如,浮点值的矢量或量化的浮点值的矢量。

在一些实施方式中,当样本是图像时,比较样本神经网络g(xi)是被配置为接收输入比较样本并生成比较样本的嵌入的卷积神经网络。在一些其他实施方式中,当样本是单词、短语或其他文本片段时,比较样本神经网络是将输入文本嵌入到矢量中的文本嵌入神经网络。

在一些其他实施方式中,比较样本神经网络g(xi)是被配置为处理来自比较集中的比较样本的比较样本序列的上下文中的比较样本、以生成比较样本的数字嵌入的双向长短期记忆(bidirectionallong-shorttermmemory,lstm)神经网络。也就是说,系统能够将比较样本布置为序列,并且对于每个比较样本,使用根据该序列的双向lstm神经网络处理比较样本或比较样本的特征表示,例如,由卷积神经网络或文本嵌入神经网络所生成的比较样本或比较样本的特征表示,以生成比较样本的数字嵌入。

系统使用新的样本神经网络来处理新样本以确定新样本的数字嵌入(步骤304)。在一些实施方式中,当样本是图像时,新的样本神经网络是被配置为接收输入新样本并生成新样本的嵌入的卷积神经网络。在一些其他实施方式中,当样本是单词、短语或其他文本片段时,比较样本神经网络是将输入文本嵌入到矢量中的文本嵌入神经网络。

在一些其他实施方式中,新的样本神经网络是对多个比较样本的数字嵌入具有读取注意力的lstm神经网络,其被配置为处理包括新样本的k个实例或新样本的特征表示的k个实例的序列以生成比较样本的数字嵌入。新的样本神经网络能够表示如下:

其中f′(x)是新样本或新样本的特征表示,g(s)是比较样本的数字嵌入集。也就是说,在除了最后一个时间步骤之外的k个步骤的每个时间步骤处,系统根据lstm神经网络的当前内部状态使用lstm神经网络来处理新样本的特征表示,以生成对内部状态的初始更新。然后,系统对初始更新和特征表示进行组合(例如,求和)以生成嵌入密钥,并且使用嵌入密钥对比较样本的数字嵌入应用基于内容的注意力机制以生成注意力矢量。然后,系统对初始更新和注意力矢量进行组合(例如,连结)以生成更新的内部状态,即,将用作下一时间步骤的当前内部状态的内部状态。然后,系统能够使用最后一个时间步骤(即第k个步骤)的初始更新或嵌入密钥,作为新样本的最终数字嵌入。

在一些情况下,当新的样本神经网络和比较样本神经网络都是或者都包括卷积神经网络时,新的样本神经网络和比较样本神经网络共享至少一些参数。

系统通过确定比较样本的数字嵌入与新样本的数字嵌入之间的相似性度量来确定相应注意力权重(步骤306)。在一些实施方式中,相似性度量是余弦距离。在一些实施方式中,系统基于以下模型来计算给定新样本的每个比较样本xi的相应注意力权重

其中是嵌入新样本的新的样本神经网络,g(xi)是嵌入比较样本xi的比较样本神经网络,c()是余弦距离函数。

图4是用于训练神经网络注意力机制的示例过程400的流程图。

为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的数据分类系统(例如,图1的数据分类系统100)能够执行过程400以训练神经网络注意力机制。

系统从可能的标签集的分布采样标签集(步骤402)。每个标签集都是来自完整的可能的标签集的不同的标签组合。在一些情况下,每个标签集包括相同数量的标签,例如,两个或三个。在其他情况下,不同的标签集包括不同数量的标签,例如,范围从一个或两个标签到五个标签。例如,该分布能够均匀地加权所有可能的标签集,并且系统能够使用该分布来随机地采样标签集。

然后,系统使用采样的标签集来采样训练比较集和一批输入样本(步骤404)。特别地,对于采样的标签集中的每个标签,系统采样具有该标签的比较样本集。采样的比较样本集和它们的对于采样的标签集中的所有标签的相应标签形成训练比较集。该批输入样本包括具有采样的标签集中的一个标签的随机的比较样本序列。

系统训练神经网络注意力机制以最小化预测以训练比较集为条件的一批输入样本中的样本的标签的误差(步骤406)。特别地,系统训练注意力机制以调整注意力机制的参数的当前值,以减少使用传统的神经网络训练技术(例如,基于梯度下降的训练技术)的误差。

系统能够重复执行过程400,即,通过重复采样标签集然后基于采样的标签集训练神经网络注意力机制,来确定神经网络注意力机制的参数的训练的值。通过以这种方式训练神经网络注意力机制,系统能够快速确定神经网络注意力机制的参数的、满足减少误差的训练目标的训练的值,并且即使在用于对输入样本进行分类的比较集与用于训练神经网络的任何比较集不同时,训练的神经网络也能够执行得很好。

对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在操作中使系统执行操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置运行时使装置执行操作或动作的指令。

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

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

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

如在本说明书中所使用的,“引擎”或“软件引擎”是指软件实施的、提供与输入不同的输出的输入/输出系统。引擎能够是编码过的功能块,诸如库、平台、软件开发工具包(softwaredevelopmentkit,“sdk”)或对象。每个引擎能够在任何适当类型的计算设备上实施,例如,服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、pda、智能电话或者包括一个或多个处理器和计算机可读介质的其他固定或便携式设备。另外地,两个或多个引擎可以在相同的计算设备或在不同的计算设备上实施。

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

适合于运行计算机程序的计算机包括,例如,能够基于通用或专用微处理器或两者、或任何其他类型的中央处理单元的计算机。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,或者用于接收和传输两者。但是,计算机不需要这样的设备。此外,计算机能够嵌入在另一个设备中,例如移动电话、个人数字助理(personaldigitalassistant,pda)、移动音频或视频播放器、游戏机、全球定位系统(globalpositioningsystem,gps)接收器或便携式存储设备(例如,通用串行总线(universalserialbus,usb)闪存驱动器),以上仅仅只是几个示例。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及cdrom和dvd-rom磁盘。处理器和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。

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

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

计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器之间的关系凭借在各自的计算机上运行的并且彼此之间具有客户端-服务器关系的计算机程序发生。

虽然本说明书包含许多具体的实施方式细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也能够在单个实施例中以组合实施。相反地,在单个实施例的上下文中描述的各种特征也能够分开地实施在多个实施例中,或者实施在任何合适的子组合中。此外,虽然特征可能在上面被描述为在某些组合中起作用并且甚至一开始就被请求按这样进行保护,但是来自请求保护的组合的一个或多个特征在一些情况下能够从该组合中删除,并且请求保护的组合能够涉及子组合或者子组合的变化。

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

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

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