当前位置: 首页 > 专利查询>谷歌公司专利>正文

使用散列的神经网络中的大规模分类制造技术

技术编号:13330308 阅读:52 留言:0更新日期:2016-07-11 20:39
本发明专利技术涉及使用散列的神经网络中的大规模分类。方法、系统和装置,包括在计算机存储介质上编码的计算机程序,用于使用神经网络分类。一种用于通过神经网络的多层中的每一层来处理输入以生成输出的方法,其中,神经网络的多层中的每一层包括相应的多个节点,对多层中的特定层,所述方法包括:由分类系统接收激活向量以用作特定层的输入,使用激活向量和将数值映射到特定层中的节点的散列表来选择一个或多个节点,并且使用所选择的节点来处理激活向量以生成用于特定层的输出。

【技术实现步骤摘要】

本说明书涉及使用神经网络的图像识别。
技术介绍
具有若干级和层次的特征的深度神经网络可以具有非常大的学习能力并且可用在语音或图像识别中。深度神经网络通常在输入和输出空间之间,具有以前馈方式连接的若干层的单元。深度神经网络中的每一层可以执行特定功能,例如,卷积、池、归一化或矩阵乘法和非线性激活。
技术实现思路
在一些实施方式中,系统使用矩阵乘法来确定用于神经网络中的特定层的输出。例如,矩阵乘法是激活向量(例如,用于特定层的输入)和权重矩阵(例如用于特定层中的一些节点的权重)的组合。神经网络使用快速局部敏感散列技术来接近矩阵乘法的结果,以允许神经网络生成用于大量,例如几百万输出类的评分。当神经网络使用散列技术时,神经网络可以近似计算用于神经网络中的特定层的权重W和激活向量x的矩阵乘积,使得特定层中的节点数目,例如输出维度可以增加若干数目级。在一些示例中,特定层可以是用来确定神经网络的输入的分类的神经网络中的输出层,例如最终分类层。通常,在本说明书中所述的主题的一个创新方面能以一种通过神经网络的多层的每一个来处理输入来生成输出的方法实现,其中,神经网络的多层中的每一层包括相应的多个节点,针对多层中的特定层,所述方法包括如下动作:由分类系统接收激活向量作为用于特定层的输入;使用激活向量和将数值映射到特定层中的节点的散列表来选择特定层中的一个或多个节点;以及使用所选择的节点来处理激活向量以生成用于特定层的输出。该方面的其他实施例包括分别被配置成执行该方法的动作的相对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序。一个或多个计算机的系统能被配置成通过使软件、固件、硬件或它们的组合安装在用来使或导致系统执行动作的系统上来实现特定操作或动作。一个或多个计算机程序能被配置成通过包括当由数据处理装置执行时使装置执行动作的指令来实现特定操作或动作。上述和其他实施例可分别可选地单独或组合地包括下述特征中的一个或多个。该方法可以包括通过将与未被选择的节点相对应的激活向量中的值设定为0来创建修改的激活向量。使用所选择的节点处理激活向量以生成用于特定层的输出可以包括:处理所修改的激活向量以生成用于特定层的输出。针对特定层的节点中的每一个节点,散列表存储该节点的权重值的相应的散列。选择一个或多个节点可以包括:计算用于激活向量的至少一部分的散列码,确定散列表中相对于激活向量的该部分的散列码的一个或多个最相似的散列,以及选择与所述一个或多个最相似的散列相对应的节点。针对特定层的节点中的每一个节点,散列表存储该节点的相应的节点标识符。在一些实施方式中,激活向量包括实数值。该方法可包括将激活向量中的每一实数转换成二进制值来创建二进制向量,确定二进制向量的多个部分,以及针对所述多个部分中的每一个部分,将该部分中的二进制值转换成整数。使用激活向量和散列表来选择特定层中的节点可以包括通过将整数用作散列表的输入来选择特定层中的一个或多个节点。整数可以包括第一子集和互斥的第二子集。通过将整数用作散列表的输入来选择特定层中的一个或多个节点可以包括:针对第一子集中的每一整数,确定散列表不包括用于节点的相对应的第一条目,针对第二子集中的每一整数,确定散列表包括用于节点的相对应的第二条目,以及将特定层中的一个或多个节点选择为由第二条目识别的节点。针对第一子集中的每一整数,确定散列表不包括用于节点的相对应的第一条目可以包括:针对第一子集中的至少一些整数,确定散列表不包括具有当前时间戳的相应的第一条目。该方法可以包括:针对输出中的至少一些输出值,确定相应输出值的精度值;以及通过更新用于特定层中的特定节点的散列表中的第一节点条目的时间戳、并且不更新用于不与特定层中的任何节点相对应的散列表中的第二节点条目的时间戳,使用精度值来更新散列表中的至少一些映射。该方法可以包括由分类系统确定具有旧时间戳的散列表中的旧条目,以及从散列表移除旧条目。在一些实施方式中,特定层可以包括神经网络的输出层。该方法可以包括:根据用于特定层的输出确定最佳输出值,以及将最佳输出值用作神经网络的输出。分类系统可以是图像分类系统。输出层中的每一节点可以与相应对象类相对应。该方法可以包括接收图像,以及将图像用作神经网络的输入。将最佳输出值用作神经网络的输出可以包括将图像中的对象分类为属于与生成最佳输出值的节点相对应的类。接收图像可以包括从设备接收识别图像的数据,并且将图像用作神经网络的输入可以包括:响应于接收到识别图像的数据,通过另一设备上的分类系统将图像用作神经网络的输入。在本说明书中所述的主题可以在具体实施例中实现并且可以得到下述一个或多个优点。在一些实施方式中,与不使用下述方法的其他系统,例如,标准的软矩阵层或层次软矩阵层相比,分类系统可以以更快速率训练大规模神经网络,例如,根据步骤数、总时间或两者。在一些实施方式中,分类系统的计算成本可以仅取决于K(所使用的权重向量数或在输出层中识别的类的数目),并且可以与神经网络的输出层中的类的总数无关。在一些实施方式中,分类系统可以使用几十万或几百万个的类以及分类系统,以与例如常见的具有几千个类的深度神经网络几乎相同的计算成本,来分类对象。在一些实施方式中,分类系统可以例如使用另外的数据结构而用来训练大规模神经网络。例如,当在训练过程期间连续地更新权重矩阵时,分类系统可以包括具有用于跟踪和更新散列表的时间戳的逆向散列表。在一些实施方式中,与以相同的方式不使用散列表的其他分类系统相比,具有在输出层中具有N类并且对输出层中的类选择前K个权重向量的神经网络的分类系统可以具有提高的速率N/K。在一些实施方式中,当计算散列码时,分类系统仅执行比较,例如,这允许分类系统使用整数运算来确定散列码。在一些实施方式中,分类系统计算散列码而不产生分支预测损失。在一些实施方式中,下述的分类系统的复杂度可以取决于激活向量x的维度、激活向量x被划分于其中的M个部分的数目、分类系统执行矩阵乘法的节点的数目K或这些中的两个或多个的组合。例如,由于这些值与神经网络的输出层中的类的数目无关,因此分类系统可以将任意数目的类包括在输出层中,并且例如同时在时间复杂性和精度之间提供折衷。在附图和下述描述中阐述本说明书的主题的一个或多个实施例的细节。从该描述、附图和权利要求,该主题的其他特征、方面和优点本文档来自技高网...

【技术保护点】
一种用于通过神经网络的多层中的每一层处理输入来生成输出的方法,其中,所述神经网络的多层中的每一层包括相应的多个节点,对所述多层中的特定层,所述方法包括:由分类系统接收激活向量作为用于所述特定层的输入;使用所述激活向量和将数值映射到所述特定层中的节点的散列表来选择所述特定层中的一个或多个节点;以及使用所选择的节点来处理所述激活向量以生成用于所述特定层的输出。

【技术特征摘要】
2014.12.19 US 62/094,7681.一种用于通过神经网络的多层中的每一层处理输入来生成输
出的方法,其中,所述神经网络的多层中的每一层包括相应的多个节
点,对所述多层中的特定层,所述方法包括:
由分类系统接收激活向量作为用于所述特定层的输入;
使用所述激活向量和将数值映射到所述特定层中的节点的散列表
来选择所述特定层中的一个或多个节点;以及
使用所选择的节点来处理所述激活向量以生成用于所述特定层的
输出。
2.根据权利要求1所述的方法,进一步包括:通过将与未被选择
的节点相对应的所述激活向量中的值设定为0来创建修改的激活向量,
其中,使用所选择的节点处理所述激活向量以生成用于所述特定
层的输出包括:处理所修改的激活向量以生成用于所述特定层的输出。
3.根据权利要求1所述的方法,其中,针对所述特定层的节点中
的每一个节点,所述散列表存储该节点的权重值的相应的散列。
4.根据权利要求1所述的方法,其中,选择一个或多个节点包括:
计算用于所述激活向量的至少一部分的散列码;
确定所述散列表中相对于所述激活向量的所述部分的散列码的一
个或多个最相似的散列;以及
选择与所述一个或多个最相似的散列相对应的节点。
5.根据权利要求1所述的方法,其中,针对所述特定层的节点中
的每一个节点,所述散列表存储该节点的相应的节点标识符。
6.根据权利要求1所述的方法,其中,所述激活向量包括实数值,
所述方法包括:
将所述激活向量中的每一实数转换成二进制值来创建二进制向
量;
确定所述二进制向量的多个部分;以及
针对所述多个部分中的每一个部分,将该部分中的二进制值转换
成整数,其中,使用所述激活向量和所述散列表来选择所述特定层中
的节点包括通过将所述整数用作所述散列表的输入来选择所述特定层
中的所述一个或多个节点。
7.根据权利要求6所述的方法,其中,
所述整数包括第一子集和互斥的第二子集;以及
通过将所述整数用作所述散列表的输入来选择所述特定层中的所
述一个或多个节点包括:
针对所述第一子集中的每一整数,确定所述散列表不包括用于节
点的相对应的第一条目;
针对所述第二子集中的每一整数,确定所述散列表包括用于节点
的相对应的第二条目;以及
将所述特定层中的所述一个或多个节点选择为由所述第二条目识
别的节点。
8.根据权利要求7所述的方法,其中,
针对所述第一子集中的每一整数,确定所述散列表不包括用于节
点的相对应的第一条目包括:针对所述第一子集中的至少一些整数,
确定所述散列表不包括具有当前时间戳的相应的第一条目。
9.根据权利要求8所述的方法,包括:
对所述输出中的至少一些输出值,确定相应输出值的精度值;以

通过下述操作,使用所述精度值来更新所述散列表中的至少一些
映射:更新用于所述特定层中的特定节点的所述散列表中的第一节点
条目的时间戳、并且不更新用于不与所述特定层中的任何节点相对应

\t的所述散列表中的第二节点条目的时间戳。
10.根据权利要求9所述的方法,包括:
由所述分类系统确定具有旧时间戳的所述散列表中的旧条目;以

从所述散列表移除所述旧条目。
11.根据权利要求1所述的方法,其中,所述特定层包括所述神
经网络的输出层,所述方法包括:
根据用于所述特定层的输出确定最...

【专利技术属性】
技术研发人员:苏达赫恩德拉·维娅亚纳拉辛汉杰伊·亚格尼科
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1