CN111079895A - 增强具有外部存储器的神经网络 - Google Patents
增强具有外部存储器的神经网络 Download PDFInfo
- Publication number
- CN111079895A CN111079895A CN201911105640.8A CN201911105640A CN111079895A CN 111079895 A CN111079895 A CN 111079895A CN 201911105640 A CN201911105640 A CN 201911105640A CN 111079895 A CN111079895 A CN 111079895A
- Authority
- CN
- China
- Prior art keywords
- neural network
- external memory
- output
- input
- write
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 217
- 230000015654 memory Effects 0.000 title claims abstract description 152
- 230000002708 enhancing effect Effects 0.000 title abstract description 6
- 238000000034 method Methods 0.000 claims abstract description 60
- 239000013598 vector Substances 0.000 claims description 73
- 230000003190 augmentative effect Effects 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 26
- 230000000306 recurrent effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 abstract description 13
- 230000008569 process Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000178 monomer Substances 0.000 description 4
- 238000011524 similarity measure Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response 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
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了增强具有外部存储器的神经网络。方法、系统和装置,包括在计算机存储介质上编码的计算机程序,用于利用外部存储器增强神经网络。方法之一包括:提供从神经网络输出的第一部分导出的输出作为系统输出;确定外部存储器中的多个位置中的每一个的一个或多个写入权重集合;根据写入权重集合将由神经网络输出的第三部分定义的数据写入外部存储器;从神经网络输出的第四部分确定外部存储器中的多个位置中的每一个的一个或多个读取权重集合;根据读取权重集合从外部存储器读取数据;以及,将从外部存储器读取的数据与下一个系统输入组合以产生下一个神经网络输入。
Description
本申请是分案申请,原案的申请号是201580033184.4,申请日是2015年10月15日,发明名称是“增强具有外部存储器的神经网络”。
技术领域
本说明书涉及神经网络系统架构。
背景技术
神经网络是采用一个或多个非线性单元的层来预测对于接收的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作到网络中下一层,即下一隐藏层或输出层的输入。网络的每层根据相应参数集合的当前值从所接收的输入生成输出。
一些神经网络是递归神经网络。递归神经网络是接收输入序列并从输入序列生成输出序列的神经网络。具体地,递归神经网络可以在计算当前输出时使用处理先前输入的网络的内部状态的一些或全部。递归神经网络的示例是长期短期存储器(LSTM)神经网络,包括一个或多个LSTM存储器块。每个LSTM存储器块可以包括一个或多个单体,每个单体包括输入门、遗忘门和输出门,其允许该单体存储该单体的先前状态,例如用于生成当前激活或将被提供到LSTM神经网络的其他组件。
发明内容
本说明书描述了与增强神经网络系统相关的技术。通常,增强神经网络系统包括:神经网络,被配置为接收神经网络输入并生成神经网络输出;外部存储器,存储从神经网络输出的部分导出的值;以及存储器接口子系统,被配置为接收神经网络输出的部分并使用所接收的部分相对于外部存储器擦除、写入和读取。
对于要被配置为执行特定操作或动作的一个或多个计算机的系统表示系统已经在其上安装了在操作中使系统执行操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序表示一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
在本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。通过用外部存储器增强神经网络,增强神经网络可以更精确地从各种机器学习任务的接收的输入生成输出。具体地,为了便于处理来自输入序列的给定输入,增强神经网络可以有效地使用由增强神经网络在处理序列中的许多先前输入时通过从外部存储器读取而产生的信息。类似地,为了便于处理来自序列的后续输入,增强神经网络可以将在当前输入的处理期间生成的信息存储在外部存储器中。另外,可以增加外部存储器的大小,而不增加增强神经网络的可训练参数的数量。此外,增强神经网络可以使用基于内容和位置的查找来访问外部存储器。另外,增强神经网络可以利用在连续写入之间具有较少干扰的长期存储器存储。此外,因为整个外部存储器是可区分的,所以可以有效地训练增强神经网络系统。
在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。根据描述、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了示例增强神经网络系统。
图2是用于从系统输入生成系统输出的示例过程的流程图。
图3是用于从神经网络输出的指定部分确定存储器存取权重的示例过程的流程图。
图4是对于外部存储器中的位置生成基于内容的权重的示例过程的流程图。
图5是用于将基于位置的调整应用于基于内容的权重的示例过程的流程图。
图6是根据擦除权重从外部存储器擦除的示例过程的流程图。
图7是用于根据写入权重写入外部存储器的示例过程的流程图。
图8是根据读取权重从外部存储器读取的示例过程的流程图。
各个附图中相同的附图标记和标记指示相同的元件。
具体实施方式
图1示出了示例性增强神经网络系统100。增强神经网络系统100是实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
增强神经网络系统100是接收系统输入序列并从系统输入生成系统输出序列的机器学习系统。例如,增强神经网络系统100可以接收作为输入序列的一部分的系统输入x,并且从系统输入x生成系统输出y。增强神经网络系统100可以在输出数据存储库中存储所生成的输出序列或者提供输出以用于某些其他即时目的。
增强神经网络系统100可以被配置为接收任何种类的数字数据输入并且基于该输入生成任何种类的分数(score)或分类输出。
例如,如果对增强神经网络系统100的输入是已经从图像中提取的图像或特征,则由增强神经网络系统100针对给定图像生成的输出可以是对象类别集合中的每一个的分数,其中每个分数表示图像包含属于该类别的对象的图像的估计的似然性。
作为另一示例,如果对增强神经网络系统100的输入是从因特网资源(例如,网页)、文档或文档的部分提取的因特网资源、文档或文档的部分,则由增强神经网络系统100对于给定因特网资源、文档或文档的部分生成的输出可以是主题集合中的每一个的分数,每个分数表示因特网资源、文档或文档部分关于主题的估计的似然性。
作为另一示例,如果到增强神经网络系统100的输入是用于特定广告的印象场境的特征,则由增强神经网络系统100生成的输出可以是表示特定广告将被点击的估计的似然性的分数。
作为另一示例,如果对增强神经网络系统100的输入是针对用户的个性化推荐的特征,例如表征推荐的场境的特征,例如表征用户所采取的先前动作的特征,则由增强神经网络系统100生成的输出可以是内容项集合中的每一个的分数,其中每个分数表示用户将有利地响应于被推荐内容项的估计的似然性。
作为另一示例,如果对增强神经网络系统100的输入是一种语言的文本,则由增强神经网络系统100生成的输出可以是针对另一语言的文本集合中的每一个的分数,每个分数表示另一种语言的文本段是输入文本到另一种语言的适当翻译的估计的似然性。
作为另一个示例,如果对增强神经网络系统100的输入是口头话语、口头话语序列或从两者之一导出的特征,则由增强神经网络系统100产生的输出可以是文本段集合的每个的分数,每个分数表示该文本段是用于话语或话语序列的正确转录的估计的似然性。
作为另一示例,增强神经网络系统100可以是语音合成系统的一部分。
作为另一示例,增强神经网络系统100可以是视频处理系统的一部分。
作为另一示例,增强神经网络系统100可以是对话系统的一部分。
作为另一示例,增强神经网络系统100可以是自动补全系统的一部分。
作为另一示例,增强神经网络系统100可以是文本处理系统的一部分。
作为另一示例,增强神经网络系统100可以是强化学习系统的一部分。
特别地,增强神经网络系统100包括神经网络102和外部存储器104。神经网络102可以是前馈神经网络或递归神经网络,其被配置为接收神经网络输入并处理神经网络输入以产生神经网络输出。通常,神经网络102接收的神经网络输入是当前系统输入和通过存储器接口子系统106从外部存储器读取的数据的组合。例如,神经网络102可以被配置为从外部存储器104接收当前系统输入x和数据r,并且生成包括系统输出y和提供给存储器接口子系统106的附加输出o的神经网络输出。
存储器接口子系统106接收由神经网络生成的输出,例如神经网络输出o+y的部分o(+表示级联),并将接收到的输出转换为要在外部存储器104上执行的擦除、读取和写入操作。也就是说,存储器接口子系统106从神经网络102接收输出o,并且基于输出o从外部存储器104擦除数据e,将数据w写入外部存储器104,以及从外部存储器104读取数据r。然后可以将由存储器接口子系统106读取的数据作为稍后的神经网络输入的一部分,例如与系统输入一起,提供给神经网络102。
外部存储器104存储由存储器接口子系统106写入外部存储器104的数据向量。在一些实施方式中,外部存储器104是具有元素M(i,j,t)的实值矩阵存储器,其中i索引位置,j索引向量元素,并且t索引时间。因此,M(i,j,t)将是在时间t存储在外部存储器104中位置i处的向量的元素j处的值。通过以这种方式配置外部存储器104、存储器接口子系统106和神经网络102,增强神经网络系统100的组件是完全可区分的,允许增强神经网络系统100被有效地训练。
图2是用于从系统输入生成系统输出的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强神经网络系统,例如图1的增强的神经网络系统100,以执行过程200。
系统接收系统输入(步骤202)。系统输入是系统接收的系统输入序列之一。
系统获得通过从外部存储器,例如图1的外部存储器104,读取而产生的读取数据向量(步骤204)。通常,读取数据向量由系统通过在系统输入序列中的先前输入的处理期间从外部存储器读取而生成。
系统通过组合系统输入和从外部存储器读取的数据来产生神经网络输入(步骤206)。例如,系统可以级联系统输入和读取数据向量以生成神经网络输入。对于第一系统输入,系统可以将系统输入与预定向量,例如,神经网络的学习状态,级联。
系统使用神经网络,例如图1的神经网络102,处理神经网络输入,以从神经网络输入产生神经网络输出(步骤208)。根据实施方式,神经网络可以是前馈神经网络,例如卷积神经网络,或另一种深度前馈神经网络,或者是递归神经网络,例如LSTM神经网络。如果神经网络是递归神经网络,则递归神经网络还在处理当前神经网络输入时使用来自序列中的前一神经网络输入的递归神经网络的内部状态,以生成神经网络输出。在一些实施方式中,神经网络包括递归层和前馈层。
系统从神经网络输出的系统输出部分产生针对系统输入的系统输出(步骤210)。神经网络输出的系统输出部分是神经网络输出的、已经由例如系统管理员指定为用于生成系统输出的部分的预定部分,即,使得神经网络输出的相同部分用于为神经网络产生的每个输出生成系统输出。
在一些实施方式中,系统将系统输出部分提供为针对系统输入的系统输出。然而,在一些其它实施方式中,系统将一个或多个变换应用于系统输出部分,以便生成系统输出。例如,系统输出部分可以被转换为控制机器人或不同数字接口的命令。
系统使用神经网络输出的擦除部分从外部存储器擦除(步骤212)。神经网络输出的擦除部分是神经网络输出的、已经被指定为要从外部存储器擦除的部分的预定部分。具体地,为了从外部存储器擦除,系统使用神经网络输出的擦除部分确定擦除权重。擦除权重是存储器存取权重,其包括用于外部存储器中每个位置的相应权重,并且定义外部存储器中的位置上的分布。
然后,系统根据擦除权重从外部存储器中的每个位置擦除。下面参照图3更详细地描述从神经网络输出的指定部分确定存储器存取权重,例如擦除权重。下面参考图6更详细地描述根据擦除权重从外部存储器擦除。
系统使用神经网络输出的写入部分向外部存储器写入(步骤214)。神经网络输出的写入部分是神经网络输出的、已经被指定为在写入外部存储器中使用的部分的预定部分。
具体地,为了写入外部存储器,系统使用神经网络输出的写入部分的指定子部分来确定写入权重。在一些实施方式中,写入权重与擦除权重相同,即,写入部分的指定子部分是神经网络输出的擦除部分。然而,在一些其它实施方式中,写入部分的指定子部分不同于擦除部分。下面参照图3更详细地描述从神经网络输出的指定部分确定存储器存取权重,例如写入权重。
系统还从写入部分的不同的指定子部分确定要写入外部存储器的写入向量,然后根据写入权重将写入向量写入外部存储器。下面参照图7描述确定写入向量和将写入向量向外部存储器写入。
系统使用神经网络输出的读取部分从外部存储器读取(步骤216)。神经网络输出的读取部分是神经网络输出的、已经被指定为在从外部存储器读取中使用的部分的预定部分。
具体地,为了从外部存储器读取,系统使用神经网络输出的读取部分确定读取权重,然后根据读取权重从外部存储器中的位置读取。下面参考图3更详细地描述从神经网络输出的指定部分确定存储器存取权重,例如读取权重。下面参照图8描述从外部存储器的读取。
在一些实施方式中,系统对给定系统输入执行多个擦除、读取和写入操作。例如,系统可以执行多个集合,每个集合包括并行且独立于操作的每个其他集合的擦除操作、读取操作和写入操作。另外,如下面将参照图6-8更详细地描述的,系统可以在执行每个操作集合中使用不同的存储器存取权重,例如,因为系统在计算存储器存取权重的集合中的每个中使用神经网络输出的不同部分。
此外,系统可以以任何顺序执行擦除、读取和写入操作。例如,在一些实施方式中,系统擦除,然后写入,然后从外部存储器读取。然而,在其他实施方式中,系统可以以不同的顺序执行这些操作。
可以对系统输入序列中的每个系统输入执行过程200,以生成针对系统输入序列的系统输出序列。系统输入序列可以是对于其而言期望的输出,即,应该由系统针对输入序列生成的输出序列不是已知的序列。系统还可以对训练数据集合——即,应该由系统预测的输出是已知的输入集合——的输入执行过程200,以便训练系统,即确定用于神经网络的参数和用于相对于外部存储器擦除、写入和读取的过程的任何附加参数的训练值。因为系统的组件是完全可区分的,所以作为用于训练神经网络的常规机器学习训练技术——例如,如果神经网络是递归神经网络,则通过时间训练技术的随机梯度下降反向传播——的一部分,可以对从训练数据集合中选择的输入重复执行过程200。
图3是用于从神经网络输出的指定部分确定存储器存取权重的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强的神经网络系统,例如图1的增强的神经网络系统100,可以执行过程300。
系统接收神经网络输出的指定部分(步骤302)。也就是说,如果由系统确定的存储器存取权重是擦除权重,则系统接收神经网络输出的擦除部分,如果系统确定的存储器存取权重是写入权重,则系统接收神经网络输出的写入部分的指定的子部分,并且如果由系统确定的存储器存取权重是读取权重,则系统接收神经网络输出的读取部分。
系统从指定部分的基于内容的子部分确定基于内容的权重(步骤304)。通常,为了确定基于内容的权重,系统从基于内容的子部分确定内容关键向量。然后,系统将内容关键向量与存储在外部存储器中的位置中的向量进行比较,以便确定位置的权重。下面参照图4更详细地描述确定基于内容的权重。
系统对基于内容的权重应用基于位置的调整以确定存储器存取权重(步骤306)。通常,系统从指定部分的基于位置的子部分确定移位向量,然后使用移位向量来调整基于内容的权重,以便确定存储器存取权重。下面参照图5描述调整基于内容的权重。
图4是对于外部存储器中的位置生成基于内容的权重的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强神经网络系统,例如图1的增强神经网络系统100,可以执行过程400。
系统接收神经网络输出的指定部分的基于内容的子部分(步骤402)。
系统从基于内容的子部分产生基于内容的关键向量(步骤404)。在一些实施方式中,系统可以使用基于内容的子部分作为基于内容的关键向量。在一些其它实施方式中,系统将一个或多个变换应用于基于内容的子部分,以便生成基于内容的关键向量。例如,系统可以使用神经网络,例如多层感知器(MLP)神经网络,处理基于内容的子部分,该神经网络被配置为接收子部分并生成基于内容的关键向量。
系统计算在基于内容的关键向量与存储在外部存储器中的向量之间的相似性度量(步骤406)。也就是说,系统计算在基于内容的关键向量和存储在外部存储器中的每个向量之间的相应相似性度量。例如,相似性度量可以是余弦相似性度量,其中在基于内容的关键向量k(h,t)和位于外部存储器M中的第i个位置的给定向量M(i,·,t)之间的相似性K满足:
系统使用相似性度量来计算外部存储器中的位置的基于内容的权重(步骤406)。通常,系统计算权重,使得与基于内容的关键向量具有较高相似性度量的位置被分配较高的权重。例如,用于外部存储器M中的第i个位置的基于内容的权重可以满足:
其中β(h,t)是“关键强度”值,其是从神经网络输出的指定部分导出的正值,并且求和是外部存储器中的所有位置上的总和。
图5是用于将基于位置的调整应用于基于内容的权重的示例过程500的流程图。为了方便,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强神经网络系统,例如图1的增强神经网络系统100,可以执行过程500。
系统接收神经网络输出的指定部分的基于位置的子部分(步骤502)。
系统从基于内容的权重和系统生成的先前的权重生成临时权重(步骤504)。通常,由系统生成的先前权重是在前一系统输入的处理期间由系统生成的存储器存取权重。系统通过组合基于内容的权重和前面的权重来生成临时权重。例如,临时权重可以是基于内容的权重和先前权重的插值,其中对于第t+1系统输入,外部存储器中的给定位置i的临时权重满足:
其中gi(h,t+1)是在0和1之间并且从神经网络输出的指定部分导出的门输出,wc(i,h,t+1)是第t+1个系统输入的基于内容的权重,并且w(i,h,t)是来自第t个系统输入的存储器存取权重。
系统从基于位置的子部分产生移位向量(步骤506)。在一些实施方式中,系统可以使用基于位置的子部分作为移位向量。在一些其它实施方式中,系统将一个或多个变换应用于基于位置的子部分,以便生成位移向量。例如,系统可以使用神经网络,例如MLP神经网络,处理基于位置的子部分,该神经网络被配置为接收子部分并产生移位向量。
系统使用移位向量移位临时权重以生成存储器存取权重(步骤508)。特别地,系统使用移位向量来对临时权重应用卷积,例如循环卷积,以生成存储器存取权重。例如,外部存储器中的位置i的权重w(i,h,t+1)可以满足:
其中所有索引算法被模N计算,并且其中s(i-j,h,t+1)是存储器中位置i-j的移位向量。
图6是用于根据擦除权重从外部存储器擦除的示例过程600的流程图。为了方便,过程600将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强的神经网络系统,例如图1的增强的神经网络系统100,可以执行过程600。
系统生成擦除权重(步骤602)。系统可以产生如上参照图3-5所述的擦除权重。
系统产生擦除向量(步骤604)。在一些实施方式中,系统可以使用神经网络输出的指定部分作为擦除向量。在一些其它实施方式中,系统将一个或一个以上变换应用于该部分以便产生擦除向量。例如,系统可以使用神经网络(例如,多层感知器(MLP)神经网络)处理该部分,该神经网络被配置为接收该部分并生成擦除向量。
其中we(i,h,t+1)是位置i的擦除权重,并且ge(j,h,t+1)是擦除向量。
在系统针对给定系统输入执行多个擦除操作的实施方式中,例如,如上所述并行地,可通过执行具有用于擦除权重和擦除门向量的可选地不同值的技术600来独立地执行每一擦除操作。例如,每个擦除操作可以通过使用具有可能不同的参数值的不同的神经网络来执行,以生成擦除门向量。因此,并行执行的多个擦除操作的累积效果是乘性的。
图7是用于根据写入权重写入外部存储器的示例过程700的流程图。为了方便,过程700将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强的神经网络系统,例如图1的增强的神经网络系统100,可以执行过程700。
系统生成写入权重(步骤702)。系统可以从写入输出部分的指定的子部分生成写入权重,如上面参考图3-5所述。如上所述,在一些实施方式中,写入权重与擦除权重相同。
系统从写入输出部分的不同的指定部分生成写入向量(步骤704)。在一些实施方式中,系统可以使用不同的指定子部分作为写入向量。在一些其他实施方式中,系统将一个或多个变换应用于不同的指定子部分,以便生成写入向量。例如,系统可以使用神经网络,例如MLP神经网络,处理不同的指定子部分,该神经网络被配置为接收子部分并生成写入向量。
系统使用写入权重将写入向量写入外部存储器(步骤706)。具体地,对于在外部存储器中的位置i处存储的向量的向量元素j处存储的值M(i,,j,t),系统生成满足以下条件的值:
其中ww(i,h,t+1)是位置i的写入权重,并且是写入向量的元素h处的值。在写操作在擦除操作之后执行而不是修改值M(i,,j,t)的实施方式中,系统可以通过修改由上述擦除操作生成的值来生成值M(i,j,t+1)。
在系统对给定系统输入执行多个写入操作的实施方式中,例如,如上所述并行地,可以通过执行对写入权重和写入向量具有可选地不同值的技术700来独立地执行每个写入操作。例如,每个写入操作可以通过使用具有可能不同的参数值的不同的神经网络来执行,以生成写入向量。因此,并行执行的多个写入操作的累积效果是加性的。
图8是用于根据读取权重从外部存储器读取的示例过程800的流程图。为了方便,过程800将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的增强的神经网络系统,例如图1的增强的神经网络系统100,可以执行过程800。
系统生成读取权重(步骤802)。系统可以如上面参考图3-5所述从读取输出部分产生读取权重。
系统根据读取权重从外部存储器中的位置读取(步骤804)。特别地,系统通过组合存储在外部存储器中的每个位置处的值来产生读取数据向量。也就是说,对于读取数据向量的给定元素,系统计算在该元素处存储在外部存储器中的每个值的加权平均,每个值的权重是对应位置的读取权重。例如,元素j处的读向量的值r(j,h,t+1)可以满足:
其中wr(i,h,t+1)是位置i的读取权重,并且M(i,j,t+1)是存储在存储器中位置i处的向量的元素j处的值。
在系统对于给定系统输入(例如,如上所述并行)执行多个读取操作的实施方式中,可以通过执行对于读取权重具有可选地不同的读取权重值的技术800来独立地执行每个读取操作。在这些实施方式中,系统可以例如通过级联向量组合由每个读取操作生成的读取数据向量,以形成作为神经网络输入的一部分提供给神经网络的最终读取数据向量。
根据实施方式,系统可以基于从神经网络接收的输出来维持存储在外部存储器中的数据的不同程度的持久性。例如,在一些实施方式中,在系统输入的每个序列已被系统完全处理之后,系统重新设置外部存储器。作为另一示例,在一些实施方式中,存储在外部存储器中的数据在输入序列之间持续。也就是说,系统不会在系统输入序列之间从外部存储器中删除任何数据。在这些实施方式中,系统可以在分配给系统的给定任务完成之后并且在系统开始不同的机器学习任务之前重新设置外部存储器。或者,系统可以保持外部存储器,甚至在任务之间不删除值。因此,在处理当前输入序列时,系统可能能够在处理先前输入序列时或甚至在执行先前机器学习任务时利用存储在存储器中的数据。
在本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件(包括在本说明书中公开的结构及其结构等同物)中或者在它们的一个或多个的组合实现。在本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,编码在有形非暂时性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。替代地或另外地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息以用于传输到合适的接收机设备,以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,该装置可以可选地包括创建用于计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
也可被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言编写,包括编译或解释语言或声明性或过程性语言,并且其可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中、存储在专用于所述程序的单个文件中或者存储在多个协同文件(例如存储一个或多个模块、子程序或代码部分的文件)中的一个或多个脚本。计算机程序可以被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行,并且装置也可以实现为该专用逻辑电路。
适合于执行计算机程序的计算机包括,例如可以基于通用或专用微处理器或两者或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实施指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传送数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,这里仅举几个例子。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以实现在计算机上,该计算机具有:显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器),用于向用户显示信息和键盘;以及,指示设备,例如鼠标或轨迹球,用户可以通过该指示设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,该任何形式包括声音、语音或触觉输入。另外,计算机可以通过下述方式与用户交互:向用户使用的设备发送文档和从用户使用的设备接收文档;例如,通过响应于从用户的客户端设备上的web浏览器接收的请求,将网页发送到该web浏览器。
在本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括诸如作为数据服务器的后端组件,或者包括诸如应用服务器的中间件组件,或者包括诸如具有图形用户界面或Web浏览器的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,用户可以通过该Web浏览器与本说明书中描述的主题的实现交互。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为对任何发明的范围或对所要求保护内容的范围的限制,而是作为可以对特定发明的特定实施例特定的特征的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的场境中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者所有所示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中所述的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或顺序,以实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。
Claims (20)
1.一种计算机实现的方法,包括:
由增强神经网络系统接收系统输入;
获得通过从外部存储器读取而生成的读取数据向量;
通过组合所述系统输入与来自所述外部存储器的所述读取数据向量来生成神经网络输入;
使用所述增强神经网络系统的神经网络来处理所述神经网络输入,以生成针对所述神经网络输入的神经网络输出;
从所述神经网络输出的系统输出部分来生成针对所述系统输入的系统输出;
使用所述神经网络输出的写入部分来写入到所述外部存储器;和
所述使用神经网络输出的读取部分来从所述外部存储器读取。
2.根据权利要求1所述的方法,其中,所述系统输入是由所述增强神经网络系统接收的系统输入序列中的一个。
3.如权利要求2所述的方法,其中,所述读取数据向量是通过在所述系统输入序列中的在先系统输入的处理期间读取所述外部存储器而生成的。
4.根据权利要求1所述的方法,其中,通过组合所述系统输入和来自所述外部存储器的所述读取数据向量来生成所述神经网络输入包括:
将所述系统输入和所述读取数据向量级联以生成所述神经网络输入。
5.根据权利要求1所述的方法,其中,所述神经网络是前馈神经网络或递归神经网络中的一个。
6.根据权利要求1所述的方法,其中,所述神经网络包括递归神经网络层和前馈神经网络层。
7.根据权利要求1所述的方法,其中从所述神经网络输出的所述系统输出部分生成针对所述系统输入的所述系统输出包括:
将一个或多个变换应用于所述系统输出部分以生成所述系统输出。
8.根据权利要求1所述的方法,还包括:
在写入到所述外部存储器之前,使用所述神经网络输出的擦除部分从所述外部存储器中擦除。
9.根据权利要求8所述的方法,其中使用所述神经网络输出的所述擦除部分从所述外部存储器中擦除包括:
使用所述神经网络输出的所述擦除部分来确定擦除权重,其中所述擦除权重包括所述外部存储器中的多个位置中的每个位置的相应权重,并且定义所述外部存储器中的所述多个位置上的分布;和
根据所述擦除权重,从所述外部存储器中的所述多个位置中的每个位置进行擦除。
10.根据权利要求1所述的方法,其中,使用所述神经网络输出的所述写入部分来写入到所述外部存储器包括:
使用所述神经网络输出的所述写入部分的指定子部分来确定写入权重;和
根据所述写入权重来写入到所述外部存储器。
11.根据权利要求10所述的方法,其中,使用所述神经网络输出的所述写入部分来写入到所述外部存储器包括:
从所述神经网络输出的所述写入部分的不同指定子部分来确定写入向量;和
将所述写入向量写入到所述外部存储器。
12.根据权利要求1所述的方法,其中使用所述神经网络输出的所述读取部分从所述外部存储器读取包括:
使用所述神经网络输出的所述读取部分确定读取权重;和
根据所述读取权重从所述外部存储器中的多个位置读取。
13.存储指令的一种或多种非暂时性计算机存储介质,所述存储的指令在由一个或多个计算机执行时使所述一个或多个计算机执行操作,所述操作包括:
由增强神经网络系统接收系统输入;
获得通过从外部存储器读取而生成的读取数据向量;
通过组合所述系统输入与来自所述外部存储器的读取数据向量来生成神经网络输入;
使用所述增强神经网络系统的神经网络来处理所述神经网络输入,以生成针对所述神经网络输入的神经网络输出;
从所述神经网络输出的系统输出部分来生成针对所述系统输入的系统输出;
使用所述神经网络输出的写入部分来写入到所述外部存储器;和
所述使用神经网络输出的读取部分来从所述外部存储器读取。
14.根据权利要求13所述的一种或多种非暂时性计算机存储介质,其中通过组合所述系统输入和来自所述外部存储器的所述读取数据向量来生成所述神经网络输入的操作包括:
将所述系统输入和所述读取数据向量级联以生成所述神经网络输入。
15.根据权利要求13所述的一种或多种非暂时性计算机存储介质,其中,从所述神经网络输出的所述系统输出部分生成针对所述系统输入的所述系统输出的操作包括:
将一个或多个变换应用于系统输出部分以生成系统输出。
16.根据权利要求13所述的一种或多种非暂时性计算机存储介质,其中,所述操作还包括:
在写入到所述外部存储器之前,使用所述神经网络输出的擦除部分从所述外部存储器中擦除。
17.根据权利要求16所述的一种或多种非暂时性计算机存储介质,其中使用所述神经网络输出的所述擦除部分从所述外部存储器中擦除的操作包括:
使用所述神经网络输出的所述擦除部分来确定擦除权重,其中所述擦除权重包括所述外部存储器中的多个位置中的每个位置的相应权重,并且定义所述外部存储器中的所述多个位置上的分布;和
根据所述擦除权重,从所述外部存储器中的所述多个位置中的每个位置进行擦除。
18.根据权利要求13所述的一种或多种非暂时性计算机存储介质,其中使用所述神经网络输出的所述写入部分来写入到所述外部存储器的操作包括:
使用所述神经网络输出的所述写入部分的指定子部分来确定写入权重;和
根据所述写入权重来写入到所述外部存储器。
19.根据权利要求18所述的一种或多种非暂时性计算机存储介质,其中使用所述神经网络输出的所述写入部分来写入到所述外部存储器包括的操作包括:
从所述神经网络输出的所述写入部分的不同指定子部分来确定写入向量;和
将所述写入向量写入到所述外部存储器。
20.根据权利要求13所述的一种或多种非暂时性计算机存储介质,其中,使用所述神经网络输出的所述读取部分从所述外部存储器读取的操作包括:
使用所述神经网络输出的所述读取部分确定读取权重;和
根据所述读取权重从所述外部存储器中的多个位置读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911105640.8A CN111079895B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462064965P | 2014-10-16 | 2014-10-16 | |
US62/064,965 | 2014-10-16 | ||
CN201911105640.8A CN111079895B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
PCT/US2015/055817 WO2016061403A1 (en) | 2014-10-16 | 2015-10-15 | Augmenting neural networks with external memory |
CN201580033184.4A CN106462803B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580033184.4A Division CN106462803B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111079895A true CN111079895A (zh) | 2020-04-28 |
CN111079895B CN111079895B (zh) | 2024-05-28 |
Family
ID=54477238
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580033184.4A Active CN106462803B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
CN201911105640.8A Active CN111079895B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580033184.4A Active CN106462803B (zh) | 2014-10-16 | 2015-10-15 | 增强具有外部存储器的神经网络 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10650302B2 (zh) |
EP (1) | EP3207507B1 (zh) |
CN (2) | CN106462803B (zh) |
WO (1) | WO2016061403A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410119B2 (en) * | 2015-06-05 | 2019-09-10 | Deepmind Technologies Limited | Augmented recurrent neural network with external memory |
US10489701B2 (en) * | 2015-10-13 | 2019-11-26 | Facebook, Inc. | Generating responses using memory networks |
IE87469B1 (en) * | 2016-10-06 | 2024-01-03 | Google Llc | Image processing neural networks with separable convolutional layers |
CN107203598A (zh) * | 2017-05-08 | 2017-09-26 | 广州智慧城市发展研究院 | 一种实现图像转换标签的方法及系统 |
WO2018210796A1 (en) * | 2017-05-15 | 2018-11-22 | Deepmind Technologies Limited | Neural network systems for action recognition in videos |
US10963780B2 (en) * | 2017-08-24 | 2021-03-30 | Google Llc | Yield improvements for three-dimensionally stacked neural network accelerators |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
JP7179853B2 (ja) * | 2017-12-12 | 2022-11-29 | アマゾン テクノロジーズ インコーポレイテッド | オンチップの計算ネットワーク |
EP3567548B1 (en) * | 2018-05-09 | 2020-06-24 | Siemens Healthcare GmbH | Medical image segmentation |
CN109815162A (zh) * | 2019-01-28 | 2019-05-28 | Oppo广东移动通信有限公司 | 内存管理方法、装置、移动终端及存储介质 |
CN109886416A (zh) * | 2019-02-01 | 2019-06-14 | 京微齐力(北京)科技有限公司 | 集成人工智能模块的系统芯片及机器学习方法 |
US11080152B2 (en) * | 2019-05-15 | 2021-08-03 | Western Digital Technologies, Inc. | Optimized neural network data organization |
US11748576B2 (en) | 2021-01-21 | 2023-09-05 | International Business Machines Corporation | Interpretation of deep neural model based dialogue agents |
CN118627566A (zh) * | 2024-08-13 | 2024-09-10 | 南京大学 | 一种加速ViT神经网络的异构存算装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2040903A1 (en) * | 1991-04-22 | 1992-10-23 | John G. Sutherland | Neural networks |
US5167006A (en) * | 1989-12-29 | 1992-11-24 | Ricoh Company, Ltd. | Neuron unit, neural network and signal processing method |
US5493632A (en) * | 1992-08-28 | 1996-02-20 | Goldstar Co., Ltd. | Neural network employing a location addressable memory and method for operating the same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2695102B2 (ja) * | 1992-09-30 | 1997-12-24 | 川崎製鉄株式会社 | 内容アドレス式メモリ |
US7440968B1 (en) * | 2004-11-30 | 2008-10-21 | Google Inc. | Query boosting based on classification |
US8386232B2 (en) * | 2006-06-01 | 2013-02-26 | Yahoo! Inc. | Predicting results for input data based on a model generated from clusters |
US9015093B1 (en) * | 2010-10-26 | 2015-04-21 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
RU2013156784A (ru) * | 2013-12-20 | 2015-06-27 | ИЭмСи КОРПОРЕЙШН | Способ и устройство выбора маршрута чтения и записи данных |
-
2015
- 2015-10-15 CN CN201580033184.4A patent/CN106462803B/zh active Active
- 2015-10-15 CN CN201911105640.8A patent/CN111079895B/zh active Active
- 2015-10-15 WO PCT/US2015/055817 patent/WO2016061403A1/en active Application Filing
- 2015-10-15 EP EP15791075.3A patent/EP3207507B1/en active Active
- 2015-10-16 US US14/885,086 patent/US10650302B2/en active Active
-
2020
- 2020-03-26 US US16/831,566 patent/US11210579B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5167006A (en) * | 1989-12-29 | 1992-11-24 | Ricoh Company, Ltd. | Neuron unit, neural network and signal processing method |
CA2040903A1 (en) * | 1991-04-22 | 1992-10-23 | John G. Sutherland | Neural networks |
US5493632A (en) * | 1992-08-28 | 1996-02-20 | Goldstar Co., Ltd. | Neural network employing a location addressable memory and method for operating the same |
Non-Patent Citations (2)
Title |
---|
FELIX A.GERS等: "LSTM recurrent networks learn simple context-free and context-sensitive languages", 《IEEE TRANSATIONS ON NEURAL NETWORKS》 * |
SREERUPA DAS等: "Learning Context-free Grammars: Capabilities and Limitations of a Recurrent Neural Network with an External Stack Memory", 《ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEMS 5.》 * |
Also Published As
Publication number | Publication date |
---|---|
US20200226446A1 (en) | 2020-07-16 |
US20160117586A1 (en) | 2016-04-28 |
WO2016061403A1 (en) | 2016-04-21 |
CN106462803B (zh) | 2019-12-10 |
CN111079895B (zh) | 2024-05-28 |
US10650302B2 (en) | 2020-05-12 |
EP3207507B1 (en) | 2021-02-17 |
CN106462803A (zh) | 2017-02-22 |
US11210579B2 (en) | 2021-12-28 |
EP3207507A1 (en) | 2017-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462803B (zh) | 增强具有外部存储器的神经网络 | |
EP3238144B1 (en) | Augmenting neural networks to generate additional outputs | |
US11900232B2 (en) | Training distilled machine learning models | |
US11775804B2 (en) | Progressive neural networks | |
US11568250B2 (en) | Training neural networks using a prioritized experience memory | |
CN109155002B (zh) | 增强神经网络系统、方法和计算机程序 | |
US20210117801A1 (en) | Augmenting neural networks with external memory | |
US11714993B2 (en) | Classifying input examples using a comparison set | |
US11080594B2 (en) | Augmenting neural networks with external memory using reinforcement learning | |
US20170228638A1 (en) | Augmenting neural networks with sparsely-accessed external memory | |
US10635972B1 (en) | Recurrent neural networks with rectified linear units |
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 |