CN110197252A - 基于距离的深度学习 - Google Patents
基于距离的深度学习 Download PDFInfo
- Publication number
- CN110197252A CN110197252A CN201910136561.7A CN201910136561A CN110197252A CN 110197252 A CN110197252 A CN 110197252A CN 201910136561 A CN201910136561 A CN 201910136561A CN 110197252 A CN110197252 A CN 110197252A
- Authority
- CN
- China
- Prior art keywords
- vector
- item
- distance
- similarity scores
- unfiled
- 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.)
- Pending
Links
- 238000013135 deep learning Methods 0.000 title description 4
- 239000013598 vector Substances 0.000 claims abstract description 211
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000013528 artificial neural network Methods 0.000 claims abstract description 30
- 239000011159 matrix material Substances 0.000 claims description 68
- 230000009466 transformation Effects 0.000 claims description 7
- 238000012886 linear function Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000015654 memory Effects 0.000 abstract description 16
- 238000003491 array Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000003780 insertion Methods 0.000 description 12
- 230000037431 insertion Effects 0.000 description 12
- 238000012549 training Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 5
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
- 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/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于神经网络的方法包括同时计算输出特征向量与多个有限特征向量中的每一个之间的距离向量,所述输出特征向量描述未分类项,每个有限特征向量描述分类项集合中的一个分类项。该方法包括同时计算针对每个距离向量的相似性分数并创建多个计算的相似性分数的相似性分数向量。用于神经网络的系统包括关联存储器阵列、输入编排器、隐藏层计算机和输出处理器。输入编排器操纵描述存储在存储器阵列中的未分类项的信息。隐藏层计算机计算隐藏层向量。输出处理器计算输出特征向量并同时计算输出特征向量与多个有限特征向量中的每一个之间的距离向量,并同时计算针对每个距离向量的相似性分数。
Description
技术领域
本发明一般涉及关联存储器设备,尤其涉及关联存储器设备中的深度学习。
背景技术
神经网络是通过考虑示例来学习完成任务的计算系统,通常没有任务特定的编程。典型的神经网络是按层组织的节点的互连组;每个层可以对其输入执行不同的转换。神经网络可以在数学上表示为向量,表示层中节点的激活,以及矩阵,表示相邻层的节点之间的互连的权重。网络功能是对向量和矩阵以及在向量和矩阵之间执行的一系列数学运算,以及对存储在向量和矩阵中的值执行的非线性运算。
在整个本申请中,矩阵由粗体的大写字母表示,例如,A,以小写粗体的向量,例如,a,以及由斜体字体表示的向量和矩阵的条目,例如A和a。因此,矩阵A的i、j项由Aij表示,矩阵A的行i表示为Ai-,矩阵A的列j表示为A-j,而向量a的条目i由ai表示。
递归神经网络(RNN)是当当前计算的输出取决于先前计算的值时对值序列的操作有用的特殊类型的神经网络。LSTM(长短期记忆)和GRU(门控循环单元)是RNN的示例。
网络的输出特征向量(循环和非循环)是存储m个数值的向量h。在语言建模中,h可以是输出嵌入向量(表示词汇中的单词或短语的数字的向量(实数、整数、有限精度等)),并且在其他深度学习学科中,h可以是有问题的对象的特征。应用可能需要确定向量h表示的项。在语言建模中,h可以表示应用可能需要识别的v个词的词汇表中的一个词。可以意识到,v可能非常大,例如,对于英语,v约为170,000。
图1中的RNN以两种表示示出:折叠100A和非折叠100B。非折叠表示100B在时间t-1、t和t+1中描述RNN随时间的变化。在折叠表示中,向量x是“一般”输入向量,并且在非折叠表示中,xt表示在时间t处的输入向量。可以意识到,输入向量xt表示由RNN处理的项序列中的项。向量xt可以通过“独热”向量表示v项的集合中的项k,即除了位置k中的单个“1”之外全部为零的向量。矩阵W、U和Z是参数矩阵,使用特定尺寸创建以适合计划的操作。矩阵以随机值初始化并在RNN的操作期间、在训练阶段期间以及有时在推理阶段期间更新。
在折叠表示中,向量h表示RNN的隐藏层。在非折叠表示中,ht是时间t处的隐藏层的值,根据等式1从时间t-1处的隐藏层的值计算:
ht=f(U*x+W*ht-1) 等式1
在折叠表示中,y表示输出向量。在非折叠表示中,yt是时间t处的输出向量,对于v项的集合中的每个项,具有在时间t处的项的类的概率。根据等式2,可以使用非线性函数(例如SoftMax)计算概率:
yt=softmax(Z*ht) 等式2
其中Z是尺寸调整矩阵,旨在将ht的大小调整为yt的大小。
RNN用于处理项的序列的许多应用,例如:语言建模(处理单词序列);机器翻译;语音识别;对话;视频注释(处理图片序列);手写识别(处理标志序列);基于图像的序列识别等。
例如,语言建模计算特定序列中多个单词出现的概率。m个单词的序列由{w1,…,wm}给出。序列的概率由p(w1,…,wm)定义,并且以序列中所有先前单词为条件的单词wi的概率可以通过n个先前单词的窗口来近似,如等式3中定义的:
可以通过凭经验计算单词的每个组合在文本的语料库中出现的次数来估计单词的序列的概率。对于n个单词,该组合称为n元语言模型(n-gram),对于两个单词,它被称为二元语言模型(bi-gram)。计算n元语言模型出现次数的存储器要求随着窗口大小n呈指数增长,因此在不耗尽存储器的情况下对大型窗口建模极为困难。
RNN可以用于模拟单词序列的可能性,而不必明确地存储每个序列的概率。用于语言建模的RNN计算的复杂度与建模语言的词汇表的大小v成比例。它需要大量的矩阵向量乘法和SoftMax操作,这些都是繁重的计算。
发明内容
根据本发明的优选实施例,提供了一种用于神经网络的方法。该方法包括同时计算神经网络的输出特征向量与多个有限(qualified)特征向量中的每一个之间的距离向量。输出特征向量描述未分类项,并且多个有限特征向量中的每一个描述分类项集合中的一个分类项。该方法还包括同时计算针对每个距离向量的相似度分数;并且创建多个计算的相似性分数的相似性分数向量。
此外,根据本发明的优选实施例,该方法还包括通过将输入向量与输入嵌入矩阵的多个列同时相乘来减小神经网络的输入向量的大小。
此外,根据本发明的优选实施例,该方法还包括同时激活相似性分数向量的所有元素上的非线性函数,以提供概率分布向量。
此外,根据本发明的优选实施例,非线性函数是SoftMax函数。
另外,根据本发明的优选实施例,该方法还包括在概率分布向量中找到极值以找到与未分类项最相似的分类项,其计算复杂度为O(1)。
此外,根据本发明的优选实施例,该方法还包括激活相似性分数向量上的K最近邻(KNN)函数,以提供与未分类项最相似的k个分类项。
根据本发明的优选实施例,提供了一种用于神经网络的系统。该系统包括关联存储器阵列、输入编排器、隐藏层计算机和输出处理器。关联存储器阵列包括行和列。输入编排器存储关于关联存储器阵列中的未分类项的信息,操纵信息并创建对神经网络的输入。隐藏层计算机接收输入并在神经网络中运行输入以计算隐藏层向量。输出处理器将隐藏层向量变换为输出特征向量,并且在关联存储器阵列内同时计算输出特征向量与多个有限特征向量中的每一个之间的距离向量,每个有限特征向量描述一个分类项。输出处理器还在关联存储器阵列内同时计算针对每个距离向量的相似性分数。
此外,根据本发明的优选实施例,输入编排器减小了信息的尺寸。
此外,根据本发明的优选实施例,输出处理器还包括线性模块和非线性模块。
此外,根据本发明的优选实施例,非线性模块实现SoftMax函数以根据相似性分数的向量创建概率分布向量。
另外,根据本发明的优选实施例,该系统还包括极值查找器,以在概率分布向量中找到极值。
此外,根据本发明的优选实施例,非线性模块是k最近邻模块,其提供与未分类项最相似的k个分类项。
此外,根据本发明的优选实施例,线性模块是用于生成相似性分数的距离变换器。
另外,根据本发明的优选实施例,距离变换器还包括向量调整器和距离计算器。
此外,根据本发明的优选实施例,距离变换器将调整矩阵的列存储在存储器阵列的第一计算列中,并将隐藏层向量分配给每个计算列,并且向量调整器计算第一计算列中的输出特征向量。
此外,根据本发明的优选实施例,距离变换器初始地将输出嵌入矩阵的列存储在关联存储器阵列的第二计算列中,并将输出特征向量分配给所有第二计算列,并且距离计算器计算第二计算列内的距离向量。
根据本发明的优选实施例,提供了一种用于将由特征的未分类的向量描述的未分类项与多个分类项进行比较的方法,每个分类项由特征的分类的向量描述。该方法包括同时计算未分类向量与每个分类向量之间的距离向量;并且同时计算针对每个距离向量的距离标量,每个距离标量提供未分类项与多个分类项中的一个之间的相似性分数,从而创建包括多个距离标量的相似性分数向量。
另外,根据本发明的优选实施例,该方法还包括激活相似性分数向量上的非线性函数以创建概率分布向量。
此外,根据本发明的优选实施例,非线性函数是SoftMax函数。
此外,根据本发明的优选实施例,该方法还包括在概率分布向量中找到极值以找到与未分类项最相似的分类项。
此外,根据本发明的优选实施例,该方法还包括激活相似性分数向量上的K最近邻(KNN)函数,以提供与未分类项最相似的k个分类项。
附图说明
在说明书的结论部分中特别指出并清楚地要求保护被视为本发明的主题。然而,当结合附图阅读时,通过参考以下具体实施方式,可以最好地理解本发明的组织和操作方法以及其目标、特征和优点,其中:
图1是折叠和非折叠表示的现有技术RNN的示意图;
图2是根据本发明构造和可操作的神经网络输出处理器的图示;
图3是根据本发明的实施例的构造和可操作的RNN计算系统的示意图;
图4是根据本发明的实施例构造和可操作的形成图1的神经网络的一部分的输入编排器的示意图;
图5是根据本发明的实施例构造和可操作的形成图1的神经网络的一部分的隐藏层计算机的示意图;
图6是根据本发明的实施例构造和可操作的形成图3的RNN处理器的一部分的输出处理器的示意图;
图7A是形成图6的输出处理器的一部分的线性模块的示意图,所述线性模块通过标准变换器提供线性变换;
图7B是根据本发明的实施例构造和可操作的替代图6的输出处理器的线性模块的距离变换器的示意图;
图8是由图7B的距离变换器使用的关联存储器中的矩阵的数据排列的示意图;
图9是由图7B的距离变换器执行的计算步骤和隐藏层向量的数据排列的示意图;以及
图10是根据本发明可操作的示意性流程图,示出了由图3的RNN计算系统执行的操作。
应当意识到,为了说明的简单和清楚,附图中所示的元件不一定按比例绘制。例如,为了清楚起见,元件中的一些的尺寸可能相对于其他元件被夸大。此外,在认为适当的情况下,可以在附图中重复附图标记以指示相对应或类似的元件。
具体实施方式
在以下具体实施方式中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述众所周知的方法、过程和组件,以免模糊本发明。
申请人已经认识到,可以利用关联存储器设备来有效地实现人工网络的部分,所述人工网络例如RNN(包括LSTM(长短期存储器)和GRU(门控循环单元))。如在名称为“INMEMORY MATRIX MULTIPLICATION AND ITS USAGE IN NEURAL NETWORKS”的美国专利公开US2017/0277659(其转让给本发明的共同受让人并且通过引用结合于此)中描述的系统,可以针对神经网络计算的矩阵乘法部分提供线性或事件恒定复杂度。在2017年10月15日提交的名称为“PRECISE EXPONENT AND EXACT SOFTMAX COMPUTATION”的美国专利申请15/784,152中描述的系统(其转让给本发明的共同受让人并且通过引用结合于此),可以在训练和推理阶段中针对RNN计算的非线性部分提供恒定的复杂度,以及在2017年7月13日提交的题为“FINDING K EXTREME VALUES IN CONSTANT PROCESSING TIME”的美国专利申请15/648,475(转让给本发明的共同受让人并通过引用结合于此)中描述的系统,可以针对训练的RNN上的K最近邻(KNN)的计算提供恒定的复杂度。
申请人已经意识到准备RNN计算的输出的复杂度与集合的大小v成比例,即复杂度是O(v)。对于语言建模,集合是整个词汇表,其可能非常大,并且RNN计算可以包括大量矩阵向量乘法和复杂的SoftMax操作以创建概率分布向量,其可以提供序列中下一项的类的指示。
申请人还认识到,可以通过经由更轻的距离计算替换大量矩阵向量乘法来创建指示序列中的下一项的类别的类似概率分布向量,其中计算复杂度为O(d),其中d远小于v。在语言建模中,例如,与词汇表大小v为170,000相比,d可以选择为100(或200、500等)。可以意识到,向量矩阵计算可以由美国专利公开US 2017/0277659的系统实现。
现在参考的图2是根据本发明构造和可操作的神经网络输出处理器系统200的示意图,该系统包括神经网络210、输出处理器220和关联存储器阵列230,。
关联存储器阵列230可以存储用于执行RNN的计算所需的信息,并且可以是多用途关联存储器设备,诸如在美国专利No.8,238,173(题为“USING STORAGE CELLS TO PERFORMCOMPUTATION”);2015年1月1日提交的题为“NON-VOLATILE IN-MEMORY COMPUTING DEVICE”的美国专利申请No.14/588,419;2014年11月27日提交的美国专利申请No.14/555,638(题为“IN-MEMORY COMPUTATIONAL DEVICE”);美国专利No.9,558,812(名称为“SRAM MULTI-CELL OPERATIONS”)和2017年7月16日提交的美国专利申请15/650,935(名称为“IN-MEMORYCOMPUTATIONAL DEVICE WITH BIT LINE PROCESSORS”)(其全部转让给本发明的共同受让人并且通过引用结合于此)中描述的那些。
神经网络210可以是接收输入向量x并提供输出向量h的任何神经网络封装。输出处理器220可以接收向量h作为输入,并且可以创建包含集合上每个项的概率分布的输出向量y。对于集合中的每个可能项,输出向量y可以提供其作为序列中的预期项的类别的概率。例如,在单词建模中,下一个预期项的类可以是句子中的下一个单词。参考图7-图10来详细描述输出处理器220。
现在参考的图3是根据本发明的实施例构造和可操作的RNN计算系统300的示意图,所述RNN计算系统300包括RNN处理器310和关联存储器阵列230。
RNN处理器310还可以包括神经网络封装210和输出处理器2。神经网络封装210还可以包括输入排列器320、隐藏层计算机330和交叉熵(CE)损失优化器350。
在一个实施例中,输入排列器320可以接收要分析的项的序列(单词序列、图序列、符号序列等),并且可以将序列中的每个项变换为可以适合RNN的形式。例如,用于语言建模的RNN可能需要处理非常大量的词汇(如上所述,例如,英语词汇表的大小v是大约170,000个单词)。用于语言建模的RNN可以接收多个单热向量作为输入,每个单热向量表示单词序列中的一个单词。可以意识到,表示英语单词的单热向量的大小v可以是170,000比特。输入编排器320可以将大输入向量变换为可以用作RNN的输入的较小尺寸的向量。
隐藏层计算机330可以使用任何可用的RNN封装来计算隐藏层中的激活的值,并且CE损失优化器350可以优化损失。
现在参考的图4是根据本发明的实施例构造和可操作的输入编排器320的示意图。输入编排器320可以接收稀疏向量作为输入。向量可以是单热向量s_x,表示来自v个可能项的集合的特定项,并且可以创建表示来自集合的相同项的更小的向量d_x(其大小为d)。输入编排器320可以使用尺寸为d×v的矩阵L来执行向量s_x到向量d_x的变换。矩阵L可以在训练RNN之后在每个列k中包含表征集合的项k的一组特征。矩阵L可以称为输入嵌入矩阵或输入字典,并在等式4中定义:
d_x=L*s_x等式4
输入编排器320可以最初在相关存储器阵列230的第i部分的第一行中存储矩阵L的行Li-。输入编排器320可以同时将输入向量s_x的比特i分配给部分i的第二行的每个计算列j。输入编排器320可以在所有部分i和所有计算列j中同时将值Lij乘以s_xj,如箭头410所示。输入编排器320然后可以每计算列j在所有部分中添加乘法结果pij,如箭头520所示,以提供等式4的输出向量d_x。
现在参考的图5是隐藏层计算机330的示意图。隐藏层计算机330可以包括任何可用的神经网络封装。隐藏层计算机330可以基于在时间t处的其密集表示中的输入向量,d_xt以及在时间t-1处的激活的先前值ht-1来计算在时间t处隐藏层中的针对激活ht的值,根据等式5:
ht=σ(W*ht-1+U*d_xt+b) 等式5
如上所述,h的大小d可以预先确定,并且是嵌入矩阵L的较小尺寸。σ是在结果向量的每个元素上操作的非线性函数,例如S形函数。W和U是预定义的参数矩阵,而b是偏置向量。W和U通常可以初始化为随机值,并且可以在训练阶段期间更新。可以定义参数矩阵W(m×m)和U(m×d)的尺寸以及偏置向量b(m)以分别拟合h和d_x的大小。
隐藏层计算机330可以使用密集向量d_x和前一步骤的RNN的结果ht-1来计算在时间t处的隐藏层向量的值。隐藏层的结果是h。h的初始值是h0,它可以是随机的。
现在参考的图6是根据本发明的实施例构造和课操作的输出处理器220的示意图。
输出处理器可以使用线性模块610,以用于布置向量h(隐藏层计算机330的输出)以适合集合的大小v,接着是非线性模块620以创建针对每个项的概率,从而来创建输出向量yt。线性模块610可以实现线性函数g,并且非线性模块620可以实现非线性函数f。可以根据等式6来计算概率分布向量yt:
yt=f(g(ht))等式6
线性函数g可以将具有大小为m的接收嵌入向量h(由隐藏层计算机330创建)变换为大小为d的输出向量。在嵌入向量h的变换期间,线性函数g可以在向量h的位置k中创建极值分数值hk(最大值或最小值)。
现在参考的图7A是线性模块610A的示意图,线性模块610A可以通过由标准封装实现的标准变换器710提供线性变换。
标准变换器710可以由标准封装提供,并且可以使用等式7将嵌入向量ht变换为大小为v的向量:
g(ht)=(H*ht+b) 等式7
其中H是输出表示矩阵(v×m)。矩阵H的每一行可以存储在训练期间学习的一个项(在集合中的)的嵌入,并且向量b可以是大小为v的偏差向量。矩阵H可以被初始化为随机值并且可以在训练阶段期间更新,以最小化交叉熵损失,如本领域中已知的。
可以意识到,向量ht乘以矩阵H的行j(存储每个分类项j的嵌入向量)可以提供标量分数,该标量分数指示每个分类项j与由向量ht表示的未分类对象之间的相似性。分数越高,向量越相似。结果g(h)是具有分数的向量(大小为v),该分数指示针对每个位置j输入项与矩阵H的行j中的项之间的相似性。具有最高分数值的g(h)中的位置k指示矩阵H中的项k(将每个项的嵌入存储在集合中)作为未分类项的类。
还可以意识到,H*ht需要重矩阵向量乘法运算,因为H具有v行,每行存储特定项的嵌入,并且v是整个集合(词汇表)的大小,如已经指出的,可以非常大。计算所有内部乘积(在H和ht中的每一行之间)在训练期间可能变得非常慢,即使在利用现代GPU时也是如此。
申请人已经意识到输出处理器220可以利用存储器阵列230来显著降低线性模块610的计算复杂度。
现在参考的图7B是根据本发明的实施例构造和可操作的线性模块610B的示意图。距离变换器720可以计算输出嵌入向量h和作为输出嵌入矩阵O的列存储的每个项j之间的距离,如等式8中所定义的,而不是将其乘以大矩阵H:
(g(ht))j=distance((M*ht+c)-O-j) 等式8
其中(g(ht))j是针对输出嵌入矩阵O的列j计算的标量,并且可以提供ht和矩阵O的向量j之间的距离分数。向量ht的大小可以不同于列的大小。因此,可能需要尺寸调整矩阵M,用于将嵌入向量ht的大小调整为O的大小,以实现距离计算。M的尺寸可以是d×m,远小于标准变换器710中使用的H的尺寸,并且因此,距离变换器720的计算可以比标准变换器710的计算快得多且资源消耗更少。向量c是偏差向量。
可以将输出嵌入矩阵O被初始化为随机值,并且可以在训练会话期间更新。输出嵌入矩阵O可以在每个列j中存储项j(集合中的)的计算的嵌入。输出嵌入矩阵O可以类似于输入编排器320(图4)使用的输入嵌入矩阵L,并且甚至可以与L相同。可以理解,矩阵O,当在除语言建模之外的应用中使用时,可以在每列j中存储项j的特征。
可以使用任何距离或相似性方法(例如L1或L2范数、汉明距离、余弦相似性或任何其他相似性或距离方法)来计算未分类对象与分类对象的数据库之间的距离以计算由ht定义的未分类对象与存储在矩阵O中的分类对象数据库之间的距离或者相似性。
范数是距离函数,其可以向向量空间中的每个向量分配严格的正值,并且可以提供数值以表达向量之间的相似性。可以在ht和矩阵O的每个列j(由O-j表示)之间计算范数。输出嵌入矩阵O是对矩阵H的模拟,但是可以被不同地训练并且可以具有不同数量的列。
将隐藏层向量h乘以尺寸调整矩阵M的结果可以创建具有与矩阵O的列的大小相同的大小的向量o,使得实现在距离的计算期间从矩阵O的每列减去向量o。可以意识到,距离变换器720可以将偏置向量c添加到结果向量o,并且为了简单起见,结果向量仍然可以称为向量o。
如已经提到的,距离变换器720可以使用L1或L2范数来计算距离。可以理解,L1范数,称为“最小绝对偏差”范数,定义目标值和估计值之间的绝对差值,而L2范数,称为“最小平方误差”范数,是目标值与估计值之间的差异的平方的和。每个距离计算的结果是标量,并且所有计算的距离的结果(向量o与矩阵O的每列之间的距离)可以提供向量g(h)。
距离计算可以提供标量分数,该标量分数指示输出嵌入向量o与存储在矩阵O的列j中的项之间的差异或相似性。当通过范数计算距离时,分数越低,向量更相似。当通过余弦相似度计算距离时,分数越高,向量越相似。得到的向量g(h)(大小为v)是分数的向量。具有极端(最低或最高)分数值的分数向量g(h)中的位置k(取决于距离计算方法)可以指示矩阵O中的项k(存储在集合中的每个项的嵌入)是未分类项ht的类。
现在参考的图8是存储器阵列230中的矩阵M和矩阵O的数据排列的示意图。距离变换器720可以利用存储器阵列230使得一个部分230-M,可以存储矩阵M,并且另一部分230-O可以存储矩阵O。距离变换器720可以将矩阵M的每一行i存储在存储器阵列部分230-M的第i部分的第一行中(矩阵M的列j的每个比特i可以存储在不同部分i的相同计算列j中)如箭头911、912和913所示。
类似地,距离变换器720可以将矩阵O的每一行i存储在存储器阵列部分230-O的第i部分的第一行中,如箭头921、922和923所示。
现在参考的图9是向量h的数据排列和由距离变换器720执行的计算步骤的示意图。距离变换器720还可以包括向量调整器970和距离计算器980。向量调整器970可以将嵌入向量ht的每个比特i分配给存储器阵列部分230-M的第i部分的第二行的所有计算列,使得向量ht的比特i被重复地存储在部分i的整个第二行的中,在相同部分中存储矩阵M的行i。比特h1可以被分配到部分1的第二行,如箭头911和912所示,并且比特hm可以被分配到部分m的第二行,如箭头921和922所示。
向量调整器970可以同时在所有部分中的所有计算列上将Mij乘以hi并且可以将结果pij存储在第三行中,如箭头950所示。向量调整器970可以在所有计算列上同时添加pi的值以产生向量o的值oi,如箭头960所示。
一旦针对嵌入向量ht计算了向量o,距离变换器720可以将偏差向量c(图中未示出)添加到结果向量o。
距离变换器720可以将向量o分布到存储器阵列部分230-O,使得每个值oi被分配到部分i的整个第二行。如箭头931和932所示,位o1可以被分配到部分1的第二行,并且位od可以被分配到部分d的第二行,如箭头933和934所示。
距离计算器980可以同时在所有部分中的所有计算列上从Oij中减去oi以创建距离向量。然后,距离计算器980可以通过计算L1或L2或每个结果向量的任何其他距离计算来完成g(h)的计算,并且可以提供结果g(h)作为输出,如箭头941和942所示。
可以意识到,在另一个实施例中,距离变换器720可以将向量o的每个相加结果oi直接写在存储器阵列部分230-O中的最终位置上。
系统300(图3)可以在推断阶段期间使用2015年1月12日提交的标题为“MEMORYDEVICE”并公布为US 2015/0200009的美国专利申请14/594,434(其通过引用并入本文)的系统找到向量g(h)中的极值(最小或最大)值以确定预期的下一项的类别。
非线性模块620(图6)可以实现非线性函数f,其可以将由线性函数g创建并且存储在g(h)中的任意值变换为概率。例如,函数f可以是SoftMax操作,并且在这种情况下,非线性模块620可以使用2017年10月15日提交的并且名称为“PRECISE EXPONENT AND EXACTSOFTMAX COMPUTATION”的美国专利申请15/784,152的Exact SoftMax系统(其通过引用并入本文)。
附加地或替代地,RNN计算系统300可以利用2017年7月7日提交的名称为“FINDINGK EXTREME VALUES IN CONSTANT PROCESSING TIME”的美国专利申请15/648,475,来在需要几个结果而不是一个结果时在推理期间找到k-最近邻居。RNN计算系统300的这种使用的示例可以是波束搜索,其中非线性模块620可以由KNN模块替换以找到具有极值的k个项,每个项表示针对未分类项的潜在类别。
CE损失优化器350(图3)可以在学习阶段期间使用任何标准封装来计算交叉熵损失,并且可以使用等式9来优化它:
在yt是预期输出的单热向量的情况下,yexpected是在每个位置k中存储位置k中的项是未分类的预期项的类别的概率的概率向量。
现在参考的图10是由RNN计算系统300(图3)执行的根据本发明可操作的示意性流程1000,RNN计算系统300包括在系统200的神经网络210和输出处理器220内执行的步骤。在步骤1010中,RNN计算系统300可以通过将稀疏向量s_x乘以输入嵌入矩阵L来将该稀疏向量变换为密集向量d_x。在步骤1020中,RNN计算系统300可以使用参数矩阵U和W在密集向量d_x上运行隐藏层计算机330来计算隐藏层向量h。
在步骤1030中,RNN计算系统300可以使用尺寸调整矩阵M将隐藏层向量h变换为输出嵌入向量o。在步骤1032中,计算系统300可以用KNN替换RNN计算的部分。这在推理阶段期间特别有用。在步骤1040中,RNN计算系统300可以计算嵌入向量o与输出嵌入矩阵O中的每个项之间的距离,并且可以利用步骤1042来找到最小距离。在步骤1050中,RNN计算系统300可以使用诸如SoftMax的非线性函数来计算和提供概率向量y,如步骤1052中所示,并且在步骤1060中,计算系统300可以在训练会话期间优化损失。本领域技术人员可以意识到,所示的步骤不是限制性的,并且可以用更多或更少的步骤,或用不同顺序的步骤,或用它们的任何组合来实施该流程。
可以意识到,使用距离变换器720的RNN的总复杂度低于使用标准变换器710的RNN的复杂度。计算线性部分的复杂度是O(d)而当v非常大时标准RNN计算的复杂度是O(v)。由于d远小于v,因此O(d)的复杂度可以节省很多。
还可以意识到,使用RNN计算系统300的RNN的总复杂度可以小于现有技术,因为SoftMax、KNN和找到最小值的复杂度是恒定的(O(1))。
虽然本文已经说明和描述了本发明的某些特征,但是本领域普通技术人员现在将想到许多修改、替换、改变和等同物。因此,应该理解,所附权利要求旨在覆盖落入本发明的真正精神内的所有这些修改和变化。
Claims (21)
1.一种用于神经网络的方法,所述方法包括:
同时计算所述神经网络的输出特征向量与多个有限特征向量中的每一个之间的距离向量,其中,所述输出特征向量描述未分类项,并且所述多个有限特征向量中的每一个描述分类项的集合中的一个分类项;
同时计算针对每个距离向量的相似度分数;以及
创建多个计算的相似性分数的相似性分数向量。
2.如权利要求1所述的方法,还包括通过同时将所述神经网络的输入向量乘以输入嵌入矩阵的多个列来减小所述输入向量的大小。
3.如权利要求1所述的方法,还包括同时激活所述相似性分数向量的所有元素上的非线性函数,以提供概率分布向量。
4.如权利要求3所述的方法,其中,所述非线性函数是SoftMax函数。
5.如权利要求3所述的方法,还包括找到所述概率分布向量中的极值以找到与所述未分类项最相似的分类项,其计算复杂度为O(1)。
6.如权利要求1所述的方法,还包括激活所述相似性分数向量上的K-最近邻(KNN)函数,以提供与所述未分类项最相似的k个分类项。
7.一种用于神经网络的系统,所述系统包括:
由行和列组成的关联存储器阵列;
输入编排器,其用于存储关于所述关联存储器阵列中的未分类项的信息,以操纵所述信息并且创建对所述神经网络的输入;
隐藏层计算机,其用于接收所述输入并且用于在所述神经网络中运行所述输入以计算隐藏层向量;以及
输出处理器,其用于将所述隐藏层向量变换为输出特征向量,以在所述关联存储器阵列内同时计算所述输出特征向量与多个有限特征向量中的每一个之间的距离向量,每个有限特征向量描述一个分类项,并且用于在所述关联存储器阵列内同时计算针对每个距离向量的相似性分数。
8.如权利要求7所述的系统,并且还包括所述输入编排器,其用于减小所述信息的尺寸。
9.如权利要求7所述的系统,其中,所述输出处理器还包括线性模块和非线性模块。
10.如权利要求8所述的系统,其中,所述非线性模块实现SoftMax函数以根据所述相似性分数的向量来创建概率分布向量。
11.如权利要求10所述的系统,还包括极值查找器,其用于在所述概率分布向量中找到极值。
12.如权利要求8所述的系统,其中,所述非线性模块是k-最近邻模块,以提供与所述未分类项最相似的k个分类项。
13.如权利要求8所述的系统,其中,所述线性模块是距离变换器,其用于产生所述相似性分数。
14.如权利要求13所述的系统,其中,所述距离变换器包括向量调整器和距离计算器。
15.如权利要求14所述的系统,所述距离变换器用于将调整矩阵的列存储在所述存储器阵列的第一计算列中,并且用于将所述隐藏层向量分配给每个计算列,并且所述向量调整器用于计算所述第一计算列内的所述输出特征向量。
16.如权利要求15所述的系统,所述距离变换器用于最初将输出嵌入矩阵的列存储在所述关联存储器阵列的第二计算列中,并且用于将所述输出特征向量分配给所有所述第二计算列,并且所述距离计算器用于计算所述第二计算列内的距离向量。
17.一种用于将由特征的未分类的向量描述的未分类项与多个分类项进行比较的方法,每个分类项由特征的分类向量描述,所述方法包括:
同时计算所述未分类向量与每个所述分类向量之间的距离向量;以及
同时计算针对每个距离向量的距离标量,每个距离标量提供所述未分类项与所述多个分类项中的一个分类项之间的相似性分数,由此创建包括多个距离标量的相似性分数向量。
18.如权利要求17所述的方法,还包括激活所述相似性分数向量上的非线性函数以创建概率分布向量。
19.如权利要求18所述的方法,其中,所述非线性函数是SoftMax函数。
20.如权利要求18所述的方法,并且还包括找到所述概率分布向量中的极值以找到与所述未分类项最相似的分类项。
21.如权利要求18所述的方法,并且还包括激活所述相似性分数向量上的K-最近邻(KNN)函数,以提供与所述未分类项最相似的k个分类项。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/904,486 US20190266482A1 (en) | 2018-02-26 | 2018-02-26 | Distance based deep learning |
US15/904,486 | 2018-02-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110197252A true CN110197252A (zh) | 2019-09-03 |
Family
ID=67683942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910136561.7A Pending CN110197252A (zh) | 2018-02-26 | 2019-02-25 | 基于距离的深度学习 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190266482A1 (zh) |
KR (1) | KR20190103011A (zh) |
CN (1) | CN110197252A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10721190B2 (en) * | 2018-07-31 | 2020-07-21 | Microsoft Technology Licensing, Llc | Sequence to sequence to classification model for generating recommended messages |
US10956474B2 (en) | 2019-03-14 | 2021-03-23 | Microsoft Technology Licensing, Llc | Determination of best set of suggested responses |
US20230063344A1 (en) | 2020-02-17 | 2023-03-02 | Nec Corporation | Communication system, transmission apparatus, reception apparatus, matrix generation apparatus, communication method, transmission method, reception method, matrix generation method and recording medium |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915386A (zh) * | 2015-05-25 | 2015-09-16 | 中国科学院自动化研究所 | 一种基于深度语义特征学习的短文本聚类方法 |
US9263036B1 (en) * | 2012-11-29 | 2016-02-16 | Google Inc. | System and method for speech recognition using deep recurrent neural networks |
US20160163310A1 (en) * | 2014-12-08 | 2016-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for training language model and recognizing speech |
EP3153997A2 (en) * | 2015-10-08 | 2017-04-12 | VIA Alliance Semiconductor Co., Ltd. | Neural network unit with output buffer feedback and masking capability |
US20170262737A1 (en) * | 2016-03-11 | 2017-09-14 | Magic Leap, Inc. | Structure learning in convolutional neural networks |
US20170277659A1 (en) * | 2016-03-23 | 2017-09-28 | Gsi Technology Inc. | In memory matrix multiplication and its usage in neural networks |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107316643A (zh) * | 2017-07-04 | 2017-11-03 | 科大讯飞股份有限公司 | 语音交互方法及装置 |
US20170323636A1 (en) * | 2016-05-05 | 2017-11-09 | Conduent Business Services, Llc | Semantic parsing using deep neural networks for predicting canonical forms |
CN107529650A (zh) * | 2017-08-16 | 2018-01-02 | 广州视源电子科技股份有限公司 | 网络模型的构建和闭环检测方法、相应装置及计算机设备 |
US20180018566A1 (en) * | 2016-07-17 | 2018-01-18 | Gsi Technology Inc. | Finding k extreme values in constant processing time |
US20180046901A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Hardware accelerator for compressed gru on fpga |
US20180217836A1 (en) * | 2017-01-31 | 2018-08-02 | Facebook, Inc. | k-Selection Using Parallel Processing |
US20180341642A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Natural language processing with knn |
US20180341862A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Integrating a memory layer in a neural network for one-shot learning |
CN110019815A (zh) * | 2017-07-16 | 2019-07-16 | Gsi 科技公司 | 利用knn的自然语言处理 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6078513A (en) * | 1999-06-09 | 2000-06-20 | Neomagic Corp. | NMOS dynamic content-addressable-memory CAM cell with self-booting pass transistors and local row and column select |
US8406456B2 (en) * | 2008-11-20 | 2013-03-26 | Workshare Technology, Inc. | Methods and systems for image fingerprinting |
US10268646B2 (en) * | 2017-06-06 | 2019-04-23 | Facebook, Inc. | Tensor-based deep relevance model for search on online social networks |
-
2018
- 2018-02-26 US US15/904,486 patent/US20190266482A1/en active Pending
-
2019
- 2019-02-19 KR KR1020190019231A patent/KR20190103011A/ko active Search and Examination
- 2019-02-25 CN CN201910136561.7A patent/CN110197252A/zh active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9263036B1 (en) * | 2012-11-29 | 2016-02-16 | Google Inc. | System and method for speech recognition using deep recurrent neural networks |
US20160163310A1 (en) * | 2014-12-08 | 2016-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for training language model and recognizing speech |
CN104915386A (zh) * | 2015-05-25 | 2015-09-16 | 中国科学院自动化研究所 | 一种基于深度语义特征学习的短文本聚类方法 |
EP3153997A2 (en) * | 2015-10-08 | 2017-04-12 | VIA Alliance Semiconductor Co., Ltd. | Neural network unit with output buffer feedback and masking capability |
US20170262737A1 (en) * | 2016-03-11 | 2017-09-14 | Magic Leap, Inc. | Structure learning in convolutional neural networks |
US20170277659A1 (en) * | 2016-03-23 | 2017-09-28 | Gsi Technology Inc. | In memory matrix multiplication and its usage in neural networks |
US20170323636A1 (en) * | 2016-05-05 | 2017-11-09 | Conduent Business Services, Llc | Semantic parsing using deep neural networks for predicting canonical forms |
US20180018566A1 (en) * | 2016-07-17 | 2018-01-18 | Gsi Technology Inc. | Finding k extreme values in constant processing time |
CN108351974A (zh) * | 2016-07-17 | 2018-07-31 | Gsi 科技公司 | 在恒定的处理时间内查找k个极值 |
US20180341642A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Natural language processing with knn |
US20180341862A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Integrating a memory layer in a neural network for one-shot learning |
US20180046901A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Hardware accelerator for compressed gru on fpga |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
US20180217836A1 (en) * | 2017-01-31 | 2018-08-02 | Facebook, Inc. | k-Selection Using Parallel Processing |
CN110476151A (zh) * | 2017-01-31 | 2019-11-19 | 脸谱公司 | 使用并行处理的k选择 |
CN107316643A (zh) * | 2017-07-04 | 2017-11-03 | 科大讯飞股份有限公司 | 语音交互方法及装置 |
CN110019815A (zh) * | 2017-07-16 | 2019-07-16 | Gsi 科技公司 | 利用knn的自然语言处理 |
CN107529650A (zh) * | 2017-08-16 | 2018-01-02 | 广州视源电子科技股份有限公司 | 网络模型的构建和闭环检测方法、相应装置及计算机设备 |
Non-Patent Citations (4)
Title |
---|
SAIZHENG ZHANG 等: "Architectural Complexity Measures of Recurrent Neural Networks", ARXIV:1602.08210V2, pages 1 - 19 * |
SHENGYONG DING 等: "Deep feature learning with relative distance comparison for person re-identification", PATTERN RECOGNITION, vol. 48, pages 2993 - 3003, XP029177353, DOI: 10.1016/j.patcog.2015.04.005 * |
代宇: "忆阻器及其交叉阵列在数据存取和图像识别中的应用研究", 中国博士学位论文全文数据库 (信息科技辑), no. 2016, pages 138 - 48 * |
赵晓群 等: "语音关键词识别系统声学模型构建综述", 燕山大学学报, vol. 41, no. 6, pages 471 - 481 * |
Also Published As
Publication number | Publication date |
---|---|
KR20190103011A (ko) | 2019-09-04 |
US20190266482A1 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Katharopoulos et al. | Transformers are rnns: Fast autoregressive transformers with linear attention | |
CN108628823B (zh) | 结合注意力机制和多任务协同训练的命名实体识别方法 | |
CN107562792B (zh) | 一种基于深度学习的问答匹配方法 | |
CN109948149B (zh) | 一种文本分类方法及装置 | |
CN111291556B (zh) | 基于实体义项的字和词特征融合的中文实体关系抽取方法 | |
CA3059414A1 (en) | Hybrid approach to approximate string matching using machine learning | |
CN111414749B (zh) | 基于深度神经网络的社交文本依存句法分析系统 | |
CN109669962A (zh) | 精确指数和准确softmax计算 | |
Li et al. | A method of emotional analysis of movie based on convolution neural network and bi-directional LSTM RNN | |
Zou et al. | Text2math: End-to-end parsing text into math expressions | |
CN109992773A (zh) | 基于多任务学习的词向量训练方法、系统、设备及介质 | |
KR20200032258A (ko) | 일정한 처리 시간 내에 k개의 극값을 찾는 방법 | |
CN110197252A (zh) | 基于距离的深度学习 | |
CN111259768A (zh) | 基于注意力机制的结合自然语言的图像目标定位方法 | |
Ganai et al. | Predicting next word using RNN and LSTM cells: Stastical language modeling | |
Jiang et al. | Nonlinear CNN: improving CNNs with quadratic convolutions | |
CN113157919A (zh) | 语句文本方面级情感分类方法及系统 | |
CN114254645A (zh) | 一种人工智能辅助写作系统 | |
Eshmawi et al. | Design of Automated Opinion Mining Model Using Optimized Fuzzy Neural Network. | |
CN110046344A (zh) | 添加分隔符的方法及终端设备 | |
CN113806543A (zh) | 一种基于残差跳跃连接的门控循环单元的文本分类方法 | |
Radford | Multitask models for supervised protests detection in texts | |
CN108875024A (zh) | 文本分类方法、系统、可读存储介质及电子设备 | |
CN116720519A (zh) | 一种苗医药命名实体识别方法 | |
Tashu | Off-topic essay detection using C-BGRU siamese |
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 |