CN105518721A - 用于在人工神经系统中实现断点确定单元的方法和装置 - Google Patents

用于在人工神经系统中实现断点确定单元的方法和装置 Download PDF

Info

Publication number
CN105518721A
CN105518721A CN201480048670.9A CN201480048670A CN105518721A CN 105518721 A CN105518721 A CN 105518721A CN 201480048670 A CN201480048670 A CN 201480048670A CN 105518721 A CN105518721 A CN 105518721A
Authority
CN
China
Prior art keywords
determining unit
artificial neural
spike
neuron
condition
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
Application number
CN201480048670.9A
Other languages
English (en)
Other versions
CN105518721B (zh
Inventor
M-D·N·卡洛伊
W·R·贝尔二世
R·金特达
V·兰甘
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105518721A publication Critical patent/CN105518721A/zh
Application granted granted Critical
Publication of CN105518721B publication Critical patent/CN105518721B/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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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
    • 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/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Abstract

提供了用于使用断点确定单元来检查人工神经系统的方法和装置。一种示例方法一般包括:操作人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。

Description

用于在人工神经系统中实现断点确定单元的方法和装置
根据35U.S.C.§119的优先权要求
本申请要求于2013年9月3日提交的美国临时专利申请S/N.61/873,044、以及于2014年5月19日提交的美国专利申请S/N.14/281,118的权益,这两篇申请的全部内容通过援引纳入于此。
背景
领域
本公开的某些方面一般涉及人工神经系统,尤其涉及在神经处理系统中使用一个或多个断点确定单元。
背景技术
可包括一群互连的人工神经元(即神经处理单元)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应的结构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜任的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因此这样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用中是特别有用的。
一种类型的人工神经网络是尖峰(spiking)神经网络,其将时间概念以及神经元状态和突触状态纳入到其工作模型中,由此提供了丰富的行为集,在神经网络中能从该行为集涌现出计算功能。尖峰神经网络基于以下概念:神经元基于该神经元的状态在一个或多个特定时间激发或“发放尖峰”,并且该时间对于神经元功能而言是重要的。当神经元激发时,它生成一尖峰,该尖峰行进至其他神经元,这些其他神经元继而可基于接收到该尖峰的时间来调整它们的状态。换言之,信息可被编码在神经网络中的尖峰的相对或绝对定时中。
概述
本公开的某些方面一般涉及在人工神经系统中实现断点确定单元。
本公开的某些方面提供了一种用于使用断点确定单元来检查人工神经系统的方法。该方法一般包括:操作该人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。
本公开的某些方面提供了一种用于使用断点确定单元来检查人工神经系统的装置。该装置一般包括处理系统和耦合至该处理系统的存储器。该处理系统通常被配置成:操作该人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。
本公开的某些方面提供了一种用于使用断点确定单元来检查人工神经系统的装备。该装备一般包括:用于操作该人工神经系统的至少一部分的装置;用于使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在的装置;以及用于至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者的装置。
本公开的某些方面提供了一种用于使用断点确定单元来检查人工神经系统的计算机程序产品。该计算机程序产品一般包括具有指令的计算机可读介质(例如,存储设备或其他非瞬态介质),该指令能执行以用于:操作该人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。
附图简述
为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。
图1解说了根据本公开的某些方面的示例神经元网络。
图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的示例处理单元(神经元)。
图3解说了根据本公开的某些方面的示例尖峰定时依赖可塑性(STDP)曲线。
图4是根据本公开的某些方面的用于人工神经元的状态的示例曲线图,其解说用于定义神经元的行为的正态相和负态相。
图5解说了根据本公开的某些方面的具有断点神经元的示例神经处理系统。
图6解说了根据本公开的某些方面的断点确定单元的示例状态机。
图7解说了根据本公开的某些方面的使用断点神经元的同步事件处理的示例时序图。
图8解说了根据本公开的某些方面的使用断点神经元的延迟事件处理的示例时序图。
图9是根据本公开某些方面的用于使用断点确定单元来检查人工神经系统的示例操作的流程图。
图9A解说了能够执行图9中所示的操作的示例装置。
图10解说了根据本公开的某些方面的用于实现对使用通用处理器的人工神经系统的至少一部分的检查的示例组件。
图11解说了根据本公开的某些方面的用于实现对人工神经系统的至少一部分的检查的示例组件,其中存储器可与个体分布式处理单元对接。
图12解说了根据本公开的某些方面的用于基于分布式存储器和分布式处理单元来实现对人工神经系统的至少一部分的检查的示例组件。
图13解说了根据本公开的某些方面的神经网络的示例实现。
详细描述
以下参照附图更全面地描述本公开的各个方面。然而,本公开可用许多不同形式来实施并且不应解释为被限定于本公开通篇给出的任何具体结构或功能。相反,提供这些方面是为了使得本公开将是透彻和完整的,并且其将向本领域技术人员完全传达本公开的范围。基于本文中的教导,本领域技术人员应领会,本公开的范围旨在覆盖本文中所披露的本公开的任何方面,不论其是与本公开的任何其他方面相独立地实现还是组合地实现的。例如,可以使用本文所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为本文中所阐述的本公开的各个方面的补充或者另外的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
示例神经系统
图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)可由电路来仿真,并且其输入和输出连接可由具有突触电路的导线来仿真。处理单元、其输入和输出连接也可由软件代码来仿真。处理单元也可由电路来仿真,而其输入和输出连接可由软件代码来仿真。在一方面,计算网络中的处理单元可包括模拟电路。在另一方面,处理单元可包括数字电路。在又一方面,处理单元可包括具有模拟和数字组件两者的混合信号电路。计算网络可包括任何前述形式的处理单元。使用这样的处理单元的计算网络(神经系统或神经网络)可用在大范围的应用中,诸如图像和模式识别、机器学习、电机控制、及类似应用等。
在神经网络的训练过程期间,突触权重(例如,来自图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过程中,突触权重随时间推移的改变可通常使用指数衰退来达成,如由下式给出的:
&Delta; w ( t ) = a + e - t / k + + &mu; , t > 0 a - e t / k - , t < 0 , - - - ( 1 )
其中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)由以下动态来管控:
dv n ( t ) d t = &alpha;v n ( t ) + &beta; &Sigma; m w m , n y m ( t - &Delta;t m , n ) , - - - ( 2 )
其中α和β是参数,wm,n是将突触前神经元m连接至突触后神经元n的突触的突触权重,以及ym(t)是神经元m的尖峰输出,其可根据Δtm,n被延迟达树突或轴突延迟才抵达神经元n的胞体。
应注意,从建立了对突触后神经元的充分输入的时间直至突触后神经元实际上激发的时间之间存在延迟。在动态尖峰神经元模型(诸如Izhikevich简单模型)中,如果在去极化阈值vt与峰值尖峰电压v峰值之间有差量,则可引发时间延迟。例如,在该简单模型中,神经元胞体动态可由关于电压和恢复的微分方程对来管控,即:
d v d t = ( k ( v - v t ) ( v - v r ) - u + I ) / C , - - - ( 3 )
d u d t = a ( b ( v - v r ) - u ) . - - - ( 4 )
其中v是膜电位,u是膜恢复变量,k是描述膜电位v的时间尺度的参数,a是描述恢复变量u的时间尺度的参数,b是描述恢复变量u对膜电位v的阈下波动的敏感度的参数,vr是膜静息电位,I是突触电流,以及C是膜的电容。根据该模型,神经元被定义为在v>v峰值时发放尖峰。
HunzingerCold模型
HunzingerCold神经元模型是能再现丰富多样的各种神经行为的最小双态相尖峰发放线性动态模型。该模型的一维或二维线性动态可具有两个态相,其中时间常数(以及耦合)可取决于态相。在阈下态相中,时间常数(按照惯例为负)表示漏泄通道动态,其一般作用于以生物学一致的线性方式使细胞返回到静息。阈上态相中的时间常数(按照惯例为正)反映抗漏泄通道动态,其一般驱动细胞发放尖峰,而同时在尖峰生成中引发等待时间。
如图4中所示,该模型的动态可被划分成两个(或更多个)态相。这些态相可被称为负态相402(也可互换地称为带漏泄积分激发(LIF)态相,勿与LIF神经元模型混淆)以及正态相404(也可互换地称为抗漏泄积分激发(ALIF)态相,勿与ALIF神经元模型混淆)。在负态相402中,状态在将来事件的时间趋向于静息(v-)。在该负态相中,该模型一般展现出时间输入检测性质及其他阈下行为。在正态相404中,状态趋向于尖峰发放事件(vs)。在该正态相中,该模型展现出计算性质,诸如取决于后续输入事件而引发发放尖峰的等待时间。在事件方面对动态进行公式化以及将动态分成这两个态相是该模型的基础特性。
线性双态相二维动态(对于状态v和u)可按照惯例定义为:
&tau; &rho; d v d t = v + q &rho; - - - ( 5 )
- &tau; u d u d t = u + r - - - ( 6 )
其中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时发放尖峰。随后,状态通常在发生复位事件(其在技术上可以与尖峰事件完全相同)时被复位:
v = v ^ - - - - ( 9 )
u=u+Δu(10)
其中和Δu是参数。复位电压通常被设为v-
依照瞬时耦合的原理,闭合形式解不仅对于状态是可能的(且具有单个指数项),而且对于到达特定状态所需的时间也是可能的。闭合形式状态解为:
v ( t + &Delta; t ) = ( v ( t ) + q &rho; ) e &Delta; t &tau; &rho; - q &rho; - - - ( 11 )
u ( t + &Delta; t ) = ( u ( t ) + r ) e - &Delta; t &tau; u - r - - - ( 12 )
因此,模型状态可仅在发生事件之际被更新,诸如在输入(突触前尖峰)或输出(突触后尖峰)之际被更新。还可在任何特定时间(无论是否有输入或输出)执行操作。
而且,依照瞬时耦合原理,可以预计突触后尖峰的时间,因此到达特定状态的时间可提前被确定而无需迭代技术或数值方法(例如,欧拉数值方法)。给定了先前电压状态v0,直至到达电压状态vf之前的时间延迟由下式给出:
&Delta; t = &tau; &rho; l o g v f + q &rho; v 0 + q &rho; - - - ( 13 )
如果尖峰被定义为发生在电压状态v到达vS的时间,则从电压处于给定状态v的时间起测量的直至发生尖峰前的时间量或即相对延迟的闭合形式解为:
其中通常被设为参数v+,但其他变型可以是可能的。
模型动态的以上定义取决于该模型是在正态相还是负态相中。如所提及的,耦合和态相ρ可基于事件来计算。出于状态传播的目的,态相和耦合(变换)变量可基于在上一(先前)事件的时间的状态来定义。出于随后预计尖峰输出时间的目的,态相和耦合变量可基于在下一(当前)事件的时间的状态来定义。
存在对该Cold模型、以及在时间上执行模拟、仿真、或建模的若干可能实现。这包括例如事件-更新、步阶-事件更新、以及步阶-更新模式。事件更新是其中基于事件或“事件更新”(在特定时刻)来更新状态的更新。步点更新是以间隔(例如,1ms)来更新模型的情况下的更新。这不一定要求迭代方法或数值方法。通过仅在事件发生于步阶处或步阶间的情况下才更新模型或即通过“步阶-事件”更新,基于事件的实现以有限的时间分辨率在基于步阶的模拟器中实现也是可能的。
神经编码
有用的神经网络模型(诸如包括图1的人工神经元102、106的神经网络模型)可经由各种合适的神经编码方案(诸如重合性编码、时间编码或速率编码)中的任一种来编码信息。在重合性编码中,信息被编码在神经元集群的动作电位(尖峰发放活动性)的重合性(或时间邻近性)中。在时间编码中,神经元通过对动作电位(即,尖峰)的精确定时(无论是以绝对时间还是相对时间)来编码信息。信息由此可被编码在一群神经元间的相对尖峰定时中。相反,速率编码涉及将神经信息编码在激发率或集群激发率中。
如果神经元模型能执行时间编码,则其也能执行速率编码(因为速率正好是定时或尖峰间间隔的函数)。为了提供时间编码,良好的神经元模型应当具有两个要素:(1)输入的抵达时间影响输出时间;以及(2)重合性检测能具有窄时间窗。连接延迟提供了将重合性检测扩展到时间模式解码的一种手段,因为通过恰适地延迟时间模式的元素,可使这些元素达成定时重合性。
抵达时间
在良好的神经元模型中,输入的抵达时间应当对输出时间有影响。突触输入——无论是狄拉克δ函数还是经定形的突触后电位(PSP)、无论是兴奋性的(EPSP)还是抑制性的(IPSP)——具有抵达时间(例如,δ函数的时间或者阶跃或其他输入函数的开始或峰值的时间),其可被称为输入时间。神经元输出(即,尖峰)具有发生时间(无论其是在何处(例如在胞体处、在沿轴突的一点处、或在轴突末端处)测量的),其可被称为输出时间。该输出时间可以是尖峰的峰值时间、尖峰的开始、或与输出波形有关的任何其他时间。普适原理是输出时间取决于输入时间。
乍看起来可能认为所有神经元模型都遵循该原理,但一般并不是这样。例如,基于速率的模型不具有此特征。许多尖峰模型一般也并不遵循这一点。带漏泄积分激发(LIF)模型在有额外输入(超过阈值)的情况下并不会更快一点地激发。此外,在以非常高的定时分辨率来建模的情况下或许遵循这一点的模型在定时分辨率受限(诸如限于1ms步阶)时通常将不会遵循这一点。
输入
神经元模型的输入可包括狄拉克δ函数,诸如电流形式的输入、或基于电导率的输入。在后一种情形中,对神经元状态的贡献可以是连续的或状态依赖型的。
示例断点确定单元
神经处理器是执行神经处理(例如,使用尖峰、人工神经元、神经调制器等)以执行行为的设备。行为被训练到处理器中。然而,训练是不完美的科学,并且可能要花很长时间。因此,定义允许更快地发现这些问题的方法是有利的。
调试是检测神经处理器中的问题的过程。调试类型包括遥测监视以及执行中止继之以检视神经状态。然而,知晓何时中止这些处理器的执行并非易事。
因此,需要用于对人工神经系统或其一部分的执行进行挂起、检查、修改、或标记中的至少一者的技术和装置。
本公开的某些方面旨在通过在应当开始调试神经处理器的条件存在时触发事件来解决与何时开始检视神经状态以进行调试相关的问题。该检测在执行期间无缝地进行而不必从外部实体监视。相反,该监视可用断点确定单元来完成,断点确定单元可在人工神经系统内部。对于某些方面,断点确定单元可被实现为断点神经元,断点神经元可与神经处理器中的典型尖峰神经元类似地行动,区别在于断点神经元可被配置成在特定条件下生成通知事件。所生成的通知事件可能导致挂起尖峰处理。
神经处理器中的尖峰神经元生成尖峰,并且使用突触来互连。尖峰信息在尖峰神经元之间传达。接收尖峰神经元处理来自连接至这些接收尖峰神经元的所有发射尖峰神经元的尖峰。接收尖峰神经元处理该信息并确定是否应当生成尖峰。尖峰生成发生在接收尖峰神经元被驱动到超过阈值参数(即,电压)值时。阈值参数是可配置的。
断点神经元类似地处理信息。然而,一旦跨越阈值,断点神经元就可传送事件,该事件可使神经处理器停止所有尖峰过程并挂起所有状态转变。示例事件通知机制包括中断、消息分组、以及状态寄存器的变化。
例如,图5解说了具有断点神经元B1504的示例神经处理系统500。断点神经元B1504被配置成在人工神经元N1506激发时停止神经处理器尖峰处理。在时间0处,人工神经元N3510激发,并且在两个时间步阶之后,N1506激发。B1504立即检测到N1506已激发。在当前时间步阶结束时,B1504从事件发射机502生成事件,并且处理被中止。该事件可立即发生,或者在例如同步时间边界结束时发生。可在处理来自所监视的尖峰神经元的尖峰时使用尖峰处理延迟。
断点确定单元可以另外或替换地被配置成基于除了一个或多个人工神经元激发以外的条件来停止神经处理器尖峰处理。例如,断点确定单元可连接至与一个或多个人工神经元相关联的存储器或寄存器或者可被用于存储人工神经系统或其一部分的变量或系统参数的全局存储。通过监视全局存储或者一个或多个人工神经元的存储器或寄存器中的一个或多个值,断点确定单元可以检测存储于这些位置的一个或多个值的变化并从事件发射机生成事件,这可中止操作。作为另一示例,断点确定单元可被配置成在一个或多个所存储的值满足特定不等式关系(例如,大于或等于预定阈值)或其组合的情况下中止人工神经系统(或其一部分)的执行。
图6解说了断点确定单元(诸如图5中的断点神经元B1)的示例状态机600。复位状态602是未发生尖峰监视的初始状态。断点确定单元可配置有条件(阈值集),并且可标识将被监视的一组发射神经元。断点确定单元是这组发射神经元的接收神经元。一旦被配置,断点确定单元可转换到空闲状态604。
在空闲状态604中,断点确定单元正等待开始命令以开始监视。停止命令可使状态转换到复位状态602。
在运行状态606中,断点确定单元正监视发射神经元尖峰。在处理所接收的尖峰之后,如果发射神经元的尖峰驱动系统超过阈值(或某种其他条件存在),则断点确定单元将生成事件。也可生成尖峰。该事件生成可导致转换至间断状态608。暂停触发可导致转换至空闲状态604。
在间断状态608中,已停止监视。断点确定单元可停留在该状态直至间断事件被处置(例如,在故障检修之后),从而导致转换回到运行状态606。
图7解说了根据本公开的某些方面的同步事件处理的示例时序图700、710。在同步事件处理期间,断点神经元(B1)可以监视来自发射神经元(N1)的尖峰。在t0,N1正处理尖峰输入。B1处于运行状态并正监视N1(以及或许一个或多个其他人工神经元)。在t1,N1变得高于阈值并生成尖峰。B1从N1接收尖峰,转换到间断状态,并且保持在该状态。在t1与t2之间的时段中,N1和B1不改变状态,尽管调试可能改变N1和B1中的任一者或两者的状态。在t2,恢复N1神经元处理。B1接收所处置的转换并返回到运行状态以进行监视。
图8解说了根据本公开的某些方面的分别针对第一发射神经元(N1)、第二发射神经元(N2)、断点神经元(B1)、以及针对状态机的经延迟的事件处理(也被称为异步事件处理)的示例时序图800、810、820、830。在异步事件处理期间,B1可以监视来自发射神经元N1和N2的尖峰。在该示例中,B1被配置成当B1在指定时间窗口内从N1接收到两个尖峰并从N2接收到一个尖峰时跨越阈值。断点确定单元还可被配置成响应于其他期望条件或这些条件的组合。
在t0,N1和N2正处理尖峰输入,并且B1处于运行状态并正监视。在t1,N1和N2变得高于它们的阈值,并且各自生成尖峰。B1不跨越其阈值,因此B1停留在运行状态。在t2,N1变得高于其阈值并生成尖峰,而N2正照常处理。B1检测到该变化,但被设置成延迟对其进行动作。t2与t3之间的Δ可以显现为突触传输延迟或者配置为神经元处理延迟。B1被保持在运行状态中的经延迟子状态(在延迟之后,B1将转换到间断状态)。在t3,B1对N1和N2尖峰输入进行动作,变得高于其阈值,并且生成间断事件。从t3到t4,N1、N2和B1不改变状态,尽管调试或者故意修改组件参数的过程可能改变N1、N2和/或B1的状态。在t4,N1和N2神经元继续处理。B1接收所处置的转换并返回到运行状态以进行监视。
图9是根据本公开的某些方面的用于检查或调试人工神经系统的至少一部分的示例操作900的流程图。操作900可从例如具有断点确定单元的系统(其可由人工神经元、突触、神经调制器等的网络构成)的视角观看。操作900可以硬件(例如由一个或多个神经处理单元,诸如神经元形态处理器)、以软件或以固件来执行。该人工神经系统可被建模在各种生物或虚构神经系统中的任一者上,诸如视觉神经系统、听觉神经系统、海马体等。
操作900可始于在902,操作人工神经系统的至少一部分。在904,断点确定单元(其可在人工神经系统的内部或外部)可被用于至少部分地基于监视人工神经系统中的一个或多个组件来检测条件存在。例如,这些组件可包括人工神经系统中的神经元、突触、神经调制器、胶质细胞、和/或各种其他合适组件中的任何组件。在906,至少部分地基于在904的检测,人工神经系统的至少一部分的操作可以被挂起、检查、修改、或标记中的至少一者。
根据某些方面,操作900可以进一步包括至少部分地基于该检测来输出对条件的指示并至少部分地基于该指示来确定对人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。例如,对条件的指示可包括中断、标志被设置、或状态寄存器的变化中的至少一者。对于某些方面,断点确定单元被配置成输出对条件的指示。对于某些方面,对条件的指示可以提供对人工神经系统中的一个或多个组件的一个或多个性质的提醒。该指示可包括例如设置指示人工神经系统或其一部分处于调试或间断状态的标志、或者指示人工神经系统内的特定设备或部分处于调试或间断状态的某种其他提醒。
根据某些方面,断点确定单元被配置成至少部分地基于该检测来触发事件发射机。在此情形中,事件发射机可被配置成输出对条件的指示。在被触发之后,事件发射机可被配置成立即、在当前时间步阶结束时、在下一时间步阶之前、或者在已经过预定数目的时间步阶之后输出对条件的指示。
根据某些方面,该条件可包括来自一个或多个人工神经元的尖峰事件、尖峰事件的预期、尖峰事件组合、尖峰事件组合的预期、或其任何组合中的至少一者。对于某些方面,该条件可涉及在指定时间窗口内发生的尖峰事件的组合。根据某些方面,该条件可涉及断点确定单元的状态满足或超过阈值。对于其他方面,该条件至少部分地基于尖峰发放速率或对尖峰发放速率的预期。
根据某些方面,该条件可至少部分地基于一个或多个组件的至少一个参数(例如,系统变量)改变达预定量。例如,该条件可包括人工神经系统中的突触参数的变化、神经调制器的引入、胶质细胞活动、一个或多个神经元的尖峰发放速率、或者其他性质。突触参数可包括性质,诸如突触权重和突触延迟量。在具有仿真神经调制器以修改此类性质(如一个或多个神经元的可塑性或增强)的人工神经系统中,该条件可包括神经输入被缩放的量的变化。基于胶质细胞活动的条件可包括由一个或多个胶质细胞神经元引入到人工神经系统中的背景噪声量。根据某些方面,该条件可涉及在指定时间窗口内发生的一个或多个参数或网络变量的变化量。
根据某些方面,断点确定单元具有与人工神经元相同的至少一些能力。在此情形中,断点确定单元可被配置成在被激活后输出一个或多个尖峰事件。
根据某些方面,人工神经系统可具有一个以上断点确定单元。例如,人工神经系统可具有第一断点确定单元以及一个或多个第二断点确定单元。例如,可使用第一断点确定单元来激活(即,开启)这一个或多个第二断点确定单元中的至少一者。当被激活时,这一个或多个第二断点确定单元可以监视人工神经系统中的各种参数并触发间断事件,如以上所描述的。第一断点确定单元还可基于一个或多个参数来停用(即,关闭)被激活的一个或多个第二断点确定单元。
根据某些方面,操作900可在904的检测之前进一步需要用条件和将监视的一个或多个人工神经元来配置断点确定单元。
图10解说了根据本公开的某些方面的用于检查使用通用处理器1002的人工神经系统的至少一部分的示例组件的示图1000。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器块1004中,而在通用处理器1002处执行的有关指令可从程序存储器1006中加载。在本公开的一方面,被加载到通用处理器1002的指令可包括:用于操作人工神经元网络的至少一部分的代码;用于使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在的代码;以及用于至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者的代码。
图11解说了根据本公开的某些方面的用于检查人工神经系统的至少一部分的示例组件的框图1100,其中存储器1102可经由互连网络1104与计算网络(神经网络)的个体(分布式)处理单元(神经处理器)1106对接。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器1102中,并且可从存储器1102经由互连网络1104的连接被加载到每个处理单元(神经处理器)1106中。在本公开的一方面,处理单元1106可被配置成:操作人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来检测条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。
图12解说了根据本公开的某些方面的用于基于分布式存储器1202和分布式处理单元(神经处理器)1204来检查人工神经系统的至少一部分的示例组件的框图1200。如图12中所解说的,一个存储器组1202可直接与计算网络(神经网络)的一个处理单元1204对接,其中该存储器组1202可存储与该处理单元(神经处理器)1204相关联的变量(神经信号)、突触权重和/或系统参数。在本公开的一方面,(诸)处理单元1204可被配置成:操作人工神经系统的至少一部分;使用断点确定单元至少部分地基于监视该人工神经系统中的一个或多个组件来确定条件存在;以及至少部分地基于该检测来对该人工神经系统的该至少一部分的操作进行挂起、检查、修改、或标记中的至少一者。
图13解说了根据本公开的某些方面的神经网络1300的示例实现。如图13中所解说的,神经网络1300可包括多个局部处理单元1302,它们可执行以上描述的方法的各种操作。每个处理单元1302可包括局部状态存储器1304和存储该神经网络的参数的局部参数存储器1306。另外,处理单元1302可包括具有局部(神经元)模型程序的存储器1308、具有局部学习程序的存储器1310、以及局部连接存储器1312。此外,如图13中所解说的,每个局部处理单元1302可与用于配置处理的单元1314对接并且与路由连接处理元件1316对接,单元1314可提供对局部处理单元的局部存储器的配置,元件1316提供局部处理单元1302之间的路由。
根据本公开的某些方面,每个局部处理单元1302可被配置成基于神经网络的一个或多个期望功能性特征来确定神经网络的参数,以及随着所确定的参数被进一步适配、调谐和更新来使这一个或多个功能性特征朝着期望的功能性特征发展。
以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。例如,各个操作可由图10-13中所示的各个处理器中的一个或多个来执行。一般而言,在存在附图中解说的操作的场合,这些操作可具有带相似编号的相应配对装置加功能组件。例如,图9中所解说的操作900对应于图9A中所解说的装置900A。
例如,用于显示的装置可包括显示器(例如,监视器、平面屏幕、触摸屏等)、打印机、或任何其他用于输出数据以供视觉描绘(例如表格、图表或图形)的合适装置。用于处理的装置、用于操作的装置、用于检测的装置、用于挂起、检查、或标记中的至少一者的装置、用于输出的装置、用于配置的装置、或用于确定的装置可包括处理系统,该处理系统可包括一个或多个处理器或处理单元。用于存储的装置可包括可由处理系统访问的存储器或任何其它合适的存储设备(例如,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)或软盘之类的物理存储介质等)来提供,以使得一旦将该存储装置耦合到或提供给设备,该设备就能获得各种方法。此外,可利用适于向设备提供本文所描述的方法和技术的任何其他合适的技术。
将理解,权利要求并不被限定于以上所解说的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。

Claims (32)

1.一种用于使用断点确定单元来检查人工神经系统的方法,包括:
操作所述人工神经系统的至少一部分;
使用所述断点确定单元至少部分地基于监视所述人工神经系统中的一个或多个组件来检测条件存在;以及
至少部分地基于所述检测来对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者。
2.如权利要求1所述的方法,其特征在于,进一步包括:
至少部分地基于所述检测来输出对所述条件的指示;以及
至少部分地基于所述指示来确定对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者。
3.如权利要求2所述的方法,其特征在于,对所述条件的所述指示包括中断、标志被设置、或状态寄存器变化中的至少一者。
4.如权利要求2所述的方法,其特征在于,所述断点确定单元被配置成输出对所述条件的所述指示。
5.如权利要求4所述的方法,其特征在于,对所述条件的所述指示提供对所述人工神经系统中的所述一个或多个组件的一个或多个性质的提醒。
6.如权利要求2所述的方法,其特征在于,所述断点确定单元被配置成至少部分地基于所述检测来触发事件发射机,并且其中所述事件发射机被配置成输出对所述条件的所述指示。
7.如权利要求6所述的方法,其特征在于,所述事件发射机在被触发之后被配置成立即、在当前时间步阶结束时、在下一时间步阶之前、或者在已经过预定数目的时间步阶之后输出对所述条件的所述指示。
8.如权利要求1所述的方法,其特征在于,所述条件包括来自所述一个或多个组件的尖峰事件、所述尖峰事件的预期、尖峰事件组合、所述尖峰事件组合的预期、或其任何组合中的至少一者。
9.如权利要求8所述的方法,其特征在于,所述条件包括在指定时间窗口内发生的所述尖峰事件组合。
10.如权利要求1所述的方法,其特征在于,所述条件包括所述断点确定单元的状态满足或超过阈值。
11.如权利要求1所述的方法,其特征在于,所述条件至少部分地基于尖峰发放速率或对所述尖峰发放速率的预期。
12.如权利要求1所述的方法,其特征在于,所述条件至少部分地基于所述一个或多个组件的至少一个参数改变达预定量。
13.如权利要求1所述的方法,其特征在于,所述断点确定单元具有与人工神经元相同的至少一些能力。
14.如权利要求13所述的方法,其特征在于,所述断点确定单元被配置成在被激活之后输出一个或多个尖峰事件。
15.如权利要求1所述的方法,其特征在于,进一步包括在进行所述检测之前用所述条件和将监视的所述一个或多个组件来配置所述断点确定单元。
16.一种用于使用断点确定单元来检查人工神经系统的装置,包括:
处理系统,其被配置成:
操作所述人工神经系统的至少一部分;
使用所述断点确定单元至少部分地基于监视所述人工神经系统中的一个或多个组件来检测条件存在;以及
至少部分地基于所述检测来对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者;以及
耦合至所述处理系统的存储器。
17.如权利要求16所述的装置,其特征在于,所述处理系统被进一步配置成:
至少部分地基于所述检测来输出对所述条件的指示;以及
至少部分地基于所述指示来确定对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者。
18.如权利要求17所述的装置,其特征在于,对所述条件的所述指示包括中断、标志被设置、或状态寄存器变化中的至少一者。
19.如权利要求17所述的装置,其特征在于,所述断点确定单元被配置成输出对所述条件的所述指示。
20.如权利要求19所述的装置,其特征在于,对所述条件的所述指示提供对所述人工神经系统中的所述一个或多个组件的一个或多个性质的提醒。
21.如权利要求17所述的装置,其特征在于,所述断点确定单元被配置成至少部分地基于所述检测来触发事件发射机,并且其中所述事件发射机被配置成输出对所述条件的所述指示。
22.如权利要求21所述的装置,其特征在于,所述事件发射机在被触发之后被配置成立即、在当前时间步阶结束时、在下一时间步阶之前、或者在已经过预定数目的时间步阶之后输出对所述条件的所述指示。
23.如权利要求16所述的装置,其特征在于,所述条件包括来自所述一个或多个组件的尖峰事件、所述尖峰事件的预期、尖峰事件组合、所述尖峰事件组合的预期、或其任何组合中的至少一者。
24.如权利要求23所述的装置,其特征在于,所述条件包括在指定时间窗口内发生的所述尖峰事件组合。
25.如权利要求16所述的装置,其特征在于,所述条件包括所述断点确定单元的状态满足或超过阈值。
26.如权利要求16所述的装置,其特征在于,所述条件至少部分地基于尖峰发放速率或对所述尖峰发放速率的预期。
27.如权利要求16所述的装置,其特征在于,所述条件至少部分地基于所述一个或多个组件的至少一个参数改变达预定量。
28.如权利要求16所述的装置,其特征在于,所述断点确定单元具有与人工神经元相同的至少一些能力。
29.如权利要求28所述的装置,其特征在于,所述断点确定单元被配置成在被激活之后输出一个或多个尖峰事件。
30.如权利要求16所述的装置,其特征在于,所述处理系统被进一步适配成在进行所述检测之前用所述条件和将监视的所述一个或多个组件来配置所述断点确定单元。
31.一种用于使用断点确定单元来检查人工神经系统的装备,包括:
用于操作所述人工神经系统的至少一部分的装置;
用于使用所述断点确定单元至少部分地基于监视所述人工神经系统中的一个或多个组件来检测条件存在的装置;以及
用于至少部分地基于所述检测来对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者的装置。
32.一种用于使用断点确定单元来检查人工神经系统的计算机程序产品,包括具有指令的非瞬态计算机可读介质,所述指令能执行以用于:
操作所述人工神经系统的至少一部分;
使用所述断点确定单元至少部分地基于监视所述人工神经系统中的一个或多个组件来检测条件存在;以及
至少部分地基于所述检测来对所述人工神经系统的至少所述部分的操作进行挂起、检查、修改、或标记中的至少一者。
CN201480048670.9A 2013-09-03 2014-08-14 用于在人工神经系统中实现断点确定单元的方法和装置 Active CN105518721B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361873044P 2013-09-03 2013-09-03
US61/873,044 2013-09-03
US14/281,118 US9710749B2 (en) 2013-09-03 2014-05-19 Methods and apparatus for implementing a breakpoint determination unit in an artificial nervous system
US14/281,118 2014-05-19
PCT/US2014/051044 WO2015034640A2 (en) 2013-09-03 2014-08-14 Methods and apparatus for implementing a breakpoint determination unit in an artificial nervous system

Publications (2)

Publication Number Publication Date
CN105518721A true CN105518721A (zh) 2016-04-20
CN105518721B CN105518721B (zh) 2018-10-02

Family

ID=52584658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480048670.9A Active CN105518721B (zh) 2013-09-03 2014-08-14 用于在人工神经系统中实现断点确定单元的方法和装置

Country Status (7)

Country Link
US (1) US9710749B2 (zh)
EP (1) EP3042343A2 (zh)
JP (1) JP2016532216A (zh)
KR (1) KR20160047581A (zh)
CN (1) CN105518721B (zh)
CA (1) CA2919718A1 (zh)
WO (1) WO2015034640A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107545304A (zh) * 2017-09-16 2018-01-05 胡明建 一种根据网络需求改变激活函数人工神经元的设计方法
CN110515754A (zh) * 2018-05-22 2019-11-29 深圳云天励飞技术有限公司 神经网络处理器的调试系统及方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335534A1 (en) * 2015-05-14 2016-11-17 Thalchemy Corporation Neural sensor hub system
KR101806833B1 (ko) 2015-12-31 2017-12-11 인천대학교 산학협력단 인공 신경망의 희소 활동을 활용하는 동기 직접 회로의 소비 전력 절감 장치 및 방법
CN105956658A (zh) * 2016-04-29 2016-09-21 北京比特大陆科技有限公司 数据处理方法、数据处理装置及芯片
US11694066B2 (en) * 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
US11694090B2 (en) 2019-04-10 2023-07-04 International Business Machines Corporation Debugging deep neural networks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0439343A2 (en) * 1990-01-26 1991-07-31 International Business Machines Corporation Method of operating an expert system and computer systems therefor
US5459817A (en) * 1992-03-30 1995-10-17 Kabushiki Kaisha Toshiba Neural network with learning function based on simulated annealing and Monte-Carlo method
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
CN1959653A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 调试计算机程序的装置与方法
WO2013059703A1 (en) * 2011-10-19 2013-04-25 Qualcomm Incorporated Method and apparatus for neural learning of natural multi-spike trains in spiking neural networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2824936B1 (fr) 2001-05-16 2005-09-02 Schneider Automation Systeme de diagnostic predictif dans un automate programmable
JP4944368B2 (ja) * 2004-06-08 2012-05-30 キヤノン株式会社 マルチプロセッサシステム、デバッグ方法、及びプログラム
US7634761B2 (en) 2004-10-29 2009-12-15 Microsoft Corporation Breakpoint logging and constraint mechanisms for parallel computing systems
US20070130491A1 (en) 2005-12-06 2007-06-07 Mazumder Didarul A Error detection of digital logic circuits using hierarchical neural networks
US9665822B2 (en) 2010-06-30 2017-05-30 International Business Machines Corporation Canonical spiking neuron network for spatiotemporal associative memory
US8560474B2 (en) 2011-03-07 2013-10-15 Cisco Technology, Inc. System and method for providing adaptive manufacturing diagnoses in a circuit board environment
KR101838560B1 (ko) 2011-07-27 2018-03-15 삼성전자주식회사 뉴로모픽 칩에서 스파이크 이벤트를 송수신하는 송수신 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0439343A2 (en) * 1990-01-26 1991-07-31 International Business Machines Corporation Method of operating an expert system and computer systems therefor
US5459817A (en) * 1992-03-30 1995-10-17 Kabushiki Kaisha Toshiba Neural network with learning function based on simulated annealing and Monte-Carlo method
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
CN1959653A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 调试计算机程序的装置与方法
WO2013059703A1 (en) * 2011-10-19 2013-04-25 Qualcomm Incorporated Method and apparatus for neural learning of natural multi-spike trains in spiking neural networks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107545304A (zh) * 2017-09-16 2018-01-05 胡明建 一种根据网络需求改变激活函数人工神经元的设计方法
CN110515754A (zh) * 2018-05-22 2019-11-29 深圳云天励飞技术有限公司 神经网络处理器的调试系统及方法
CN110515754B (zh) * 2018-05-22 2021-01-26 深圳云天励飞技术有限公司 神经网络处理器的调试系统及方法

Also Published As

Publication number Publication date
JP2016532216A (ja) 2016-10-13
KR20160047581A (ko) 2016-05-02
EP3042343A2 (en) 2016-07-13
CA2919718A1 (en) 2015-03-12
US20150066826A1 (en) 2015-03-05
US9710749B2 (en) 2017-07-18
WO2015034640A2 (en) 2015-03-12
WO2015034640A3 (en) 2015-05-14
CN105518721B (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
CN105229675A (zh) 尖峰网络的高效硬件实现
CN105518721A (zh) 用于在人工神经系统中实现断点确定单元的方法和装置
CN105637541A (zh) 用于神经模拟器的共享存储器架构
CN105934766B (zh) 用阴影网络来监视神经网络
US9460382B2 (en) Neural watchdog
CN105659262A (zh) 在尖峰神经网络中使用重放来实现突触学习
US20150242741A1 (en) In situ neural network co-processing
CN105684002A (zh) 用于使用监督式学习对种类加标签的方法和装置
CN105531724A (zh) 用于调制神经设备的训练的方法和装置
CN105612492B (zh) 在人工神经系统中减少尖峰的方法、装置、设备及介质
EP3123404A2 (en) Differential encoding in neural networks
JP2017513127A (ja) スパイキング深層信念ネットワーク(dbn)におけるトレーニング、認識、および生成
CN105580031A (zh) 在多维范围上对包括可分离子系统的系统的评估
CN104798089A (zh) 分段线性神经元建模
US20150212861A1 (en) Value synchronization across neural processors
US20150278641A1 (en) Invariant object representation of images using spiking neural networks
CN106164940A (zh) 在尖峰神经网络中通过全局标量值来调制可塑性
US20150278685A1 (en) Probabilistic representation of large sequences using spiking neural network
CN106104585A (zh) 经由阈下调制的模拟信号重构和识别
WO2016187706A1 (en) Method and system for event-based neural networks
CN106133763B (zh) 可塑性突触管理
CN105659260B (zh) 动态地指派和检查突触延迟
CN105706121A (zh) 神经网络模型中的多普勒效应处理
US20150213356A1 (en) Method for converting values into spikes
CN105612536A (zh) 远程地控制和监视神经模型执行的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant