尖峰网络的高效硬件实现的制作方法
【专利说明】尖峰网络的高效硬件实现
[0001] 根据35U. S. C. § 119的优先权要求 阳00引本申请要求W下申请的权益,于2013年5月21日递交的,题为"SpikeTime WindowingforImplementingSpike-TimingDependentPlasticity(STOP)(用于实现尖 峰定时依赖可塑性(STD巧的尖峰时间加窗)"的美国临时专利申请序列号61/825, 657,于 2013年 8 月6日递交的,题为"Sp;LkeTimeWindowingforImplementingSpike-Timing DependentPlasticity(STD巧(用于实现尖峰定时依赖可塑性(STD巧的尖峰时间加窗)" 的美国临时专利申请号61/862, 714,于2013年8月6日递交的,题为"ComputedSynapses 化rNeruomcxrphicSystem(用于神经元形态系统的计算突触)"的美国临时专利申请序列 号61/862, 741,于2013年 8 月6日递交的,题为"ImplementingDelaysbetweenNeurons inanArtificialNervousSystem(在人工神经系统中实现神经元之间的延迟)"的美国 临时专利申请序列号61/862, 734,于2014年1月28日递交的,题为"EfficientHardware ImplementationofSp;LkingNetworks(尖峰网络的高效硬件实现)"的美国临时专利申请 序列号61/932, 364,上述每个申请通过引用被完全纳入于此。
【背景技术】 柳的]领域
[0004] 本公开的某些方面一般设及人工神经系统,尤其设及用于尖峰神经网络的高效硬 件实现的方法和装置。
【背景技术】 阳0化]
[0006] 可包括一群互连的人工神经元(即神经处理单元)的人工神经网络是一种计算设 备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应的结 构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜 任的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因 此运样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用 中是特别有用的。
[0007] 一种类型的人工神经网络是尖峰(SP化ing)神经网络,其将时间概念W及神经元 状态和突触状态纳入到其工作模型中,由此提供了丰富的行为集,在神经网络中能从该行 为集涌现出计算功能。尖峰神经网络基于W下概念:神经元基于该神经元的状态在一个或 多个特定时间激发或"发放尖峰",并且该时间对于神经元功能而言是重要的。当神经元激 发时,它生成一尖峰,该尖峰行进至其他神经元,运些其他神经元继而可基于接收到该尖峰 的时间来调整它们的状态。换言之,信息可被编码在神经网络中的尖峰的相对或绝对定时 中。
[0008] 概述
[0009] 本公开的特定方面提供了用于W多个人工神经元来进行人工神系统操作的方法。 该方法一般包括同时操作人工神经系统中的多个超神经元处理单元来更新运些人工神经 元的状态,其中运些人工神经元的子集被指派给每个超神经元处理单元,W及将运些超神 经元处理单元与用于访问人工神经系统的突触权重和可塑性参数的存储器对接,其中存储 器的组织允许邮连存储器访问。
[0010] 本公开的某些方面提供了一种用于操作人工神经系统的装置。该装置一般包括配 置成同时操作人工神经系统中的多个超神经元处理单元来更新人工神经元的状态的第一 电路,其中运些人工神经元的子集被指派给每个超神经元处理单元,W及配置成将运些超 神经元处理单元与用于访问人工神经系统的突触权重和可塑性参数的存储器对接的第二 电路,其中存储器的组织允许邮连存储器访问。
[0011] 本公开的某些方面提供了一种用于操作人工神经系统的设备。该装置一般包括用 于同时操作人工神经系统中的多个超神经元处理单元来更新人工神经元的状态的装置,其 中运些人工神经元的子集被指派给每个超神经元处理单元,W及用于将运些超神经元处理 单元与用于访问人工神经系统的突触权重和可塑性参数的存储器对接的装置,其中存储器 的组织允许邮连存储器访问。
[0012] 本公开的某些方面提供了一种用于操作人工神经系统的计算机程序产品。该计算 机程序产品一般包括具有可执行W下操作的指令的非瞬态计算机可读介质(例如,存储设 备):同时操作人工神经系统中的多个超神经元处理单元来更新人工神经元的状态,其中 运些人工神经元的子集被指派给每个超神经元处理单元,W及将运些超神经元处理单元与 用于访问人工神经系统的突触权重和可塑性参数的存储器对接,其中存储器的组织允许邮 连存储器访问。
[0013] 附图简述
[0014] 为了能详细理解本公开的W上陈述的特征所用的方式,可参照各方面来对W上简 要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说 了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效 的方面。
[0015] 图1解说了根据本公开的某些方面的示例神经元网络。
[0016] 图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的示例处 理单元(神经元)。
[0017] 图3解说了根据本公开的某些方面的示例尖峰定时依赖可塑性(STD巧曲线。
[0018] 图4是根据本公开的某些方面的用于人工神经元的状态的示例曲线图,其解说用 于定义神经元的行为的正态相和负态相。
[0019] 图5解说了根据本公开的某些方面的人工神经系统的示例硬件实现。
[0020] 图6是根据本公开某些方面的用于操作人工神经系统的示例操作的流程图。
[0021] 图6A解说了能够执行图6中示出的操作的示例装置。
[0022] 图7解说了根据本公开的某些方面的用于使用通用处理器来操作人工神经系统 的示例实现。
[0023] 图8解说了根据本公开的某些方面的用于操作人工神经系统的示例实现,其中存 储器可与个体分布式处理单元对接。
[0024] 图9解说了根据本公开的某些方面的用于基于分布式存储器和分布式处理单元 来操作人工神经系统的示例实现。
[0025] 图10解说根据本公开的某些方面的神经网络的示例实现。
[0026] 详细描述
[0027] W下参照附图更全面地描述本公开的各个方面。然而,本公开可用许多不同形式 来实施并且不应解释为被限定于本公开通篇给出的任何具体结构或功能。相反,提供运些 方面是为了使得本公开将是透彻和完整的,并且其将向本领域技术人员完全传达本公开的 范围。基于本文中的教导,本领域技术人员应领会,本公开的范围旨在覆盖本文中所披露的 本公开的任何方面,不论其是与本公开的任何其他方面相独立地实现还是组合地实现的。 例如,可W使用本文所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范 围旨在覆盖使用作为本文中所阐述的本公开的各个方面的补充或者另外的其他结构、功能 性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何 方面可由权利要求的一个或多个元素来实施。
[002引措辞"示例性"在本文中用于表示"用作示例、实例或解说"。本文中描述为"示例 性"的任何方面不必被解释为优于或胜过其他方面。
[0029] 尽管本文描述了特定方面,但运些方面的众多变体和置换落在本公开的范围之 内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、 用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协 议,其中一些作为示例在附图W及W下对优选方面的描述中解说。详细描述和附图仅仅解 说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
[0030] 示例神经系统
[0031] 图1解说根据本公开的某些方面的具有多级神经元的示例神经系统100。神经系 统100可包括一级神经元102,该级神经元102通过突触连接网络104 (即,前馈连接)来连 接到另一级神经元106。为简单起见,图1中仅解说了两级神经元,但在典型的神经系统中 可存在更少或更多级神经元。应注意,一些神经元可通过侧向连接来连接至同层中的其他 神经元。此外,一些神经元可通过反馈连接来后向连接至先前层中的神经元。
[0032] 如图1所解说的,级102中的每一神经元可接收输入信号108,输入信号108可W 是由前一级(图1中未示出)的多个神经元所生成的。信号108可表示至级102的神经元 的输入(例如,输入电流)。此类输入可在神经元膜上累积W对膜电位进行充电。当膜电 位达到其阔值时,该神经元可激发并生成输出尖峰,该输出尖峰将被传递到下一级神经元 (例如,级106)。此类行为可在硬件和/或软件(包括模拟和数字实现)中进行仿真或模 拟。
[0033] 在生物学神经元中,在神经元激发时生成的输出尖峰被称为动作电位。该电信号 是相对迅速、瞬态、全有或全无的神经脉冲,其具有约为lOOmV的振幅和约为1ms的历时。在 具有一系列连通的神经元(例如,尖峰从图1中的一级神经元传递至另一级)的神经系统 的特定方面,每个动作电位都具有基本上相同的振幅和历时,因此该信号中的信息仅由尖 峰的频率和数目(或尖峰的时间)来表示,而不由振幅来表示。动作电位所携带的信息由 尖峰、发放尖峰的神经元、W及该尖峰相对于一个或多个其他尖峰的时间来决定。
[0034] 尖峰从一级神经元向另一级神经元的传递可通过突触连接(或简称"突触")网 络104来达成,如图1所解说的。突触104可从级102的神经元(相对于突触104而言的 突触前神经元)接收输出信号(即尖峰)。对于某些方面,运些信号可根据可调整的突触 权重(其中P是级102和106的神经元之间的突触连接的总数)来缩放。对 于其它方面,突触104可W不应用任何突触权重。此外,(经缩放的)信号可被组合W作为 级106中每个神经元(相对于突触104而言的突触后神经元)的输入信号。级106中的每 个神经元可基于对应的组合输入信号来生成输出尖峰110。随后可使用另一突触连接网络 (图1中未示出)将运些输出尖峰110传递到另一级神经元。
[0035] 生物学突触可被分类为电的或化学的。电突触主要用于发送兴奋性信号,而化学 突触可调停突触后神经元中的兴奋性或抑制性(超极化)动作,并且还可用于放大神经元 信号。兴奋性信号通常使膜电位去极化(即,相对于静息电位增大膜电位)。如果在某个时 段内接收到足够的兴奋性信号W使膜电位去极化到高于阔值,则在突触后神经元中发生动 作电位。相反,抑制性信号一般使膜电位超极化(即,降低膜电位)。抑制性信号如果足够 强则可抵消掉兴奋性信号之和并阻止膜电位到达阔值。除了抵消掉突触兴奋W外,突触抑 制还可对自发活跃神经元施加强力的控制。自发活动神经元是指在没有进一步输入的情况 下(例如,由于其动态或反馈而)发放尖峰的神经元。通过压制运些神经元中的动作电位 的自发生成,突触抑制可对神经元中的激发模式进行定形,运一般被称为雕刻。取决于期望 的行为,各种突触104可充当兴奋性或抑制性突触的任何组合。
[0036] 神经系统100可由通用处理器、数字信号处理器值SP)、专用集成电路(ASIC)、现 场可编程口阵列(FPGA)或其他可编程逻辑器件(PLD)、分立的口或晶体管逻辑、分立的硬 件组件、由处理器执行的软件模块、或其任何组合来仿真。神经系统100可用在大范围的应 用中,诸如图像和模式识别、机器学习、电机控制、及类似应用