CN109313720B - 具有稀疏访问的外部存储器的增强神经网络 - Google Patents

具有稀疏访问的外部存储器的增强神经网络 Download PDF

Info

Publication number
CN109313720B
CN109313720B CN201780015350.7A CN201780015350A CN109313720B CN 109313720 B CN109313720 B CN 109313720B CN 201780015350 A CN201780015350 A CN 201780015350A CN 109313720 B CN109313720 B CN 109313720B
Authority
CN
China
Prior art keywords
neural network
read
locations
location
weights
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
CN201780015350.7A
Other languages
English (en)
Other versions
CN109313720A (zh
Inventor
伊沃·达尼赫尔卡
格雷戈里·邓肯·韦恩
王富民
爱德华·托马斯·格里芬斯泰特
杰克·威廉·雷
亚历山大·本杰明·格拉韦斯
蒂莫西·保罗·利利克拉普
蒂莫西·詹姆斯·亚历山大·哈莱
乔纳森·詹姆斯·亨特
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.)
DeepMind Technologies Ltd
Original Assignee
DeepMind Technologies Ltd
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 DeepMind Technologies Ltd filed Critical DeepMind Technologies Ltd
Publication of CN109313720A publication Critical patent/CN109313720A/zh
Application granted granted Critical
Publication of CN109313720B publication Critical patent/CN109313720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Abstract

方法、系统、以及装置,包括在计算机存储介质上编码的计算机程序,用于利用外部存储器来增强神经网络。所述系统中的一个包括稀疏存储器访问子系统,该稀疏存储器访问子系统被配置为执行操作,所述操作包括:使用读密钥生成包括外部存储器中的多个位置的每一个的相应读权重的读权重稀疏集;根据读权重稀疏集从外部存储器中的多个位置读取数据;生成包括外部存储器中的多个位置中的每一个的相应写权重的写权重集;并且根据该写权重将写向量写入到外部存储器中的多个位置。

Description

具有稀疏访问的外部存储器的增强神经网络
技术领域
本说明书涉及神经网络系统架构。
背景技术
神经网络是其采用一个或多个非线性单元层针对所接收到的输入来预测输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即下一隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从所接收到的输入生成输出。
一些神经网络是循环神经网络。循环神经网络是接收输入序列并从输入序列生成输出序列的神经网络。特别地,循环神经网络可使用网络的内部状态中的一些或全部来在计算当前输出的过程中对先前输入进行处理。循环神经网络的示例是包括一个或多个LSTM存储器块的长短期存储器(LSTM)神经网络。每个LSTM存储器块可包括一个或多个cell,该一个或多个cell均包括输入门、忘记门、以及输出门,其允许该cell存储该cell的先前状态以例如用于在生成当前激活的过程中使用或者将其提供给LSTM神经网络的其它组件。
发明内容
该说明书描述了涉及增强神经网络系统——即用外部存储器增强的神经网络系统——的技术。
存储器增强的神经网络系统包括:神经网络,该神经网络被配置为接收神经网络输入并生成神经网络输出;外部存储器,即在控制器神经网络外部的存储器,该外部存储器存储从神经网络输出中的部分取得的值;以及子系统,该子系统被配置为接收神经网络输出中的部分并且使用所接收到的部分来从外部存储器擦除、写入、以及读取。
特别地,为了从外部存储器读取,子系统被配置为使用神经网络输出生成包括外部存储器中的每个位置的相应读权重的读权重稀疏集并且根据该读权重从外部存储器中的位置读取数据。
为了写入到外部存储器,子系统被配置成为生成包括外部存储器中的每个位置的相应写权重的写权重集并且根据该写权重将写向量写入到外部存储器中的位置。在一些实施方式中,写权重集也是权重稀疏集。
通常,权重稀疏集是仅包括少量(例如四个、五个、八个、九个)非零权重以及大量为零的权重的权重集。例如,外部存储器可具有从两百数量级的位置、五万数量级的位置、到一百万数量级的位置的任何位置,其中读权重在任何给定时间仅对于那些位置中的少量(例如四个、五个、八个、或九个)而言是非零。在一些情况下,通过使存储器跨多个计算机分布,存储器可以能够包括十亿数量级的位置。
对于将被配置为执行特定操作或动作的一个或多个计算机的系统而言意味着系统已在其上安装了在操作中使得该系统执行操作或动作的软件、固件、硬件、或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序而言意味着一个或多个程序包括当其由数据处理装置执行时使得该装置执行操作或动作的指令。
在本说明书中所描述的主题能够是在特定实施例中实现以便实现以下优点中的一个或多个。通过用外部存储器(即在控制器神经网络外部的存储器)来增强神经网络系统,增强的神经网络可更准确地针对各种机器学习任务从所接收到的输入生成输出。特别地,为了促进对来自输入序列的给定输入进行处理,增强的神经网络可通过从外部存储器读取而有效地使用在对序列中的许多先前输入进行处理期间由增强的神经网络所生成的信息。类似地,为了促进对来自序列的后续输入进行处理,增强的神经网络可将在对当前输入的处理期间所生成的信息存储在外部存储器中。另外,外部存储器的大小可增加而无需增加增强神经网络的可训练参数的数目。此外,因为用于访问外部存储器的整个机制可被视为是可区分的,因此可对存储器增强的神经网络系统有效率地进行训练。
与用于利用外部存储器来增强神经网络的其它架构相比,在本说明书中所描述的系统通过确保用于从外部存储器读取和写入的权重是稀疏的而允许与外部存储器更有效率的交互。这允许系统更快速地从外部存储器读取和写入并使用更少的计算资源。特别地,通过使用在本说明书中所描述的稀疏读写机制,可降低运行时间和存储器开销,同时保持系统所生成的输出的高精度水平。
另外,训练控制器神经网络所需的时间和计算资源可减少,不但因为在训练期间读写也很稀疏,而且还因为稀疏的读写导致在训练期间需要计算以及通过控制器神经网络反向传播的梯度更少。
本公开的一方面提供了一种用于对系统输入序列进行处理以生成系统输出序列的增强神经网络系统,该增强神经网络系统包括:控制器神经网络,该控制器神经网络被配置为在多个时间步中的每一个处接收神经网络输入并对控制器神经网络输入进行处理以生成该时间步的神经网络输出,其中每个神经网络输出包括读密钥和写向量;外部存储器;以及稀疏存储器访问子系统,该稀疏存储器访问子系统被配置为对于多个时间步中的一个或多个时间步以及可选地对于多个时间步中的每个时间步:使用读密钥生成包括外部存储器中的多个位置的每一个的相应读权重的读权重稀疏集;根据读权重稀疏集从外部存储器中的多个位置读取数据;生成包括外部存储器中的多个位置中的每一个的相应写权重的写权重集;以及根据该写权重将写向量写入到外部存储器中的多个位置。增强的神经网络系统可以是由一个或多个计算机实现的。
本公开的一方面提供了一种用于增强神经网络系统的稀疏存储器访问子系统,该增强神经网络系统用于对系统输入序列进行处理以生成系统输出序列,该稀疏存储器访问子系统被配置为对于多个时间步中的一个时间步:接收来自增强神经网络系统的控制器神经网络的该时间步的神经网络输出;包括读密钥和写向量的神经网络输出使用读密钥生成包括增强神经网络系统的外部存储器中的多个位置中的每一个位置的相应读权重的读权重稀疏集;根据读权重稀疏集从外部存储器中的多个位置读取数据;生成包括外部存储器中的多个位置中的每一个的相应写权重的写权重集;以及根据该写权重将写向量写入到外部存储器中的多个位置。稀疏存储器访问子系统或者包括该稀疏存储器访问子系统的增强神经网络系统可以是由一个或多个计算机实现的。
在一个实施方式中,读权重稀疏集仅包括K个非零权重,其中K是小的预定整数。在一个实施方式中生成读权重稀疏集包括:根据相似性度量来确定多个位置中的、与读密钥最相似的K个位置;将零读权重指派给多个位置中的、除所述K个位置之外的每个位置;以及从该位置与读密钥之间的相似性度量来确定所述K个位置中的每一个的读权重。在一个实施方式中确定K个位置包括使用K最近邻技术来确定K个位置。在一个实施方式中确定K个位置包括使用近似最近邻技术来确定K个位置。在一个实施方式中写权重集是仅包括N个非零权重的权重稀疏集,其中N是小的预定整数。在一个实施方式中生成写权重集包括:从多个位置中确定最近最少访问的位置;根据在先前时间步的除最近最少访问的位置之外的每个位置的读权重以及包含在神经网络输出中的内插参数来确定该位置的写权重;并且通过根据内插参数在先前时间步的位置的读权重与恒定值之间执行内插来确定最近最少访问的位置的写权重。在一个实施方式中确定最近最少访问的位置包括:保持多个位置中的每一个的相应使用值;并且选择具有最小使用值的位置作为最近最少访问的位置。在一个实施方式中多个位置中的每一个的相应使用值是在多个先前时间步上的该位置的写权重的时间折扣总和。在一个实施方式中多个位置中的每一个的相应使用值是自该位置的不可忽略的存储器访问以来的时间步的数目。
在一个实施方式中稀疏存储器访问子系统进一步被配置为:对于多个时间步的每一个,擦除存储在最近最少访问位置中的数据。
在一个实施方式中该系统进一步包括一个或多个输出层,并且其中一个或多个输出层被配置为对于多个时间步中的每一个:对在时间步的、从外部存储器所读取的数据进行处理以生成该时间步的系统输出。在一个实施方式中多个时间步中的每一个的神经网络输出进一步包括系统输出部分。在一个实施方式中稀疏存储器访问子系统进一步被配置为:对于多个时间步的每一个,提供从系统输出部分所取得的输出以作为该时间步的系统输出。在实施方式中该系统进一步包括一个或多个输出层,并且其中一个或多个输出层被配置为对于多个时间步中的每一个:对从外部存储器所读取的数据以及该时间步的系统输出部分进行处理以生成该时间步的系统输出。在一个实施方式中每个时间步的控制器神经网络输入是系统输入序列中的相应系统输入。在一个实施方式中稀疏存储器访问子系统进一步被配置为对于多个时间步中的每一个:对从外部存储器所读取的数据和系统输入序列的相应系统输入进行组合以生成后续时间步的后续神经网络输入。
本公开的另一方面提供了一种方法,根据任何方面或实施方式的稀疏存储器访问子系统被配置来执行所述方法。
本公开的另一方面提供了一种编码有指令的一个或多个计算机存储介质,所述指令在由一个或多个计算机执行时使得一个或多个计算机实现根据何方面或实施方式中的任何一个所述的系统。
本公开的另一方面提供了一种方法,该方法包括:在用于对系统输入序列进行处理以生成系统输出序列的增强神经网络系统的稀疏存储器访问子系统,该增强神经网络系统包括:控制器神经网络,该控制器神经网络被配置为在多个时间步中的每一个处接收神经网络输入并对控制器神经网络输入进行处理以生成该时间步的神经网络输出,其中每个神经网络输出包括读密钥和写向量;外部存储器;以及稀疏存储器访问子系统:对于多个时间步中的时间步:相应读密钥生成包括外部存储器中的多个位置的每一个的相应读权重的读权重稀疏集;根据读权重稀疏集从外部存储器中的多个位置读取数据;生成包括外部存储器中的多个位置的每一个的相应写权重的写权重集;以及根据该写权重将该写向量写入到外部存储器中的多个位置。稀疏存储器访问子系统或包括稀疏存储器访问子系统的增强神经网络系统可以是由一个或多个计算机实现的。
本公开的另一方面提供了一种方法,该方法包括:在增强神经网络系统的稀疏存储器访问子系统处,该增强神经网络系统用于对系统输入序列进行处理以生成系统输出序列,对于多个时间步中的时间步:接收来自增强神经网络系统的控制器神经网络的该时间步的神经网络输出;包括读密钥和写向量的神经网络输出使用读密钥生成包括增强神经网络系统的外部存储器中的多个位置中的每一个的相应读权重的读权重稀疏集;根据读权重稀疏集从外部存储器中的多个位置读取数据;生成包括外部存储器中的多个位置中的每一个的相应写权重的写权重集;以及根据该写权重将写向量写入到外部存储器中的多个位置。增强神经网络系统可以是由一个或多个计算机实现的。
上述方面的方法的实施方式可以包括作为系统的可能实施方式而公开的任何特征。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。本主题的其它特征、方面、以及优点根据该描述、附图、以及权利要求书将变得显而易见。
附图说明
图1示出了示例增强神经网络系统。
图2是用于从系统输入生成系统输出的示例过程的流程图。
图3是用于从外部存储器读取的示例过程的流程图。
图4是用于写入到外部存储器以及从外部存储器擦除的示例过程的流程图。
各附图中相似的附图标记和名称指示相似的元素。
具体实施方式
图1示出了示例增强神经网络系统100。存储器增强的神经网络系统100是作为一个或多个位置中的一个或多个计算机上的计算机程序来实现的系统的示例,其中可以实现下述系统、组件、以及技术。
存储器增强的神经网络系统100是机器学习系统,该机器学习系统接收包括在多个时间步中的每一个的相应系统输入的序列并从该系统输入生成系列输出序列。例如,存储器增强的神经网络系统100可接收输入序列中的在给定时间步处的系统输入x并且从该系统输入x生成该时间步的系统输出y。
存储器增强的神经网络系统100可将所生成的输出序列存储在输出数据存储库中或者提供该输出以用于某些其它直接目的,例如用于呈现给用户或供另一系统进一步处理。
存储器增强的神经网络系统100可被配置为接收任何种类的数字数据输入并基于该输入来生成任何种类的得分、分类、或者回归输出。
例如,如果对存储器增强的神经网络系统100的输入是图像或者从图像所提取的特征,则由存储器增强的神经网络系统100对给定图像所生成的输出可以是对象类别集中的每一个的得分,其中每个得分表示图像包含属于该类别的对象的图像的估计可能性。
作为另一示例,如果对存储器增强的神经网络系统100的输入是互联网资源(例如网页)、文档、或部分文档或者从互联网资源、文档、或部分文档所提取的特征,则由存储器增强的神经网络系统100对给定互联网资源、文档、部分文档所生成的输出可以是主题集中的每一个的得分,其中每个得分表示互联网资源、文档、或文档部分与该主题有关的估计可能性。
作为另一示例,如果对存储器增强的神经网络系统100的输入是特定可选内容项的印象场境的特征,则存储器增强的神经网络系统100所生成的输出可以是表示将选择(例如点击)特定可选内容项的估计可能性的得分。
作为另一示例,如果对存储器增强的神经网络系统100的输入是对用户的个性化推荐的特征,例如表征推荐场境的特征,例如表征用户所采取的先前动作的特征,则存储器增强的神经网络系统100所生成的输出可以是内容项集合中的每一个的得分,其中每个得分表示用户将对被推荐内容项积极地响应的估计可能性。
作为另一示例,如果对存储器增强的神经网络系统100的输入是一种语言的文本,则存储器增强的神经网络系统100所生成的输出可以是另一种语言的文本段集合中的每一个本文段的得分,其中每个得分表示另一种语言的文本段是输入文本到另一种语言的恰当翻译的估计可能性。
作为另一示例,如果输入到存储器增强的神经网络系统100的输入是说出的话语、说出话语的序列、或者从两者之一所取得的特征,则存储器增强的神经网络系统100所生成的输出可以是文本段集合中的每一个文本段的得分,每个得分表示文本段是对话语或话语序列的正确转录的估计可能性。
作为另一示例,存储器增强的神经网络系统100可是语音合成系统的一部分。
作为另一示例,存储器增强的神经网络系统100可是视频处理系统的一部分。
作为另一示例,存储器增强的神经网络系统100可是对话系统的一部分。
作为另一示例,存储器增强的神经网络系统100可是自动完成系统的一部分。
作为另一示例,存储器增强的神经网络系统100可是文本处理系统的一部分。
作为另一示例,存储器增强的神经网络系统100可是强化学习系统的一部分。
作为另一示例,如果对存储器增强的神经网络系统100的输入是图像,则该系统所生成的输出可以是文本段集合中的每一个文本段的得分,每个得分表示文本段是存在于输入图像中的文本的估计可能性。
作为另一示例,如果输入到存储器增强的神经网络系统100的输入是来自计算机程序的代码段,则该系统所生成的输出可以标识计算机程序的预测输出。
特别地,存储器增强的神经网络系统100包括控制器神经网络102和外部存储器104。控制器神经网络102可以是例如浅或深长短期存储器(LSTM)神经网络的前馈神经网络或循环神经网络,其被配置为接收神经网络输入并对控制器神经网络输入进行处理以生成神经网络输出。
通常,控制器神经网络102所接收到的神经网络输入是当前系统输入与稀疏存储器访问子系统106从外部存储器所读取的数据的组合。例如,控制器神经网络102可以被配置为接收当前系统输入x以及从外部存储器104所读取的数据r并生成提供给稀疏存储器访问子系统106的神经网络输出o。
稀疏存储器访问子系统106接收控制器神经网络所生成的输出(例如输出o)并将所接收到的输出转化为要在外部存储器104上执行的擦除、读取、以及写入操作。也就是说,稀疏存储器访问子系统106接收来自控制器神经网络102的输出o,并且基于该输出o,从外部存储器104擦除数据e,将数据w写入到外部存储器104,并从外部存储器104读取数据r。然后,稀疏存储器访问子系统106所读取的数据可作为随后神经网络输入的一部分例如与系统输入一起提供给控制器神经网络102。
稀疏存储器访问子系统106还根据从外部存储器所读取的数据r、神经网络输出o、或者这两者来生成系统输出y。
特别地,在一些实施方式中,稀疏存储器访问子系统106提供所读取的数据r以作为系统输出y。
在一些其它实施方式中,稀疏存储器访问子系统106通过一个或多个输出神经网络层(例如一个或多个线性层)来对所读取的数据r进行处理以生成系统输出y。
在一些其它实施方式中,稀疏存储器访问子系统106对神经网络输出o与所读取的数据r进行组合(例如串接或求和),并且然后提供该组合以作为系统输出y或者通过一个或多个输出神经网络层(例如一个或多个线性层)对该组合进行处理以生成系统输出y。
在又一些其它实施方式中,神经网络输出o包括与用于从外部存储器104读取、写入、以及擦除的部分不同的输出部分。在这些实施方式中,稀疏存储器访问子系统106可提供该输出部分以作为系统输出y或者通过一个或多个输出神经网络层(例如一个或多个线性层)对输出部分进行处理以生成系统输出y。
通常,神经网络输出o包括在写入到外部存储器104的过程中供稀疏存储器访问子系统106使用的写入部分以及稀疏存储器访问子系统106用于从外部存储器104读取的读取部分。
外部存储器104存储由稀疏存储器访问子系统106写入到外部存储器104的数据向量。在一些实施方式中,外部存储器104是具有元素M(i,j)的实值矩阵存储器,其中i对位置进行索引并且j对向量元素进行索引。因而,M(i,j)将是存储在外部存储器104中的位置i处的向量的元素j处的值。通过将外部存储器104、稀疏存储器访问子系统106、以及控制器神经网络102配置为如在该说明书中所描述的,存储器增强的神经网络系统100的组件可被视为完全可区分的,这允许对存储器增强的神经网络系统100进行有效地训练。
图2是用于从时间步的系统输入生成给定时间步的系统输出的示例过程200的流程图。为方便起见,该过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书所适当编程的存储器增强的神经网络系统(例如图1的存储器增强的神经网络系统100)可执行过程200。
系统接收该时间步的系统输入(步骤202)。该系统输入是系统所接收到的系统输入序列中一个。
该系统获得通过从外部存储器(例如图1的外部存储器104)读取而生成的读数据向量(步骤204)。通常,读数据向量是由系统通过在对系统输入序列中的先前输入进行处理期间(即在先前时间步对系统输入进行处理期间)从外部存储器读取所生成的。
系统通过对系统输入与从外部存储器所读取的数据进行组合而生成该时间步的神经网络输入(步骤206)。例如,系统可使系统输入与读数据向量串接以生成神经网络输入。对于第一系统输入——即在第一时间步的系统输入,系统可使系统输入与预定向量(例如控制器神经网络的学习状态)串接。
该系统使用控制器神经网络(例如图1的控制器神经网络102)对神经网络输入进行处理以从神经网络输入生成该时间步的神经网络输出(步骤208)。
根据该实施方式,控制器神经网络可是前馈神经网络(例如卷积神经网络或另一种类的深度前馈神经网络)或者循环神经网络(例如LSTM神经网络)。如果控制器神经网络是循环神经网络,则循环神经网络在对当前神经网络输入进行处理以生成神经网络输出的过程中还使用来自序列中的先前神经网络输入的循环神经网络的内部状态。在一些实施方式中,控制器神经网络包括循环和前馈层二者。
该系统使用神经网络输出的写入部分写入到外部存储器(步骤210)。神经网络输出的写入部分是神经网络输出的预定部分,该预定部分已被指定为在写入到外部存储器的过程中所使用的部分。
特别地,为了写入到外部存储器,该系统使用神经网络输出的写入部分来确定写权重并根据该写权重来将写向量写入到外部存储器。
下面参考图4更详细地描述确定写权重和写入到外部存储器。
系统从外部存储器进行擦除(步骤212)。特别地,如下面将参考图4所更详细描述的,系统使用擦除向量从外部存储器中的最近最少使用位置进行擦除。
系统使用神经网络输出的读取部分从外部存储器读取以生成读向量(步骤214)。神经网络输出的读取部分是神经网络输出的预定部分,该预定部分已被指定为在从外部存储器读取的过程中所使用的部分。
特别地,该系统使用神经网络输出的读取部分来确定读权重并且然后根据该读权重从外部存储器中的位置进行读取。
下面参考图3更详细地描述确定读权重和从外部存储器进行读取。
该系统可按任何顺序执行擦除、读取、以及写入操作。例如,在一些实施方式中,该系统擦除、然后写入、并且然后从外部存储器读取。然而,在其它实施方式中,该系统可以以不同顺序执行这些操作。原则上,在特定时间步可能不需要擦除、读取、或者写入操作中的一个或多个。
系统生成该时间步的系统输出(步骤216)。
在一些实施方式中,系统提供从外部存储器所读取的数据以作为系统输出。
在一些其它实施方式中,系统通过一个或多个输出神经网络层(例如一个或多个线性层)对从外部存储器所读取的数据进行处理以生成系统输出。
在一些其它实施方式中,系统对神经网络输出与所读取的数据进行组合(例如串接或求和)并且然后通过一个或多个输出神经网络层(例如一个或多个线性层)对该组合进行处理以生成系统输出。
在又一些其它实施方式中,神经网络输出包括输出部分,该输出部分与用于从外部存储器读取、写入、以及擦除的部分不同。在这些实施方式中,系统可提供该输出部分以作为系统输出或者通过一个或多个输出神经网络层(例如一个或多个线性层)对输出部分进行处理以生成系统输出。
可对系统输入序列中的每个系统输入执行过程200以针对该系统输入序列生成系统输出序列。
系统输入序列可是其期望的输出(即该系统对输入序列所生成的输出序列)是未知的序列。系统还可对训练数据集(即输入集,系统对其应预测的输出是已知的)中的输入执行过程200以便对系统的组件进行训练,即针对控制器神经网络的参数以及在从外部存储器擦除、写入、以及读取的过程中所使用的过程的任何附加参数确定训练值。因为系统的组件是完全可区分的,因此作为对控制器神经网络进行训练的常规机器学习训练技术的一部分(例如如果控制器神经网络是循环神经网络则为基于时间的反向传播(backpropagation through time)训练技术或者如果控制器神经网络是前馈神经网络则为随反向传播的随机梯度下降技术)可对从训练数据集所选的输入重复执行过程200。
图3是用于从外部存储器读取的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书所适当编程的存储器增强的神经网络系统(例如图1的存储器增强的神经网络系统100)可执行过程300。
系统接收神经网络输出的读取部分(步骤302)。在一些实施方式中,读取部分包括读密钥。在一些其它实施方式中,系统通过一个或多个投影层对读取部分进行处理以生成读密钥。读密钥是具有与存储在外部存储器中的向量相同维度的值的向量。
系统根据相似性度量(例如余弦相似性或欧几里德距离)来确定外部存储器中的与读密钥最相似的K个位置(步骤304)。通常,K是相对于外部存储器中的位置数目而言小的预定整数。例如,K可等于4或8,而外部存储器可具有从200数量级个位置到大约5万数量级个位置的任何地方。
在一些实施方式中,系统确定读密钥与外部存储器中的每个位置之间的相应相似性度量并且基于该相似性度量来选择K个最相似的位置。
然而,在一些其它实施方式中,为了通过避免确定所有相似性度量的需要来减少确定读权重所需的时间和计算资源,系统使用K个最近邻技术或者对于额外时间和计算资源节省而言使用近似最近邻技术来确定K个最相似位置。
特别地,在一些实施方式中,当查询存储器以确定K个最相似位置时,系统可使用近似神经网络索引(ANN)以在外部存储器上搜索K个最相似位置。这可通过对层级(或基于树的)结构中的数据点进行索引以经由基于比较的搜索来搜索附近点或者经由将点映射到桶(bucket)中的局部敏感散列(LSH)函数来完成。在以下文献中描述了可采用的基于树的结构的示例Muja,Marius and Lowe,David G.Scalable nearest neighbor algorithmsfor high dimensional data(高维数据的可扩展最近邻算法).Pattern Analysis andMachine Intelligence,IEEE Transactions on,36,2014。在以下文献中描述了可采用的LSH方法的示例:Piotr Indyk and Rajeev Motwani,Approximate nearest neighbors:towards removing the curse of dimensionality(近似最近邻:消除维数灾难),InProceedings of the thirtieth annual ACM symposium on Theory of computing(STOC'98).ACM,New York,NY,USA,604-613。
系统为外部存储器中的除K个位置之外的每个位置指派零读权重(步骤306)。也就是说,系统将对彼此位置的读权重设置为零。
系统从位置与读密钥之间的相似性度量来确定K个位置的读权重(步骤308)。
特别地,外部存储器M(i,·)中的第i位置的读权重可以满足:
其中d(k,M(j,·,t))是读密钥与存储在外部存储器中第j位置处的向量之间的相似性度量,f是微分单调变换,例如softmax,并且L是外部存储器中的位置总数。
然而,因此外部存储器中的除K个位置之外的所有位置的读权重已被设置为零,因此系统只需对K个位置中的每一个计算f(d(k,M(i,·,t)),即,并非对外部存储器中的所有位置计算,这降低了要确定读权重所需的计算时间和计算资源量。
一旦按照这种方式计算,读权重是稀疏的,即仅与K个最相似位置相对应的K个权重是非零的。
系统根据读权重从外部存储器读取数据以生成读数据向量(步骤310)。
具体地,系统通过根据最终读权重对存储在外部存储器中的每个位置处的向量进行组合来生成读数据向量。也就是说,系统计算存储在外部存储器中的每个向量的加权和,其中每个向量的权重是对应存储器位置(即存储向量的存储器位置)的最终读权重。
因为除了K个位置之外的每个位置的权重是零,因此系统可有效率地计算加权和,即因为系统在确定加权和时仅需考虑具有非零权重的K个位置。
图4是用于将数据写入到外部存储器以及从外部存储器擦除数据的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行的。例如,根据本说明书所适当编程的存储器增强的神经网络系统(例如图1的存储器增强的神经网络系统100)可执行过程400。
系统接收神经网络输出的写入部分(步骤402)。在一些实施方式中,神经网络输出的写入部分包括写向量、内插门参数、以及写入门参数。在一些其它实施方式中,系统通过一个或多个投影层对写入部分进行处理以生成写向量、内插门参数、以及写入门参数。
系统确定外部存储器中最近最少访问的位置(步骤404)。
特别地,系统保持外部存储器中的每个位置的相应使用值并且选择具有最小使用值的位置作为最近最少访问的位置。
在一些实施方式中,每个位置的相应使用值是先前时间步的该位置的权重的时间折扣总和。
在这些实施方式中,在时间步T的第i位置的使用值U(i)满足:
其中λ是恒定值,是在时间步t的位置i的写权重,并且/>是在时间步t的位置i的读权重。
在一些其它实施方式中,每个位置的使用值是自该位置的不可忽略的存储器访问以来的时间步数目。
在这些实施方式中,在时间步T处的给定位置的使用值是tmax–T,其中tmax是最大时间步,对于其在该时间步的该位置的读权重与在该时间步的该位置的写权重总和超过预定阈值(例如.001、.005、或者.010)。
系统根据在先前时间步的除最近最少访问位置之外的每个位置的读权重和内插门参数来确定该位置的相应初始写权重(步骤406)。因为如上所述先前时间步的读权重是稀疏的,因此系统可通过将除了在先前时间步具有非零读权重的K个位置之外的每个位置的初始写权重设置为零并且将K个位置中的每一个的初始写权重设置为乘以内插门参数的位置的先前读权重来确定这些初始写权重。
系统通过根据内插参数在先前时间步处的最近最少访问的位置的读权重与恒定值之间执行内插来确定该位置的初始写权重(步骤408)。然而,通常,最近最少访问位置的读权重将为零,即,因为否则该位置将具有指示其非常新近被访问的使用值,并且系统可将最近最少使用的位置的初始写权重设置为一减去内插参数。
系统通过将写入门参数应用于每个初始写权重来确定位置的最终写权重(步骤410)。通常,因为先前读权重是稀疏的,因此最终写权重也是写权重的稀疏集。特别地,写权重的稀疏集通常仅具有比读权重多一个的非零值。
系统根据最终写权重将写向量所定义的数据写入到外部存储器(步骤412)。也就是说,为了写入到外部存储器中的给定位置,系统使写向量乘以该位置的最终写权重以针对该位置确定已调整的写向量并且然后对当前存储在该位置的向量与该位置的已调整的写向量求和。然而,因为最终写权重是稀疏的,因此系统可有效地计算加权和,即因为系统在确定加权和时仅需考虑具有非零权重的位置。
系统从外部存储器中最近最少使用的位置擦除数据(步骤414)。在一些实施方式中,系统从当前存储在最近最少使用位置的向量中减去全1的向量,即每个值为1的向量。在一些其它实施方式中,系统以元素方式使当前存储在最近最少使用位置的向量乘以零向量。
在训练之后,系统可使用过程300和400以计算上有效率且时间上有效率的方式从外部存储器读取和擦除以及写入到外部存储器。在训练期间,使用过程300和400从外部存储器读取和擦除以及写入到外部存储器还可提高更新控制器神经网络的参数值所需的梯度反向传播的效率。特别是,因为仅读取和写入来自少数几个位置的数据,因此只需将少量非零梯度传递回控制器神经网络。这可导致改进的训练过程而不会使所训练的控制器神经网络的性能劣化。
根据该实施方式,系统可基于从控制器神经网络所接收到的输出来保持存储在外部存储器中的数据的各个程度的持久性。例如,在一些实施方式中,在系统已对每个系统输入序列完全处理之后,系统对外部存储器进行重置。作为另一示例,在一些实施方式中,存储在外部存储器中的数据持续保持在输入序列之间。也就是说,系统不会在系统输入序列之间从外部存储器删除任何数据。在这些实施方式中,在指派给系统的给定任务完成之后并且在系统开始不同机器学习任务之前系统可以对外部存储器进行重置。替选地,系统可以保持外部存储器而无需删除甚至在任务之间的值。因而,在对当前输入序列进行处理的同时,系统可以能够在对先前输入序列进行处理的同时或甚至在执行先前机器学习任务的同时充分利用存储在存储器中的数据。
本说明书中所描述的主题和功能操作的实施例可以在数字电子电路中、在有形实施的计算机软件或固件中、在计算机硬件中——包括在本说明书中所公开的结构及其结构等同物、或者在它们中一个或更多的组合中实现。本说明书中所描述的主题的实施例可是作为一个或多个计算机程序来实现的,即编码在有形非暂时性程序载体上的一个或多个计算机程序指令的模块以由数据处理装置来执行或者对数据处理装置的操作进行控制。替选地或另外地,程序指令可以被编码在例如机器生成的电信号、光信号、或电磁信号的人工生成的传播信号上,该信号被生成以对信息进行编码以用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备、或者它们中的一个或多个的组合。
术语“数据处理装置”是指数据处理硬件并且包含用于处理数据的所有类型的装置、设备、及机器,其包括例如可编程处理器、计算机、或者多个处理器或计算机。该装置还可以是或进一步包括例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路。除了硬件之外,该装置还能够可选地包括为计算机程序创建执行环境的代码(例如构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码)。
计算机程序(亦称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本、或者代码)可是以其包括编译或解释语言、声明性或过程语言的任何形式的编程语言来编写的,并且它可是以任何形式部署的,其包括作为独立程序或模块、组件、子例程、对象、或者适合在计算环境中使用的其它单元。计算机程序可以但不是必须与文件系统中的文件相对应。可将程序存储在容纳其它程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中、或者存储在多个协调文件(例如用于存储一个或多个模块、子程序、或部分代码的文件)中。计算机程序可被部署为在一个计算机上或在位于一个位置或跨多个位置分布且通过通信网络互连的多个计算机上执行。
在本说明书中所描述的过程和逻辑流程可是由用于执行一个或多个计算机程序的一个或多个可编程处理器来执行的以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程还可由专用逻辑电路(例如FPGA(可编程门阵列)或ASIC(专用集成电路))来执行,并且装置还可是作为所述专用逻辑电路实现的。
适于执行计算机程序的计算机包括——例如可基于通用或专用微处理器或这两者或者任何其他种类的中央处理单元。通常,中央处理单元将接收来自只读存储器或随机存取存储器或这两者的指令和数据。计算机的基本元件是用于执行或实施指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘、或光盘)或者可操作地与所述一个或多个大容量存储设备相耦合以接收来自所述一个或多个大容量存储设备的数据或将数据传送到所述一个或多个大容量存储设备或者这两者。然而,计算机不是必须具有这样的设备。此外,可将计算机嵌入到另一设备中,所述另一设备例如是移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或者便携式存储设备(例如通用串行总线(USB)闪存驱动),仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质、以及存储器设备,其包括例如:半导体存储器设备(例如EPROM、EEPROM、以及闪速存储器设备);磁盘(例如内部硬盘或可移动盘);磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或合并入专用逻辑电路中。
为了提供与用户的交互,在本说明书中所描述的主题可是在具有下述的计算机上实现的:例如CRT(阴极射线管)或LCD(液晶显示)监视器的用于向用户显示信息的显示设备;以及诸如鼠标或轨迹球的用户通过其可向计算机提供输入的键盘和指示设备。其它类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是例如视觉反馈、听觉反馈、或触觉反馈这样的任何形式的感官反馈;以及来自用户的输入可是以包括声学的、语音的、或触觉的输入的任何形式接收的。另外,计算机可通过将文档发送给用户所使用的设备以及从用户所使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器所接收到请求而将网页发送给用户客户端设备上的web浏览器。
在本说明书中所描述的主题的实施例可是在下述计算系统中实现的,所述计算系统包括:后端组件,例如作为数据服务器;或者中间件组件,例如应用服务器;或者前端组件,例如具有用户通过其可与在本说明书中所描述的主题的实现相交互的图形用户界面或Web浏览器的客户端计算机;或者一个或多个这样的后端、中间件、或前端组件的任何组合。系统的组件可通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端与服务器的关系借助于在相应计算机上运行的并且彼此具有客户端-服务器关系的计算机程序而生成。
虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是被解释为对特定于特定发明的特定实施例的特征的描述。本说明书在单独实施例的语境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的语境中描述的各个特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管如上特征可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从该组合中删去来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是不应当将这理解为需要以所示的特定顺序或者以连续顺序执行这样的操作或者需要执行所有说明的操作以实现期望结果。在某些情形下,多任务以及并行处理可能是有利的。此外,不应当将在上述实施方式中的各种系统模块和组件的分离理解为在所有实施方式中均需要这样的分离,而应当理解的是通常可将所述程序组件和系统一起集成在单个软件产品中或者封装成多个软件产品。
已对该主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围之内。例如,权利要求书中所记载的动作可以以不同的顺序执行并且仍然实现期望结果。作为一个示例,在附图中所描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种用于对系统输入序列进行处理以生成系统输出序列的存储器增强的神经网络系统,所述存储器增强的神经网络系统包括:
控制器神经网络,所述控制器神经网络被配置为在多个时间步中的每一个时间步处接收控制器神经网络输入并对所述控制器神经网络输入进行处理以生成该时间步的神经网络输出,其中,每个神经网络输出包括:
读密钥,以及
写向量;
在所述控制器神经网络外部的外部存储器;以及
稀疏存储器访问子系统,所述稀疏存储器访问子系统被配置为对于所述多个时间步中的每一个时间步:
使用所述读密钥生成包括所述外部存储器中的多个位置中的每一个位置的相应读权重的读权重稀疏集,其中所述读权重稀疏集仅对于所述外部存储器中的位置的第一真子集是非零的;
根据所述读权重稀疏集从所述外部存储器中的所述多个位置读取数据;
生成包括所述外部存储器中的所述多个位置中的每一个位置的相应写权重的写权重集,包括:
识别在先前时间步的所述多个位置的先前读权重稀疏集;
从所述多个位置确定最近最少访问的位置;
根据至少所述先前读权重稀疏集中的除所述最近最少访问的位置之外的每个位置的读权重确定该位置的相应读权重;以及
使用所述神经网络输出确定所述最近最少访问的位置的读权重,其中内插参数被包括在所述神经网络输出中,以及确定所述最近最少访问的位置的读权重包括根据所述内插参数执行所述先前时间步处的该位置的读权重与恒定值之间的内插;以及
根据所述写权重将所述写向量写入到所述外部存储器中的所述多个位置。
2.根据权利要求1所述的系统,其中,所述读权重稀疏集仅包括K个非零权重,其中K是等于四或八的小的预定整数。
3.根据权利要求1所述的系统,其中,所述稀疏存储器访问子系统被配置为通过以下操作来生成所述读权重稀疏集:
根据相似性度量来确定所述多个位置中的与所述读密钥最相似的K个位置,其中K是小于所述多个位置中的位置总数的整数;
将零读权重指派给所述多个位置中的除所述K个位置之外的每个位置;以及
从所述位置与所述读密钥之间的相似性度量来确定所述K个位置中的每一个位置的读权重。
4.根据权利要求3所述的系统,其中,所述稀疏存储器访问子系统被配置为使用K最近邻技术来确定所述K个位置。
5.根据权利要求3所述的系统,其中,所述稀疏存储器访问子系统被配置为使用近似最近邻技术来确定所述K个位置。
6.根据权利要求1所述的系统,其中,所述写权重集是仅包括用于所述多个位置的仅真子集的非零权重的权重稀疏集。
7.根据权利要求6所述的系统,其中,确定除所述最近最少访问的位置之外的每个位置的读权重包括:
根据在先前时间步的除所述最近最少访问的位置之外的每个位置的读权重以及所述内插参数来确定该位置的写权重。
8.根据权利要求7所述的系统,其中,所述稀疏存储器访问子系统被配置为通过以下操作来确定所述最近最少访问的位置:
保持所述多个位置中的每一个位置的相应使用值;以及
选择具有最小使用值的位置作为所述最近最少访问的位置。
9.根据权利要求8所述的系统,其中,所述多个位置中的每一个位置的相应使用值是在先前时间步上的该位置的写权重的时间折扣总和。
10.根据权利要求8所述的系统,其中,所述多个位置中的每一个位置的相应使用值是自该位置的读权重和该位置的写权重的总和超过预定阈值的最近时间步以来的时间步的数目。
11.根据权利要求7至10中的任何一项所述的系统,其中,所述稀疏存储器访问子系统进一步被配置为对于所述多个时间步中的每一个时间步:
擦除存储在所述最近最少访问的位置中的数据。
12.根据权利要求1至10中的任何一项所述的系统,其中,所述系统进一步包括一个或多个输出层,并且其中,所述一个或多个输出层被配置为对于所述多个时间步中的每一个时间步:
对该时间步的从所述外部存储器读取的数据进行处理以生成该时间步的系统输出。
13.根据权利要求1至10中的任何一项所述的系统,其中,所述多个时间步中的每一个时间步的神经网络输出进一步包括系统输出部分。
14.根据权利要求13所述的系统,其中,所述稀疏存储器访问子系统进一步被配置为:对于所述多个时间步中的每一个时间步,提供从所述系统输出部分取得的输出以作为该时间步的系统输出。
15.根据权利要求13所述的系统,其中,所述系统进一步包括一个或多个输出层,并且其中,所述一个或多个输出层被配置为对于所述多个时间步中的每一个时间步:
对从所述外部存储器读取的数据以及该时间步的系统输出部分进行处理以生成该时间步的系统输出。
16.根据权利要求1至10中的任何一项所述的系统,其中,每个时间步的控制器神经网络输入是所述系统输入序列中的相应系统输入。
17.根据权利要求1至10中的任何一项所述的系统,其中,所述稀疏存储器访问子系统进一步被配置为对于所述多个时间步中的每一个时间步:
对从所述外部存储器读取的数据与所述系统输入序列中的相应系统输入进行组合以生成后续时间步的后续神经网络输入。
18.一个或多个编码有指令的计算机可读存储介质,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实现根据权利要求1至17中的任何一项所述的存储器增强的神经网络系统。
19.一种用于对系统输入序列进行处理以生成系统输出序列的方法,所述方法包括在多个时间步中的每一个时间步处:
使用控制器神经网络对在所述时间步的神经网络输入进行处理,其中,所述控制器神经网络被配置为在所述多个时间步中的每一个时间步处接收控制器神经网络输入并对所述控制器神经网络输入进行处理以生成所述时间步的神经网络输出,其中,每个神经网络输出包括:
读密钥,以及
写向量;
使用所述时间步的神经网络输出中的所述读密钥生成包括外部存储器中的多个位置中的每一个位置的相应读权重的读权重稀疏集,其中所述外部存储器在所述控制器神经网络的外部,并且其中所述读权重稀疏集仅对于所述外部存储器中的位置的第一真子集是非零的;
根据所述读权重稀疏集从所述外部存储器中的所述多个位置读取数据;
生成包括所述外部存储器中的所述多个位置中的每一个位置的相应写权重的写权重集,包括:
识别在先前时间步的所述多个位置的先前读权重稀疏集;
从所述多个位置确定最近最少访问的位置;
根据至少所述先前读权重稀疏集中的除所述最近最少访问的位置之外的每个位置的读权重确定该位置的相应读权重;以及
使用所述神经网络输出确定所述最近最少访问的位置的读权重,其中内插参数被包括在所述神经网络输出中,以及确定所述最近最少访问的位置的读权重包括根据所述内插参数执行所述先前时间步处的该位置的读权重与恒定值之间的内插;以及
根据所述写权重将所述写向量写入到所述外部存储器中的所述多个位置。
20.一种用于对系统输入序列进行处理以生成系统输出序列的方法,所述方法包括权利要求1-17中任一项所述的神经网络系统中的稀疏存储器访问子系统被配置来执行的操作。
CN201780015350.7A 2016-02-05 2017-02-03 具有稀疏访问的外部存储器的增强神经网络 Active CN109313720B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662292169P 2016-02-05 2016-02-05
US62/292,169 2016-02-05
PCT/US2017/016415 WO2017136665A1 (en) 2016-02-05 2017-02-03 Augmenting neural networks with sparsely-accessed external memory

Publications (2)

Publication Number Publication Date
CN109313720A CN109313720A (zh) 2019-02-05
CN109313720B true CN109313720B (zh) 2023-07-18

Family

ID=58267159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780015350.7A Active CN109313720B (zh) 2016-02-05 2017-02-03 具有稀疏访问的外部存储器的增强神经网络

Country Status (4)

Country Link
US (1) US11151443B2 (zh)
EP (1) EP3295381B1 (zh)
CN (1) CN109313720B (zh)
WO (1) WO2017136665A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817784B2 (en) 2015-08-25 2020-10-27 Ryskamp Innovations, LLC Systems and methods for machine learning using a network of decision-making nodes
US11551028B2 (en) * 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11651223B2 (en) 2017-10-27 2023-05-16 Baidu Usa Llc Systems and methods for block-sparse recurrent neural networks
KR20190123540A (ko) 2018-04-24 2019-11-01 한국전자통신연구원 뉴럴 기억 컴퓨팅 시스템 및 방법
US11403521B2 (en) 2018-06-22 2022-08-02 Insilico Medicine Ip Limited Mutual information adversarial autoencoder
US11068773B2 (en) 2019-07-11 2021-07-20 Capital One Services, Llc Memory management in memory augmented deep neural networks
US11461645B2 (en) * 2019-12-02 2022-10-04 International Business Machines Corporation Initialization of memory networks
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729711A (en) * 1993-06-02 1998-03-17 Sharp Kabushiki Kaisha Data driven information processing system using address translation table to keep coherent cache and main memories and permitting parallel readings and writings
US6377941B1 (en) * 1998-11-26 2002-04-23 International Business Machines Corporation Implementing automatic learning according to the K nearest neighbor mode in artificial neural networks
CN1470022A (zh) * 2000-11-30 2004-01-21 仿神经皮层网络
US6882992B1 (en) * 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
CN103620624A (zh) * 2011-06-22 2014-03-05 高通股份有限公司 用于导致稀疏连通性的局部竞争性学习规则的方法和装置
WO2015112262A1 (en) * 2014-01-23 2015-07-30 Qualcomm Incorporated Configuring sparse neuronal networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457901B2 (en) * 2005-07-05 2008-11-25 Via Technologies, Inc. Microprocessor apparatus and method for enabling variable width data transfers
US10380481B2 (en) * 2015-10-08 2019-08-13 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs concurrent LSTM cell calculations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729711A (en) * 1993-06-02 1998-03-17 Sharp Kabushiki Kaisha Data driven information processing system using address translation table to keep coherent cache and main memories and permitting parallel readings and writings
US6377941B1 (en) * 1998-11-26 2002-04-23 International Business Machines Corporation Implementing automatic learning according to the K nearest neighbor mode in artificial neural networks
US6882992B1 (en) * 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
CN1470022A (zh) * 2000-11-30 2004-01-21 仿神经皮层网络
CN103620624A (zh) * 2011-06-22 2014-03-05 高通股份有限公司 用于导致稀疏连通性的局部竞争性学习规则的方法和装置
WO2015112262A1 (en) * 2014-01-23 2015-07-30 Qualcomm Incorporated Configuring sparse neuronal networks
TW201531965A (zh) * 2014-01-23 2015-08-16 Qualcomm Inc 配置用於實現低尖峰發放率的神經網路

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Neural Turing Machines;Alex Graves等;《Neural and Evolutionary Computing》;20141210;第1-26页第2.3节第3段、第3节第1-2段、第3.1节第1段、第3.2节第3段、图1-2 *
Sparse Convolutional Neural Networks;Baoyuan Liu等;《2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)》;20151015;第806-814页题目、摘要、第1节、第3节 *
The LRU–K Page Replacement Algorithm For Database Disk Buffering;Elizabeth J. O"Neil 等;《ACM SIGMOD Record》;19931231;1-19 *
基于稀疏RAM的N-tuple神经网络模型;彭宏京 等;《计算机科学》;20011105;61-67 *

Also Published As

Publication number Publication date
EP3295381A1 (en) 2018-03-21
EP3295381B1 (en) 2022-08-24
CN109313720A (zh) 2019-02-05
US20170228638A1 (en) 2017-08-10
US11151443B2 (en) 2021-10-19
WO2017136665A1 (en) 2017-08-10

Similar Documents

Publication Publication Date Title
CN109313720B (zh) 具有稀疏访问的外部存储器的增强神经网络
US20210117801A1 (en) Augmenting neural networks with external memory
US11797822B2 (en) Neural network having input and hidden layers of equal units
KR102170199B1 (ko) 비교 세트를 사용한 입력 예시들 분류
CN105719001B (zh) 使用散列的神经网络中的大规模分类
CN106776673B (zh) 多媒体文档概括
US11210579B2 (en) Augmenting neural networks with external memory
US20230289598A1 (en) Augmented recurrent neural network with external memory
US11010664B2 (en) Augmenting neural networks with hierarchical external memory
US10909451B2 (en) Apparatus and method for learning a model corresponding to time-series input data
KR20160084456A (ko) 머신 러닝에서의 가중치 생성
US11080594B2 (en) Augmenting neural networks with external memory using reinforcement learning
CN112789626A (zh) 可扩展和压缩的神经网络数据储存系统
Sun et al. Analyzing Cross-domain Transportation Big Data of New York City with Semi-supervised and Active Learning.
CN113785314A (zh) 使用标签猜测对机器学习模型进行半监督训练
CN108475346B (zh) 神经随机访问机器
CN115409111A (zh) 命名实体识别模型的训练方法和命名实体识别方法
CN115700555A (zh) 模型训练方法、预测方法、装置和电子设备
Kottke et al. A Stopping Criterion for Transductive Active Learning
US20210383226A1 (en) Cross-transformer neural network system for few-shot similarity determination and classification
Bahrami et al. " Explainable Trajectory Prediction
CN115335831A (zh) 用于训练稀疏神经网络同时保持稀疏性的系统和方法

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