分段线性神经元建模的制作方法

文档序号:14363918阅读:313来源:国知局
分段线性神经元建模的制作方法

本申请要求以下美国临时专利申请的权益:于2012年11月20日提交的题为“Piecewise Linear Neuron Modeling(分段线性神经元建模)”的美国临时专利申请S/N.61/728,360、于2012年12月7日提交的题为“Piecewise Linear Neuron Modeling(分段线性神经元建模)”的美国临时专利申请S/N.61/734,716、于2012年12月21日提交的题为“Piecewise Linear Neuron Modeling(分段线性神经元建模)”的美国临时专利申请S/N.61/740,633、以及于2013年1月25日提交的题为“Piecewise Linear Neuron Modeling(分段线性神经元建模)”的美国临时专利申请S/N.61/756,889,上述所有申请的全部内容通过援引纳入于此。

背景

技术领域

本公开的某些方面一般涉及人工神经系统,尤其涉及将神经元模型的非线性函数的至少一部分近似为分段线性函数,以及涉及在一个或多个人工神经元中使用结果所得的线性化神经元模型。



背景技术:

可包括一群互连的人工神经元(即神经元模型)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应结构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜任的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因此这样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用中是特别有用的。

一种类型的人工神经网络是尖峰(spiking)神经网络,其将时间概念以及神经元状态和突触状态纳入到其工作模型中,由此提供了丰富的行为集,在神经网络中能从该行为集涌现出计算功能。尖峰神经网络基于以下概念:神经元基于该神经元的状态在一个或多个特定时间激发或“发放尖峰”,并且该时间对于神经元功能而言是重要的。当神经元激发时,它生成一尖峰,该尖峰行进至其他神经元,这些其他神经元继而可基于接收到该尖峰的时间来调整它们的状态。换言之,信息可被编码在神经网络中的尖峰的相对或绝对定时中。

概述

本公开的某些方面一般涉及将神经元模型的非线性函数的至少一部分近似为分段线性函数。例如,还提供了用于在一个或多个人工神经元中实现结果所得的线性化神经元模型的方法和装置。本公开的某些方面一般涉及用于实现神经元模型的动态的共用且灵活的架构。设计目标包括对动态的低复杂度、准确的建模,以及实现任何神经元模型(一维、二维或更多维)的能力。分段线性近似提供了在这种架构内仅通过替代与各种神经元模型相关联的不同参数来改变神经元模型的简单方式。

本公开的某些方面提供了一种用于操作人工神经元的方法。该方法一般包括:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的装置。该装置一般包括处理系统和耦合到处理系统的存储器。处理系统一般被配置成:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的设备。该设备一般包括:用于确定人工神经元的第一状态位于第一区域内的装置;用于至少部分地基于第一组线性方程来确定人工神经元的第二状态的装置,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;用于确定人工神经元的第二状态位于第二区域内的装置;以及用于至少部分地基于第二组线性方程来确定人工神经元的第三状态的装置,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的计算机程序产品。该计算机程序产品一般包括计算机可读介质(例如,存储设备),该计算机可读介质具有可执行以进行以下操作的指令:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于在神经处理单元系统中实现多个神经元模型的组合的方法。该方法一般包括:将从多个神经元模型中选择的第一神经元模型的参数加载到第一神经处理单元中;至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态;以及至少部分地基于第一神经元模型的参数且基于第一状态来确定第一神经处理单元的第二状态。

本公开的某些方面提供了一种用于在神经处理单元系统中实现多个神经元模型的组合的装置。该装置一般包括处理系统和耦合到处理系统的存储器。该处理系统一般被配置成:将从多个神经元模型中选择的第一神经元模型的参数加载到第一神经处理单元中;至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态;以及至少部分地基于第一神经元模型的参数并且基于第一状态来确定第一神经处理单元的第二状态。

本公开的某些方面提供了一种用于在神经处理单元系统中实现多个神经元模型的组合的装置。该装置一般包括:用于将从多个神经元模型中选择的第一神经元模型的参数加载到第一神经处理单元中的装置;用于至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态的装置;以及用于至少部分地基于第一神经元模型的参数并且基于第一状态来确定第一神经处理单元的第二状态的装置。

本公开的某些方面提供了一种用于在神经处理单元系统中实现多个神经元模型的组合的计算机程序产品。该计算机程序产品一般包括(非瞬态)计算机可读介质,该计算机可读介质具有可执行以进行以下操作的指令:将从多个神经元模型中选择的第一神经元模型的参数加载到第一神经处理单元中;至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态;以及至少部分地基于第一神经元模型的参数并且基于第一状态来确定第一神经处理单元的第二状态。

本公开的某些方面提供了一种用于操作人工神经元的方法。该方法一般包括:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内,其中第一区域或第二区域中的至少一者是由两个或更多个维度来定义的;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程是至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的装置。该装置一般包括处理系统和耦合到处理系统的存储器。该处理系统一般被配置成:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内,其中第一区域或第二区域中的至少一者是由两个或更多个维度来定义的;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的装置。该装置一般包括:用于确定人工神经元的第一状态位于第一区域内的装置;用于至少部分地基于第一组线性方程来确定人工神经元的第二状态的装置,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;用于确定人工神经元的第二状态位于第二区域内的装置,其中第一区域或第二区域中的至少一个区域是由两个或更多个维度来定义的;以及用于至少部分地基于第二组线性方程来确定人工神经元的第三状态的装置,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

本公开的某些方面提供了一种用于操作人工神经元的计算机程序产品。该计算机程序产品一般包括计算机可读介质(例如,存储设备或其它非瞬态介质),该计算机可读介质具有可执行的以进行以下操作的指令:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内,其中第一区域或第二区域中的至少一个区域是由两个或更多个维度来定义的;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。

附图简述

为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。

图1解说了根据本公开的某些方面的示例神经元网络。

图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的示例处理单元(神经元)。

图3解说了根据本公开的某些方面的示例尖峰定时依赖可塑性(STDP)曲线。

图4是根据本公开的某些方面的用于人工神经元的状态的示例曲线图,其解说用于定义神经元的行为的正态相和负态相。

图5A和图5B根据本公开的某些方面分别解说了用于将非线性的时变简单模型与基于泰勒展开法的示例性线性化进行比较的膜电压v和恢复电流u相对于时间的示例曲线图。

图6A和图6B根据本公开的某些方面分别解说了Hunzinger Cold模型的阈下动态的膜电压v和恢复电流u相对于时间的示例曲线图。

图7根据本公开的某些方面解说了对分段线性神经元建模的各种方法的概述。

图8根据本公开的某些方面解说了具有就单个维度进行划分的分段线性神经元建模的示例。

图9根据本公开的某些方面解说了具有由2个维度定义的3个矩形区域的广义线性神经元建模的示例。

图10根据本公开的某些方面解说了具有由2个维度定义的4个区域的广义线性神经元建模的示例,其可以用于展示衰退、保持以及增长的阈下振荡行为。

图11根据本公开的某些方面解说了具有不同形状的5个区域的广义线性神经元建模的示例。

图12A-C根据本公开的某些方面分别解说了衰退、保持以及增长的阈下振荡的示例标绘。

图13根据本公开的某些方面解说了具有由2个维度定义的6个区域的广义线性神经元建模的示例,其可以用于多级衰退、多级保持及/或多级增长区域来支持逐渐衰退的、多个保持的振荡及/或阈下振荡的逐渐增加。

图14是根据本公开的某些方面的用于操作人工神经元的示例性操作的流程图。

图14A解说了能够执行图14中所示的操作的示例装置。

图15A-D根据本公开的某些方面解说了单个神经处理单元的共用且灵活的神经架构的实现,其中可以选择、加载、访问、添加、删除和/或更新神经元模型的参数。

图16是根据本公开的某些方面的用于在神经处理单元系统中实现多个神经元模型的组合的示例操作的流程图。

图16A解说了能够执行图16中示出的操作的示例装置。

图17解说了根据本公开的某些方面的用于使用通用处理器来确定人工神经元的状态的示例实现。

图18解说了根据本公开的某些方面的用于确定人工神经元的状态的示例实现,其中存储器可与个体分布式处理单元对接。

图19解说了根据本公开的某些方面的用于基于分布式存储器和分布式处理单元来确定人工神经元的状态的示例实现。

图20解说了根据本公开的某些方面的神经网络的示例实现。

图21是根据本公开的某些方面的分段线性神经元建模的示例实现的框图,其中根据当前状态的量化从存储器获取用于更新人工神经元状态的参数。

详细描述

以下参照附图更全面地描述本公开的各个方面。然而,本公开可用许多不同形式来实施并且不应解释为被限定于本公开通篇给出的任何具体结构或功能。确切而言,提供这些方面是为了使得本公开将是透彻和完整的,并且其将向本领域技术人员完全传达本公开的范围。基于本文中的教导,本领域技术人员应领会,本公开的范围旨在覆盖本文中所披露的本公开的任何方面,不论其是与本公开的任何其他方面相独立地还是组合地实现的。例如,可以使用本文所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为本文中所阐述的本公开的各种方面的补充或者另外的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。

措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。

尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。

示例神经系统

图1解说根据本公开的某些方面的具有多级神经元的示例神经系统100。神经系统100可包括一级神经元102,该级神经元102通过突触连接网络104(即,前馈连接)来连接到另一级神经元106。为简单起见,图1中仅解说了两级神经元,但在典型的神经系统中可存在更少或更多级神经元。应注意,一些神经元可通过侧向连接来连接至同层中的其他神经元。此外,一些神经元可通过反馈连接来后向连接至先前层中的神经元。

如图1所解说的,级102中的每一神经元可接收输入信号108,输入信号108可以是由前一级(图1中未示出)的多个神经元所生成的。信号108可表示至级102的神经元的输入(例如,输入电流)。此类输入可在神经元膜上累积以对膜电位进行充电。当膜电位达到其阈值时,该神经元可激发并生成输出尖峰,该输出尖峰将被传递到下一级神经元(例如,级106)。此类行为可在硬件和/或软件(包括模拟和数字实现)中进行仿真或模拟。

在生物学神经元中,在神经元激发时生成的输出尖峰被称为动作电位。该电信号是相对迅速、瞬态、全有或全无的神经脉冲,其具有约为100mV的振幅和约为1ms的历时。在具有一系列连通的神经元(例如,尖峰从图1中的一级神经元传递至另一级)的神经系统的特定方面,每个动作电位都具有基本上相同的振幅和历时,因此该信号中的信息仅由尖峰的频率和数目(或尖峰的时间)来表示,而不由振幅来表示。动作电位所携带的信息由尖峰、发放尖峰的神经元、以及该尖峰相对于一个或多个其他尖峰的时间来决定。

尖峰从一级神经元向另一级神经元的传递可通过突触连接(或简称“突触”)网络104来达成,如图1所解说的。突触104可从级102的神经元(相对于突触104而言的突触前神经元)接收输出信号(即尖峰)。对于某些方面,这些信号可根据可调节突触权重(其中P是级102和106的神经元之间的突触连接的总数)来缩放。对于其它方面,突触104可以不应用任何突触权重。此外,(经缩放的)信号可被组合以作为级106中每个神经元(相对于突触104而言的突触后神经元)的输入信号。级106中的每个神经元可基于对应的组合输入信号来生成输出尖峰110。随后可使用另一突触连接网络(图1中未示出)将这些输出尖峰110传递到另一级神经元。

生物学突触可被分类为电的或化学的。电突触主要用于发送兴奋性信号,而化学突触可调停突触后神经元中的兴奋性或抑制性(超极化)动作,并且还可用于放大神经元信号。兴奋性信号通常使膜电位去极化(即,相对于静息电位增大膜电位)。如果在某个时段内接收到足够的兴奋性信号以使膜电位去极化到高于阈值,则在突触后神经元中发生动作电位。相反,抑制性信号一般使膜电位超极化(即,降低膜电位)。抑制性信号如果足够强则可抵消掉兴奋性信号之和并阻止膜电位到达阈值。除了抵消掉突触兴奋以外,突触抑制还可对自发活动神经元施加强力的控制。自发活动神经元是指在没有进一步输入的情况下(例如,由于其动态或反馈而)发放尖峰的神经元。通过压制这些神经元中的动作电位的自发生成,突触抑制可对神经元中的激发模式进行整形,这一般被称为雕刻。取决于期望的行为,各种突触104可充当兴奋性或抑制性突触的任何组合。

神经系统100可由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件、由处理器执行的软件模块、或其任何组合来仿真。神经系统100可用在大范围的应用中,诸如图像和模式识别、机器学习、电机控制、及类似应用等。神经系统100中的每个神经元(或神经元模型)都可以被实现为神经元电路。被充电至发起输出尖峰的阈值的神经元膜可被实现为例如对流经其的电流进行积分的电容器。

在一方面,电容器作为神经元电路的电流积分器件可被除去,并且可使用较小的忆阻器元件来替代它。这种方法可应用于神经元电路中,以及其中大容量电容器被用作电流积分器的各种其他应用中。另外,每个突触104可基于忆阻器元件来实现,其中突触权重改变可与忆阻器电阻的变化有关。使用纳米特征尺寸的忆阻器,可显著地减小神经元电路和突触的面积,这可使得实现超大规模神经系统硬件实现变得可行。

对神经系统100进行仿真的神经处理器的功能性可取决于突触连接的权重,这些权重可控制神经元之间的连接的强度。突触权重可存储在非易失性存储器中以在掉电之后保留该处理器的功能性。在一方面,突触权重存储器可实现在与主神经处理器芯片分开的外部芯片上。突触权重存储器可与神经处理器芯片分开地封装成可更换的存储卡。这可向神经处理器提供多种多样的功能性,其中特定功能性可基于当前附连至神经处理器的存储卡中所存储的突触权重。

图2解说根据本公开某些方面的计算网络(例如,神经系统或神经网络)的处理单元(例如,人工神经元202)的示例200。例如,神经元202可对应于来自图1的级102和106的任一个神经元。神经元202可接收多个输入信号2041-204N(x1-xN),这些输入信号可以是该神经系统外部的信号、或是由同一神经系统的其他神经元所生成的信号、或这两者。输入信号可以是实数值或复数值的电流或电压。输入信号可包括具有定点或浮点表示的数值。可通过突触连接将这些输入信号递送到神经元202,这些突触连接根据可调节突触权重2061-206N(w1-wN)对这些信号进行缩放,其中N可以是神经元202的输入连接的总数。

神经元202可组合这些经缩放的输入信号,并且使用组合的经缩放的输入来生成输出信号208(即,信号y)。输出信号208可以是实数值或复数值的电流或电压。输出信号可包括具有定点或浮点表示的数值。随后该输出信号208可作为输入信号传递至同一神经系统的其他神经元、或作为输入信号传递至同一神经元202、或作为该神经系统的输出来传递。

处理单元(神经元)202可由电路来仿真,并且其输入和输出连接可由具有突触电路的导线来仿真。处理单元202、其输入和输出连接也可由软件代码来仿真。处理单元202还可由电路来仿真,而其输入和输出连接可由软件代码来仿真。在一方面,计算网络中的处理单元202可包括模拟电路。在另一方面,处理单元202可以包括数字电路。在又一方面,处理单元202可以包括具有模拟和数字组件两者的混合信号电路。计算网络可包括任何前述形式的处理单元。使用这样的处理单元的计算网络(神经系统或神经网络)可用在大范围的应用中,诸如图像和模式识别、机器学习、电机控制、及类似应用等。

在神经网络的训练过程期间,突触权重(例如,来自图1的权重和/或来自图2的权重2061-206N)可用随机值来初始化并根据学习规则而增大或减小。学习规则的某些示例是尖峰定时依赖型可塑性(STDP)学习规则、Hebb规则、Oja规则、Bienenstock-Copper-Munro(BCM)规则等。很多时候,这些权重可稳定至两个值(即,权重的双峰分布)之一。该效应可被用于减少每突触权重的位数、提高从/向存储突触权重的存储器读取和写入的速度、以及降低突触存储器的功耗。

突触类型

在神经网络的硬件和软件模型中,突触相关功能的处理可基于突触类型。突触类型可包括非可塑突触(对权重和延迟没有改变)、可塑突触(权重可改变)、结构化延迟可塑突触(权重和延迟可改变)、全可塑突触(权重、延迟和连通性可改变)、以及基于此的变型(例如,延迟可改变,但在权重或连通性方面没有改变)。此举的优点在于处理可以被细分。例如,非可塑突触不会要求执行可塑性功能(或等待此类功能完成)。类似地,延迟和权重可塑性可被细分成可一起或分开地、顺序地或并行地运作的操作。不同类型的突触对于适用的每一种不同的可塑性类型可具有不同的查找表或公式以及参数。因此,这些方法将针对该突触的类型来访问相关的表。

还进一步牵涉到以下事实:尖峰定时依赖型结构化可塑性可独立于突触可塑性地来执行。结构化可塑性即使在权重幅值没有改变的情况下(例如,如果权重已达最小或最大值、或者其由于某种其他原因而不改变)也可执行,因为结构化可塑性(即,延迟改变的量)可以是pre-post(突触前-突触后)尖峰时间差的直接函数。替换地,结构化可塑性可被设为权重改变量的函数或者可基于与权重或权重改变的界限有关的条件来设置。例如,突触延迟可仅在发生权重改变时或者在权重到达0的情况下才改变,但在权重达到最大极限时不改变。然而,具有独立函数以使得这些过程能被并行化从而减少存储器访问的次数和交叠可能是有利的。

突触可塑性的确定

神经元可塑性(或简称“可塑性”)是大脑中的神经元和神经网络响应于新的信息、感官刺激、发展、损坏、或机能障碍而改变其突触连接和行为的能力。可塑性对于生物学中的学习和记忆、以及对于计算神经元科学和神经网络是重要的。已经研究了各种形式的可塑性,诸如突触可塑性(例如,根据赫布理论)、尖峰定时依赖可塑性(STDP)、非突触可塑性、活动性依赖可塑性、结构化可塑性和自身稳态可塑性。

STDP是调节神经元(诸如大脑中的那些神经元)之间的突触连接的强度的学习过程。连接强度是基于特定神经元的输出与收到输入尖峰(即,动作电位)的相对定时来调节的。在STDP过程下,如果至某个神经元的输入尖峰平均而言倾向于紧挨在该神经元的输出尖峰之前发生,则可发生长期增强(LTP)。于是使得该特定输入在一定程度上更强。相反,如果输入尖峰平均而言倾向于紧接在输出尖峰之后发生,则可发生长期抑压(LTD)。于是使得该特定输入在一定程度上更弱,由此得名为“尖峰定时依赖可塑性”。因此,使得可能是突触后神经元兴奋原因的输入甚至更有可能在将来作出贡献,而使得不是突触后尖峰的原因的输入较不可能在将来作出贡献。该过程继续,直至初始连接集的子集保留,而所有其他连接的影响减轻至0或接近0。

由于神经元一般在其许多输入都在一短时段内发生(即,足以累积到引起输出)时产生输出尖峰,因此通常保留下来的输入子集包括倾向于在时间上相关的那些输入。另外,由于在输出尖峰之前发生的输入被加强,因此提供对相关性的最早充分累积指示的输入将最终变成至该神经元的最后输入。

STDP学习规则可因变于突触前神经元的尖峰时间tpre与突触后神经元的尖峰时间tpost之间的时间差(即,t=tpost-tpre)来有效地适配将该突触前神经元连接到该突触后神经元的突触的突触权重。STDP的典型公式是若该时间差为正(突触前神经元在突触后神经元之前激发)则增大突触权重(即,增强该突触),以及若该时间差为负(突触后神经元在突触前神经元之前激发)则减小突触权重(即,抑压该突触)。

在STDP过程中,突触权重随时间推移的改变可通常使用指数衰退来达成,如由下式给出的:

其中k+和k-分别是针对正和负时间差的时间常数,a+和a-是对应的比例缩放幅值,以及μ是可应用于正时间差和/或负时间差的偏移。

图3解说根据STDP,突触权重因变于突触前尖峰(pre)和突触后尖峰(post)的相对定时而改变的示例曲线图示图300。如果突触前神经元在突触后神经元之前激发,则可使对应的突触权重增大,如曲线图300的部分302中所解说的。该权重增大可被称为该突触的LTP。从曲线图部分302可观察到,LTP的量可因变于突触前和突触后尖峰时间之差而大致呈指数地下降。相反的激发次序可减小突触权重,如曲线图300的部分304中所解说的,从而导致该突触的LTD。

如图3中的曲线图300中所解说的,可向STDP曲线图的LTP(因果性)部分302应用负偏移μ。x轴的交越点306(y=0)可被配置成与最大时间滞后重合以考虑到来自层i-1的各因果性输入的相关性。在基于帧的输入(即,输入是按包括尖峰或脉冲的特定历时的帧的形式)的情形中,可计算偏移值μ以反映帧边界。该帧中的第一输入尖峰(脉冲)可被视为随时间衰退,要么如直接由突触后电位所建模地、要么以对神经状态的影响的形式而随时间衰退。如果该帧中的第二输入尖峰(脉冲)被视为与特定时间帧关联或相关,则该帧之前和之后的相关时间可通过偏移STDP曲线的一个或多个部分以使得相关时间中的值可以不同(例如,对于大于一个帧为负,而对于小于一个帧为正)来在该时间帧边界处被分开并在可塑性方面被不同地对待。例如,负偏移μ可被设为偏移LTP以使得曲线实际上在大于帧时间的pre-post时间处变得低于零并且它由此为LTD而非LTP的一部分。

神经元模型及操作

存在一些用于设计有用的尖峰发放神经元模型的一般原理。良好的神经元模型在以下两个计算态相(regime)方面可具有丰富的潜在行为:重合性检测和功能性计算。此外,良好的神经元模型应当具有允许时间编码的两个要素:输入的抵达时间影响输出时间,以及重合性检测能具有窄时间窗。最后,为了在计算上是有吸引力的,良好的神经元模型在连续时间上可具有闭合形式解,并且具有稳定的行为,包括在靠近吸引子和鞍点之处。换言之,有用的神经元模型是可实践且可被用于建模丰富的、现实的且生物学一致的行为并且可被用于对神经电路进行工程设计和反向工程两者的神经元模型。

神经元模型可取决于事件,诸如输入抵达、输出尖峰或其他事件,无论这些事件是内部的还是外部的。为了达成丰富的行为技能集合,能展现复杂行为的状态机可能是期望的。如果事件本身的发生在撇开输入贡献(若有)的情况下能影响状态机并约束在该事件之后的动态,则该系统的将来状态并非仅是状态和输入的函数,而是状态、事件和输入的函数。

在一方面,神经元n可被建模为尖峰带漏泄积分激发(LIF)神经元,其膜电压vn(t)由以下动态来支配:

其中α和β是参数,wm,n是将突触前神经元m连接至突触后神经元n的突触的突触权重,以及ym(t)是神经元m的尖峰输出,其可根据Δtm,n被延迟达树突或轴突延迟才抵达神经元n的胞体。

应注意,从建立了对突触后神经元的充分输入的时间直至突触后神经元实际上激发的时间之间存在延迟。在动态尖峰神经元模型(诸如Izhikevich简单模型)中,如果在去极化阈值vt与峰值尖峰电压vpeak之间有差量,则可引发时间延迟。例如,在该简单模型中,神经元胞体动态可由关于电压和恢复的微分方程对来支配,即:

其中v是膜电位,u是膜恢复变量,k是描述膜电位v的时间尺度的参数,a是描述恢复变量u的时间尺度的参数,b是描述恢复变量u对膜电位v的阈下波动的敏感度的参数,vr是膜静息电位,I是突触电流,以及C是膜的电容。根据该模型,神经元被定义为在v>vpeak时发放尖峰。

Hunzinger Cold模型

Hunzinger Cold神经元模型是能再现丰富多样的各种神经行为的最小双态相尖峰发放线性动态模型。该模型的一维或二维线性动态可具有两个态相,其中时间常数(以及耦合)可取决于态相。在阈下态相中,时间常数(按照惯例为负)表示漏泄通道动态,其一般作用于以生物学一致的线性方式使细胞返回到静息。阈上态相中的时间常数(按照惯例为正)反映抗漏泄通道动态,其一般驱动细胞发放尖峰,而同时在尖峰生成中引发等待时间。

如图4中所示,该模型的动态可被划分成两个(或更多个)态相。这些态相可被称为负态相402(也可互换地称为带漏泄积分激发(LIF)态相,勿与LIF神经元模型混淆)以及正态相404(也可互换地称为抗漏泄积分激发(ALIF)态相,勿与ALIF神经元模型混淆)。在负态相402中,状态在将来事件的时间趋向于静息(v-)。在该负态相中,该模型一般展现出时间输入检测性质及其他阈下行为。在正态相404中,状态趋向于尖峰发放事件(vs)。在该正态相中,该模型展现出计算性质,诸如取决于后续输入事件而引发发放尖峰的等待时间。在事件方面对动态进行公式化以及将动态分成这两个态相是该模型的基础特性。

线性双态相二维动态(对于状态v和u)可按照惯例定义为:

其中qρ和r是用于耦合的线性变换变量。

符号ρ在本文中用于标示动态态相,在讨论或表达具体态相的关系时,按照惯例对于负态相和正态相分别用符号“-”或“+”来替换符号ρ。

模型状态通过膜电位(电压)v和恢复电流u来定义。在基本形式中,态相在本质上是由模型状态来决定的。该精确和通用的定义存在一些细微却重要的方面,但目前考虑该模型在电压v高于阈值(v+)的情况下处于正态相404中,否则处于负态相402中。

态相依赖型时间常数包括负态相时间常数τ-和正态相时间常数τ+。恢复电流时间常数τu通常是与态相无关的。出于方便起见,负态相时间常数τ-通常被指定为反映衰退的负量,从而用于电压演变的相同表达式可用于正态相,在正态相中指数和τ+将一般为正,正如τu那样。

这两个状态元素的动态可在发生事件之际通过使状态偏离其零倾线(null-cline)的变换来耦合,其中变换变量为:

qρ=-τρβu-vρ (7)

r=δ(v+ε) (8)

其中δ、ε、β和v-、v+是参数。vρ的两个值是这两个态相的参考电压的基数。参数v-是负态相的基电压,并且膜电位在负态相中一般将朝向v-衰退。参数v+是正态相的基电压,并且膜电位在正态相中一般将趋向于背离v+

v和u的零倾线分别由变换变量qρ和r的负数给出。参数δ是控制u零倾线的斜率的缩放因子。参数ε通常被设为等于-v-。参数β是控制这两个态相中的v零倾线的斜率的电阻值。τρ时间常数参数不仅控制指数衰退,还单独地控制每个态相中的零倾线斜率。

该模型被定义为在电压v达值vS时发放尖峰。随后,状态通常在发生复位事件(其在技术上可以与尖峰事件完全相同)时被复位:

u=u+Δu (10)

其中和Δu是参数。复位电压通常被设为v-

依照瞬时耦合的原理,闭合形式解不仅对于状态是可能的(且具有单个指数项),而且对于到达特定状态所需的时间也是可能的。闭合形式状态解为:

因此,模型状态可仅在发生事件之际被更新,诸如基于输入(突触前尖峰)或输出(突触后尖峰)而被更新。还可在任何特定时间(无论是否有输入或输出)执行操作。

而且,依照瞬时耦合原理,可以预计突触后尖峰的时间,因此到达特定状态的时间可提前被确定而无需迭代技术或数值方法(例如,欧拉数值方法)。给定了先前电压状态v0,直至到达电压状态vf之前的时间延迟由下式给出:

如果尖峰被定义为发生在电压状态v到达vS的时间,则从电压处于给定状态v的时间起测量的直至发生尖峰前的时间量或即相对延迟的闭合形式解为:

其中通常被设为参数v+,但其他变型可以是可能的。

模型动态的以上定义取决于该模型是在正态相还是负态相中。如所提及的,耦合和态相ρ可基于事件来计算。出于状态传播的目的,态相和耦合(变换)变量可基于在上一个(先前)事件的时间的状态来定义。出于随后预计尖峰输出时间的目的,态相和耦合变量可基于在下一个(当前)事件的时间的状态来定义。

存在对该Cold模型、以及在时间上执行模拟、仿真、或建模的若干可能实现。这包括例如事件-更新、步点-事件更新、以及步点-更新模式。事件更新是其中基于事件或“事件更新”(在特定时刻)来更新状态的更新。步点更新是以间隔(例如,1ms)来更新模型的情况下的更新。这不一定要求迭代方法或数值方法。通过仅在事件发生于步点处或步点间的情况下才更新模型或即通过“步点-事件”更新,基于事件的实现以有限的时间分辨率在基于步点的模拟器中实现也是可能的。

神经编码

有用的神经网络模型(诸如包括图1的人工神经元102、106的神经网络模型)可经由各种合适的神经编码方案(诸如重合性编码、时间编码或速率编码)中的任一种来编码信息。在重合性编码中,信息被编码在神经元集群的动作电位(尖峰发放活动性)的重合性(或时间邻近性)中。在时间编码中,神经元通过对动作电位(即,尖峰)的精确定时(无论是以绝对时间还是相对时间)来编码信息。信息由此可被编码在一群神经元间的相对尖峰定时中。相反,速率编码涉及将神经信息编码在激发率或集群激发率中。

如果神经元模型能执行时间编码,则其也能执行速率编码(因为速率正好是定时或尖峰间间隔的函数)。为了提供时间编码,良好的神经元模型应当具有两个要素:(1)输入的抵达时间影响输出时间;以及(2)重合性检测能具有窄时间窗。连接延迟提供了将重合性检测扩展到时间模式解码的一种手段,因为通过恰适地延迟时间模式的元素,可使这些元素达成定时重合性。

抵达时间

在良好的神经元模型中,输入的抵达时间应当对输出时间有影响。突触输入——无论是狄拉克δ函数还是经定形的突触后电位(PSP)、无论是兴奋性的(EPSP)还是抑制性的(IPSP)——具有抵达时间(例如,δ函数的时间或者阶跃或其他输入函数的开始或峰值的时间),其可被称为输入时间。神经元输出(即,尖峰)具有发生时间(无论其是在何处(例如在胞体处、在沿轴突的一点处、或在轴突末端处)测量的),其可被称为输出时间。该输出时间可以是尖峰的峰值时间、尖峰的开始、或与输出波形有关的任何其他时间。普适原理是输出时间取决于输入时间。

乍看起来可能认为所有神经元模型都遵循该原理,但一般并不是这样。例如,基于速率的模型不具有此特征。许多尖峰模型一般也并不遵循这一点。带漏泄积分激发(LIF)模型在有额外输入(超过阈值)的情况下并不会更快一点地激发。此外,在以非常高的定时分辨率来建模的情况下或许遵循这一点的模型在定时分辨率受限(诸如限于1ms步长)时通常将不会遵循这一点。

输入

神经元模型的输入可包括狄拉克δ函数,诸如电流形式的输入、或基于电导率的输入。在后一种情形中,对神经元状态的贡献可以是连续的或状态依赖型的。

示例分段线性神经元建模

数十年来都在寻找和研究神经元动态的数学模型。已经提出了各种神经元模型,其中这些模型的复杂度及与其生物对应物匹配的准确性各有不同。从根本上说,所有的神经元模型试图捕捉由于多种离子通道的相互作用而引起的细胞膜电压的非线性行为,并且具有共同的起点,即Hodgkin-Huxley在20世纪50年代的突破性工作所提供的数学描述。

多年来,神经学家们在很大程度上向二维神经元模型集中,该二维神经元模型似乎在对他们寻求建模的生物细胞的测得行为进行复制的能力与可以对其进行分析和仿真的容易程度和速度之间提供了良好折衷。下面描述了全部经由一对微分方程来构建的最常见的二维模型。

然而,常规神经元模型实现缺乏灵活性。通常,人工神经元的神经元模型的实现例如是基于预先选择特定的神经元模型。这种方法的缺点在于:实现完全不同的或者甚至稍微修改的神经元模型的难度。

本公开的某些方面利用了以下事实:各种动态神经元模型的微分方程可以被视为等效的,但是如上所述,就非线性函数F(v)而言,试图捕捉细胞膜电压的非线性行为。在这种认识的情况下,一种方法包括:以有限量化区间对用于对神经元动态进行建模的微分方程中的非线性函数进行线性化,以提供分段线性近似。这种方法的优点包括能够相对容易地并且使用一般数学框架来获得连续时间或离散时间的动态的解,从而可以对任何神经元模型进行分析和仿真。这些解提供了与给定神经元模型的每个量化区间相对应的参数,从而使得本公开的某些方面的不同神经元模型的实现可能涉及对参数的简单替换。

本公开的某些方面将该分段线性化方法应用到包括突触电流的函数。这种更广义的方法得到系统矩阵,该系统矩阵是时变突触电导(以及其它变量)的函数。本公开首先研究结果所得的分段线性时变系统的一些近似解。接着,本公开研究通过在给定时间区间内由常数近似时变电导来从先前的时变系统获得的分段线性时不变(LTI)系统。这种更精确的方法(具有包括突触电流的函数)导致具有大动态范围的系统矩阵将被量化过程覆盖,并且因此导致用于存储各种预先计算出的矩阵的相对较大存储器需求。该方法的好处在于对原始非线性时变系统的真正动态的更准确的近似。还提供了通过在动态范围的一部分上计算相关矩阵而不是存储相关矩阵来减轻存储器需求的方法。

本公开的某些方面提供了一种用于实现支持任何一维、二维或更高维的神经元模型的通用架构的手段。使用这种灵活架构,可以根据需要来执行和替代各种适合的神经元模型中的任一种。例如,神经元模型可以包括以下模型中的至少一种:Izhikevich简单模型、指数积分激发(EIF)模型、FitzHugh-Nagumo模型、四次模型、或如上所述并且在2012年5月30日提交的题为“Dynamical Event Neuron and Synapse Models for Learning Spiking Neural Networks(用于学习尖峰神经网络的动态事件神经元和突触模型)”的美国专利申请S/N.13/483,811[代理人案卷号122024](其通过援引纳入于此)中描述的Hunzinger Cold模型。可以使用本文中描述的分段线性近似来实现这些神经元模型。

引言

以描述对神经元动态进行建模的微分方程开始。虽然本描述关注二维神经元模型,但是也可以将该方法扩展到更高维的模型或者应用于一维模型。

上面的等式定性地描述了人工神经元的动态(为了标示简化,省略了变量的时间依赖性)。这些等式是Hodgkin-Huxley四维模型到由变量v和u表示的二维模型的简化结果。变量v捕捉神经元膜电压和钠激活的行为,而u表示试图捕捉钾激活和钠失活的较慢行为的“适应”或“恢复”变量,从而将Hodgkin-Huxley的四个变量减少到两个变量。等式(15)中的变量I表示输入电流。更通用的二维模型可以是以下形式:

其中这两个微分方程皆可以包含非线性项。这里,重点在于诸如等式(15)和(16)描述的那些模型,但是贯穿其中所开发的相同方法也可以应用于上面的描述。

从根本上来讲,文献中已建议的最流行的神经元模型在等式(15)中的函数F(v)的选择上有所不同。一些示例包括由Izhikevich(也被称为简单模型)所提出的二次函数:

F(v)=k(v-vr)(v-vt) (17)

线性加指数函数,按照Brette和Gerstner:

表示FitzHugh-Nagumo模型的线性加三次函数

按照Touboul和Gerstner,线性加四次项,被称为四次模型

F(v)=2a·v+v4 (20)

以及最后可以被称为“固有电导”模型,被定义为:

F(v)=G(v)·v+p(v) (21)

其中G(v)是分段常数函数(以电导为单位)并且p(v)也是分段常数函数(以电流为单位)。当G(v)和p(v)仅在两个区间上是分段常数时(如在上述Hunzinger Cold模型中),获得固有电导模型的最简单形式,对此,F(v)呈现以下形式:

因为除了等式(15)和(16)给出的描述之外还给出了重置条件,所以上面的所有模型(除了FitzHugh-Nagumo模型之外)被称为二维混合模型。例如,因为一旦跨越了电压阈值,变量v就将增长到无穷,所以在这些模型中提供了重置条件。因而可以使用以下重置条件:

若v>vpeak,则v→vr且u→u+d (23)

换句话说,当电压v超过尖峰发放阈值vpeak(或者,对于某些方面来说,确定电压将超过vpeak)时,则将电压重置为静息值vr,并且将恢复变量u重置为与当前值加常数d相等的值。对于某些方面来说,可以将u重置(reset)为预定的常数值(ureset),而不是u+d。根据某些方面,重置条件可以响应于控制信号的激活或接收而发生。在混合模型中的重置条件丰富了二维动态系统的可能行为。

更一般地,通过突触电流ISYN(t)和通用电流Iext(t)的组合来对输入电流I(t)进行建模。突触电流具有以下形式:

在等式(24)中,gi(t)指示特定信道(第i个信道)的依赖于时间的电导,并且Ei指示针对该通道的逆转电位。虽然上述形式的突触电流足以描述实质上线性的电流-电压关系,但是在某些情况下(例如,N-甲基-D-天冬氨酸(NMDA)通道),电导还是突触后膜电压的函数。在这种情况下,等式(24)呈现更加复杂的形式,即

INMDA(t)=gNMDA(t)·h(v)[ENMDA-v(t)] (25)

其中函数h(v)捕捉对突触后电压的依赖性。将函数h(v)建模成:

h(v)≡1/(1+βe-α·v) (26)

其中参数α和β取以下值,例如:α=0.062且β=1/3.57。

因此,最一般地,可以将多达L个不同的突触通道建模成:

其中

此外,可以通过简单指数函数、阿尔法(α)函数或者通过差分指数函数来对依赖于时间的电导gi(t)进行建模。在具有时间常数τ的简单衰退指数(其中θ(t)是Heaviside阶跃函数)的情况下,得到

在阿尔法函数的情况下,得到

在差分指数函数的情况下,指数具有不同的上升(rise)和衰退(decay)时间常数,得到

常数包含正规化因子,从而使得峰值等于如下gi

其中

在接下来的部分中,探讨了对动态系统的解的近似。由于系统是非线性的,所以不能找到精确的解。因此,当提到“精确的”解或者与“精确的”解相比较时(如示例1中),意思是获得的数值解(例如,Runge-Kutta),但具有高精度。

公式化并推导

在进行推导之前,介绍了一些定义和符号约定。此后,黑体大写字母表示矩阵,而黑体小写字母表示向量。二维状态向量x可以被定义为

第一状态变量是膜电压v,而第二状态变量是恢复变量u。现在针对最一般的情况,如下明确地重写等式(15)和(16):

因此,在最一般的情况下,处理的是非线性时变(NLTV)二维动态系统,如图7中的702处所示。在下文中,在706处通过分段线性时变(pLTV)系统首先对此类系统进行近似,并且相继将其进一步近似为:(1)在710处的具有依赖于时间区间的常系数的分段线性时不变系统(pLTI)或(2)在714处的具有独立于时间区间的常系数的pLTI。

分段线性时变系统

首先将时间轴t∈[0,∞]划分为任意非重迭的时间区间,即

{t∈[Tn,Tn+1],n=0,1,2,3,...} (37)

在每个时间区间(例如,第n个区间)内,神经元行为由线性时变(LTV)系统来近似,该线性时变系统的参数是在区间的开始处(例如,在时刻t=Tn处)从人工神经元的状态获得的。为了开发这种近似,首先定义

并且等式(35)和(36)的系统变成

下一步,使用在区间t∈[Tn,Tn+1]上的近似仿射线性表达式来对函数Γ(v,t)进行近似。该近似中的系数是电压在时刻Tn的函数。为了在明确时简化符号,表示从而使得

这些近似的一些示例包括泰勒展开法、平均斜率法、一阶线性内插法以及最小化Lp近似误差的最优线性内插法。对于泰勒展开法:

且 (41a)

b1[vn,t]≡Γ(vn,t)-a11[vn,t]vn

在平均斜率法中,对于给定的电压步长Δvn,平均斜率被计算如下:

且 (41b)

b1[vn,t]≡Γ(vn,t)-a11[vn,t]vn

在一阶线性内插法中,将电压轴划分成区间,v∈[Vk,Vk+1],k=0,1,2,...,其中Vk≤v(Tn)≤Vk+1。则

且 (41c)

b1[vn,t]≡Γ(vn,t)-a11[vn,t]vn

在最小化Lp近似误差的最优线性内插法中,如之前那样,将电压轴划分为区间,v∈[Vk,Vk+1],k=0,1,2,...。然而,线性近似

被设计为使关于基于Lp平均数的原始函数的线性近似误差最小化。在区间v∈[Vk,Vk+1]上的近似误差可以被定义为

其中

基于等式(41),用等式(39)和(40)描述的LTV系统现在可以被表示如下:

更简洁地,有如下矩阵方程:

其中a12=-1C,a21=ab,a22=-a,并且b2=-abvr

对于t∈[Tn,Tn+1],上面LTV系统的解可以被表示为

其中转换矩阵Φ(t,Tn)是由Peano-Baker方程给出的,即

针对一些特定的情况,对等式(47)中给出的级数进行了简化,例如:

(i)A(vn,t)是常数并且等于An。则Φ(t,Tn)采用矩阵指数的常见形式,即

其中矩阵A的矩阵指数被定义为

(ii)更一般的情况是当A(vn,t)和针对任何t进行互换时。则

以下条件中的任一个条件保证满足上面的互换性质:(a)A(vn,t)是常数;(b)A(vn,t)=a(t)M,其中a(t)是标量函数并且M是常数矩阵;或者(c)A(vn,t)=Σai(t)Mi,其中ai(t)是标量函数,并且MiMj=MjMi是对于任何i、j进行互换的常数矩阵。

(iii)稍微更加普遍的情况是,当针对所有t∈[Tn,Tn+1]时,对于某些整数k≥0和s≥1,某些固定的时刻tc≤τ≤t以及某些固定的矩阵Ak(vn,τ,tc)和Ak+s(vn,τ,tc),可以将矩阵A(vn,t)表示为两个部分之和:

时刻和矩阵在以下意义上是“固定的”:其独立于时间参数t∈[Tn,Tn+1]。可能最有用的示例是当k=0并且s=1或2时。在任何情况下,若上面表达式中的第二项(即,涉及矩阵Ak+s(vn,τ,tc)的项)比针对所有t∈[Tn,Tn+1]的第一项小得多,则证明矩阵Φ(t,Tn)可以由以下无穷级数来近似:

其中定义了复数变量z和实数值参数t和τ的函数Gm,k,s(z,t,τ)。函数Gm,k,s(z,t,τ)在z=0处是解析的,并且由下式给出:

其中符号<f(z)>表示f(z)的解析分量。在上面的等式中,通过用指数项的幂级数表示来代替指数项、计算乘积和导数、随后丢掉与z的负幂相关联的项,来获得解析分量。

针对时变矩阵A(vn,t)的所有其它情况,可以找到对等式(47)的转换矩阵的近似,随后可以获得等式(46)的近似解。

分段线性时不变系统

通过将等式(44)描述的线性时变(LTV)系统变换成线性时不变(LTI)系统,可以获得进一步的简化。为了做到这一点,系数a11[vn,t]在区间t∈[Tn,Tn+1]上保持恒定。可以通过多种方式获得该结果,下面描述其中几种方式。针对上面描述的仿射线性近似中的每一个,对于任何区间t∈[Tn,Tn+1],常系数可以被定义如下:

a11[vn,t]≡a11[vn,Tn]

或者,若下一时间步长Tn+1的值在时刻t=Tn是已知的,则针对任何区间t∈[Tn,Tn+1],系数a11[vn,t]的平均值可以被计算如下:

为了阐明泰勒展开法的示例,通过使用下式来获得LTI系统:

或者

可以对上述方法中的任一种方法应用相同的求平均值方法。现在通过下面的矩阵方程来描述LTI系统:

解可以被表示为

其中转换矩阵Φ(t,Tn)现在是矩阵指数

对于其中Tn=nT(即,长度为T的固定并均匀的时间区间)的情况,等式(49)变成

总之,初始的通用模型是非线性的时变二维系统。通过在给定的时间区间上将线性近似应用到非线性函数Γ(v,t),首先将该非线性系统变换成线性时变系统。通过采用时变系统矩阵A(vn,t)并且在相同的给定区间上用常数矩阵An来逼近时变系统矩阵A(vn,t),将时变系统进一步转换成线性时不变(LTI)系统。

由于已经阐述了问题并且已经提出了对非线性函数的多个可能的仿射线性近似,则现在关注的是由等式(49)和(51)给出的在区间t∈[Tn,Tn+1]上的LTI系统的解及其实现。进一步简化等式(49)中的符号并且表示A(vn,Tn)=An

并且矩阵A(vn,Tn)和向量b(vn,t)由下式提供:

其中通过上面描述的方法中的任何一种方法来计算系数a11[vn,Tn]和b1[vn,t]。

下一步,推导出对泰勒展开法的解(相应地,后面其它方法中的任一种方法的解)。在这种情况下,具有

且b1[vn,t]≡Γ(vn,t)-a11[vn,Tn]vn (53)

并且

简化表示:

将向量b(vn,t)如下表示是方便的:

其中

随后可以将等式(52)表示为:

可以用闭合形式来求解等式(57)的第一积分,从而得到

其中I是2x2单位矩阵。

现在可以将等式(52)表示如下:

若外部电流是使得无法获得等式(59)的最后一个积分的闭合形式的表达式,则可能不得不对其进行近似。近似的一个示例是零保持,即

在这种情况下,针对任意区间t∈[Tn,Tn+1]的闭合形式解采用以下形式:

等式(61)中的关键部分是矩阵指数其可以被表示如下。令λn1和λn2是2x2矩阵An的特征值。则

对于λn1≠λn2实数 (62)

对于λn1=λn2实数 (63)

对于λn1=λn2*=α+iβ β>0 (64)

其中λn1和λn2是特征方程det(An-λI)=0的解。

等式(62)-(64)提供了针对矩阵指数的明确表达式。或者,大量的系数数值算法可用于计算矩阵指数。因此,通过任何一种方法来确定系统在时刻t=Tn+1的状态是可行的。但在硬件实现中,使用如接下来描述的不同方法可能是有利的。

首先,注意在矩阵An中,仅有一个系数a11[vn,Tn]随着系统演变而发生变化;其余的三个系数始终保持不变。例如,系数由等式(56)给出。示例的高效程序如下:(1)每次对第一状态变量(即,膜电压vn)进行量化从而变到有限数量的值,并且(2)使用预先计算出的函数F′(vn),h′i(vn)以及hi(vn)的值来为查找表编索引。类似地,也可以对时刻进行量化,并且可以将gi(Tn)的预先计算出的值存储在查找表中。现在可以使用检索到的值经由等式(56)来求a11[vn,Tn]的值,并且将结果量化为有限数量的值Q(a11[vn,Tn])。

类似地,可以对ΔTn的多个选择进行预选择,并且可以用Q(a11[vn,Tn])和ΔTn来对等式(62)中出现的矩阵的矩阵指数和逆矩阵进行预计算和处理。

自适应和固定的时间步长

在前面的部分中,推导出了在任意时刻的针对LTI系统的状态的表达式。下面更详细地描述了其中自适应地选择时间步长的情形以及同步系统的较简单的情形(其中时刻是均匀的,并且具有固定并预先确定的步长大小ΔTn=T)。

自适应策略可以有利于关于复杂度和精度两个方面。例如,当状态正在缓慢地演变时,可以选择间隔更远(即,较大ΔTn)的时间步长,从而提高计算的速度。相反,当例如神经元模型靠近尖峰发放事件时,可以使时间步长较小,从而提高计算尖峰时间的精度。接着,描述了用于选择时间步长的可能算法。

如等式(63)所示,系统演变的时间常数与矩阵An的特征值成反比。特别地,若特征值接近于零,则时间常数较大,并且系统缓慢地演变。相反,若特征值中的至少一个特征值变大(并且可能为正),则系统非常迅速地演变。完成上述任务的用于选择时间步长的一个示例算法如下:

在等式(65)中,λn,max表示矩阵An的最大特征值(就幅度而言),而ΔTmax和μn是可配置的参数。这保证以下关系成立:

λn,max≤|a11[v(Tn),Tn]|+|a22|,Tn+1-Tn≤ΔTmax (66)

并且对于任意区间t∈[Tn,Tn+1]来说

||x(t)||≤μn||x(Tn)|| (67)

接下来,针对大小为T的固定并均匀的时间步长的重要情形,对前面部分的通用解进行专门化。以等式(61)开始,得到

示例1:Izhikevich(简单)模型的泰勒展开

在该示例中,基于泰勒展开法,针对简单模型和线性化求等式(68)的值。为了使公式有所简化,假定不存在外部电流。

首先,从等式(56)开始推导出简单模型的泰勒展开(即,F(v)=k(v-vr)(v-vt))的系数。假如

则得到

对于非NMDA突触通道来说,等式(70)和(71)简化为

则现在等式(68)变成

其中

再一次对于非NMDA突触电流来说,等式(74)简化为

其中

此外,可以以封闭形式来求解等式(74)和(75)中的积分。例如,若

为了完成该示例,针对具有参数k=0.7、C=100、a=0.03、b=-2、vr=-60mV以及vt=-40mV的慢兴奋神经元模型以及具有参数τAMPA=5ms、EAMPA=0mV和gAMPA=5的单个指数AMPA通道,用T=1ms对等式(75)的准确性进行测试。如图5A和图5B的膜电位标绘500和恢复电流标绘520中分别所示,基于等式(75)的线性化准确地跟踪了基于非线性的时变模型的标绘。

示例2:Hunzinger Cold模型的阈下动态

开发了另一个示例以致力于检查被称为Hunzinger Cold模型的简单固有电导模型的阈下动态。在这个示例中,假定没有突触电流,并且假定简单但有趣的脉冲外部电流的情况。

在Hunzinger Cold模型中(见上面的等式(22)),当膜电压低于阈值时,矩阵An为常数并且等于A-

若第一状态变量被定义为膜电压减去参考电压,则推导可以被进一步简化。在这种定义的情况下,所有常数项等于0,并且等式(61)被简化为

此外,若假定外部电流是在时刻Tn、具有幅度I的狄拉克δ函数,即,Iext(t)=Iδ(t-Tn),则

注意脉冲输入与初始条件对系统具有相同的效果。若特征值是实数并且λ1≠λ2,则可以将等式(62)代入等式(78)以获得下面的针对v<vt的连续时间解:

通过定义新的矩阵

并且表示

可以将等式(72)写为

尤其针对Tn=0,得到

图6A和图6B的膜电位标绘600和恢复电流标绘620分别针对以下参数值示出等式(81)的时间演变:τ-=14ms、C=100、a=0.03、b=-2、Iext(t)=100δ(t),并且v0=u0=0。由以下函数给出膜电压和恢复电流:

v(t)-vr=0.8228e-0.0827t+0.1771e-0.0186t (82)

u(t)=0.9351e-0.08277t-0.9351e-0.0186t (83)

由于等式(80)的计算中涉及的矩阵和特征值是先验知道的,因此可以通过以给定的时间分辨率预先计算并(例如,在查找表中)存储两个指数函数来很容易地、并且以期望的精度计算出系统的时间过程。或者,可以使用针对指数函数的计算(近似)的快速算法,并且可以实时地计算等式(80)。

上面的构建在基于事件的实现中特别有关系,在基于事件的实现中,关心的是计算在事件之时的状态向量。例如,给定等式(80)以及在时刻Tn+1发生的事件,可能希望计算在Δn≡Tn+1-Tn的情况下,有

一个重要的事件是尖峰时间(即,如上所述,人工神经元的膜电压超过峰值阈值的时间)。当人工神经元的模型接近尖峰时间时,这些特征值中的至少一个特征值为正并且占主导地位。因此,可以通过仅保留电压表达式中的主导项来达到良好近似。换句话说,由于函数v(t)是等式(82)中所示的形式,即

v(t)可以由其主导项来近似,即,

可以容易地根据下式来获得尖峰时间:

额外的简化

题为“解”的小节的结尾提到:为了预先计算矩阵指数和逆矩阵,应该将矩阵An的第一个元素a11[vn,Tn]量化成覆盖动态范围的有限数量的值。如根据前一小节的推导并且尤其从示例1可见,系数a11[vn,Tn]是vn和在时间Tn处的电导的函数。虽然膜电压的动态范围相当有限,但是电导的动态范围可以非常大。因此,在这种情况下,可能极有可能不得不对大量预先计算出的矩阵进行存储。接下来,为了降低存储器需求,探讨进一步简化。一种方法是,对有限范围内的期望矩阵进行预先计算并存储,并且针对超出该范围的值执行计算以对期望矩阵进行近似。

例如,当系数a11[vn,Tn]变得比矩阵An的其它三个固定系数大得多(就幅度而言)时,针对诸如ψ(x)=ex和ψ(x)=x-1等任何复数值函数ψ(·)可以使用以下近似:

使用该方法,可以对存储器需求和计算复杂度进行权衡。

可以经由某种近似来实现对存储器需求的进一步降低。例如,可以将仿射线性近似应用到经修订的函数而不是由等式(38)定义的函数。此外,可以将突触电流视为外部电流,并且结果所得的积分可以由后向矩形规则(backward rectangular rule)来近似。在这种情况下,对矩阵指数和逆矩阵进行预先计算和存储所涉及的动态范围只是膜电压的动态范围,因此动态范围很小。权衡是在存储器需求与解的准确性之间的权衡。

接下来,通过在该附加简化的情况下重新推导出解来更详细地阐述上面的段落。像以前一样,可以从等式(35)和(36)开始,在这里为了方便起见对等式(35)和(36)重复如下:

然而,现在将等式(38)中的函数修改如下:

并且将方程组重新用公式表示为

系统矩阵An现在简化为

并且现在将向量b(vn,t)定义为

使用上面的近似,避免了系统矩阵(系数a11)对电导值的依赖,从而极大地降低了在计算矩阵指数时所要覆盖的动态范围。可以通过在该时间段期间将膜电压保持在常数值来将突触电流视为外部电流。则在固定时间步长的实现中,解将是

等式(96)中向量积分的第一分量是

可以在大多数感兴趣的情况下对其求解。已经通过使用后向矩形规则(即,使用等式(97)中的值vn=v(nT+T))获得了上面近似的最佳结果。

示例3:使用后向矩形规则的近似

为了简化阐述和符号,该示例假定突触电流不包含依赖于电压的电导通道(例如,NMDA通道)并且没有外部电流Iext(t)。针对长度为T的固定步长大小,获得推导。开始,可以将等式(68)简化如下:

其中向量q包含常数项,即

为了标示方便起见,也可以定义以下向量和矩阵:

从而可以将等式(98)重写为

现在,根据等式(29),针对被建模为简单指数的gi(t)求解。在该情况下,有

可以容易地求解积分,并且若进一步定义

则,可以将等式(102)写为

聚集在左侧的、包含在时刻nT+T的状态的项,得到

且最后

注意,要求逆的矩阵是

并且其逆矩阵为

其中

对状态更新的计算可以如下继续(其中eA·T≡G):

I.对期望量化进行预先计算并存储所有的系数(G、hi、和q)。

II.针对每个通道,计算和

III.计算总和以及经Ei缩放的总和

IV.对等式(105)的右侧进行求值,并且存储在辅助(aux)变量中,即,

V.利用逆矩阵执行乘法

注意,对于具有双指数的NMDA情况,很有可能单独地对每个指数进行处理。这导致对两个向量进行预先计算并存储,其中一个向量针对衰退的指数项,一个向量针对上升的指数项。

图21是解说等式(106)的实现的框图2100。为了简单起见,表示等式(106)的第一部分的矩阵求逆块2102没有被展开。根据目前的状态向量x(nT),在量化块2104中对来自状态向量的膜电位v(nT)进行量化,以确定存储器索引。存储器索引用于选择与膜电位的量化区间相对应的、并且被存储在存储器查找表2106中的用于神经元模型的分段线性近似的预定参数(例如,系数)。基于存储器索引,加载与量化区间相关联的参数,这些参数包括指数矩阵G 2108和来自上面的等式(99)的所定义向量q 2110的系数。这些参数还包括输入电流向量h 2112和N个突触电流输入向量hi 2114的系数。求和块2116对应用到向量h 2112的输入电流I(nT)/C和由应用到N个突触电流输入向量hi 2114的反向电位Eigi(nT)/C缩放的电导值进行求和。根据等式(106),用矩阵求逆块2102对结果进行处理,以产生经更新的状态向量x(nT+T)。可以添加延迟块2118,从而使得在时间上按照每个步长大小T而不是连续地对状态进行更新。

可以使用对等式(101)中的积分的其它近似。例如,不是计算精确值并将其存储在hi向量中,而是可以使用应用到g(t)的梯形规则,从而避免对hi向量的存储并以稍差近似的代价来进一步降低存储器需求。

小结

在上面的小节中,描述了对神经元模型进行分段线性化的一般方法。图7对各种步骤和线性化方法进行了小结。在702处以非线性时变系统开始,可以在704处在区间Tn≤t≤Tn+1上执行分段线性化,从而在706处以矩阵A(vn,t)的方式来产生分段线性时变系统。若在708处,将常系数(即,分段常函数)用于每个区间Tn≤t≤Tn+1,则在710处,以矩阵A(vn,Tn)的方式来形成分段LTI系统。若在712处此线性化是独立于时间区间而被执行的,则在714处以矩阵A(vn)的方式来创建分段LTI系统。

示例依赖于状态-空间区域的线性神经元建模

本公开的上述某些方面主要涵盖了对局限于一个状态变量(例如,膜电位v)的二维状态-空间的划分。如上所述,使用单个状态将(v,u)状态-空间划分成垂直块,并且每一块(其表示电压区间)与不同的线性微分方程组相关联。

如下所述,本公开的某些方面对该构思进行了扩展。可以将状态空间划分成不同的区域(不局限于垂直块),其中每个区域与不同的线性微分方程组相关联。这些区域可以是不重迭的。下面的描述主要关注二状态(或者等效地,二维)模型,并且理解可以容易地将二状态模型扩展到三个或更多个状态,其中划分可以分别是容积和多维区域。

作为v的函数的分段线性公式化的综述

可以将二维分段线性微分方程表示为一组K对微分方程,其中第n对由下式定义:

其中k∈[1,K]并且F(v)=mkv+dk。在该方法中,将电压空间划分为K个不同的区域,并且第k个区域与第k对微分方程相关联。K个区域的联合覆盖了(v,u)值的空间。图8解说在给定K=4情况下的划分,其中将电压空间划分成4个区域:v<v1、v1≤v<v2、v2≤v<v3以及v3≤v。对于K=2来说,这简化成Hunzinger Cold神经元模型(具有切换的封闭和开放区间,从而使得vk<v≤vk+1)。

广义公式化

基本思想是将分段线性构思扩展到仅根据v定义的区域之外(即,允许等式(110)以及等式(109)随每个区间而变化)。这可以通过在(v,u)空间中定义K个二维区域Ωk来实现,其中k∈[1,K],并且其中这K个区域的联合覆盖了(v,u)值的整个空间。此外,除了mk和dk之外,还允许参数a和b对于每个区域是不同的,从而使得这些参数变成k的函数。还可以使参数C成为针对各区域的不同Ck,但自此以后对于每个区域是固定的,并且理解C可以成为因区域而异的。这些扩展可能不一定具有生物上的等效物。然而,从工程设计和计算的角度来看,这些扩展实现了对更丰富的神经元模型的设计以及用于开发神经元模型的更简单的平台。

前面提到的两个扩展产生:

使用上述状态-空间符号可以将上面的表达式更加简洁地表达为

其中

接下来,对依赖于M维状态-空间区域的情形和状态-空间解进行描述。

M维状态-空间情形

在存在M个状态变量的M维情况下,状态-空间方程变成

其中

依赖于区域的状态-空间解

提供了方程(113)在连续时域和离散时域中的状态-空间解。它们的推导自然使用与上述方法相同的方法。连续时间解可以表示为:

其中x(0)表示x(t)的初始值,

并且eX表示矩阵X的矩阵指数。

相应的离散时间解(在采样周期为T的情况下)可以表示为:

其中

当前的状态-空间向量x(nT)标识了区域Ωk以及根据等式(120)来计算x(nT+T)所要使用的哪一组矩阵和向量。

此外,上述针对非突触和突触电流类型的相同解容易应用。这包括线性时变(LTV)解。这将涉及使用这些更通用的状态-空间区域来代替依赖于电压的区域(垂直划分)。

解说性示例

图9解说具有三个区域(即,Ωk,其中k∈[1,3])的示例。图9中的三个区域皆是矩形区域。

图10解说具有四个区域的示例,解说了为何这些区域不需要是矩形。可以使用该特定设计来创建阈下振荡神经元,其中Ω1、Ω2、Ω3和Ω4分别表示以下区域:其中(v,u)以增长的半径向外螺旋的区域、以圆形(没有衰退也没有增长)的方式螺旋的区域、以衰退半径向内螺旋的区域、以及趋于发放尖峰的区域(等效于Hunzinger Cold模型的ALIF区域)。下面对该设计进行更加详细的描述。

图11解说更加理论性的示例,该示例具有5个区域以解说理论上可以创建具有任何形状的区域(例如,六边形、三角形或星形区域)。

依赖于状态-空间区域的线性神经元建模的实现

目前,区域由下式定义:

Ωk={(v,u)|vk≤v<vk+1}

其中vk和vk+1表示电压的左边界和右边界。因此,在每个时间步长处,通过取当前状态(v(nT),u(nT))并针对K个区域:Ωk,k∈[1,K]中的每一个区域对当前状态进行核查来确定索引k。索引k(用kF表示)可以经由仅v以及量化区间、最小可能电压和区间数量的函数来直接计算:

对于某些方面来说,这些区域(或者其至少一部分)可以是稍微重迭的。在这种情况下,可以使用滞后来标识K个区域(Ωk,k∈[1,K])中的哪个区域包含当前状态(v(nT),u(nT))。

下面提供了广义区域的两个示例。也可以开发其它区域。

针对依赖于v和u二者的矩形区域

针对广义矩形区域,第k个区域可以由下式定义:

Ωk={(v,u)|vk≤v<vk+1,uk≤u<uk+1}

其中vk和vk+1分别表示针对电压的左边界和右边界,并且其中uk和uk+1分别表示恢复变量的下边界和上边界。因此,在每个时间步长处,可以通过标识K个区域(Ωk,k∈[1,K])中的哪个区域包含当前状态(v(nT),u(nT))来确定索引k。

对于椭圆区域

为了易于阐述,假定只有皆以大约静息状态(vr,0)为中心的椭圆区域。则第k个区域可以由下式定义

Ωk={(v,u)|ρk≤ρ(v,u)<ρk+1}

其中ρk是沿v轴到内椭圆边界的“径向距离”,ρk是沿v轴到外椭圆边界的“径向距离”,“径向距离”可以被定义为

并且β是与椭圆相关联的参数(β=1导致同心区域)。与之前一样,在每个时间步长处,通过取当前状态(v(nT),u(nT))并且针对K个区域:Ωk,k∈[1,K]中的每一个区域对当前状态进行核查来确定索引k。

依赖于状态-空间区域的线性神经元建模的优点

对神经元建模的状态-空间的这种广义划分可有助于支持神经元的综合并且以系统方式来实现这点。其两个示例是实现:(1)发动检测和事件计数,以及(2)阈下振荡行为,其中在下一部分中对后者进行描述。

可以针对发动检测和事件计数来开发基于Hunzinger Cold模型的人工神经元(其具有两个划分)。将该人工神经元(起初处于静息状态)设计为若其接收到用于发动检测的尖峰则立即激发。此后,该神经元被设计为开始对传入尖峰进行计数,并且在某个数量的尖峰之后激发。当尖峰到达时,该动作继续自我重复。由于神经元在达到平衡的静息状态之前会花大约500ms,所以在没有更多尖峰到达之后该设计的潜在缺点出现。在神经元可以执行发动检测之前,这可能是一段太长的时间。该设计中的部分约束是:缩短达到静息状态的时间如何通过使其行为更像LIF神经元来影响尖峰计数的能力。

根据本公开的某些方面,可以通过划分将这两种行为分开来消除该约束,这类似于可以如何通过用Hunzinger Cold模型划分两个区域来分解Izhikevich神经元模型的LIF和ALIF行为的方式。可以通过注意u状态变量在LIF区域中的阈值约0.3之上和之下如何行为来缩短将神经元重置以执行发动检测的时间。在该值以下,系统需要长时间来达到静息状态。这一点可以通过根据图9的三区域状态-空间中所示的以u和v划分状态-空间来加快,从而实现改进的发动和事件计数神经元。在v<vt的LIF区域中,若u>u0,则人工神经元现在的行为如用于事件计数的积分和激发(IF)神经元(即,区域Ω2),否则如达到vr的LIF神经元(即,区域Ω1)。一旦状态进入区域Ω1,可以将系统设计为根据需要以较短的时间常数尽快移动到静息状态。通过作为u的函数将LIF区域划分为两个期望区域(针对IF的Ω2和针对LIF的Ω1),其中每个区域使用两对微分方程,可以消除大的延迟。

基于依赖于状态-空间区域的线性神经元模型的示例阈下振荡神经元设计

可以在人工神经系统中使用阈下振荡以增加在膜电位从静息电位的上升(即,使人工神经元“准备”发放尖峰)中发放尖峰的可能性并且降低在下降中的该可能性。前一部分描述了通过允许不仅基于一个状态变量(例如,电压)而且基于状态变量的组合和区域(或函数)对二维(或多维)状态-空间进行划分,来对分段线性神经元建模进行扩展。本部分克服了现有的阈下振荡神经元设计的缺点。例如,现有的神经元模型可以支持展示三种振荡类型(例如,如图12A的曲线图1200中所示的衰退振荡、如图12B的曲线图1210中所示的持续振荡、或者图12C的曲线图1220中所示的增长振荡)中的最多一种振荡类型的阈下振荡神经元的设计,但是这些模型无法实现展示这三种类型中的两种或更多种类型的人工神经元的设计。此外,现有的神经元模型不能支持具有特定振荡频率、衰退振荡的衰退速率、增长振荡的增长速率、和/或持续振荡的幅度的阈下振荡神经元的系统设计。

相应地,需要具有能够展示全部三种类型的振荡并且支持对所期望的振荡行为的系统实现的改进型神经元模型的人工神经元。

能够进行阈下振荡的神经元模型之间的比较

有四种现有的神经元模型能够产生阈下振荡:Izhikevich(简单)模型、自适应指数(AdEx)神经元模型(其是上述Brette和Gerstner的线性加指数函数)、四次模型以及Hunzinger Cold模型。可以通过四种方式来表征这些神经元模型的特征:(1)其可以产生三种可能的阈下振荡行为(衰退振荡、持续振荡或增长振荡)中的哪一种;(2)单个神经元可以展示这三种行为中的几种;(3)设计具有所期望的振荡频率的神经元的容易程度;以及(4)对振荡设计进行微调的容易程度(例如,定义持续振荡的幅度,或者定义衰退或增长的多个速率)。下表对每种神经元模型针对首次测量如何行为进行了概括(其中这些神经元模型有可能能够支持这三种振荡类型中的一种到所有类型):

下一个表对每种神经元模型针对其余特性测量如何行为进行了概括:

每个神经元模型(除了下述依赖于状态-空间区域的方法)可以再现仅能够展示单个振荡类型的神经元。且仅有Hunzinger Cold模型(由于其线性设计)能够提供对目标进行设计的系统方式。然而,这些模型中没有一种(除了下述依赖于状态-空间区域的方法)提供了微调的能力。

基于依赖于状态-空间区域的线性神经元建模的阈下振荡

如上面的表所示,并且与现有的神经元模型形成对比,本公开的某些方面可以:(1)产生可以在阈下态相中展示这三种振荡类型中的所有或任何子集的人工神经元,(2)被设计为不仅是像Hunzinger Cold模型一样系统化,而且还可以支持设计的微调。

设计

可以通过使用上述依赖于状态-空间区域的方法来创建所有三种振荡类型的展示。例如,可以定义如图10中所示的四区域、二维神经元模型。

每个状态-空间区域Ωk与一组线性微分方程相关联,使得

或者,以状态-空间向量符号表示,

并且

区域Ω1(显示为圆形,但通常为椭圆)、Ω2(也通常是椭圆)、Ω3和Ω4可以被设计为分别再现增长振荡、持续振荡、衰退振荡和ALIF行为。

根据某些方面,可以由不止两个维度来定义状态-空间。在这种情况下,替代地,可以使用下面的替代形式:

若期望持续振荡,则在时间步长方法的情况下,可以保证一些厚度来处理v(nT+T)可能无意中绕过持续振荡区域的情形。

重置修改

如上所述,重置机制可以涉及将u重置为u+d,这相当于,例如,在尖峰事件之后或在控制信号被激活之后递增u。对于某些方面,为了确保u+d值不会如此之大以至于会导致神经元从刚开始就立即发放尖峰或进入持续振荡,可能期望具有将u重置为目标常数(即,重置为u+d以外的某个值)的选项。这样,设计者具有对神经元在状态-空间中何处进行重置的控制。

定义状态-空间区域

一般而言,持续振荡中的(v,u)轨迹可以呈现椭圆的形式,该椭圆的长轴和短轴可能不与v、u笛卡尔轴对准(即,椭圆可以有倾斜)。解可以呈现以下形式:

其中四个系数是A中的矩阵元素(其中去掉了索引k)和初始条件:(v(0),u(0))的函数。

为了便于阐述和设计,此处的描述关注长轴和短轴相等的圆形轨迹。这些要求矩阵元素满足下列约束条件:

a12=-a21=λI=2πfc (136)

其中λR和λI分别表示复数特征值λ1,2=λR±λI的实部和虚部,τ表示(衰退或上升)时间常数,fc表示振荡频率,并且已经去掉了索引k。这得到圆形区域和明确形式的矩阵:

使用具有圆形区域的这种更简单的形式,以平衡点(vr,0)为中心的圆的半径为

其表示从(v,u)到平衡点的距离。例如,ρ(vr+2mV,0)=2。从而,第k个区域可以由下式来定义:

Ωk={(v,u)|ρk,in<ρ(v,u)≤ρk,out并且v≤vt} (139)

其中ρk,in表示Ωk的内圆边界的半径,并且ρk,out表示Ωk的外圆边界的半径。

针对图10中的K=4的示例,持续振荡区域Ω2可以由下式来定义:

Ω2={(v,u)|ρg<ρ(v,u)≤ρd并且v≤vt} (140)

其中ρg表示分开Ω1和Ω2的圆边界的半径,并且其中ρd表示Ω2和Ω3之间的圆边界的半径。

针对增长振荡区域Ω1

Ω1={(v,u)|ρ(v,u)≤ρg并且v≤vt} (141)

针对衰退振荡区域Ω3

Ω3={(v,u)|ρd<ρ(v,u)并且v≤vt} (142)

图10中的ALIF区域Ω4由下式定义

Ω4={(v,u)|v>vt} (143)

多级衰退和增长区域的额外区域

以上思想可以被扩展为支持振荡的更逐渐的衰退或逐级增加。例如,为了具有不同速率的衰退轨道和不同速率的增长轨道,如图13中所示,可以使用多个环和6个区域。在该示例中,Ω3可以被视为持续振荡区域。Ω5可以具有较快的衰退轨道,而Ω4可以具有较慢的衰退轨道。这将允许向持续振荡区域Ω3进行逐级并更缓和的衰退。类似地,Ω1可以具有较快的增长轨道,而Ω2可以具有较慢的增长轨道。可以将该构思扩展到更多环,以实现甚至更逐渐的变化。此外,若期望不同的持续振荡参数(例如,不同频率),则可以使用多级持续振荡区域。

用于实现人工神经元的示例操作

图14是根据本公开的某些方面用于对人工神经系统中的人工神经元的状态进行更新的示例操作1400的流程图。操作1400可以用硬件(例如,通过一个或多个神经处理单元(例如,人工神经元),诸如神经形态处理器)、软件或固件来实现。人工神经系统可建模在各种生物或想像神经系统中的任一者上,诸如视觉神经系统、听觉神经系统、海马体等。

操作1400可始于在1402确定人工神经元的第一状态位于第一区域内。在1404,至少部分地基于第一组线性动态方程来确定人工神经元的第二状态,其中第一组线性动态方程至少部分地基于与第一区域相对应的第一组参数(例如,系数)。在1406,确定人工神经元的第二状态位于第二区域内。在1408,至少部分地基于第二组线性动态方程来确定人工神经元的第三状态。第二组线性动态方程可以至少部分地基于与第二区域相对应的第二组参数。

根据某些方面,第一和第二组线性方程包括线性时不变(LTI)状态空间方程的离散时间解。对于其它方面,离散时间解可以至少部分地基于连续时间状态-空间方程的闭合形式解。

根据某些方面,操作1400还包括从存储器中获取第一或第二组参数中的至少一组参数。如本文中所使用的,存储器可以指用于存储数据的各种合适装置中的任一种,无论其是永久地还是临时地、在处理单元本地还是远程、片上或片外,包括随机存取存储器(RAM)、高速缓存存储器、寄存器、锁存器、触发器等。这种获取可以包括从人工神经元本地的存储器获取第一组参数或第二组参数中的至少一组参数。对于某些方面,操作1400还包括计算第一组参数或第二组参数中的该至少一组参数的至少一部分。可以使用从存储器获取的一个或多个值来计算第一组参数或第二组参数中的该至少一组参数的至少一部分。

根据某些方面,可以通过用分段线性函数近似与人工神经元相关联的神经元模型中的至少一部分非线性函数来获得第一组参数或第二组参数中的至少一组参数。对于某些方面,非线性函数包括膜电位(v)乘以依赖于电压的电导(g(v))。依赖于电压的电导可以用分段常数函数来近似。对于其它方面,非线性函数包括依赖于电压的函数(F(v)),其中v是人工神经元的膜电位。针对第一区域和第二区域中的每一者,分段线性函数可以具有斜率(m)和截距(d)。对于某些方面,在分段线性函数中,第一区域具有与第二区域不同的宽度。分段线性函数中的第一区域或第二区域的宽度可以依赖于非线性函数。对于某些方面,分段线性近似至少部分地基于下列方法中的至少一种方法:泰勒展开法、一阶线性内插法、最优线性内插法、或平均斜率法。

根据某些方面,第一组参数或第二组参数中的至少一组参数可以至少部分地设计为在人工神经元中实现特定行为。例如,可以生成第一和/或第二组参数(例如,由神经元模型设计者手动选择)以有效地创建特定函数(例如,可调谐的曲线),其对所期望的行为进行近似。通过这种方式,人工神经元可以基于全新的神经元模型或者对现有神经元模型的修改来进行操作。

人工神经元的第一、第二和第三状态可以由膜电位(v)和恢复电流(u)来定义。这是人工神经元状态变量的两个示例。根据某些方面,操作1400还可以包括:至少部分地基于确定尖峰事件已经发生或将要发生而重置人工神经元的膜电位或恢复电流中的至少一者。可以将膜电位重置为静息电位(v(t)→vr)。可以将恢复电流重置为恢复电流的当前值与偏移之和(u(t)→u(t)+d)。

根据某些方面,第一组或第二组线性方程中的至少一组至少部分地基于人工神经元的神经元模型。对于某些方面,神经元模型至少部分地基于以下至少一者:Izhikevich简单模型、指数积分激发(EIF)模型、FitzHugh-Nagumo模型、四次模型、或者固有电导模型(例如,表示为膜电位v乘以依赖于电压的电导g(v)的神经元模型)。对于某些方面,神经元模型包括至少两个维度(即,至少两个状态变量)。神经元模型可以至少部分地基于一个或多个一阶常微分方程(ODE),其可以是线性的。

根据某些方面,神经元模型的时间步长大小至少部分地基于正建模的人工神经元的类型。神经元模型的时间步长大小可以是非均匀的。对于某些方面,特定时间步长的时间步长大小是至少部分地基于人工神经元的当前状态或过去状态中的至少一者、或者基于特定的参数集(其可以与当前状态或过去状态相关联)来确定的。对于某些方面,确定第一和第二状态之间的第一时间步长大小不同于确定第二和第三状态之间的第二时间步长大小。根据某些方面,在1404确定人工神经元的第二状态可以在第一时间步长中执行,而在1408确定人工神经元的第三状态可以在第一时间步长之后的第二时间步长中执行。

根据某些方面,确定人工神经元的第二或第三状态中的至少一者是至少部分地基于输入人工神经元的电流。对于某些方面,输入电流包括突触电流或一般外部电流中的至少一者。突触电流可以至少部分地基于一个或多个通道中的每一者的依赖于时间的电导以及一个或多个信道中的每一者的逆转电位。对于某些方面,突触电流是至少部分地基于人工神经元的针对N-甲基-D-天冬氨酸(NMDA)通道的突触后膜电位。依赖于时间的电导可以通过指数函数、阿尔法函数或差分指数函数来建模。

对于某些方面,第一区域和第二区域是同一区域。

根据某些方面,操作1400还可包括将第一状态、第二状态或第三状态中的至少一者的指示输出到显示器。

根据某些方面,第一区域或第二区域中的至少一者是由两个或更多个维度定义的。第一区域或第二区域中的至少一者是M维子空间,其中M≥2。M维子空间可以具有任何形状或者由任何边界(例如,v>10mV)定义。对于某些方面,两个或更多个维度是二维,并且M维子空间具有二维形状,例如椭圆形、圆形、多边形、矩形或正方形。对于其它方面,两个或更多个维度是三维,并且M维子空间具有三维形状,例如球形、椭球形、多边形棱柱、矩形棱柱或立方体。对于某些方面,第一区域关联于与第二区域不同的线性方程组。第一区域和第二区域可以是部分重迭或不重迭的区域。第一区域和第二区域可以具有不同形状或不同大小中的至少一者。对于某些方面,第一区域与人工神经元的第一行为相关联,而第二区域是与人工神经元的第二行为相关联,第二行为不同于第一行为。对于某些方面,第一区域和第二区域具有分层形状,例如同心环、管、矩形框架等。

根据某些方面,两个或更多个维度是由膜电位(v)和恢复电流(u)定义的两个维度组成的。对于某些方面,操作1400还可以包括:至少部分地基于对控制信号的接收或者对尖峰事件已经发生或将要发生的确定中的至少一者而重置人工神经元的膜电位或恢复电流中的至少一者。在这种情况下,可以将膜电位重置为静息电位,并且可以将恢复电流重置为常数。

根据某些方面,第二区域的至少一部分与第一区域重迭。在这种情况下,在1406确定人工神经元的第二状态位于第二区域内可以至少部分地基于滞后。

根据某些方面,人工神经元被配置成用于发动检测和事件计数。在这种情况下,第一区域可以与用于事件计数的积分激发(IF)行为相关联,并且第二区域可以与带漏泄积分激发(LIF)行为相关联。

根据某些方面,人工神经元被配置成用于阈下振荡行为。阈下振荡行为可以包括衰退振荡行为、持续振荡行为或增长振荡行为中的至少一种。对于某些方面,第一区域可以与增长振荡行为相关联,第二区域可以与持续振荡行为相关联,并且第三区域可以与衰退振荡行为相关联。此外,第四区域与ALIF行为相关联。对于某些方面,第一区域可以具有椭圆形状,而第二区域可以具有环形形状。

示例共用且灵活的神经架构

本公开的某些方面一般涉及开发支持动态神经元模型的共用且灵活的架构。设计目标包括对神经元动态进行低复杂度、准确的建模,以及实现任何神经元模型的能力。使用该灵活架构,可以根据需要来执行和取代各种合适的神经元模型中的任何一种。例如,神经元模型可以包括以下至少一种:Izhikevich简单模型、指数积分激发(EIF)模型、FitzHugh-Nagumo模型、四次模型或者Hunzinger Cold模型。如上所述,可以使用分段线性近似以及与之相关联的参数(例如,系数)来实现这些神经元模型。此外,这种灵活的架构允许人工神经系统中的不同人工神经元与不同的神经元模型同时操作。

图15解说根据本公开的某些方面针对单个神经处理单元1502的这种共用且灵活的神经架构的实现,其中可以对神经元模型的参数进行选择、加载、访问、添加、删除、调整和/或更新。可以将本文中描述的构思容易地扩展到神经处理单元1502的系统(例如,人工神经系统),但是为了便于描述,图15A中仅示出单个神经处理单元。如图所示,神经处理单元1502可以实现状态机1506,该状态机1506接收神经元模型的一个或多个输入和一组参数,并且输出一个或多个状态变量。状态机1506可以实现人工神经元的任何合适的处理算法。

可以从用于多个神经元模型的一组参数1504中选择给定神经元模型的参数。对于某些方面,例如,操作者可能希望在给定的神经处理单元中使用某种神经元模型,并从可用神经元模型列表中选择该模型。对于其它方面,可以由神经处理单元系统基于学习或训练操作来选择某种神经元模型。给定神经元模型的参数可以是基于上述分段线性近似的参数。对于某些方面,可以将该组参数1504存储在与神经处理单元1502相关联和/或在神经处理单元1502本地的存储器中。对于其它方面,可以将该组参数1504存储在可由多个神经处理单元全局访问的存储器中、或者存储在神经处理单元1502内部的高速缓存存储器中。可以将神经元模型A的参数存储在第一存储器位置1508(例如,可寻址的存储器块),而可以将神经元模型B的参数存储在第二存储器位置1510。

在图15A中,已经将神经元模型A的参数加载到神经处理单元1502中。如本文中所使用的,可以广义地定义术语“加载”,并且“加载”可以包括:从神经处理单元(或神经处理单元系统)可访问的存储器获取给定神经元模型的参数;将参数存储在神经处理单元本地的存储器中;或者在存储器中访问与该神经处理单元相关联的(例如,被指定用于该神经处理单元的)一个或多个存储器区域。根据某些方面,将某个神经元模型的参数加载到特定神经处理单元可以响应于配置事件而发生。例如,配置事件可以包括对特定神经处理单元上电,对神经处理单元的一个或多个区域(其可以包括或可以不包括该特定处理单元)上电,或者对神经处理单元的整个系统上电。

在图15B中,已经将神经元模型B的参数加载到了神经处理单元1502中。从那时起,状态机1506可以至少部分地基于这些最新加载的参数来进行操作。通过这种方式,神经处理单元1502可以仅通过加载不同的参数来根据不同的神经元模型起作用。此外,可以在任何时候更新或删除特定神经元模型的参数。

在图15C中,可以将神经元模型C的参数添加到该组参数1504中。例如,神经元模型C可以是最新开发、购买或获许可的神经元模型,其在神经处理单元1502变得可操作时是不可用的。在其它示例情景中,设计师或系统设计者可能也没有考虑神经元模型C或可能起初以为该模型不符合所期望的应用,但现在期望添加该模型。

在图15D中,可以将神经元模型C的参数存储在第三存储器位置1512。可以将神经元模型C的参数加载到神经处理单元1502中,从而使得状态机1506可以至少部分地基于这些最新加载的参数来进行操作。对于神经处理单元仅通过在其中加载不同参数来有效地改变神经元模型的能力提供了可以根据需要而更新和改变的非常灵活的架构。

图16是根据本公开的某些方面用于在神经处理单元系统(例如,人工神经系统)中实现多个神经元模型的组合的示例操作1600的流程图。操作1600可以用硬件(例如,通过一个或多个处理单元,诸如神经形态处理器)、软件或固件来实现。人工神经系统可建模在各种生物或想像神经系统中的任一者上,诸如视觉神经系统、听觉神经系统、海马体等。

多个神经元模型可以包括上述神经元模型的任何组合、以及现有或尚未开发或未公开的任何合适的神经元模型。例如,多个神经元模型可以包括以下至少一种:Izhikevich简单模型、指数积分激发(EIF)模型、FitzHugh-Nagumo模型、四次模型、Hunzinger Cold模型或固有电导模型。如本文中所使用的,短语“神经元模型的组合”一般是指多个神经元模型的集合,其中该集合可包括单个成员。换句话说,多个神经元模型的组合包括这多个神经元模型中的一个以及这多个神经元模型的任何子集的任何组合。

操作1600可以始于在1602将从多个神经元模型中选择的第一神经元模型的参数加载到第一神经处理单元(例如,人工神经元)中。给定神经元模型的参数可以是如上所述地从对神经元模型的分段线性近似获得的参数。在1604,可以至少部分地基于加载的第一神经元模型的参数来确定第一神经处理单元的第一状态。在1606,可至少部分地基于第一神经元模型的参数以及第一状态来确定第一神经处理单元的第二状态。

根据某些方面,在1608,可以更新多个神经元模型。如上所述,更新多个神经元模型可以包括删除或调整现有神经元模型的某些参数,或者添加另一个神经元模型(例如,在这多个神经元模型对系统可用时尚不可用的新神经元模型,或者对现有神经元模型的期望修改以有效地创建新神经元模型)的参数。对于某些方面,更新多个神经元模型可以在加载(或重新加载)第一神经元模型的参数并确定第一神经处理单元的下一状态之前发生。

在1610,可选地,可以将第二神经元模型的参数加载到第一神经处理单元中。第二神经元模型的这些参数可以取代在1602加载的第一神经元模型的参数。在1610加载第二神经元模型的参数之前,不需要在1608更新多个神经元模型。在1612,可以至少部分地基于第二神经元模型的参数来确定第一神经处理单元的第三状态(例如,在第二状态之后)。

根据某些方面,在1602加载第一模型的参数(或者在1610加载第二神经元模型的参数)是响应于配置事件。对于某些方面,配置事件是对神经处理单元系统或第一神经处理单元中的至少一者上电。

根据某些方面,在1612确定第三状态还至少部分地基于第二状态。若基于后续神经元模型的参数来确定后续状态是基于根据先前神经元模型(不同于后续神经元模型)的参数而确定的先前状态,则这可以被称为“热插拔”。对于某些方面,第二神经元模型至少部分被配置成在该“热插拔”条件下产生阈下振荡。该振荡可以从第二状态或者在另一时刻开始。对于某些方面,在1610加载第二神经元模型的参数是至少部分地基于以下至少一者:状态条件(例如,状态进入特定区域或展示某种行为,诸如变化速率等)、时间条件(例如,基于定时器)或触发。例如,触发可以在第一神经处理单元外部。

根据某些方面,操作1600还可以包括将从多个神经元模型中选择的第二神经元模型的参数加载到第二神经处理单元。随后,可以至少部分地基于第二神经元模型的参数来确定第二神经处理单元的状态。对于某些方面,第一和第二神经处理单元位于系统的不同区域中。对于某些方面,第一和第二神经元模型表示不同类型的神经元。换句话说,神经处理单元系统中的不同神经元模型可以用于模拟神经系统的不同区域中的神经元。例如,视觉、听觉或电机控制系统中的神经元可以由不同的神经元模型来表示。

加载第一、第二或任何其它神经元模型的参数可以涉及各种合适操作中的任一种。为了便于描述,下面的描述包括加载第一神经元模型的参数,但是这种加载也适用于任何其它神经元模型的参数。根据某些方面,加载第一神经元模型的参数包括将第一神经元模型的参数加载到包括第一神经处理单元在内的多个神经处理单元。对于某些方面,加载第一神经元模型的参数包括从存储器获取第一神经元模型的参数的至少一部分。对于某些方面,此存储器可由神经处理单元系统访问。对于某些方面,该存储器的至少一部分可以是第一神经处理单元本地的。该存储器的至少一部分可以是高速缓冲存储器。对于某些方面,加载第一神经元模型的参数还包括在存储器中访问与第一神经元模型相关联的存储器块。在这种情况下,存储器块可以由指向存储器块中的存储器地址的指针来指定。

图17根据本公开的某些方面解说用于使用通用处理器1702来实现前述操作人工神经元的方法的组件的示例框图1700。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器块1704中,而在通用处理器1702处执行的有关指令可从程序存储器1706中加载。在本公开的一个方面,加载到通用处理器1702中的指令可以包括:用于确定人工神经元的第一状态位于第一区域内的代码;用于至少部分地基于第一组线性方程来确定人工神经元的第二状态的代码,其中第一组线性方程是至少部分地基于与第一区域相对应的第一组参数;用于确定人工神经元的第二状态位于第二区域内的代码;以及用于至少部分地基于第二组线性方程来确定人工神经元的第三状态的代码,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。对于某些方面,第一区域或第二区域中的至少一者是由两个或更多个维度来定义的。

在本公开的另一个方面,加载到通用处理器1702的指令可以包括:用于将从多个神经元模型中选择的第一神经元模型的参数加载到(位于神经处理单元系统中的)第一神经处理单元中的代码、以及用于至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态的代码。

图18解说了根据本公开的某些方面的用于实现前述操作人工神经元的方法的组件的示例框图1800,其中存储器1802可以经由互连网络1804与计算网络(神经网络)的个体(分布式)处理单元(神经处理器)1806对接。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器1802中,并且可从存储器1802经由互连网络1804的连接被加载到每个处理单元(神经处理器)1806中。在本公开的一个方面,处理单元1806可以被配置成:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。对于某些方面,第一区域或第二区域中的至少一者是由两个或更多个维度来定义的。

在本公开的另一个方面,处理单元1806可以被配置成:将从多个神经元模型中选择的第一神经元模型的参数加载到(在神经处理单元系统中的)第一神经处理单元中,并且至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态。

图19解说了根据本公开的某些方面的基于分布式权重存储器1902和分布式处理单元(神经处理器)1904来实现前述操作人工神经元的方法的组件的示例框图1900。如图19中所解说的,一个存储器组1902可直接与计算网络(神经网络)的一个处理单元1904对接,其中该存储器组1902可存储与该处理单元(神经处理器)1904相关联的变量(神经信号)、突触权重和/或系统参数。在本公开的一个方面,处理单元1904可以被配置成:确定人工神经元的第一状态位于第一区域内;至少部分地基于第一组线性方程来确定人工神经元的第二状态,其中第一组线性方程至少部分地基于与第一区域相对应的第一组参数;确定人工神经元的第二状态位于第二区域内;以及至少部分地基于第二组线性方程来确定人工神经元的第三状态,其中第二组线性方程至少部分地基于与第二区域相对应的第二组参数。对于某些方面,第一区域或第二区域中的至少一者是由两个或更多个维度来定义的。

在本公开的另一个方面,处理单元1904可以被配置成:将从多个神经元模型中选择的第一神经元模型的参数加载到(在神经处理单元系统中的)第一神经处理单元中,并且至少部分地基于第一神经元模型的参数来确定第一神经处理单元的第一状态。

图20解说根据本公开的某些方面的神经网络2000的示例实现。如图20中所解说的,神经网络2000可包括多个局部处理单元2002,它们可执行以上描述的方法的各种操作。每个处理单元2002可包括存储该神经网络的参数的局部状态存储器2004和局部参数存储器2006。另外,处理单元2002可包括具有局部(神经元)模型程序的存储器2008、具有局部学习程序的存储器2010、以及局部连接存储器2012。此外,如图20中所解说的,每个局部处理单元2002可与用于配置处理的单元2014对接并且与路由连接处理元件2016对接,单元2014可提供对局部处理单元的局部存储器的配置,元件2016提供局部处理单元2002之间的路由。

根据本公开的某些方面,每一个局部处理单元2002可被配置成基于神经网络的一个或多个期望功能性特征来确定神经网络的参数,以及随着所确定的参数被进一步适配、调谐和更新来使这一个或多个功能性特征朝着期望的功能性特征发展。

以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。例如,各个操作可由图17-20中所示的各种处理器中的一个或多个来执行。一般而言,在存在附图中解说的操作的场合,那些操作可具有带相似编号的相应配对装置加功能组件。例如,图14中所解说的操作1400对应于图14A中所解说的装置1400A。

例如,用于显示的装置可包括显示器(例如,监视器、平面屏幕、触摸屏等)、打印机、或任何其他用于输出数据以供视觉描绘(例如表格、图表或图形)的合适装置。用于处理的装置、用于生成的装置、用于加载的装置、用于重置的装置、用于获取的装置、用于更新的装置、用于计算的装置、用于运算的装置、用于输出的装置、或用于确定的装置可以包括处理系统,该处理系统可以包括一个或多个处理器或处理单元。用于存储的装置可包括可由处理系统访问的存储器或任何其它合适的存储设备(例如,RAM)。

如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或其他数据结构中查找)、查明、及类似动作。而且,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。同样,“确定”还可包括解析、选择、选取、建立、及类似动作。

如本文中所使用的,引述一列项目中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一者”旨在涵盖:a、b、c、a-b、a-c、b-c、以及a-b-c。

结合本公开描述的各种解说性逻辑框、模块、以及电路可用设计成执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何可商业购得的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其他此类配置。

结合本公开所描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在本领域所知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM,等等。软件模块可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读写信息。替换地,存储介质可以被整合到处理器。

本文所公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。

所描述的功能可在硬件、软件、固件或其任何组合中实现。如果以硬件实现,则示例硬件配置可包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的具体应用和整体设计约束,总线可包括任何数目的互连总线和桥接器。总线可将包括处理器、机器可读介质、以及总线接口的各种电路链接在一起。总线接口可用于尤其将网络适配器等经由总线连接至处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,按键板、显示器、鼠标、操纵杆,等等)也可以被连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路以及类似电路,它们在本领域中是众所周知的,因此将不再进一步描述。

处理器可负责管理总线和一般处理,包括执行存储在机器可读介质上的软件。处理器可用一个或多个通用和/或专用处理器来实现。示例包括微处理器、微控制器、DSP处理器、以及其他能执行软件的电路系统。软件应当被宽泛地解释成意指指令、数据、或其任何组合,无论是被称作软件、固件、中间件、微代码、硬件描述语言、或其他。作为示例,机器可读介质可以包括RAM(随机存取存储器)、闪存、ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦式可编程只读存储器)、EEPROM(电可擦式可编程只读存储器)、寄存器、磁盘、光盘、硬驱动器、或者任何其他合适的存储介质、或其任何组合。机器可读介质可被实施在计算机程序产品中。该计算机程序产品可以包括包装材料。

在硬件实现中,机器可读介质可以是处理系统中与处理器分开的一部分。然而,如本领域技术人员将容易领会的,机器可读介质、或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传输线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。替换地或补充地,机器可读介质、或其任何部分可被集成到处理器中,诸如高速缓存和/或通用寄存器文件可能就是这种情形。

处理系统可以被配置成通用处理系统,该通用处理系统具有一个或多个提供处理器功能性的微处理器、和提供机器可读介质中的至少一部分的外部存储器,它们都通过外部总线架构与其他支持电路系统链接在一起。替换地,处理系统可以用带有集成在单块芯片中的处理器、总线接口、用户接口、支持电路系统、和至少一部分机器可读介质的ASIC(专用集成电路)来实现,或者用一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门控逻辑、分立硬件组件、或者任何其他合适的电路系统、或者能执行本公开通篇所描述的各种功能性的电路的任何组合来实现。取决于具体应用和加诸于整体系统上的总设计约束,本领域技术人员将认识到如何最佳地实现关于处理系统所描述的功能性。

机器可读介质可包括数个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。这些软件模块可包括传输模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。作为示例,当触发事件发生时,可以从硬驱动器中将软件模块加载到RAM中。在软件模块执行期间,处理器可以将一些指令加载到高速缓存中以提高访问速度。随后可将一个或多个高速缓存行加载到通用寄存器文件中以供由处理器执行。在以下谈及软件模块的功能性时,将理解此类功能性是在处理器执行来自该软件模块的指令时由该处理器来实现的。

如果以软件实现,则各功能可作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或无线技术(诸如红外(IR)、无线电、以及微波)从web网站、服务器、或其他远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电、以及微波)就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘、和蓝碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。因此,在一些方面,计算机可读介质可包括非瞬态计算机可读介质(例如,有形介质)。另外,对于其他方面,计算机可读介质可包括瞬态计算机可读介质(例如,信号)。上述的组合应当也被包括在计算机可读介质的范围内。

因此,某些方面可包括用于执行本文中给出的操作的计算机程序产品。例如,此种计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能由一个或多个处理器执行以执行本文中所描述的操作。对于某些方面,计算机程序产品可包括包装材料。

另外,应领会,用于执行本文中所描述的方法和技术的模块和/或其它恰适装置能由设备在适用的场合下载和/或以其他方式获得。例如,此类设备能被耦合至服务器以促成用于执行本文中所描述的方法的装置的转移。替换地,本文中所描述的各种方法能经由存储装置(例如,RAM、ROM、诸如压缩碟(CD)或软盘之类的物理存储介质等)来提供,以使得一旦将该存储装置耦合到或提供给设备,该设备就能获得各种方法。此外,可利用适于向设备提供本文中所描述的方法和技术的任何其他合适的技术。

将理解,权利要求并不被限定于以上所解说的精确配置和组件。可在以上所描述的方法和设备的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1