CN111008689B - 使用softmax近似来减少神经网络推理时间 - Google Patents
使用softmax近似来减少神经网络推理时间 Download PDFInfo
- Publication number
- CN111008689B CN111008689B CN201910924950.6A CN201910924950A CN111008689B CN 111008689 B CN111008689 B CN 111008689B CN 201910924950 A CN201910924950 A CN 201910924950A CN 111008689 B CN111008689 B CN 111008689B
- Authority
- CN
- China
- Prior art keywords
- neural network
- output
- cluster
- vector
- subset
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 96
- 239000013598 vector Substances 0.000 claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000012216 screening Methods 0.000 claims abstract description 27
- 238000012549 training Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 22
- 238000013459 approach Methods 0.000 claims description 3
- 239000003550 marker Substances 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims 5
- 238000004590 computer program Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Machine Translation (AREA)
Abstract
公开了使用SOFTMAX近似来减少神经网络推理时间。方法、系统和装置,包括在计算机存储介质上编码的计算机程序,使用softmax近似减少神经网络推理时间。方法之一包括维护为可能神经网络输出词汇中每个输出指定相应softmax权重向量的数据;接收神经网络输入;使用一个或多个初始神经网络层处理神经网络输入以针对神经网络输入生成场境向量;以及针对神经网络输入在可能神经网络输出的词汇上生成近似分值分布,包括:使用筛选模型处理场境向量,筛选模型被配置成针对场境输入预测词汇的适当子集;和针对在适当子集中的每个输出生成相应logit,包括将输出的softmax权重向量应用于场境向量。
Description
技术领域
本说明书涉及使用神经网络来处理输入。
背景技术
神经网络是采用非线性单元的一个或多个层来针对接收到的输入预测输出的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一个层(即,下一个隐藏层或输出层)的输入。网络的每个层依照相应参数集合的当前值从接收到的输入生成输出。
发明内容
本说明书描述一种作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,所述系统实现用可使用更少的计算并在更少的时间内计算的softmax层的准确近似替换常规softmax输出层的神经网络。这相对于常规系统大大地减少所描述的系统针对给定输入计算神经网络推理所需要的时间。
特别地,系统维护为可能神经网络输出的词汇中的每个输出指定相应softmax权重向量(以及可选地相应偏差值)的数据。哪些输出在可能神经网络输出的词汇中取决于神经网络被配置成执行的任务。
例如,当任务是机器翻译时,词汇包括目标语言的单词。换句话说,当任务是机器翻译时,系统的输入是源语言的文本而系统的输出是另一语言的文本。
作为另一示例,任务可以是使用作为自然语言的单词的可能网络输出的词汇的另一类型的自然语言生成任务。这样的任务的一个示例是文本摘要,其中系统接收输入文本序列并且生成用更少的单词概括输入文本序列的输出文本序列。这样的任务的另一示例是文本释义,其中系统接收输入文本序列并且生成具有与输入文本序列类似的含义但使用与输入文本序列不同的单词的输出文本序列。这样的任务的另一示例是图像字幕,其中系统接收输入图像并且生成描述输入图像的内容的输出文本序列。这样的任务的另一示例是问答,其中系统接收输入文本序列并且生成作为对输入文本序列中提出的问题的回答的输出文本序列。通常,自然语言生成任务是系统生成以某种输入为条件的文本的序列的任务,所述某种输入可以是文本或不同类型的数据。
当任务是语音识别时,即,为了将输入音频数据转换成文本,词汇可包括目标自然语言字母表中的音素、字符或单词中的一个或多个。
当任务是图像分类时,即,为了将输入图像分类为属于一组对象类别中的一种时,词汇可包括一组对象类别。
通常,所描述的技术适用于具有可能输出的大词汇的任何机器学习任务。如下所述,当词汇的大小大并且神经网络需要在输出上产生概率分布以便生成网络输出时,神经网络推理时间受到softmax层的计算妨碍。
为了计算推理,系统接收神经网络输入并且使用一个或多个初始神经网络层来处理该神经网络输入以针对该神经网络输入生成场境向量。如上,哪些神经网络层是神经网络的一部分取决于任务。例如,对于序列处理任务,这些层可包括递归层(例如LSTM层)、前馈层、自我关注层或卷积层中的一个或多个。场境向量将通常是最后初始神经网络层的输出或来自多个初始神经网络层的输出的组合,例如,如果神经网络包括跳过连接的话。
系统针对神经网络输入在可能神经网络输出的词汇上生成近似分值分布,即,而不是通过通过常规softmax层来处理场境向量而生成实际的softmax分值分布。
为了生成近似分布,系统使用筛选模型来处理场境向量,所述筛选模型被配置成针对场境输入预测词汇的适当子集,即少于全部。
系统然后通过将针对在适当子集中的每个输出的softmax权重向量应用于场境向量(然后可选地应用针对该输出的偏差值)来为该输出生成相应logit。在一些情况下,系统使用这些logit作为分值分布中的分值(并且为不在适当子集中的每个输出指派零的分值)。在其它情况下,系统归一化logit以针对在适当子集中的每个输出生成相应的概率(并且为不在适当子集中的每个输出指派零的概率)。
每个适当子集相对于整个词汇通常是小的。因此,为了计算近似分布,系统仅需要执行少量内积而不是如将是常规softmax所需要的那样针对词汇中的每个输出计算不同的内积。
可实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。
许多神经网络由以下各项组成:一组初始层,该一组初始层接收输入并生成初始输出(在本说明书中称为“场境向量”);以及softmax层,所述softmax层接收由初始层生成的场境向量并且在输出的词汇上生成概率分布。神经网络然后根据由softmax层生成的概率或logit或前k个概率或logit本身来输出词汇中的前k个输出。因此,softmax层针对词汇中的每个输出生成logit并且在一些情况下然后归一化logit以生成概率。针对输出生成logit需要将场境向量乘以与该logit相对应的权重向量,即,计算两个向量之间的内积,然后加上与该logit相对应的偏差值。当存在大量可能的输出时,执行此计算可成为计算神经网络推理中的一大瓶颈。实际上,需要执行softmax层的处理可使整体推理速度延迟到无法在移动设备上实现神经网络的这样的程度。另一方面,所描述的技术使用轻量筛选模型来用将另外需要的少得多的计算准确地近似softmax的输出。这极大地减少使用神经网络来执行推理所需要的时间和计算资源并且允许在需要例如在移动设备上接近于实时地生成输出的资源受限环境中高效地部署神经网络。
在下面的附图和描述中阐述本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,本主题的其它特征、方面和优点将变得显而易见。
附图说明
图1示出示例神经网络系统。
图2示出使用筛选模型来生成网络输出的示例。
图3是用于针对神经网络输入生成分值分布的示例过程的流程图。
图4是用于训练筛选模型的示例过程的流程图。
在各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
图1示出示例神经网络系统100。神经网络系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中实现了在下面描述的系统、组件和技术。
此神经网络系统100实现用可使用更少的计算并在更少的时间内计算的softmax层的准确近似替换常规softmax输出层的神经网络。这相对于常规系统大大地减少系统100针对给定输入计算神经网络推理所需要的时间。
由系统100实现的神经网络被配置成接收神经网络输入102并且针对该神经网络输入102在可能神经网络输出的词汇上生成分值分布132。如上所述,哪些输出在可能神经网络输出的词汇中取决于神经网络被配置成执行的任务。
通常,所描述的技术适用于具有可能输出的大词汇的任何机器学习任务,例如,具有目标自然语言的单词的输出词汇的任务或具有遍及非常大数目的可能类的输出词汇的分类任务。如下所述,当词汇的大小大并且神经网络需要在输出上产生概率分布以便生成网络输出时,神经网络推理时间受到softmax层的计算妨碍。
一旦已生成分值分布132,系统100就可将分值分布132作为系统的网络输出来提供,例如,以用于呈现给用户或者给另一系统,或者可选择具有最高概率的可能输出中的一个或多个并且提供一个或多个可能网络输出作为系统的网络输出。替换地,系统100可与网络输入102关联地存储分值分布132或具有最高分值的一个或多个可能输出以供以后使用。
由系统100实现的神经网络包括一个或多个初始神经网络层110以及替换与神经网络层110一起联合地训练的softmax层的组件:筛选模型120、softmax引擎130和softmax数据140。
如上,哪些初始神经网络层110是神经网络的一部分取决于任务。例如,对于序列处理任务,这些层可包括递归层(例如(长期短期记忆)LSTM层)、前馈层、自我关注层或卷积层中的一个或多个。对于图像分类任务,这些层可以是从输入图像生成场境向量的卷积神经网络。
特别地,系统100维护softmax数据140,所述softmax数据140为可能神经网络输出的词汇中的每个输出指定相应softmax权重向量以及可选地相应偏差值。Softmax数据140作为神经网络的训练的结果被生成,即,用一个或多个初始神经网络层140和常规softmax输出层来生成。也就是说,softmax数据140中的权重向量和偏差值是常规softmax输出层的训练后的参数值。
为了计算推理,系统100接收神经网络输入102并且使用一个或多个初始神经网络层110来处理神经网络输入102以针对神经网络输入102生成场境向量112。场境向量112将通常是最后初始神经网络层的输出或来自多个初始神经网络层的输出的组合,例如,如果神经网络包括跳过连接的话。
系统100然后针对神经网络输入102在可能神经网络输出的词汇上生成近似softmax分值分布,即,而不是通过通过常规softmax层来处理场境向量而生成实际的softmax分值分布。
具体地,如果系统100要实现常规softmax层,则系统将通过将用于可能输出的softmax权重向量应用于场境向量(并且然后可选地应用用于该输出的偏差值),即通过计算场境向量和softmax权重向量之间的内积,来生成用于词汇中的每个可能输出的相应logit。当词汇包含大量输出时,这需要计算非常大量的内积,这在计算和时间上都是耗时的。在某些情况下,即当要求分值是概率时,系统随后将对logit进行归一化,以为适当子集中的每个输出生成相应概率。由于需要针对每个logit计算相应的归一化因子,因此该归一化在计算和时间上也比较耗时。
相反,为了生成近似分布,系统100使用筛选模型120来处理场境向量112。
筛选模型120被配置成预测适当子集,即小于场境输入的词汇的全部。也就是说,筛选模型120识别词汇子集122,其包括小于该词汇中的全部可能输出。
筛选模型120通常针对聚类集合中的每个聚类包括多个聚类中的每个聚类的相应参数向量和该每个聚类的候选适当输出子集。聚类的候选适当输出子集是已经分配给该聚类的输出词汇中的输出的适当子集。
为了预测场境输入的适当子集,系统100使用参数向量将场境向量112聚类成多个聚类中的特定聚类并且然后将场境向量112的适当子集分配给该特定聚类的候选适当输出子集。
为了聚类场境向量112,系统100针对每个聚类确定场境向量和用于聚类的参数向量之间的内积,并将场境向量112聚类为具有最高内积的聚类。
下面参照图2和图3更详细地描述了预测场境输入112的词汇的适当子集。
下面参照图4更详细地描述了训练场境模型120来确定聚类的参数向量和聚类的候选适当子集。
Softmax引擎130然后使用softmax数据140和词汇子集122生成分值分布132。
具体地,softmax引擎130通过将用于输出的softmax权重向量应用于场境向量并且然后可选地应用该输出的偏差值来生成用于词汇子集122中的每个输出的相应logit。在某些情况下,softmax引擎130使用这些logit作为分值分布中的分值,不在适当子集中的每个输出的分值为零。
在其他情况下,softmax引擎130对logit进行归一化,以生成适当子集中的每个输出的相应概率。然后,系统130生成概率分布,该概率分布为适当子集中的每个输出分配相应概率,并且为不在适当子集中的每个输出分配零概率。
每个适当子集相对于整个词汇通常很小。因此,为了计算近似分布,系统100仅需要执行少量内积而不是如常规softmax层所需针对词汇中的每个输出计算不同的内积。
图2示出了使用筛选模型120生成神经网络输出的示例。在图2如的示例中,系统100正在执行语言建模任务,其要求系统100在给定单词序列的情况下预测下一个单词。因此,系统需要在英语单词的词汇上生成概率分布。
特别地,在图2的示例中,系统100已经接收到当前序列“The dog is”202,并且需要预测序列中“is”之后的单词。
为了进行预测,系统100使用初始神经网络层110处理该序列202以生成场境向量112。在图2的示例中,初始神经网络层110是LSTM层。
然后,系统100使用筛选模型120来处理上下文向量112,以生成词汇子集122,即,预测输出词汇中的单词的适当子集。在图2的示例中,单词的适当子集包含三个词“cute”、“quiet”和“big”。
然后,系统100通过计算该子集中的单词的softmax权重向量210与场境向量112之间的相应内积(并且可选地向每个logit添加相应偏差值)来计算该子集中的每个单词的相应logit。
在图2的示例中,系统然后计算logits的argmax 220以选择被预测为跟随在输入序列202中的单词“is”之后的单词。在其他情况下,系统可以将logit归一化以生成如上参照图1所述的概率分布或仅向单词提供前k个logit(可选地logit本身)作为系统的网络输出。
从图2可以看出,即使英语单词的词汇通常将包括非常大量的单词,系统100也仅需要针对词汇中的一小部分单词执行内积以通过利用筛选模型120来生成预测。因为筛选模型用于生成适当子集,所以系统可以通过仅最小程度地降低预测质量来实现这种资源节省。
图3是用于生成神经网络输入的分值分布的示例过程300的流程图。为了方便起见,将过程300描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的神经网络系统,例如图1的神经网络系统100,可以执行过程300。
该系统维护包括在可能输出的词汇中的每个可能输出的相应softmax权重向量的softmax数据(步骤302)。softmax数据还可以选择地包括每个可能输出的相应偏差值。
该系统接收神经网络输入(步骤304)。
然后,该系统针对该神经网络输入在可能神经网络输出的词汇上生成近似分值分布。
具体地,该系统使用被配置为针对该场境输入预测词汇的适当子集的筛选模型来处理场境向量(步骤306)。
针对聚类集合中的每个聚类,筛选模型通常包括多个聚类中的每个聚类的相应参数向量以及每个聚类的候选适当输出子集。为了预测场境输入的适当子集,系统使用参数向量将场境向量聚类成多个聚类中的特定聚类,然后将场境向量的适当子集分配给特定聚类的候选适当输出子集。为了聚类场境向量,系统针对每个聚类确定场境向量和该聚类的参数向量之间的内积,并将场境向量聚类成具有最高内积的聚类。
然后,系统通过将输出的softmax权重向量应用于场境向量来生成适当子集中的每个输出的相应logit(步骤308)。
在某些情况下,系统使用logit作为近似分值分布中的分值,即,通过将为零的分值分配给不在适当子集中的输出。
在一些其他情况下,系统对logit进行归一化以生成在适当子集中的每个输出的相应概率,以生成近似softmax概率分布(步骤310)。也就是说,近似softmax概率分布包括针对在适当子集中的每个输出的所生成的概率和针对不在适当子集中的每个输出的零概率。
图4是用于训练筛选模型的示例过程400的流程图。为了方便起见,将过程400描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的神经网络系统,例如图1的神经网络系统100,可以执行过程400。
该系统接收多个训练场境向量(步骤402)。例如,训练场境向量可以是由训练的初始神经网络层针对在训练神经网络时使用的一些或全部训练输入而生成的场境向量。
该系统通过经由softmax层处理训练场境向量来生成每个训练场境输入的相应地面真相标记向量(步骤404)。也就是说,系统使用常规(“完整”)softmax层来处理训练场境向量,该层计算训练场境向量和每个softmax权重向量之间的内积,以生成词汇中的每个输出的相应logit。然后,系统生成地面真相标记向量,该地面真相标记向量包括词汇中的每个输出的相应值。针对具有由常规softmax层所生成的处于前k个最高logit中的logit的每个可能输出,系统会将地面真相标记向量中的可能输出的值设置为1。对于具有不在前k个最高logit中的logit的每个可能输出,系统将该Logit的值设置为零。k的值可以是预定值,该预定值是词汇中的输出总数的很小一部分,例如,k可以等于1、3、5或10。
系统初始化每个聚类的聚类参数向量和候选适当输出子集(步骤406)。例如,系统可以将每个候选适当输出子集初始化为空集,即,使得最初没有输出被分配给任何聚类。系统可以在训练场境向量上使用常规聚类技术(例如,球形kmeans)来初始化聚类参数。
然后,该系统训练筛选模型以针对每个聚类确定聚类参数向量的训练值以及最终候选适当输出子集。特别地,该系统训练筛选模型以最小化目标函数,该目标函数测量地面真相标记向量与使用过程300并使用当前筛选模型由该系统为其生成logit的适当子集之间的失配。具体地,当(i)可能输出被地面真相标记分配了1的值但是不在为其生成logit的适当子集中并且(ii)可能输出未被分配1的值但是位于适当子集中时,目标会对筛选模型进行惩罚。具体地,(i)会受到惩罚,因为由于没有为高评分可能输出生成logit而导致预测准确性的潜在下降,并且(ii)受到了惩罚,因为针对不相关的可能输出计算了内积,即计算资源被浪费在为不应在适当子集中的输出而计算内积上。
作为特定示例,系统可以最小化以下目标函数:
其中,最小化是越过每个聚类的聚类参数向量v和候选适当输出子集c的值,r是聚类的总数,N是训练场境向量的总数,hi是第i个训练场境向量,yis是第i个训练场境向量的地面真相标记向量中的输出s的值,L是词汇中的可能输出总数,λ是预定权重值,B是表示每个聚类中的期望平均输出数目的恒定值,是给定每个聚类的候选聚类集合的当前值的每个聚集中的平均输出数目,/>是在由近似softmax使用聚集参数向量的当前值和候选适当输出子集生成的分值的argmax的可微分独热表示(differentiable one-hotrepresentation)中分配1的值的输出,以及,cds在输出s在该聚类d的适当输出子集中时为1并且在输出s不在聚类d的适当输出子集中时为零。可以通过使用Gumbel技巧重新参数化argmax来生成可微分独热表示。
系统可以通过在执行步骤408和410之间反复交替来优化此目标函数。
在步骤408,系统更新聚类参数向量而同时保持候选适当输出子集固定。具体地,要执行此更新,系统可以将聚类大小约束转换为目标函数的项,然后使用随机梯度下降更新以下目标函数:
该系统能够通过此目标函数反向传播,以使用随机梯度下降法更新聚类参数向量,这是因为使用了通过由近似softmax使用聚集参数向量的当前值和候选适当输出子集所生成的分值的argmax的可微分独热表示,即因为使用了“Gumbel技巧”(Gumbel trick)。
在步骤410中,系统更新候选适当输出子集而同时保持聚集参数向量固定。具体地,系统可以解决背包问题(Knapsack problem)以计算更新的候选适当输出子集。更具体地说,系统将每个ct,s视为一项,其中权重与属于该聚集的输出数目成比例,并且将目标函数定义的值最小化,其中目标是使权重容量B内的值最大化。系统可以应用贪婪方法(greedy approach)来解决此问题,即通过按找值-容量比率对项进行排序并将它们逐个相加直到达到最大容量B来确定更新的候选适当输出子集。
以这种方式训练筛选模型允许系统在使用训练的筛选模型将适当子集分配给场境向量时不仅考虑场境向量之间的相似性而且考虑场境向量的预测输出空间。
本说明书使用与系统和计算机程序组件相关的术语“配置”。对于一个或多个被配置为执行特定操作或动作的计算机的系统,意指该系统已在其上安装了软件、固件、硬件或它们的组合,所述软件、固件、硬件或它们的组合在操作中使得系统执行操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意指所述一个或多个程序包括指令,所述指令在由数据处理装置执行时使得装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例可以在以下中实现:在数字电子电路中、在有形地体现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中或它们中的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即在有形的非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。替代地或另外地,程序指令可以被编码在人工生成的例如是机器生成的电、光或电磁信号的传播信号上,所述传播信号被生成以对信息进行编码以传输到合适的接收器装置以便由数据处理装置执行。
术语“数据处理设备”指代数据处理硬件并且包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,该装置可以可选地包括创建计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
可以被称为或被描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言编写,所述编程语言包括已编译或解释性语言,或声明性或程序性语言;并且所述计算机程序可以以任何形式部署,所述形式包括作为独立程序或作为模块、组件、子例程或适合于在计算环境中使用的其他单元。程序可以但不必需与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;可以存储在专用于所述程序的单个文件中或多个协调文件中,例如存储一个或多个模块、子程序或代码的各部分的文件。计算机程序可以被部署为在位于一个地点上或分布在多个地点上并通过数据通信网络互连的一个计算机或多个计算机上执行。
在本规范中,术语“数据库”被广泛地用于指代任何数据集合:数据不需要以任何特定方式进行结构化或根本不需要结构化,并且其可以被存储在一个或多个位置中的存储设备上。因此,例如索引数据库可以包括多个数据集合,所述数据集合中的每一个可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛地用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的一个计算机或相同的多个计算机上安装并运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,所述一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可以由例如是FPGA或ASIC的专用逻辑电路执行或者由专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以是基于通用或专用微处理器或两者或者基于任何其他类型的中央处理器的。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于运行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备或可操作地耦合以从所述大容量存储设备接收数据或将数据传输到所述大容量存储设备或两者,所述大容量存储设备例如是磁、磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机可以被嵌入到另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备,仅举几例,例如通用串行总线(USB)闪存驱动器。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有以下的计算机上实现:用于向用户显示信息的显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器;以及键盘和定点设备,用户可以通过其向计算机提供输入,所述定点设备例如鼠标或轨迹球。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,响应于从web浏览器接收到请求而将网页发送到用户设备上的web浏览器。而且,计算机可以通过将文本消息或其他形式的消息发送到个人设备并继而从用户接收响应消息来与用户交互,所述个人设备例如是运行消息收发应用的智能手机。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元以便处理机器学习训练或产生(即推断)工作负载的常见和计算密集型部分。
机器学习模型可以使用机器学习框架来实现和部署,所述机器学习框架例如是TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架。
本说明书中描述的主题的实施例可以计算系统中实现,所述计算系统包括后端组件,例如作为数据服务器;或包括中间件组件,例如应用服务器;或包括前端组件,例如具有用户可以通过其与本说明书中描述的主题的实现进行交互的图形用户界面、web浏览器或应用的客户端计算机;或这样的后端、中间件或前端组件中的一个或多个的组合。系统的组件可以通过例如是通信网络的数字数据通信的任何形式或介质互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在相应的计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器向用户设备传输例如是HTML页面的数据,以用于向与充当客户端的与设备交互的用户显示数据并从所述用户接收用户输入的目的。在用户设备处生成的数据可以在服务器处从设备接收,所述在用户设备处生成的数据例如是用户交互的结果。
尽管本说明书包含许多特定的实现细节,但是这些不应被解释为对任何发明的范围或所要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在本说明书中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可能将特征描述为以某些组合起作用并且甚至最初是这样要求保护的,但是在某些情况下,可以从组合中去除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,尽管以特定顺序在附图中描绘了并在权利要求中叙述了操作,但这不应理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有图示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或被打包为多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中叙述的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
Claims (14)
1.一种用于处理神经网络输入的方法,所述方法包括:
维护数据,所述数据针对可能神经网络输出的词汇中的每个输出指定相应softmax权重向量;
接收神经网络输入;
使用一个或多个初始神经网络层来处理所述神经网络输入,以针对所述神经网络输入生成场境向量;以及
针对所述神经网络输入,在所述可能神经网络输出的词汇上生成近似分值分布,包括:
使用筛选模型来处理所述场境向量,所述筛选模型被配置成针对所述场境输入预测所述词汇的适当子集;以及
针对在所述适当子集中的每个输出生成相应logit,包括:将所述适当子集中的输出的相应softmax权重向量应用于所述场境向量。
2.根据权利要求1所述的方法,其中,所述近似分值分布是近似softmax概率分布,并且其中,生成所述近似分值分布包括:
将所述logit归一化,以针对在所述适当子集中的每个输出生成相应概率,从而生成所述近似softmax概率分布。
3.根据权利要求1所述的方法,其中,针对在所述适当子集中的每个输出生成相应logit包括:
仅针对在所述适当子集中的输出计算logit。
4.根据权利要求1所述的方法,其中,所维护的数据进一步包括针对所述词汇中的每个输出的相应偏差值,并且其中,针对在所述适当子集中的每个输出生成相应logit进一步包括:将所述适当子集中的输出的所述偏差值添加到将所述softmax权重向量应用于所述场境向量的结果。
5.根据权利要求1所述的方法,进一步包括:
根据所述近似分值分布来针对所述神经网络输入生成神经网络输出。
6.根据权利要求5所述的方法,其中,所述神经网络输出从在所述近似分值分布中具有最高分值的所述输出的词汇中识别k个输出,其中,k是大于或等于1的整数。
7.根据权利要求1-6中的任何一项所述的方法,
其中,所述筛选模型包括多个聚类中的每个聚类的相应参数向量和每个聚类的候选适当输出子集,并且
其中,使用筛选模型来处理所述场境向量、所述筛选模型被配置成针对所述场境输入预测所述词汇的适当子集包括:
使用所述参数向量来将所述场境向量聚类成所述多个聚类中的特定聚类;以及
将所述场境向量的所述适当子集预测为所述特定聚类的所述候选适当输出子集。
8.根据权利要求7所述的方法,其中,将所述场境向量聚类包括:
针对每个聚类,确定所述场境向量与所述聚类的所述参数向量之间的内积;以及
将所述场境向量聚类为具有最高内积的所述聚类。
9.一种用于处理神经网络输入的方法,包括训练根据权利要求7或权利要求8所述的方法的筛选模型以学习用于聚类的聚类参数向量和候选适当输出子集,所述方法包括:
获得多个训练场境向量;
通过利用所维护的权重通过softmax层处理地面真相标记向量来针对每个训练场境向量确定所述地面真相标记向量;
针对每个聚类,初始化所述聚类参数向量和所述候选适当输出子集;以及
重复地执行以下操作:
执行第一优化过程的迭代,所述第一优化过程用于更新所述聚类参数向量而同时保持所述候选适当输出子集固定;以及
执行第二优化过程的迭代,所述第二优化过程用于更新所述候选适当输出子集而同时保持所述聚类参数向量固定。
10.根据权利要求9所述的方法,其中,所述第一优化过程采用Gumbel技巧。
11.根据权利要求9所述的方法,其中,所述第二优化过程包括使用贪婪方法来解决背包问题。
12.根据权利要求9至11中的任何一项所述的方法,其中,执行所述第一优化过程和所述第二优化过程的迭代使以下目标函数最小化:
其中,v表示所述聚类参数向量,c表示所述候选适当输出子集,所述最小化操作是跨每个聚类的聚类参数向量v和候选适当输出子集c的值来执行的,r表示聚类的总数,N表示所述多个训练场境向量的总数,hi表示第i个训练场境向量,yis表示所述第i个训练场境向量的地面真相标记向量中的输出s的值,L表示词汇中的可能输出的总数,λ表示预定权重值,B是表示每个聚类中的期望平均输出数目的恒定值,表示给定每个聚类的候选聚类集合的当前值的每个聚类中的平均输出数目,/>表示在使用所述聚类参数向量的当前值和候选适当输出子集由近似softmax概率分布生成的分值的argmax的可微分独热表示中分配1的值的输出,以及cds在所述输出s在聚类d的适当输出子集中时为1并且在所述输出s不在聚类d的适当输出子集中时为零。
13.一种用于处理神经网络输入的系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1至12中的任何一项所述的方法的操作。
14.存储指令的一种或多种计算机存储介质,所述指令当由一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1至12中的任何一项所述的方法的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862737909P | 2018-09-27 | 2018-09-27 | |
US62/737,909 | 2018-09-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008689A CN111008689A (zh) | 2020-04-14 |
CN111008689B true CN111008689B (zh) | 2024-01-26 |
Family
ID=69945951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910924950.6A Active CN111008689B (zh) | 2018-09-27 | 2019-09-27 | 使用softmax近似来减少神经网络推理时间 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10671909B2 (zh) |
CN (1) | CN111008689B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3882823A1 (en) * | 2020-03-17 | 2021-09-22 | Samsung Electronics Co., Ltd. | Method and apparatus with softmax approximation |
EP3907663B1 (en) * | 2020-05-06 | 2024-02-21 | Robert Bosch GmbH | Predicting a state of a computer-controlled entity |
CN111985484B (zh) * | 2020-08-11 | 2024-09-06 | 云南电网有限责任公司电力科学研究院 | 基于cnn-lstm的温度仪表数字识别的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017228224A (ja) * | 2016-06-24 | 2017-12-28 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN108205699A (zh) * | 2016-12-20 | 2018-06-26 | 谷歌有限责任公司 | 生成用于神经网络输出层的输出 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858524B2 (en) * | 2014-11-14 | 2018-01-02 | Google Inc. | Generating natural language descriptions of images |
US10860887B2 (en) * | 2015-11-16 | 2020-12-08 | Samsung Electronics Co., Ltd. | Method and apparatus for recognizing object, and method and apparatus for training recognition model |
GB201619724D0 (en) * | 2016-11-22 | 2017-01-04 | Microsoft Technology Licensing Llc | Trained data input system |
US10380259B2 (en) * | 2017-05-22 | 2019-08-13 | International Business Machines Corporation | Deep embedding for natural language content based on semantic dependencies |
-
2019
- 2019-09-27 CN CN201910924950.6A patent/CN111008689B/zh active Active
- 2019-09-27 US US16/586,702 patent/US10671909B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017228224A (ja) * | 2016-06-24 | 2017-12-28 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN108205699A (zh) * | 2016-12-20 | 2018-06-26 | 谷歌有限责任公司 | 生成用于神经网络输出层的输出 |
Also Published As
Publication number | Publication date |
---|---|
CN111008689A (zh) | 2020-04-14 |
US20200104686A1 (en) | 2020-04-02 |
US10671909B2 (en) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12067476B2 (en) | Mixture of experts neural networks | |
US11934956B2 (en) | Regularizing machine learning models | |
US20210150355A1 (en) | Training machine learning models using task selection policies to increase learning progress | |
US11714993B2 (en) | Classifying input examples using a comparison set | |
US11928601B2 (en) | Neural network compression | |
EP3596663B1 (en) | Neural network system | |
US20210004677A1 (en) | Data compression using jointly trained encoder, decoder, and prior neural networks | |
EP3459021B1 (en) | Training neural networks using synthetic gradients | |
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
US20230049747A1 (en) | Training machine learning models using teacher annealing | |
CN111008689B (zh) | 使用softmax近似来减少神经网络推理时间 | |
US20200410365A1 (en) | Unsupervised neural network training using learned optimizers | |
US20220188636A1 (en) | Meta pseudo-labels | |
US20220383119A1 (en) | Granular neural network architecture search over low-level primitives | |
US20230107409A1 (en) | Ensembling mixture-of-experts neural networks | |
CN111667069A (zh) | 预训练模型压缩方法、装置和电子设备 | |
US20220253694A1 (en) | Training neural networks with reinitialization | |
US20220108174A1 (en) | Training neural networks using auxiliary task update decomposition | |
US20240013769A1 (en) | Vocabulary selection for text processing tasks using power indices | |
US20230206030A1 (en) | Hyperparameter neural network ensembles | |
US20240256865A1 (en) | Training neural networks using learned optimizers | |
US20230124177A1 (en) | System and method for training a sparse neural network whilst maintaining sparsity | |
EP3371749B1 (en) | Regularizing machine learning models | |
KR20240129068A (ko) | 게이트형 어텐션 유닛을 갖는 어텐션 신경망 | |
WO2024138177A1 (en) | Recurrent interface networks |
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 |