CN110651280B - 投影神经网络 - Google Patents

投影神经网络 Download PDF

Info

Publication number
CN110651280B
CN110651280B CN201880033479.5A CN201880033479A CN110651280B CN 110651280 B CN110651280 B CN 110651280B CN 201880033479 A CN201880033479 A CN 201880033479A CN 110651280 B CN110651280 B CN 110651280B
Authority
CN
China
Prior art keywords
projection
layer
output
network
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880033479.5A
Other languages
English (en)
Other versions
CN110651280A (zh
Inventor
S.拉维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202310584408.7A priority Critical patent/CN116702843A/zh
Publication of CN110651280A publication Critical patent/CN110651280A/zh
Application granted granted Critical
Publication of CN110651280B publication Critical patent/CN110651280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

方法、系统和设备,包括在计算机存储介质上编码的计算机程序,用于投影神经网络。在一个方面,投影神经网络配置为接收投影网络输入并从投影网络输入生成投影网络输出。投影神经网络包括一个或多个投影层的序列。每个投影层具有多个投影层参数,且配置为接收层输入,将多个投影层函数应用于层输入,并通过将投影层的投影层参数应用于投影函数输出来生成层输出。

Description

投影神经网络
技术领域
本申请文件涉及投影神经网络。
背景技术
神经网络是机器学习模型,它采用非线性单元的一个或多个层来预测接收到的输入的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一个层的输入,即下一个隐藏层或输出层。网络的每个层根据相应参数组的当前值从接收的输入生成输出。
一些神经网络是循环(recurrent)神经网络。循环神经网络是一种神经网络,其接收输入序列并从输入序列生成输出序列。特别地,循环神经网络可以使用先前时间步长中的部分或全部内部状态来计算当前时间步长的输出。循环神经网络的示例是长期短期(LSTM)神经网络,其包括一个或多个LSTM存储器块。每个LSTM存储器块可以包括一个或多个单元,每个单元包括输入门、忘记门和输出门,允许单元存储该单元的先前状态,例如,以用于生成电流激活或提供给LSTM神经网络的其他部件。
发明内容
本申请文件描述了一种投影神经网络,其实现为一个或多个位置中的一个或多个计算上的计算机程序。
根据第一方面,提供一种系统,包括存储指令的一个或多个计算机和一个或多个存储装置,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机实现投影神经网络。投影神经网络配置为接收投影网络输入并从投影网络输入生成投影网络输出。投影神经网络包括一个或多个投影层的序列,其中每个投影层具有多个投影层参数。每个投影层配置为接收层输入并向层输出应用多个投影层函数。每个投影层函数生成相应的投影函数输出,其将层输入投影到不同的空间。每个投影层通过将投影层的投影层参数应用于投影函数输出来生成层输出。
在一些实现方式中,投影神经网络还包括输出层,其配置为接收由序列中的最高投影层生成的层输出并生成投影网络输出。
在一些实现方式中,输出层是softmax输出层。
在一些实现方式中,投影神经网络仅包括投影层的序列和输出层。
在一些实现方式中,序列中的最高投影层的层输出是投影网络输出。
在一些实现方式中,投影神经网络仅包括投影层的序列。
在一些实现方式中,序列中的最低投影层的层输入是对投影神经网络的网络输入。
在一些实现方式中,除了最低投影层之外的任何投影层的层输入是由序列中投影层正下方的投影层生成的层输出。
在一些实现方式中,对于每个投影层,每个投影函数与投影向量的相应的集合相关联。对于每个投影向量,将每个投影函数应用于层输入包括:(i)确定层输入和投影向量之间的点积,(ii)当点积为负时,将第一值分配给投影函数输出中的对应位置,以及(iii)当点积为正时,将第二值分配给投影函数输出中的对应位置。
在一些实现方式中,对于每个投影层,投影函数的每一个被编码为稀疏矩阵并用于从层输入生成二进制表示。
在一些实现方式中,投影层参数包括参数矩阵和偏差向量。通过将投影层的投影层参数应用于投影函数输出来生成层输出包括将参数矩阵应用于投影函数输出,然后将偏差向量添加到结果。
根据第二方面,提供了一种训练投影神经网络的方法。该方法包括接收训练输入和训练输入的目标输出。根据投影层参数的当前值使用投影神经网络处理训练输入,以生成训练输入的投影网络输出。使用具有多个训练者神经网络参数的训练者神经网络处理训练输入。训练者神经网络配置为所述训练者神经网络参数的当前值来处理训练输入,以生成特定于特定的机器学习任务的训练者网络输出。确定损失函数的关于训练者神经网络参数的梯度,所述梯度取决于目标输出和训练者网络输出之间的误差。确定损失函数的关于投影层参数的梯度,所述梯度取决于训练者网络输出和投影网络输出之间的误差。使用梯度确定对训练者网络参数和投影层参数的当前值的更新。
在一些实现方式中,由训练者神经网络生成的输出是软目标输出。
在一些实现方式中,该方法还包括确定损失函数的关于训练者网络的梯度,所述梯度取决于训练者网络输出和投影网络输出之间的误差。对训练者网络参数的当前值的更新还基于损失函数的关于训练者网络参数的梯度,所述梯度取决于训练者网络输出和投影网络输出之间的误差。
在一些实现方式中,该方法还包括确定损失函数的相对于投影层参数的梯度,所述梯度取决于目标输出和投影网络输出之间的误差。对投影层参数的当前值的更新还基于损失函数的关于投影层参数的梯度,所述梯度取决于目标输出和投影网络输出之间的误差。
根据第三方面,提供一种系统,包括存储指令的一个或多个计算机和一个或多个存储装置,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机执行前述方法的操作。
根据第四方面,提供了储存指令的一个或多个计算机存储介质,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机执行前述方法的操作。
根据第五方面,提供了存储指令的一种或多个计算机存储介质,当由一个或多个计算机执行时,使得一个或多个计算机实现前述投影神经网络。
可以实施本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
如本申请文件中所述的投影网络可以更快地执行任务,并且其性能水平(例如,预测精度)与更大、更复杂的常规神经网络(即不包含投影层的神经网络,如本申请文件中所述)相似,同时消耗较少的计算资源(例如,存储器和算力)。例如,在某些情况下,尽管投影网络的参数比较大的神经网络少几个数量级,但投影网络可以执行具有与较大的神经网络相当的性能水平的任务(例如,图像分类)。与常规的神经网络相比,投影网络可以更快地执行任务并消耗更少的计算资源,因为它们包括投影层。
投影层通过处理由投影层函数输入的投影层来减小投影层输入的维数。投影层函数生成的投影函数输出的维数可以比投影层输入的维数小几个数量级。投影层通过将投影层参数(例如权重矩阵和偏差向量)应用于低维投影函数输出来生成投影层输出。相反,常规的神经网络层(例如,常规的全连接层)可以直接处理(高维)常规的层输入,而不首先降低常规的层输入的维数。由于投影层通过投影函数降低了层输入的维数,因此与某些常规的神经网络层相比,投影层需要的层参数可以少得多,并且在生成层输出中执行的算术运算要少得多。
因此,投影层可以通过执行较少的算术运算来减少计算资源消耗(例如,相对于常规的神经网络层),从而消耗较少的算力。此外,投影层可以减少计算资源消耗,因为它们可以使用较少的存储器(例如,以字节为单位)来进行存储(例如,在逻辑数据存储区或物理数据存储装置中)。
因此,投影网络可以适合部署在资源受限的系统中,例如移动装置环境(例如,智能手机和智能手表),某些常规的神经网络无法部署在其中(例如,因为它们的计算资源需求超过了可用的计算资源)。此外,将投影网络部署到资源受限的系统使这些系统可以通过本地而非远程地执行任务来提高数据隐私性。本地执行任务是指使用位于系统内的计算资源执行任务,而远程执行任务是指通过通信网络(例如,互联网)将表征任务的数据传输到远程环境(例如云环境),并通过通讯网络接收完成的任务的结果。在本地执行任务可以提高数据隐私性,因为它不需要通过通信网络传输数据。
通过一起训练投影网络和训练者网络,可以训练投影网络以达到与更大的神经网络相当的性能水平(例如,预测准确性)。训练者网络是一种配置为执行与投影网络相同的任务的网络,但通常比投影网络要大得多(即具有更多的参数)。投影网络参数的值可以在训练期间使用损失函数的梯度迭代地更新,该梯度取决于训练者网络输出和投影网络输出之间的误差。以这种方式,尽管投影网络的参数比训练者网络少得多,但是投影网络可以学习模仿训练者网络的预测,从而生成与训练者网络的预测几乎一样准确的预测。
本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了示例投影神经网络系统。
图2是用于处理投影层输入以确定投影层输出的示例数据流的框图。
图3是用于训练投影神经网络的示例数据流的框图。
图4是用于生成投影层输出的示例过程的流程图。
图5是用于一起训练投影神经网络和训练者神经网络的示例过程的流程图。
各附图中相同的附图标记和名称表示相同的元件。
具体实施方式
图1示出了示例投影神经网络系统100。投影神经网络系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
投影神经网络系统100包括投影神经网络102。投影神经网络102可以是前馈神经网络、循环神经网络或任何其他合适类型的神经网络。
投影神经网络102配置为接收投影神经网络输入104并从投影网络输入104生成投影网络输出106。投影神经网络输入104可以是任何类型的数字数据输入,而投影网络输出106可以是基于该输入的任何类型的分数、分类或回归输出。
本文描述的系统100可广泛应用,并且不限于一种特定实现方式。然而,出于说明性目的,下面描述了少量示例实现方式。
例如,如果投影神经网络102的输入是图像或已从图像中提取的特征,则投影神经网络102针对给定图像生成的输出可以是一组对象类别中的每一个的分数,每个分数表示图像包含属于该类别的对象的图像的估计似然。
作为另一示例,如果投影神经网络102的输入是一种语言的文本的序列,则投影神经网络102生成的输出可以是另一种语言的一组文本片段中的每一个的分数,每个分数表示另一种语言的文本片段是将输入文本正确翻译成另一种语言的估计似然。
作为另一示例,如果投影神经网络102的输入是表示说出的话语的序列,则投影神经网络102生成的输出可以是一组文本片段中的每一个的分数,每个分数表示文本片段是话语的正确转录的估计似然。
作为另一示例,如果投影神经网络102的输入是生理测量的序列,则投影神经网络102生成的输出可以是针对用户的状况的一组可能诊断中的每一个的分数,所述分数表示诊断是准确的估计似然。
作为另一示例,如果投影神经网络102的输入是来自接收到的通信的文本序列,则投影神经网络102生成的输出可以是针对接收到的通信一组可能响应中的每一个的分数,所述分数表示响应匹配用户的意图的估计似然。
投影神经网络102包括一个或多个投影层(例如,投影层108的序列),且可以可选地包括一个或多个常规神经网络层(例如,全连接层、卷积层或softmax层)。
如将参考图2进一步描述的,投影层108配置为接收投影层输入110,并根据投影层参数的当前值处理投影层输入110以生成投影层输出112。通常,投影层输入110可以是投影网络输入104(即,如果投影层108是投影网络102中的第一层)或投影网络102的另一层(例如,常规层或另一投影层)的输出。投影层输入110和投影层输出112可以以任何适当的数字格式来表示,例如,向量或矩阵。
如果投影网络102的输出包括在投影网络输出106中,则投影网络102的该层被称为输出层。输出层可以是softmax层、投影层或任何其他适当的神经网络层。输出层可以配置为接收由投影层或常规层生成的输出作为输入。
与常规的神经网络系统相比,系统100可以在资源受限的环境(例如,智能手表或智能手机)中更容易地实现。例如,通过包括投影层(例如,投影层108)代替常规的神经网络层(例如,全连接层),限定系统100参数的数据所占用的存储容量比限定常规神经网络系统的参数的数据要少得多。
图2是示例数据流200的框图,通过该数据流,投影层(例如,投影层108)可以处理投影层输入110以确定投影层输出112。投影层向一个或多个投影层函数(例如,202、204、206)中的每一个提供投影层输入110。每个投影层函数都处理投影层输入110,以生成相应的投影函数输出(例如,208、210、212)。通常,投影函数输出的维数比投影层输入110的维数小(例如,小几个数量级)。投影层将投影函数输出连结(concatenate),并将投影层参数214(例如参数矩阵和偏差向量)应用于连结的投影函数输出。参照图4进一步描述通过处理投影层输入110来生成投影层输出112。
本申请文件描述了在投影神经网络的背景下(例如,参照图1所述)中由投影层(例如,参照图2和图4所述)执行的操作。更一般而言,其他系统(例如基于图形的系统)可以并入由投影层执行的操作。图形(graph)是一种数据结构,其可以用一组节点(每个节点可以与数字特征向量相关联)、用一组边缘(其中每个边缘可以与数字边缘强度值相关联)、在某些情况下用一组标签来表示。节点代表实体(例如,人、对象、位置或概念),边缘代表节点所代表的实体之间的关系(例如,社交网络中两个人之间的“朋友”关系),在某些情况下,标签可以代表节点的特性(例如,节点所代表的产品是否是“最畅销”产品)。
可以通过机器学习技术(例如,监督或半监督的机器学习技术)对基于图形的系统进行训练,以进行预测。例如,基于图形的系统可以为与图形中先前未标记的节点相关联的标签的值生成预测。在该示例中,基于图形的系统可以基于相邻节点(即,通过边缘连接到给定节点的节点)的标签和将给定节点连接到相邻节点的边缘的边缘强度来生成与给定节点相关联的标签的值的预测。
基于图形的系统可以通过(例如)生成投影图(该投影图是训练者图形的紧凑表示)来并入由投影层执行的操作。投影图形的每个节点可以对应于训练者图形的不同节点,并且可以通过执行投影层操作来确定与投影图形的节点相关联的特征向量。更具体地,通过将多个投影函数应用于与训练者图形中相应节点关联的特征向量,然后进行变换(例如,由参数矩阵和偏差向量限定),可以确定与投影图形的特定节点关联的特征向量。以这种方式,与投影图形的节点相关联的特征向量的维数可以比与训练者图形的节点相关联的特征向量小得多。因此,类似于投影神经网络,投影图形可以适合于部署到无法部署训练者图形的资源受限环境(例如移动装置)中。
图3是示例数据流300的框图,通过该数据流300,投影神经网络系统(例如,投影神经网络系统100)可以训练投影神经网络(例如,投影神经网络102)。
作为训练的一部分,系统将来自一组训练数据304的训练输入302提供给投影网络102。投影网络102根据投影网络参数的当前值处理训练输入302,以生成投影网络输出106。系统为训练者网络306提供相同的训练输入302。训练者网络306根据训练者网络参数的当前值处理训练输入302,以生成训练者网络输出308。训练者网络306可以是前馈神经网络、循环神经网络或任何其他适当类型的神经网络,其配置为在给定相同训练输入的情况下生成与投影网络102相同类型的输出。通常,训练者网络306比投影网络102具有更多的参数(在某些情况下,多几个数量级)。
系统通过计算几种不同的损失函数的组合的梯度(例如,通过反向传播程序)来一起更新投影网络参数和训练者网络参数的当前值。损失函数可以取决于投影网络输出106、训练者网络输出308或两者。
例如,系统可以通过损失函数
Figure BDA0002281265700000081
(称为训练者预测损失函数)的梯度更新训练者网络参数的当前值,该梯度取决于与训练数据304中的训练输入302相关联的训练者网络输出308和目标输出310之间的误差。目标输出310是应由训练者神经网络306和投影网络102响应于处理训练输入302而生成的输出。通过训练者预测损失函数/>
Figure BDA0002281265700000082
的梯度更新训练者网络参数的当前值可以使训练者网络306生成更类似于目标输出310的输出(即,响应于处理训练输入302)。
作为另一实例,系统可以通过损失函数
Figure BDA0002281265700000083
(称为投影预测损失函数)的梯度更新投影网络参数的当前值,该梯度取决于投影网络输出106和目标输出310之间的误差。通过训练者预测损失函数/>
Figure BDA0002281265700000084
的梯度更新投影网络参数的当前值可以使投影网络102生成更类似于目标输出310的输出(即,响应于处理训练输入302)。
作为另一示例,系统也可以通过损失函数
Figure BDA0002281265700000085
(称为投影模拟损失函数)的梯度更新投影网络参数的当前值(以及可选地,训练者网络参数),该梯度取决于训练者网络输出308和投影网络输出106之间的误差。通过投影模拟损失函数/>
Figure BDA0002281265700000086
的梯度更新投影网络参数的当前值可以使投影网络102生成更类似于训练者网络输出308的输出。通过基于投影模拟损失函数/>
Figure BDA0002281265700000087
更新投影网络参数的值,系统(在一些情况下)使得投影网络102能够生成在准确度上与训练者网络306生成的预测类似的预测,尽管投影网络102具有的参数比训练者网络306少得多(例如,在一些情况下,少若干个数量级)。
通常,训练者预测损失函数
Figure BDA0002281265700000088
投影预测损失函数/>
Figure BDA0002281265700000089
和投影模拟损失函数/>
Figure BDA00022812657000000810
可以是任何适当的损失函数。例如,如果训练者网络306和投影网络102执行分类任务,则损失函数可以是交叉熵损失函数。作为另一实例,如果训练者网络306和投影网络102执行回归任务,则损失函数可以是平方误差损失函数。系统可以通过所描述的每个损失函数的梯度的加权组合来调整投影网络102和训练者网络306的参数。
如前所述,基于图形的系统生成投影图形作为训练者图形的紧凑表示,该系统可以一起训练投影图形、训练者图形和用于从训练者图形确定投影图形的投影层操作的参数。在特定的示例中,可以训练投影层操作的参数(例如,通过反向传播程序),以使基于图形的系统基于投影图形生成的预测变得更加类似于基于图形的系统基于训练者图形生成的预测。预测之间的相似度可以通过损失函数(例如交叉熵损失函数)来度量。由基于图形的系统基于投影图形和训练者图形生成的预测可以分别是投影图形和训练者图形中的标记或未标记节点的预测的标签。
图4是用于生成投影层输出的示例过程的流程图。为了方便起见,将过程400描述为由投影层执行,该投影层由位于一个或多个位置的一个或多个计算机来实现。例如,根据本申请文件适当编程的投影层,例如图1的投影层108,可以进行过程400。
投影层接收投影层输入(402)。如前所述,投影层输入可以是投影网络输入或是投影网络的另一层的输出,并且可以用任何适当的数字格式表示(例如,作为向量或矩阵)。
投影层向一个或多个投影函数中的每一个提供投影层输入,每个投影函数配置为处理投影层输入以生成相应的投影函数输出(404)。每个投影函数通过将投影层输入映射到不同的空间来生成对应的投影函数输出。更具体地说,投影函数输出可以属于比投影层输入维度低得多的空间。例如,在某些情况下,投影函数输出的维数可能比投影层输入的维数低几个数量级。
通常,每个投影函数可以由矩阵限定。限定投影函数的矩阵的行(或列)称为与投影函数关联的投影向量。在某些情况下,投影函数可以通过确定投影层输入与和投影函数相关联的每个投影向量之间的点积(即内积)来处理投影层输入。例如,对于投影函数
Figure BDA0002281265700000091
投影层输入(其表示为向量)x的投影函数输出/>
Figure BDA0002281265700000092
可以确定如下:
Figure BDA0002281265700000093
其中<·,·>表示向量之间的点积运算,而
Figure BDA0002281265700000094
是与投影函数/>
Figure BDA0002281265700000095
相关联的投影向量。
在某些情况下,投影函数可以通过确定投影层输入与每个投影向量之间的点积是正值还是负值来处理投影层输入。当投影层输入和投影向量之间的点积产生正值时,可以将第一值分配给投影函数输出中的对应位置。相反,当投影层输入和投影向量之间的点积产生负值时,可以将第二值分配给投影函数输出中的对应位置。例如,投影层输入x(其表示为向量)的投影函数输出
Figure BDA0002281265700000101
可以确定为:
Figure BDA0002281265700000102
其中sgn(·)是符号函数,其响应于接收到正输入而输出值1,且响应于接收到负输入而输出值0。在该示例中,投影函数输出是投影层输入的二进制表示(即,具有由0和1构成的分量的向量)。通过将投影函数输出表示为二进制表示,投影网络的存储器占用(即,存储和使用投影网络所需的存储器量)与常规网络(即,其中层输出表示为实数表示,而不是二进制表示)相比可以大大减少。
投影函数可以是局部敏感散列函数(hashing function)。通常,局部敏感散列函数将相似的输入映射到相似的输出。更具体地,可以将局部敏感散列函数限定为函数
Figure BDA0002281265700000103
使得如果输入x1和x2之间的相似度由输出值在0和1之间的映射φ(x1,x2)(例如,余弦相似度映射)限定,则/>
Figure BDA0002281265700000104
Figure BDA0002281265700000105
的概率等于φ(x1,x2)。在某项情况下,由(2)限定的投影函数可以是局部敏感散列函数的示例。
投影函数可以选择为使得:(i)处理由投影函数输入的投影层以生成投影函数输出是计算上高效的(例如,需要很少的数学运算),(ii)限定投影函数的数据可以高效地存储(例如,存储在逻辑数据存储区或物理数据存储装置中),或两者。
例如,一个或多个投影函数可以由稀疏矩阵限定(即,只有几个非零条目的矩阵)。如果投影函数是由稀疏矩阵限定的,则处理由投影函数输入的投影层以生成投影函数输出在计算上是高效的。具体地,由于计算投影函数输出所涉及的许多算数运算的结果值为零(由于限定投影函数的矩阵的稀疏性),因此实际上不需要执行这些算术运算。
此外,如果投影函数由稀疏矩阵限定,则限定投影函数的数据可以高效地存储。例如,稀疏矩阵可以存储为元组的列表,其中每个元组包括稀疏矩阵中的位置的索引和该索引处的稀疏矩阵的对应值。由于稀疏矩阵只有几个非零的条目,因此这种表示所占的存储器要少于例如密矩阵的表示,该表示必须包括该密矩阵中每个位置的索引和该索引处的密集矩阵的对应值。
作为另一示例,系统可以基于一组种子参数的值来确定限定一个或多个投影函数的矩阵的分量的值。种子参数表示为数值,并且种子参数的数量通常比限定投影函数的矩阵的维数小得多。系统可以例如基于使用种子参数初始化的随机(或伪随机)数生成器的输出来确定限定投影函数的矩阵的分量的值。在该示例中,当将随机(或伪随机)数生成器配置为生成正态分布的随机数(即,从正态分布中抽取的随机数)时,限定投影函数的矩阵的分量的值为近似正态分布。
通过使用种子参数来确定限定投影函数的矩阵的分量的值,与常规层相比,系统可以减少投影层的计算需求。例如,与需要存储常规层参数值的整个密集矩阵的某些常规层相比,系统与常规层相比可以减少投影层所需的存储器存储量,因为仅必须存储种子参数的值。作为另一示例,与常规层相比,系统可以减少生成层输出的等待时间(latency),因为该系统可以动态计算限定投影函数的矩阵的分量的值。相反,对于某些常规层,系统从存储器中读取常规层参数值,这会比动态计算这些值(例如,在投影层中)慢得多。
限定投影层函数的参数的值(例如种子参数或投影向量的分量的值)可以预先确定,也就是说,可以在训练投影网络之前固定,而不在训练期间调整。
投影层通过将投影层参数应用于投影函数输出来生成投影层输出(406)。例如,投影层参数可以包括参数矩阵和偏差向量,且投影层可以生成投影层输出y为:
y=W·x+b (3)
其中W是参数矩阵(即,使得W·x表示矩阵向量乘法),b是偏差向量,且x是投影函数输出的连结。
如之前所述,投影函数输出的维数通常远低于投影层输入的维数。因此,应用于投影函数输出以生成投影层输出的投影层参数的数量通常比不包括投影函数的常规神经网络层(例如,全连接层)应用于层输入的参数的数量少得多。例如,由投影层中的参数矩阵W和偏差向量b限定的投影层参数的维度可以远小于常规神经网络层的对应的层参数的维度。
图5是用于一起训练投影神经网络和训练者神经网络的示例过程的流程图。为方便起见,过程500将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本申请文件适当编程的投影神经网络系统,例如图1的投影神经网络系统100,可以执行过程500。
系统从一组训练数据获得训练示例,包括训练输入和对应的目标输出(即,应当响应于处理训练输入而产生的输出)(502)。例如,系统可以从该组训练数据中随机采样训练示例。通常,系统可以从训练数据获得多个训练示例的批次(而不是单个训练示例)。在这种情况下,系统可以在更新训练者网络参数和投影网络参数的当前值(如参考510所述)之前,针对批次中的每个训练示例执行步骤504、506和508。
系统向投影网络提供训练输入,该投影网络根据投影网络参数的当前值处理训练输入以生成训练输入的投影网络输出(504)。更具体地,投影网络的每个层(包括投影层,且在某些情况下包括一个或多个常规层)根据层参数的当前值处理相应的层输入,以生成对应的层输出。
系统向训练者网络提供训练输入,该训练者网络根据训练网络参数的当前值处理训练输入以生成训练输入的训练者网络输出(506)。训练者神经网络可以是前馈神经网络、循环神经网络或任何其他合适类型的神经网络。通常,训练者网络比投影网络具有更多的参数(例如,具有更多的层、更大的层或两者兼有)。训练者网络的每个层根据层参数的当前值处理相应的层输入,以生成对应的层输出。训练输入的训练者网络输出可以是软输出,即,该输出包括多个可能目标输出中的每一个的相应的概率,而不是指示单个目标输出。
系统基于以下确定一个或多个损失函数的梯度:投影网络输出(例如,如504所述)、训练者网络输出(例如,如506所示),或两者(508)系统可以由反向传播、通过时间的反向传播、通过时间的截断反向传播或任何其他合适的方法来确定梯度。
例如,系统可以确定训练者预测损失函数
Figure BDA0002281265700000121
的关于训练者网络参数的梯度,该梯度取决于对应于训练示例的训练者网络输出和目标输出之间的误差。训练者预测损失函数鼓励训练者网络生成更类似于目标输出的输出(即,响应于处理训练输入)。
作为另一示例,系统可以确定投影预测损失函数
Figure BDA0002281265700000137
的关于投影网络参数的梯度,该梯度取决于对应于训练示例的投影网络输出和目标输出之间的误差。投影预测损失函数鼓励投影网络生成更类似于目标输出的输出(即,响应于处理训练输入)。
作为另一示例,系统可以确定投影模拟损失函数
Figure BDA0002281265700000131
的关于投影网络参数(特别是投影层参数)的梯度,该梯度取决于训练者网络输出和投影网络输出之间的误差。投影模拟损失函数鼓励投影网络生成的输出(即,响应于处理训练输入),该输出更类似于由训练者网络生成的输出。可选地,特别是当训练者网络未经预训练时,系统还可以确定投影预测损失函数/>
Figure BDA0002281265700000132
的相对于训练者网络参数的梯度。如果在训练投影网络之前,基于训练者预测损失函数的梯度将训练者网络参数的值更新一次或多次,则可以认为训练者网络是经过预训练的。
在某些情况下,系统可以对每个损失函数(例如,训练者预测损失函数、投影预测损失函数和投影模拟损失函数)的梯度应用不同的加权因子。例如,系统可以关于以下给出的组合损失函数确定梯度:
Figure BDA0002281265700000133
其中λ1,λ2和λ3是加权因子,
Figure BDA0002281265700000134
是训练者预测损失函数,/>
Figure BDA0002281265700000135
是投影预测损失函数,且/>
Figure BDA0002281265700000136
是投影模拟损失函数。
在某些情况下,投影层函数的参数值(例如,投影向量的分量)是预先确定的,即在训练投影网络之前是固定的,并且在训练期间不会进行调整。在这些情况下,当关于投影网络的当前参数值确定梯度时,投影层函数的参数被视为常数,并且不包括在梯度计算中。
系统基于梯度(即,如在508中所确定的)更新训练者网络参数和投影网络参数的当前值(510)。更具体地,系统可以基于投影预测损失函数和投影模拟损失函数的梯度(如先前所述)更新投影网络参数的值。系统可以基于训练者预测损失函数和可选的投影模拟损失函数的梯度(如先前所述)更新训练者网络参数的值。
系统可以通过以下更新网络(即,训练者网络或投影网络)参数α的当前值:
α←α-r·g (5)
其中r是学习速率超参数(即,控制参数值在训练期间变化速度的超参数)且g是关于参数α的梯度。
如前所述,通过基于梯度更新训练者网络参数和投影网络参数,系统可以使训练者网络和投影网络响应于处理训练输入生成更类似于目标输出的相应输出。此外,特别是当训练者网络输出是软输出时,系统可以使投影网络响应于处理训练输入生成的输出变得更加类似于训练者网络响应于处理相同的训练输入生成的输出。尽管训练者网络是比投影网络更复杂的模型(例如,具有更多的参数),但这可以使得经训练的投影网络的性能(例如,预测准确性)与训练者网络的类似。
系统确定训练是否完成(512)。在某些情况下,如果完成预定次数的训练迭代,则系统确定训练将完成。在某些情况下,如果训练者网络参数、投影网络参数或两者的值已经收敛(例如,如果迭代之间的参数值的变化的量度低于预定阈值),则系统确定训练将完成。
响应于确定训练未完成,系统返回到502并通过重复前述步骤来执行另一训练迭代。
响应于确定训练已完成,系统可以存储网络参数的经训练的值(例如,存储在例如逻辑数据存储区中或物理数据存储装置上)(514)。替代地,系统可以提供训练者网络参数和投影网络参数的经训练的值以用于处理网络输入(516)。例如,可以将投影网络(即由投影网络参数的经训练的值限定)部署到存储器和算力有限的资源受限的环境(例如移动装置)。在某些情况下,由于训练者网络的更大资源需求(例如,对存储器、算力或两者)(即,因为它是比投影网络更复杂的模型),投影网络可以部署到无法部署训练者网络的资源受限环境中。
如上所述,本文描述的系统100可广泛应用,并且不限于一种特定实现方式。然而,除了上述实现方式之外,具体实现方式的其他示例可以如下所述。
例如,如果投影神经网络102的输入是互联网资源(例如,网页)、文档、或者从互联网资源、文档或文档部分中提取的文档、或文档部分或特征,则投影神经网络102针对给定的互联网资源、文档或文档部分生成的输出可以是一组主题中的每一个的分数,每个分数表示互联网资源、文档或文档部分是关于该主题的估计似然。
作为另一示例,如果投影神经网络102的输入是特定广告的印象上下文的特征,则投影神经网络102生成的输出可以是表示将点击特定广告的估计似然的分数。
作为另一示例,如果投影神经网络102的输入是针对用户的个性化推荐的特征,例如,表征推荐的上下文的特征,例如,表征用户先前采取的动作的特征,则投影神经网络102生成的输出可以是一组内容项中的每一个的分数,每个分数表示用户将有利地响应于推荐内容项的估计似然。
本说明书结合系统和计算机程序组件使用术语“配置为”。对于要“配置为”执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在运行时使得系统执行操作或动作。对于要配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,当由数据处理设备执行所述指令时,使设备执行操作或动作。
本说明书中描述的主题和功能操作的实施例可以以数字电子电路,以有形实施的计算机软件或固件、以包括本说明书中公开的结构及其结构等价物的计算机硬件、或者以它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,以由数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是机器可读存储装置、机器可读存储基板、随机或串行存取存储器装置、或它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码,以发送到合适的接收器设备以供数据处理设备执行。
术语“数据处理设备”指的是数据处理硬件并且包括用于处理数据的所有类型的设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。设备可以是或还包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,设备可以可选地包括为计算机程序创建运行环境的代码,例如代码,其构成处理器固件、协议栈、数据库管理系统,操作系统、或它们中的一个或多个的组合。
计算机程序,也可以称为或描述为程序、软件、软件应用程序、应用程序、模块、软件模块、脚本或代码,可以用任何形式的编程语言编写,包括编译或解释性语言,或陈述性或程序性语言;且它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所涉及的程序的单个文件中、或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以部署为在一台计算机上或在多台计算机上运行,所述多台计算机位于一个站点,或跨多个站点分布并通过数据通信网络互连。
在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为一个或多个软件模块或组件,安装在一个或多个位置中的一个或多个计算机上。在某些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)或专用逻辑电路和一个或多个编程的计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或者两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元,以及用于存储指令和数字和/或量子数据的一个或多个存储器装置。中央处理单元和存储器可以由专用逻辑电路补充或并入其中。通常,计算机还将包括或可操作地联接以从和/或向用于存储数据的一个或多个海量存储装置接收和/或传输数据,例如磁盘、磁光盘或光盘。然而,计算机不需要具有这样的装置。此外,计算机可以嵌入在另一个装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制器、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),等等。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如半导体存储器装置,比如EPROM、EEPROM和闪存装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘;
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有显示装置(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)以向用户显示信息,该计算机还具有键盘和指点装置,例如鼠标或轨迹球,用户可以通过其向计算机提供输入。其他类型的装置也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的装置发送文档和从用户使用的装置接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户装置上的web浏览器。此外,计算机可以通过向个人装置(例如,正在运行消息收发应用程序的智能电话)发送文本消息或其他形式的消息来与用户交互,以及从用户接收响应消息作为交换。
用于实现机器学习模型的数据处理设备还可以包括,例如,专用硬件加速器单元,其用于处理机器学习训练或生产(即推断)工作负载的公共和计算密集部分。
可以使用机器学习框架(例如,TensorFlow框架,Microsoft认知工具包框架,Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
可以在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用程序服务器,或者包括前端组件,例如具有图形用户接口、web浏览器或app的客户端计算机,用户可以通过该图形用户接口或网络浏览器与本说明书中描述的主题的实现方式进行交互,或者一个或多个这样的后端组件、中间件组件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过运行在相应的计算机上的计算机程序产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)发送到用户装置,例如,用于向与作为客户端的装置交互的用户显示数据和从其接收用户输入的目的。可以在服务器处从装置接收在用户装置处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体的实现方式细节,但是这些不应该被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为针对于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以组合或在单个实施例中实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管特征可以在上文描述为以某些组合起作用并且甚至最初如此主张,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从该组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,尽管以特定顺序描述在附图中描绘和在权利要求中引述了操作,但这不应被理解为要求以所示的特定顺序或先后顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文所述的实施例中的各种系统模块和部件的分离不应该被理解为在所有的实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或先后顺序,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

Claims (17)

1.一种系统,包括存储指令的一个或多个计算机和一个或多个存储装置,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机实现:
投影神经网络,配置为接收投影网络输入并从所述投影网络输入生成投影网络输出,所述投影神经网络包括一个或多个投影层的序列,其中每个投影层具有(i)多个投影层参数和(ii)具有相应投影函数参数的多个投影层函数,其中所述多个投影层参数的值在所述投影神经网络的训练期间被调整,其中所述投影函数参数是在所述投影神经网络被训练之前确定并且在所述投影神经网络的训练期间不被调整的随机值,并且其中每个投影层配置为:
接收非二进制层输入;
将所述多个投影层函数应用于所述非二进制层输入,其中:
每个投影层函数根据所述相应投影函数参数来处理所述非二进制层输入以生成相应的二进制投影函数输出,所述二进制投影函数输出将所述非二进制层输入投影到具有多个分量的低维度二进制投影函数输出,每个所述分量取得来自两个可能值的集合中的相应值,以及
通过将所述投影层的投影层参数应用于所述二进制投影函数输出来生成层输出。
2.如权利要求1所述的系统,其中所述投影神经网络还包括:
输出层,配置为接收由所述序列中的最高的投影层生成的层输出并生成所述投影网络输出。
3.如权利要求2所述的系统,其中所述输出层是softmax输出层。
4.如权利要求2所述的系统,其中所述投影神经网络仅包括所述投影层的序列和所述输出层。
5.如权利要求1所述的系统,其中所述序列中的所述最高的投影层的层输出是所述投影网络输出。
6.如权利要求5所述的系统,其中所述投影神经网络仅包括所述投影层的序列。
7.如权利要求1所述的系统,其中所述序列中的最低的投影层的层输入是对所述投影神经网络的网络输入。
8.如权利要求7所述的系统,其中除了所述最低的投影层之外的任何投影层的层输入是由所述序列中所述投影层正下方的投影层生成的层输出。
9.如权利要求1所述的系统,其中,对于每个投影层,与该投影层的每个投影层函数相关联的每个投影函数参数包括投影向量的相应的集合,且其中将每个投影层函数应用于所述层输入包括:
对于每个投影向量:
确定所述非二进制层输入和所述投影向量之间的点积;
当所述点积为负时,将来自所述两个可能值的集合中的第一值分配给所述二进制投影函数输出的对应分量;并且
当所述点积为正时,将来自所述两个可能值的集合中的第二值分配给所述二进制投影函数输出的对应分量。
10.如权利要求1所述的系统,其中,对于每个投影层,与该投影层的每个投影层函数相关联的相应投影函数参数被编码为稀疏矩阵。
11.如权利要求1所述的系统,其中所述投影层参数包括参数矩阵和偏差向量,且其中通过将所述投影层的投影层参数应用于所述二进制投影函数输出来生成所述层输出包括:
将所述参数矩阵应用于所述二进制投影函数输出,并且然后将所述偏差向量添加到结果中。
12.如权利要求1所述的系统,其中通过多个操作来训练所述投影神经网络,所述多个操作包括:
接收训练输入和所述训练输入的目标输出;
根据(i)所述投影层参数的当前值以及(ii)在所述投影神经网络被训练之前确定并且在所述投影神经网络的训练期间不被调整的所述投影函数参数的随机值使用所述投影神经网络处理所述训练输入,以生成所述训练输入的投影网络输出;
使用具有多个训练者神经网络参数的训练者神经网络来处理所述训练输入,其中所述训练者神经网络配置为根据所述训练者神经网络参数的当前值来处理所述训练输入,以生成特定于特定的机器学习任务的训练者网络输出;以及
确定损失函数的关于所述训练者神经网络参数的梯度,所述梯度取决于所述目标输出和所述训练者网络输出之间的误差;
确定损失函数的关于所述投影层参数的梯度,所述梯度取决于所述训练者网络输出和所述投影网络输出之间的误差;以及
使用所述梯度确定对所述训练者网络参数和所述投影层参数的当前值的更新。
13.如权利要求12所述的系统,其中由所述训练者神经网络生成的输出是软目标输出。
14.如权利要求12所述的系统,其中,所述操作还包括:
确定所述损失函数的关于所述训练者网络参数的梯度,所述梯度取决于所述训练者网络输出和所述投影网络输出之间的误差,其中对所述训练者网络参数的当前值的更新还基于取决于所述训练者网络输出和所述投影网络输出之间的误差的所述损失函数的关于所述训练者网络参数的梯度。
15.如权利要求12所述的系统,其中,所述操作还包括:
确定损失函数的关于所述投影层参数的梯度,所述梯度取决于所述目标输出和所述投影网络输出之间的误差,其中对所述投影层参数的当前值的更新还基于取决于所述目标输出和所述投影网络输出之间的误差的所述损失函数的关于所述投影层参数的梯度。
16.一个或多个计算机存储介质,其存储指令,所述指令在由一个或多个计算机执行时,使得所述一个或多个计算机执行投影神经网络的操作,其中:
所述投影神经网络配置为接收投影网络输入并从所述投影网络输入生成投影网络输出,所述投影神经网络包括一个或多个投影层的序列,其中每个投影层具有(i)多个投影层参数和(ii)具有相应投影函数参数的多个投影层函数,其中所述多个投影层参数的值在所述投影神经网络的训练期间被调整,其中所述投影函数参数是在所述投影神经网络被训练之前确定并且在所述投影神经网络的训练期间不被调整的随机值,并且其中每个投影层配置为:
接收非二进制层输入;
将所述多个投影层函数应用于所述非二进制层输入,其中:
每个投影层函数根据所述相应投影函数参数来处理所述非二进制层输入以生成相应的二进制投影函数输出,所述二进制投影函数输出将所述非二进制层输入投影到具有多个分量的低维度二进制投影函数输出,每个所述分量取得来自两个可能值的集合中的相应值,以及
通过将所述投影层的投影层参数应用于所述二进制投影函数输出来生成层输出。
17.一种由一个或多个数据处理装置执行的方法,所述方法包括:
使用投影神经网络处理投影网络输入以生成投影网络输出,其中:
所述投影神经网络包括一个或多个投影层的序列,其中每个投影层具有(i)多个投影层参数和(ii)具有相应投影函数参数的多个投影层函数,其中所述多个投影层参数的值在所述投影神经网络的训练期间被调整,其中所述投影函数参数是在所述投影神经网络被训练之前确定并且在所述投影神经网络的训练期间不被调整的随机值,并且其中每个投影层配置为:
接收非二进制层输入;
将所述多个投影层函数应用于所述非二进制层输入,其中:
每个投影层函数根据所述相应投影函数参数来处理所述非二进制层输入以生成相应的二进制投影函数输出,所述二进制投影函数输出将所述非二进制层输入投影到具有多个分量的低维度二进制投影函数输出,每个所述分量取得来自两个可能值的集合中的相应值,以及
通过将所述投影层的投影层参数应用于所述二进制投影函数输出来生成层输出。
CN201880033479.5A 2017-05-20 2018-05-18 投影神经网络 Active CN110651280B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310584408.7A CN116702843A (zh) 2017-05-20 2018-05-18 投影神经网络

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762509058P 2017-05-20 2017-05-20
US62/509,058 2017-05-20
US201762517635P 2017-06-09 2017-06-09
US62/517,635 2017-06-09
PCT/US2018/033378 WO2018217563A1 (en) 2017-05-20 2018-05-18 Projection neural networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310584408.7A Division CN116702843A (zh) 2017-05-20 2018-05-18 投影神经网络

Publications (2)

Publication Number Publication Date
CN110651280A CN110651280A (zh) 2020-01-03
CN110651280B true CN110651280B (zh) 2023-06-06

Family

ID=62528886

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880033479.5A Active CN110651280B (zh) 2017-05-20 2018-05-18 投影神经网络
CN202310584408.7A Pending CN116702843A (zh) 2017-05-20 2018-05-18 投影神经网络

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310584408.7A Pending CN116702843A (zh) 2017-05-20 2018-05-18 投影神经网络

Country Status (5)

Country Link
US (2) US10748066B2 (zh)
EP (1) EP3602413B1 (zh)
CN (2) CN110651280B (zh)
SG (1) SG10201804213UA (zh)
WO (1) WO2018217563A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392802B2 (en) 2018-03-07 2022-07-19 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11138333B2 (en) 2018-03-07 2021-10-05 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11394552B2 (en) 2018-03-07 2022-07-19 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11210375B2 (en) * 2018-03-07 2021-12-28 Private Identity Llc Systems and methods for biometric processing with liveness
US10721070B2 (en) 2018-03-07 2020-07-21 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11489866B2 (en) 2018-03-07 2022-11-01 Private Identity Llc Systems and methods for private authentication with helper networks
US11170084B2 (en) 2018-06-28 2021-11-09 Private Identity Llc Biometric authentication
US11502841B2 (en) 2018-03-07 2022-11-15 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11265168B2 (en) 2018-03-07 2022-03-01 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US10938852B1 (en) 2020-08-14 2021-03-02 Private Identity Llc Systems and methods for private authentication with helper networks
US11789699B2 (en) 2018-03-07 2023-10-17 Private Identity Llc Systems and methods for private authentication with helper networks
US11797838B2 (en) 2018-03-13 2023-10-24 Pinterest, Inc. Efficient convolutional network for recommender systems
US10885277B2 (en) 2018-08-02 2021-01-05 Google Llc On-device neural networks for natural language understanding
US11657322B2 (en) * 2018-08-30 2023-05-23 Nec Corporation Method and system for scalable multi-task learning with convex clustering
US11568207B2 (en) 2018-09-27 2023-01-31 Deepmind Technologies Limited Learning observation representations by predicting the future in latent space
US11105924B2 (en) * 2018-10-04 2021-08-31 Waymo Llc Object localization using machine learning
US11868440B1 (en) * 2018-10-04 2024-01-09 A9.Com, Inc. Statistical model training systems
US20200202210A1 (en) * 2018-12-24 2020-06-25 Nokia Solutions And Networks Oy Systems and methods for training a neural network
CN111368996B (zh) * 2019-02-14 2024-03-12 谷歌有限责任公司 可传递自然语言表示的重新训练投影网络
CN113597620A (zh) * 2019-03-13 2021-11-02 渊慧科技有限公司 使用神经网络的压缩感测
US11694088B2 (en) * 2019-03-13 2023-07-04 Cortica Ltd. Method for object detection using knowledge distillation
CN110111365B (zh) * 2019-05-06 2022-04-15 深圳大学 基于深度学习的训练方法和装置以及目标跟踪方法和装置
US11231703B2 (en) * 2019-08-14 2022-01-25 Hitachi, Ltd. Multi task learning with incomplete labels for predictive maintenance
US20210374345A1 (en) * 2020-06-01 2021-12-02 Google Llc Processing large-scale textual inputs using neural networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276771A (en) * 1991-12-27 1994-01-04 R & D Associates Rapidly converging projective neural network

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1025478A2 (en) * 1997-09-04 2000-08-09 Camelot Information Technologies Ltd. Heterogeneous neural networks
JP3733711B2 (ja) * 1997-10-27 2006-01-11 株式会社デンソー 簡略化準ニュートン射影法演算システム、神経回路網学習システム、記録媒体および信号処理装置
CN102393908B (zh) * 2011-06-29 2013-07-17 湖南大学 混合生产线上的基于机器视觉检测的三种瓶体识别方法
US9292787B2 (en) * 2012-08-29 2016-03-22 Microsoft Technology Licensing, Llc Computer-implemented deep tensor neural network
US20140156575A1 (en) 2012-11-30 2014-06-05 Nuance Communications, Inc. Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization
US9519859B2 (en) 2013-09-06 2016-12-13 Microsoft Technology Licensing, Llc Deep structured semantic model produced using click-through data
RU2666631C2 (ru) 2014-09-12 2018-09-11 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Обучение dnn-студента посредством распределения вывода
US10311375B2 (en) * 2014-10-16 2019-06-04 Nanyang Technological University Systems and methods for classifying electrical signals
CN104538028B (zh) 2014-12-25 2017-10-17 清华大学 一种基于深度长短期记忆循环神经网络的连续语音识别方法
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9524716B2 (en) 2015-04-17 2016-12-20 Nuance Communications, Inc. Systems and methods for providing unnormalized language models
US10515307B2 (en) * 2015-06-05 2019-12-24 Google Llc Compressed recurrent neural network models
CN108369662A (zh) * 2015-09-17 2018-08-03 南洋理工大学 包括自适应模型的计算机系统和用于训练自适应模型的方法
KR102492318B1 (ko) 2015-09-18 2023-01-26 삼성전자주식회사 모델 학습 방법 및 장치, 및 데이터 인식 방법
US20170132528A1 (en) * 2015-11-06 2017-05-11 Microsoft Technology Licensing, Llc Joint model training
US9842106B2 (en) * 2015-12-04 2017-12-12 Mitsubishi Electric Research Laboratories, Inc Method and system for role dependent context sensitive spoken and textual language understanding with neural networks
CA3030337A1 (en) * 2016-07-11 2018-01-18 Walmart Apollo, Llc Systems and methods for facilitating product pickup by a friend or family member of the ordering customer
US11042796B2 (en) * 2016-11-03 2021-06-22 Salesforce.Com, Inc. Training a joint many-task neural network model using successive regularization
GB201620235D0 (en) * 2016-11-29 2017-01-11 Microsoft Technology Licensing Llc Neural network data entry system
US9990687B1 (en) * 2017-01-19 2018-06-05 Deep Learning Analytics, LLC Systems and methods for fast and repeatable embedding of high-dimensional data objects using deep learning with power efficient GPU and FPGA-based processing platforms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276771A (en) * 1991-12-27 1994-01-04 R & D Associates Rapidly converging projective neural network

Also Published As

Publication number Publication date
WO2018217563A1 (en) 2018-11-29
US10748066B2 (en) 2020-08-18
CN116702843A (zh) 2023-09-05
SG10201804213UA (en) 2018-12-28
CN110651280A (zh) 2020-01-03
EP3602413A1 (en) 2020-02-05
US20180336472A1 (en) 2018-11-22
US11544573B2 (en) 2023-01-03
EP3602413B1 (en) 2022-10-19
US20200349450A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
CN110651280B (zh) 投影神经网络
CN111279362B (zh) 胶囊神经网络
EP3711000B1 (en) Regularized neural network architecture search
US10936949B2 (en) Training machine learning models using task selection policies to increase learning progress
US20230252327A1 (en) Neural architecture search for convolutional neural networks
US20210334624A1 (en) Neural architecture search using a performance prediction neural network
CN110546653B (zh) 使用管理者和工作者神经网络的用于强化学习的动作选择
EP3574454B1 (en) Learning neural network structure
US10872299B2 (en) Memory augmented generative temporal models
US20210097401A1 (en) Neural network systems implementing conditional neural processes for efficient learning
US20210110115A1 (en) Selecting actions using multi-modal inputs
US20210271970A1 (en) Neural network optimizer search
US20210232929A1 (en) Neural architecture search
US20200410365A1 (en) Unsupervised neural network training using learned optimizers
US11636347B2 (en) Action selection using interaction history graphs
US12056613B2 (en) Training neural network systems to perform multiple machine learning tasks
IE20180149A1 (en) Projection neural networks
US20240311267A1 (en) Efficient hardware accelerator configuration exploration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant