CN105612492A - 用于产生伪随机数的可编程概率分布函数的方法和装置 - Google Patents
用于产生伪随机数的可编程概率分布函数的方法和装置 Download PDFInfo
- Publication number
- CN105612492A CN105612492A CN201480054506.9A CN201480054506A CN105612492A CN 105612492 A CN105612492 A CN 105612492A CN 201480054506 A CN201480054506 A CN 201480054506A CN 105612492 A CN105612492 A CN 105612492A
- Authority
- CN
- China
- Prior art keywords
- random number
- bit
- number sequence
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005315 distribution function Methods 0.000 title claims abstract description 16
- 210000002569 neuron Anatomy 0.000 claims abstract description 120
- 230000001537 neural effect Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 17
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 13
- 239000010931 gold Substances 0.000 claims description 13
- 229910052737 gold Inorganic materials 0.000 claims description 13
- 230000001052 transient effect Effects 0.000 claims description 5
- 239000004744 fabric Substances 0.000 claims description 3
- 210000000653 nervous system Anatomy 0.000 abstract description 15
- 238000009826 distribution Methods 0.000 abstract description 9
- 238000001914 filtration Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 32
- 238000012545 processing Methods 0.000 description 28
- 238000003860 storage Methods 0.000 description 24
- 210000000225 synapse Anatomy 0.000 description 21
- 230000007935 neutral effect Effects 0.000 description 19
- 230000001242 postsynaptic effect Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 230000036982 action potential Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 7
- 206010001497 Agitation Diseases 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 210000005215 presynaptic neuron Anatomy 0.000 description 6
- 210000005036 nerve Anatomy 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000005764 inhibitory process Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000003956 synaptic plasticity Effects 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000010304 firing Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000012528 membrane Substances 0.000 description 3
- 230000003518 presynaptic effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000002999 depolarising effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002102 hyperpolarization Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000284 resting effect Effects 0.000 description 2
- 238000012421 spiking Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- QUTYKIXIUDQOLK-PRJMDXOYSA-N 5-O-(1-carboxyvinyl)-3-phosphoshikimic acid Chemical compound O[C@H]1[C@H](OC(=C)C(O)=O)CC(C(O)=O)=C[C@H]1OP(O)(O)=O QUTYKIXIUDQOLK-PRJMDXOYSA-N 0.000 description 1
- 241001139376 Allas Species 0.000 description 1
- 101100477360 Arabidopsis thaliana IPSP gene Proteins 0.000 description 1
- 241001076939 Artines Species 0.000 description 1
- 240000002627 Cordeauxia edulis Species 0.000 description 1
- 241000545442 Radix Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 101150053888 allA gene Proteins 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000003376 axonal effect Effects 0.000 description 1
- 230000002902 bimodal effect Effects 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000004064 dysfunction Effects 0.000 description 1
- 210000004242 electrical synapse Anatomy 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 210000001320 hippocampus Anatomy 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003585 interneuronal effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003188 neurobehavioral effect Effects 0.000 description 1
- 230000003955 neuronal function Effects 0.000 description 1
- 238000009828 non-uniform distribution Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000009958 sewing Methods 0.000 description 1
- 230000008925 spontaneous activity Effects 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000007598 synaptic excitation Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 210000000857 visual cortex Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Image Analysis (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开的某些方面提供了用于产生可被用于过滤(丢弃和通过)神经元尖峰的伪随机数的可编程概率分布函数的方法和装置。本公开提供了比典型情况下使用的电路更简单、更小、且更低功率的电路。其可被编程以产生各种非均匀分布的数字序列中的任一者。这些序列可逼近真实概率性分布,但维持足够的伪随机性以在概率意义上仍被认为是随机的。该电路可以是模仿人工神经系统的ASIC芯片内的过滤器块的积分部分。
Description
根据35U.S.C.§119的优先权要求
本申请要求于2013年10月2日提交的美国临时专利申请S/N.61/885,980以及于2014年3月4日提交的美国专利申请S/N.14/195,988的权益,这两篇申请的全部内容通过援引纳入于此。
背景
领域
本公开的某些方面一般涉及人工神经系统,尤其涉及用于产生用于过滤(丢弃和通过)神经元尖峰的伪随机数的可编程概率分布函数的方法和装置。
背景技术
可包括一群互连的人工神经元(即神经处理单元)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应的结构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜任的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因此这样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用中是特别有用的。
一种类型的人工神经网络是尖峰(spiking)神经网络,其将时间概念以及神经元状态和突触状态纳入到其工作模型中,由此提供了丰富的行为集,在神经网络中能从该行为集涌现出计算功能。尖峰神经网络基于以下概念:神经元基于该神经元的状态在一个或多个特定时间激发或“发放尖峰”,并且该时间对于神经元功能而言是重要的。当神经元激发时,它生成一尖峰,该尖峰行进至其他神经元,这些其他神经元继而可基于接收到该尖峰的时间来调整它们的状态。换言之,信息可被编码在神经网络中的尖峰的相对或绝对定时中。
概述
本公开的某些方面提供了一种用于人工神经系统操作的方法。该方法一般包括:生成随机数序列;对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;生成另一随机数序列;以及在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
本公开的某些方面提供了一种用于人工神经系统操作的装置。该装置一般包括:第一电路,其配置成生成随机数序列;第二电路,其配置成对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;第三电路,其配置成生成另一随机数序列;以及第四电路,其配置成在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
本公开的某些方面提供了一种用于人工神经系统操作的设备。该设备一般包括:用于生成随机数序列的装置;用于对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列的装置;用于生成另一随机数序列的装置;以及用于在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列的装置。
本公开的某些方面提供了一种用于人工神经系统操作的计算机程序产品。该计算机程序产品一般包括具有指令的非瞬态计算机可读介质(例如,存储设备),该指令可执行以用于:生成随机数序列;对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;生成另一随机数序列;以及在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
附图简述
为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。
图1解说了根据本公开的某些方面的示例神经元网络。
图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的示例处理单元(神经元)。
图3解说了根据本公开的某些方面的示例尖峰定时依赖可塑性(STDP)曲线。
图4是根据本公开的某些方面的用于人工神经元的状态的示例曲线图,其解说用于定义神经元的行为的正态相和负态相。
图5解说了根据本公开的某些方面的示例简化可编程概率密度函数(PDF)电路框图。
图6A-6D解说了根据本公开的某些方面的随机生成序列的柱状图的图表的示例。
图7解说了根据本公开的某些方面的用于支持与神经元尖峰相关联的给定丢弃率的每时钟循环的比较数目的示例。
图8解说了根据本公开的某些方面的丢弃概率与随机数的比较的示例框图。
图9解说了根据本公开的某些方面的每时钟生成16个字的线性反馈移位寄存器(LFSR)的示例框图。
图10A-10B解说了根据本公开的某些方面的用于神经元尖峰的突发长度通过的逻辑的示例。
图11是根据本公开的某些方面的用于操作人工神经系统的示例操作的流程图。
图11A解说了能够执行图11中所示的操作的示例装置。
图12解说了根据本公开的某些方面的用于使用通用处理器来操作人工神经系统的示例实现。
图13解说了根据本公开的某些方面的用于操作人工神经系统的示例实现,其中存储器可与个体分布式处理单元对接。
图14解说了根据本公开的某些方面的用于基于分布式存储器和分布式处理单元来操作人工神经系统的示例实现。
图15解说了根据本公开的某些方面的神经网络的示例实现。
详细描述
以下参照附图更全面地描述本公开的各个方面。然而,本公开可用许多不同形式来实施并且不应解释为被限定于本公开通篇给出的任何具体结构或功能。相反,提供这些方面是为了使得本公开将是透彻和完整的,并且其将向本领域技术人员完全传达本公开的范围。基于本文中的教导,本领域技术人员应领会,本公开的范围旨在覆盖本文中所披露的本公开的任何方面,不论其是与本公开的任何其他方面相独立地实现还是组合地实现的。例如,可以使用本文所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为本文中所阐述的本公开的各个方面的补充或者另外的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
示例神经系统
图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过程中,突触权重随时间推移的改变可通常使用指数衰退来达成,如由下式给出的:
其中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时发放尖峰。
HunzingerCold模型
HunzingerCold神经元模型是能再现丰富多样的各种神经行为的最小双态相尖峰发放线性动态模型。该模型的一维或二维线性动态可具有两个态相,其中时间常数(以及耦合)可取决于态相。在阈下态相中,时间常数(按照惯例为负)表示漏泄通道动态,其一般作用于以生物学一致的线性方式使细胞返回到静息。阈上态相中的时间常数(按照惯例为正)反映抗漏泄通道动态,其一般驱动细胞发放尖峰,而同时在尖峰生成中引发等待时间。
如图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步阶)时通常将不会遵循这一点。
输入
神经元模型的输入可包括狄拉克δ函数,诸如电流形式的输入、或基于电导率的输入。在后一种情形中,对神经元状态的贡献可以是连续的或状态依赖型的。
用于产生用于过滤神经元尖峰的伪随机数的可编程概率分布函数的简化电路
在专用集成电路(ASIC)设计中,生成具有特定的非均匀值分布的随机数序列可能是难以实现的。虽然线性反馈移位寄存器(LFSR)可产生均匀分布的数字(且被很好地表征),但它们不能直接产生具有概率性分布的数字序列。典型的实现要求在LFSR之后使用面积和功率密集的乘法器和过滤器。
本公开的某些方面支持比典型情况下使用的电路更简单、更小、且更低功率的电路。其可被编程以产生各种非均匀分布的数字序列中的任一者。这些序列可逼近真实概率性分布,但维持足够的伪随机性以在概率意义上仍被认为是随机的。
根据本公开的某些方面,所给出的电路可以是模仿人工神经系统(诸如图1中所解说的人工神经系统100)的ASIC电路系统的视觉皮层部分内的过滤器块的积分部分。所给出的用于产生伪随机数的可编程概率分布函数的电路可被用于过滤(丢弃和通过)神经元尖峰。
概率性算法——简化的可编程概率密度函数
基于简化的可编程概率密度函数(PDF)的方法可以产生指示“直至下一丢弃的长度”以及“丢弃长度”的突发长度编码序列。下一获取的地址可恰适地递增“直至下一丢弃”,并且随后可加上“丢弃长度”作为到下一地址的跳跃。
图5解说了在使用最少门的同时可允许对PDF分布的显著可编程性的实现的示例框图500。PDF可从生成完全均匀的数字分布被调整为具有很低方差的数字分布。与蛮力概率性办法形成对比,在本实现中,甚至一个比较器也不使用。
在给定期望生成0到2N-1之间的数字范围或N个输出比特的情况下,实现长度为N+1往下到0的累积总和(CSUM)(例如,对于N=4,CSUM=4+3+2+1=10)的线性反馈移位寄存器(LFSR)502以生成随机数序列。LFSR502可以每时钟循环产生一个新比特,或者对于较不相关的操作产生许多比特。来自LFSR502的可变数目的比特504可以一起进行与运算(AND)以形成N比特字506,其中LSB可使用最少数目的一起进行与运算的LFSR比特,而MSB可以使用最多的一起进行与运算的比特。虽然图5中解说了每个输出比特具有线性递增数目的与门508,但通过将与门数目增加甚至更多可以达成PDF的更低方差极限。
该第一LFSR502加上与运算缩减的输出(N比特字506)的PDF由图6A中的图表600中的线602解说。照这样,没有非常有用的分布。然而,这些值可从MSB到LSB地传递通过或(OR)门级联510,以产生由圆604解说的PDF。实质上,该级联或运算对八阶范围进行积分并向它们指派单个值。
使用该值(即,图5中的值512)作为用于分开的LFSR的均匀分布输出的比特掩码可以提供逼近正态分布的PDF,如图6A中的图表600中的线606解说的。如图5中的框图500中所示,在没有任何比特掩码来修改任何信号的情况下,图5中的比特506的PDF具有均值3.9175。
图6A中的分布606中的高值可通过利用图5中解说的与运算比特掩码514来消除。例如,设置值‘0x1F’可以将输出值限制为0到31。这在图6B中由线608解说,其示出了范围受限的数字序列(图5中的比特516)。
图6A中的PDF606的低值部分可使用向图5中的第一LFSR的输出应用的在图5中解说的或运算比特掩码518通过较高范围被平坦化(白化)。图6C解说了具有图5中解说的数字(比特)520的PDF的经平坦化(白化)低值部分的示例图表。
图5中的输出或运算掩码527可强制值范围。例如,在设为‘0x20’(假定8比特输出值)的情况下,PDF将仅包含从0x20到0xFF的值,尽管中间值模式也将可能丢失。因此,PDF将包括[0x20:0x3F,0x60:0x7F,0xA0:0xBF,0xE0:0xFF]。应注意,仍将存在对结果所得PDF的正态分布包络,如示出范围受限序列的图6D中所解说的。还应注意,可能不一定期望消除范围,尤其是低数字范围。
图5中的框图500还解说了驱动复用器524的“可编程选择”寄存器522。该逻辑将第一阶段的N比特输出520与第二LFSR528的N比特(最终)输出526解耦。可以增大输出比特的数目(例如,从N增大到N+2),从而允许更高比特使用各种概率之一。这可允许在不增长LFSR502或者与运算缩减门508的情况下增大输出的动态范围。该级别的控制可帮助细调具有低于1%的分辨率的丢弃概率(即,丢弃人工神经系统中的尖峰的概率)。
替换实现和折衷
带宽缩减——蛮力设计
用于带宽缩减(即,尖峰缩减)的最直截了当的办法可以是计算尖峰丢弃百分比以与表示每个个体尖峰的0到100%的伪随机序列进行比较。当随机数超过丢弃百分比时,神经元尖峰通过。为了确保CLS获取管理器维持接近100%的带宽,SNS过滤器可能需要平均每时钟发送一个尖峰(或更多)。因此,为了支持50%的尖峰丢弃率,每时钟可能需要执行至少两次丢弃概率检查;对于90%的尖峰丢弃率,可能需要10次比较;对于99%的尖峰丢弃率,可能需要100次比较。这在图7的表700中解说。
图8中的示例框图800解说了N个并行比较。对于比较位宽(BW),丢弃概率分辨率为2-BW。例如,8比特比较提供2-8=0.4%分辨率;10比特比较提供0.1%分辨率。
配置成生成随机数序列的LFSR实现起来可以是简单的。它们可被容易地修改成在单个时钟循环内生成序列中的多个连贯字。这在码字取决于尚未计算出的状态比特时可变得复杂,且由此可能需要执行“前瞻”型逻辑评估。可通过选取其最低阶项仍高于每个循环要生成的伪随机字的数目的多项式来避免复杂的前瞻。例如,可配置31比特LFSR,其XNOR(同或)比特27和30在不添加任何前瞻的情况下可允许每个时钟生成28个码字。另一方面,可配置32比特LFSR,其XNOR比特31、21、1和0可仅产生下一码字而不将该结果用于后续码字。这对用于大量同时字的定时完结可具有影响。替换地,可在LFSR中利用不同的比特置换以从相同的LFSR状态生成附加的字。事实上,从LFSR获取的任何值应当被置换以避免从1和0的突发的移位版本中发生的相关性。此外,根据本公开的某些方面,可利用更复杂的基于LFSR的码生成器(诸如但不限于Gold码生成器(GCG))来代替简单的LFSR。通过使用GCG,可减少或完全避免所生成的码字之间的相关性。
图9解说了根据本公开的某些方面的每时钟循环可生成16个字的31比特LFSR的示例框图900。如图9中所解说的,XNOR比特27和30在不添加任何前瞻的情况下可允许每个时钟生成16个码字。
在逻辑上最简单的将比较结果的决策向量(DV)(例如,图8中的框图800中解说的DV)转换成地址/长度输出字的方法可以是产生长度=1且地址字段为某个基数值加上到指示‘通过’(即,不丢弃)的每个比较结果的索引的一系列字。这种方法可被称为“长度-1通过”。其可以产生最高数目的尖峰列表(虽然每个列表的长度为1),这在下游存在每字的任何开销的情况下会影响系统。另外,这在该时钟循环的所有比较都指示丢弃的情况下会由于下游失效时间而导致略高的实际尖峰丢弃率。
替换地,通过确定DV中的通过突发的长度来维持某个列表效率,从而允许输出字中的长度大于1将是有益的。这种方法可被称为“突发-长度通过”。其将允许每个时钟循环有高于1个通过的尖峰,从而几乎消除了下游失效时间的机会。
在本公开的一方面,可基于对决策向量的各种比特级修改来实现“突发-长度通过”。如果‘N’表示每时钟的比较数目(来自图7中的表700),则DV将被定义为DV[N-1:0],同时‘1’指示丢弃而0指示通过。另外,DV的LSB可表示在尖峰列表开头处的决策,而MSB为较晚/较低。那么,DV字中的任何‘01’比特序列将标记突发的开头,而‘10’指示结束。由此,
突发_开始={DV[N-2:0],1’b0}&(!DV[N-1:0]);(1)
以及
突发_结束=!DV[N-1:0]&{DV[N-2:0],1’b0};(2)
可将1’b0级联在表示任何先前突发的完成的LSB之下,因为从一组N个比较到下一组没有进位。
根据这些项,可使用下式来计算到第一突发的地址的偏移:
突发_地址_偏移=SUM(CASCADED_AND(!突发_开始));(3)
其中从CASCADED_AND(级联_与)函数得到的每个比特是所有输入比特中在其自己以下的子范围的与运算缩减(即,结果[比特]=AND_REDUCED(输入[比特:0]))。一般而言,CASCADED_AND函数的结果可以是地址的温度计编码(thermometer-coded)版本,且总和(SUM)转换成数字编码。
类似计算提供了:
突发_结束_偏移=SUM(CASCADED_AND(!突发_结束));(4)
然而,并非取该总和(SUM)来从中减去地址以产生长度,可以对两个CASCASED_AND函数的结果进行逐比特XOR(异或)运算并避免减法,以计算:
突发_长度=SUM(CASCADED_AND(!突发_开始)∧CASCADED_AND(!突发_结束));(5)
在具有通过尖峰丢弃率来修改的地址和长度的情况下,输出字的CLS字段可被修改以从恰当基地址加上突发地址偏移来指示有限长度的突发。由于单个DV可包含多个突发(例如,神经元尖峰的突发),因此可能需要搜索下一突发(DV_NEXT)。由于输出速率限于每时钟循环一个尖峰列表,因此可能需要仅消除DV中的先前突发:
DV_NEXT=DV|({CASCADED_AND(!突发_结束),1’b1});(6)
在一方面,将有可能在结束处级联1’b1以有意义地对准各比特。AND_REDUCED(DV_NEXT)等于1将指示没有进一步的突发,由此其将改为加载下一组比较结果(新鲜DV)并推进LFSR状态。
以上逻辑(尤其是‘CASCADED(级联)’函数)的未优化实现可能看起来会导致大量逻辑级别。然而,各种工具可添加前瞻型优化。替换地,恰好在这些函数之前或之后的寄存器级可以在必要的情况下改善定时。
图10A-10B解说了相同LFSR值的两次迭代的逻辑实现。包括了使用示例DV=8’b10101100的期望值以便于解说。不允许单个突发跨越多个时钟循环(即,没有长度累积)可通过在DV的开头和结束两者处级联‘丢弃’来建模。由于这些比特仅用于促成下面的逻辑,并且逻辑合成工具将传播常数,因此图10A中的示图中的文本1000指示了这些值的实际信息进位部分。
图10B解说了下一时钟循环上的相同硬件,但处理下一突发。第一突发指示已从DV中被移除,从而第二迭代可以开始。文本1002表示在DV被更新之后改变的值。
图11是根据本公开的某些方面的用于操作人工神经系统的示例操作1100的流程图。操作1100可以硬件(例如由一个或多个神经处理单元,诸如神经元形态处理器)、以软件或以固件来执行。该人工神经系统可被建模在各种生物或虚构神经系统中的任一者上,诸如视觉神经系统、听觉神经系统、海马体等。
操作1100可始于在1102,生成随机数序列。在1104,可对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列。在1106,可生成另一随机数序列。在1108,可在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。本公开的某些方面支持根据第二伪随机数序列的PDF(即,基于来自图5的框图500中的比特序列526的PDF)来丢弃与人工神经系统(例如,来自图1的人工神经系统100)的人工神经元相关联的尖峰。
图12解说了根据本公开的某些方面的使用通用处理器1202来操作人工神经系统的前述方法的示例框图1200。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器块1204中,而在通用处理器1202处执行的有关指令可从程序存储器1206中加载。在本公开的一方面,加载到通用处理器1202中的指令可包括用于以下操作的代码:生成随机数序列;对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;生成另一随机数序列;以及在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
图13解说了根据本公开的某些方面的用于操作人工神经系统的前述方法的示例框图1300,其中存储器1302可经由互连网络1304与计算网络(神经网络)的个体(分布式)处理单元(神经处理器)1306对接。与计算网络(神经网络)相关联的变量(神经信号)、突触权重和/或系统参数可被存储在存储器1302中,并且可从存储器1302经由互连网络1304的连接被加载到每个处理单元(神经处理器)1306中。在本公开的一方面,处理单元1306可被配置成:生成随机数序列;对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;生成另一随机数序列;以及在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
图14解说了根据本公开的某些方面的用于基于分布式权重存储器1402和分布式处理单元(神经处理器)1404来操作人工神经系统的前述方法的示例框图1400。如图14中所解说的,一个存储器组1402可直接与计算网络(神经网络)的一个处理单元1404对接,其中该存储器组1402可存储与该处理单元(神经处理器)1404相关联的变量(神经信号)、突触权重和/或系统参数。在本公开的一方面,处理单元1404可被配置成:生成随机数序列;对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;生成另一随机数序列;以及在第一序列与该另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
图15解说了根据本公开的某些方面的神经网络1500的示例实现。如图15中所解说的,神经网络1500可包括多个局部处理单元1502,它们可执行以上描述的方法的各种操作。每个处理单元1502可包括局部状态存储器1504和存储该神经网络的参数的局部参数存储器1506。另外,处理单元1502可包括具有局部(神经元)模型程序的存储器1508、具有局部学习程序的存储器1510、以及局部连接存储器1512。此外,如图15中所解说的,每个局部处理单元1502可与用于配置处理的单元1514对接并且与路由连接处理元件1516对接,单元1514可提供对局部处理单元的局部存储器的配置,元件1516提供局部处理单元1502之间的路由。
根据本公开的某些方面,每个局部处理单元1502可被配置成基于神经网络的一个或多个期望功能性特征来确定神经网络的参数,以及随着所确定的参数被进一步适配、调谐和更新来使这一个或多个功能性特征朝着期望的功能性特征发展。
以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。例如,各个操作可由图12-15中所示的各个处理器中的一个或多个来执行。一般而言,在存在附图中解说的操作的场合,这些操作可具有带相似编号的相应配对装置加功能组件。例如,图11中所解说的操作1100对应于图11A中所解说的装置1100A。
例如,用于显示的装置可包括显示器(例如,监视器、平面屏幕、触摸屏等)、打印机、或任何其他用于输出数据以供视觉描绘(例如表、图表或图形)的合适装置。用于处理的装置、用于接收的装置、用于跟踪的装置、用于调节的装置、用于更新的装置、或用于确定的装置可包括处理系统,该处理系统可包括一个或多个处理器或处理单元。用于感测的装置可包括传感器。用于存储的装置可包括可由处理系统访问的存储器或任何其它合适的存储设备(例如,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 (44)
1.一种方法,包括:
生成随机数序列;
对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;
生成另一随机数序列;以及
在所述第一序列与所述另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
2.如权利要求1所述的方法,其特征在于:
所述随机数序列是使用第一线性反馈移位寄存器(LFSR)来生成的,并且
所述另一随机数序列是使用与所述第一LFSR分开的第二LFSR来生成的。
3.如权利要求1所述的方法,其特征在于:
所述随机数序列的比特进行与运算,并且
经与运算的比特传递通过或门级联以获得比特掩码值。
4.如权利要求3所述的方法,其特征在于,进一步包括:
向所述随机数序列的比特应用所述比特掩码值以生成所述第一序列。
5.如权利要求3所述的方法,其特征在于,进一步包括:
在传递通过所述或门级联的所述比特与第一比特掩码之间执行与运算以获得范围受限的随机数序列。
6.如权利要求5所述的方法,其特征在于,进一步包括:
在所述范围受限的序列的比特与第二比特掩码之间执行或运算以获得另一随机数序列,所述另一随机数序列的PDF具有经白化低值部分。
7.如权利要求1所述的方法,其特征在于,进一步包括:
使用可控制复用器将所述第一序列与所述第二序列解耦。
8.如权利要求7所述的方法,其特征在于,进一步包括:
使用所述复用器的输出、所述第一序列的比特和所述另一序列的比特来执行比特级运算,以生成具有可编程PDF的所述第二伪随机数序列。
9.如权利要求1所述的方法,其特征在于,进一步包括:
在所述第二伪随机数序列与比特掩码之间执行或运算以调节所述第二序列的所述可编程PDF。
10.如权利要求1所述的方法,其特征在于,进一步包括:
根据所述第二伪随机数序列的所述PDF来丢弃与人工神经系统的人工神经元相关联的尖峰。
11.如权利要求1所述的方法,其特征在于:
所述随机数序列是使用第一Gold码生成器来生成的,并且
所述另一随机数序列是使用与所述第一Gold码生成器分开的第二Gold码生成器来生成的。
12.一种装置,包括:
第一电路,其配置成生成随机数序列;
第二电路,其配置成对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;
第三电路,其配置成生成另一随机数序列;以及
第四电路,其配置成在所述第一序列与所述另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
13.如权利要求12所述的装置,其特征在于:
配置成生成所述随机数序列的所述第一电路包括第一线性反馈移位寄存器(LFSR),并且
配置成生成所述另一随机数序列的所述第三电路包括与所述第一LFSR分开的第二LFSR。
14.如权利要求12所述的装置,其特征在于,所述第二电路被进一步配置成:
对所述随机数序列的比特执行与运算,以及
将经与运算的比特传递通过或门级联以获得比特掩码值。
15.如权利要求14所述的装置,其特征在于,所述第二电路被进一步配置成:
向所述随机数序列的比特应用所述比特掩码值以生成所述第一序列。
16.如权利要求14所述的装置,其特征在于,所述第二电路被进一步配置成:
在传递通过所述或门级联的所述比特与第一比特掩码之间执行与运算以获得范围受限的随机数序列。
17.如权利要求16所述的装置,其特征在于,所述第二电路被进一步配置成:
在所述范围受限的序列的比特与第二比特掩码之间执行或运算以获得另一随机数序列,所述另一随机数序列的PDF具有经白化低值部分。
18.如权利要求12所述的装置,其特征在于,进一步包括:
可控制复用器,其配置成将所述第一序列与所述第二序列解耦。
19.如权利要求18所述的装置,其特征在于,所述第四电路被进一步配置成:
使用所述复用器的输出、所述第一序列的比特和所述另一序列的比特来执行比特级运算,以生成具有可编程PDF的所述第二伪随机数序列。
20.如权利要求12所述的装置,其特征在于,进一步包括:
第五电路,其配置成在所述第二伪随机数序列与比特掩码之间执行或运算以调节所述第二序列的所述可编程PDF。
21.如权利要求12所述的装置,其特征在于,进一步包括:
第五电路,其配置成根据所述第二伪随机数序列的所述PDF来丢弃与包括所述装置的人工神经系统的人工神经元相关联的尖峰。
22.如权利要求12所述的装置,其特征在于:
配置成生成所述随机数序列的所述第一电路包括第一Gold码生成器,并且
配置成生成所述另一随机数序列的所述第三电路包括与所述第一Gold码生成器分开的第二Gold码生成器。
23.一种设备,包括:
用于生成随机数序列的装置;
用于对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列的装置;
用于生成另一随机数序列的装置;以及
用于在所述第一序列与所述另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列的装置。
24.如权利要求23所述的设备,其特征在于:
所述用于生成所述随机数序列的装置包括用于使用第一线性反馈移位寄存器(LFSR)的装置,并且
所述用于生成所述另一随机数序列的装置包括用于使用与所述第一LFSR分开的第二LFSR的装置。
25.如权利要求23所述的设备,其特征在于,进一步包括:
用于对所述随机数序列的比特执行与运算的装置,以及
用于将经与运算的比特传递通过或门级联以获得比特掩码值的装置。
26.如权利要求25所述的设备,其特征在于,进一步包括:
用于向所述随机数序列的比特应用所述比特掩码值以生成所述第一序列的装置。
27.如权利要求25所述的设备,其特征在于,进一步包括:
用于在传递通过所述或门级联的所述比特与第一比特掩码之间执行与运算以获得范围受限的随机数序列的装置。
28.如权利要求27所述的设备,其特征在于,进一步包括:
用于在所述范围受限的序列的比特与第二比特掩码之间执行或运算以获得另一随机数序列的装置,所述另一随机数序列的PDF具有经白化低值部分。
29.如权利要求23所述的设备,其特征在于,进一步包括:
用于使用可控制复用器将所述第一序列与所述第二序列解耦的装置。
30.如权利要求29所述的设备,其特征在于,进一步包括:
用于使用所述复用器的输出、所述第一序列的比特和所述另一序列的比特来执行比特级运算,以生成具有可编程PDF的所述第二伪随机数序列的装置。
31.如权利要求23所述的设备,其特征在于,进一步包括:
用于在所述第二伪随机数序列与比特掩码之间执行或运算以调节所述第二序列的所述可编程PDF的装置。
32.如权利要求23所述的设备,其特征在于,进一步包括:
用于根据所述第二伪随机数序列的所述PDF来丢弃与包括所述设备的人工神经系统的人工神经元相关联的尖峰的装置。
33.如权利要求23所述的设备,其特征在于:
所述用于生成所述随机数序列的装置包括用于使用第一Gold码生成器的装置,并且
所述用于生成所述另一随机数序列的装置包括用于使用与所述第一Gold码生成器分开的第二Gold码生成器的装置。
34.一种计算机程序产品,所述计算机程序产品包括具有指令的非瞬态计算机可读介质,所述指令能执行以用于:
生成随机数序列;
对所生成的随机数序列执行比特级运算以生成具有可编程概率分布函数(PDF)的第一伪随机数序列;
生成另一随机数序列;以及
在所述第一序列与所述另一序列之间执行比特级运算以生成具有可编程PDF的第二伪随机数序列。
35.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
通过使用第一线性反馈移位寄存器(LFSR)来生成所述随机数序列,以及
通过使用与所述第一LFSR分开的第二LFSR来生成所述另一随机数序列。
36.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
对所述随机数序列的比特执行与运算,以及
将经与运算的比特传递通过或门级联以获得比特掩码值。
37.如权利要求36所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
向所述随机数序列的比特应用所述比特掩码值以生成所述第一序列。
38.如权利要求36所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
在传递通过所述或门级联的所述比特与第一比特掩码之间执行与运算以获得范围受限的随机数序列。
39.如权利要求38所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
在所述范围受限的序列的比特与第二比特掩码之间执行或运算以获得另一随机数序列,所述另一随机数序列的PDF具有经白化低值部分。
40.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
使用可控制复用器将所述第一序列与所述第二序列解耦。
41.如权利要求40所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
使用所述复用器的输出、所述第一序列的比特和所述另一序列的比特来执行比特级运算,以生成具有可编程PDF的所述第二伪随机数序列。
42.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
在所述第二伪随机数序列与比特掩码之间执行或运算以调节所述第二序列的所述可编程PDF。
43.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
根据所述第二伪随机数序列的所述PDF来丢弃与人工神经系统的人工神经元相关联的尖峰。
44.如权利要求34所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括用于以下操作的代码:
通过使用第一Gold码生成器来生成所述随机数序列,以及
通过使用与所述第一Gold码生成器分开的第二Gold码生成器来生成所述另一随机数序列。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361885980P | 2013-10-02 | 2013-10-02 | |
US61/885,980 | 2013-10-02 | ||
US14/195,988 US9417845B2 (en) | 2013-10-02 | 2014-03-04 | Method and apparatus for producing programmable probability distribution function of pseudo-random numbers |
US14/195,988 | 2014-03-04 | ||
PCT/US2014/053649 WO2015050659A2 (en) | 2013-10-02 | 2014-09-02 | Method and apparatus for producing programmable probability distribution function of pseudo-random numbers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105612492A true CN105612492A (zh) | 2016-05-25 |
CN105612492B CN105612492B (zh) | 2018-08-03 |
Family
ID=52741129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480054506.9A Expired - Fee Related CN105612492B (zh) | 2013-10-02 | 2014-09-02 | 在人工神经系统中减少尖峰的方法、装置、设备及介质 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9417845B2 (zh) |
EP (1) | EP3053106A2 (zh) |
JP (1) | JP6133503B2 (zh) |
KR (1) | KR101790909B1 (zh) |
CN (1) | CN105612492B (zh) |
BR (1) | BR112016007326A2 (zh) |
CA (1) | CA2925054A1 (zh) |
WO (1) | WO2015050659A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650474A (zh) * | 2016-12-01 | 2017-05-10 | 惠州Tcl移动通信有限公司 | 一种基于移动终端的伪寄存器值反馈处理方法及系统 |
CN109697506A (zh) * | 2017-10-20 | 2019-04-30 | 图核有限公司 | 神经网络中的处理 |
CN111742333A (zh) * | 2018-02-20 | 2020-10-02 | 三星电子株式会社 | 执行深度神经网络学习的方法及其装置 |
CN112308107A (zh) * | 2019-07-25 | 2021-02-02 | 智力芯片有限责任公司 | 可重构和时间编码卷积尖峰神经网络中基于事件的特征分类 |
CN113377335A (zh) * | 2021-05-14 | 2021-09-10 | 长沙理工大学 | 一种伪随机数发生器、伪随机数发生方法、处理器芯片 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015100760A1 (de) * | 2015-01-20 | 2016-07-21 | Infineon Technologies Ag | Generieren von Zufallszahlen |
US11177835B2 (en) | 2015-09-25 | 2021-11-16 | SK Hynix Inc. | Data storage device |
KR102285940B1 (ko) * | 2015-05-29 | 2021-08-05 | 에스케이하이닉스 주식회사 | 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
US11611359B2 (en) | 2015-05-29 | 2023-03-21 | SK Hynix Inc. | Data storage device |
US11515897B2 (en) | 2015-05-29 | 2022-11-29 | SK Hynix Inc. | Data storage device |
US10396827B2 (en) | 2015-09-25 | 2019-08-27 | SK Hynix Inc. | Data storage device |
GB2568660B (en) * | 2017-10-20 | 2020-10-14 | Graphcore Ltd | Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit |
US10820068B2 (en) * | 2019-02-07 | 2020-10-27 | Simmonds Precision Products, Inc. | Configurable sensing systems and methods for configuration |
US11403514B2 (en) * | 2020-05-13 | 2022-08-02 | International Business Machines Corporation | Correlative time coding method for spiking neural networks |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058206A (en) * | 1997-12-01 | 2000-05-02 | Kortge; Chris Alan | Pattern recognizer with independent feature learning |
US20090135886A1 (en) * | 2007-11-27 | 2009-05-28 | Proteus Biomedical, Inc. | Transbody communication systems employing communication channels |
US20090228238A1 (en) * | 2008-03-04 | 2009-09-10 | Vikash Kumar Mansinghka | Combinational Stochastic Logic |
US7860912B1 (en) * | 2006-12-08 | 2010-12-28 | Nvidia Corporation | Random number generator with improved uniformity for networking |
CN102592171A (zh) * | 2011-12-30 | 2012-07-18 | 南京邮电大学 | 基于bp神经网络的认知网络性能预测方法及装置 |
CN102663428A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院上海光学精密机械研究所 | 神经网络模式识别系统和模式识别方法 |
CN102681816A (zh) * | 2012-05-22 | 2012-09-19 | 太原理工大学 | 一种全光真随机数发生器 |
US20130073598A1 (en) * | 2011-09-20 | 2013-03-21 | Qualcomm Incorporated | Entropy source with magneto-resistive element for random number generator |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9014569D0 (en) * | 1990-06-29 | 1990-08-22 | Univ London | Devices for use in neural processing |
US5063351A (en) * | 1990-09-24 | 1991-11-05 | Bell Communications Research, Inc. | Digital signal processing relating to near-end crosstalk cable measurements |
JPH0520292A (ja) * | 1991-07-12 | 1993-01-29 | Ricoh Co Ltd | 乱数パルス列発生回路装置及び信号処理装置 |
US5956624A (en) * | 1994-07-12 | 1999-09-21 | Usa Digital Radio Partners Lp | Method and system for simultaneously broadcasting and receiving digital and analog signals |
US5987483A (en) | 1997-01-13 | 1999-11-16 | Leybold Systems Gmbh | Random number generator based on directional randomness associated with naturally occurring random events, and method therefor |
US5907822A (en) * | 1997-04-04 | 1999-05-25 | Lincom Corporation | Loss tolerant speech decoder for telecommunications |
US6792439B2 (en) | 2001-04-13 | 2004-09-14 | Science Applications International Corp. | Method and apparatus for generating random numbers with improved statistical properties |
US20080255684A1 (en) * | 2002-11-18 | 2008-10-16 | Universiti Putra Malaysia | Artificial intelligence device and corresponding methods for selecting machinability data |
MY141127A (en) * | 2002-11-18 | 2010-03-15 | Univ Putra Malaysia | Artificial intelligence device and corresponding methods for selecting machinability data |
US20100070549A1 (en) | 2006-06-20 | 2010-03-18 | Nxp B.V. | Random number generator system, method for generating random numbers |
IL187035A0 (en) | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Configurable random number generator |
US9052358B2 (en) * | 2012-01-27 | 2015-06-09 | Portland State University | Copula-based system and method for management of manufacturing test and product specification throughout the product lifecycle for electronic systems or integrated circuits |
-
2014
- 2014-03-04 US US14/195,988 patent/US9417845B2/en not_active Expired - Fee Related
- 2014-09-02 CA CA2925054A patent/CA2925054A1/en not_active Abandoned
- 2014-09-02 KR KR1020167011571A patent/KR101790909B1/ko active IP Right Grant
- 2014-09-02 JP JP2016519324A patent/JP6133503B2/ja not_active Expired - Fee Related
- 2014-09-02 BR BR112016007326A patent/BR112016007326A2/pt not_active Application Discontinuation
- 2014-09-02 CN CN201480054506.9A patent/CN105612492B/zh not_active Expired - Fee Related
- 2014-09-02 EP EP14766084.9A patent/EP3053106A2/en not_active Withdrawn
- 2014-09-02 WO PCT/US2014/053649 patent/WO2015050659A2/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058206A (en) * | 1997-12-01 | 2000-05-02 | Kortge; Chris Alan | Pattern recognizer with independent feature learning |
US7860912B1 (en) * | 2006-12-08 | 2010-12-28 | Nvidia Corporation | Random number generator with improved uniformity for networking |
US20090135886A1 (en) * | 2007-11-27 | 2009-05-28 | Proteus Biomedical, Inc. | Transbody communication systems employing communication channels |
US20090228238A1 (en) * | 2008-03-04 | 2009-09-10 | Vikash Kumar Mansinghka | Combinational Stochastic Logic |
US20130073598A1 (en) * | 2011-09-20 | 2013-03-21 | Qualcomm Incorporated | Entropy source with magneto-resistive element for random number generator |
CN102592171A (zh) * | 2011-12-30 | 2012-07-18 | 南京邮电大学 | 基于bp神经网络的认知网络性能预测方法及装置 |
CN102663428A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院上海光学精密机械研究所 | 神经网络模式识别系统和模式识别方法 |
CN102681816A (zh) * | 2012-05-22 | 2012-09-19 | 太原理工大学 | 一种全光真随机数发生器 |
Non-Patent Citations (2)
Title |
---|
DAVID B. THOMAS AND WAYNE LUK: "FPGA Accelerated Simulation of Biologically Plausible Spiking Neural Networks", 《17TH IEEE SYMPOSIUM ON FIELD PROGRAMMABLE CUSTOM COMPUTING MACHINES》 * |
李彦斌,李存斌,宋晓华: "改进的人工智能神经网络预测模型及其应用", 《中南大学学报(自然科学版)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650474A (zh) * | 2016-12-01 | 2017-05-10 | 惠州Tcl移动通信有限公司 | 一种基于移动终端的伪寄存器值反馈处理方法及系统 |
CN106650474B (zh) * | 2016-12-01 | 2020-06-02 | 惠州Tcl移动通信有限公司 | 一种基于移动终端的伪寄存器值反馈处理方法及系统 |
CN109697506A (zh) * | 2017-10-20 | 2019-04-30 | 图核有限公司 | 神经网络中的处理 |
CN111742333A (zh) * | 2018-02-20 | 2020-10-02 | 三星电子株式会社 | 执行深度神经网络学习的方法及其装置 |
US12001954B2 (en) | 2018-02-20 | 2024-06-04 | Samsung Electronics Co., Ltd. | Method of performing learning of deep neural network and apparatus thereof |
CN112308107A (zh) * | 2019-07-25 | 2021-02-02 | 智力芯片有限责任公司 | 可重构和时间编码卷积尖峰神经网络中基于事件的特征分类 |
CN113377335A (zh) * | 2021-05-14 | 2021-09-10 | 长沙理工大学 | 一种伪随机数发生器、伪随机数发生方法、处理器芯片 |
CN113377335B (zh) * | 2021-05-14 | 2022-07-01 | 长沙理工大学 | 一种伪随机数发生器、伪随机数发生方法、处理器芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2015050659A3 (en) | 2015-09-11 |
KR101790909B1 (ko) | 2017-10-26 |
BR112016007326A2 (pt) | 2017-08-01 |
WO2015050659A2 (en) | 2015-04-09 |
CN105612492B (zh) | 2018-08-03 |
CA2925054A1 (en) | 2015-04-09 |
US9417845B2 (en) | 2016-08-16 |
JP2016541038A (ja) | 2016-12-28 |
EP3053106A2 (en) | 2016-08-10 |
KR20160062158A (ko) | 2016-06-01 |
JP6133503B2 (ja) | 2017-05-24 |
US20150095274A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105612492A (zh) | 用于产生伪随机数的可编程概率分布函数的方法和装置 | |
CN105229675B (zh) | 尖峰网络的高效硬件实现 | |
US10339447B2 (en) | Configuring sparse neuronal networks | |
CN104781836B (zh) | 分段线性神经元建模 | |
CN105723383A (zh) | 因果凸显性时间推断 | |
CN105934766A (zh) | 用阴影网络来监视神经网络 | |
WO2013119867A1 (en) | Methods and apparatus for spiking neural computation | |
EP2812855A1 (en) | Methods and apparatus for spiking neural computation | |
WO2015148190A2 (en) | Training, recognition, and generation in a spiking deep belief network (dbn) | |
KR20160136381A (ko) | 신경 네트워크들에서의 차분 인코딩 | |
US20150212861A1 (en) | Value synchronization across neural processors | |
TW201541372A (zh) | 使用尖峰發放神經元的人工神經網路和感知器學習 | |
WO2013119861A1 (en) | Methods and apparatus for spiking neural computation | |
KR20170041724A (ko) | 비동기 펄스 변조를 이용한 인공 뉴런들 및 스파이킹 뉴런들 | |
CN105580031B (zh) | 在多维范围上对包括可分离子系统的系统的评估 | |
CN106030620A (zh) | 用于随机尖峰贝叶斯网络的基于事件的推断和学习 | |
US9652711B2 (en) | Analog signal reconstruction and recognition via sub-threshold modulation | |
CN105659262A (zh) | 在尖峰神经网络中使用重放来实现突触学习 | |
CN106164940A (zh) | 在尖峰神经网络中通过全局标量值来调制可塑性 | |
CN106068519A (zh) | 用于共用神经元模型的高效实现的方法和装置 | |
CN105659261A (zh) | 尖峰神经元网络中的拥塞避免 | |
CN106133763B (zh) | 可塑性突触管理 | |
CN105659260B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180803 Termination date: 20190902 |
|
CF01 | Termination of patent right due to non-payment of annual fee |