CN114676831A - 基于时间编码的低功耗脉冲神经网络片上学习系统 - Google Patents
基于时间编码的低功耗脉冲神经网络片上学习系统 Download PDFInfo
- Publication number
- CN114676831A CN114676831A CN202210317373.6A CN202210317373A CN114676831A CN 114676831 A CN114676831 A CN 114676831A CN 202210317373 A CN202210317373 A CN 202210317373A CN 114676831 A CN114676831 A CN 114676831A
- Authority
- CN
- China
- Prior art keywords
- input
- alpha
- input data
- beta
- vectors
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 26
- 210000002569 neuron Anatomy 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 230000001174 ascending effect Effects 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 24
- 238000013139 quantization Methods 0.000 claims description 19
- 239000012528 membrane Substances 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 210000000225 synapse Anatomy 0.000 claims description 5
- 230000001242 postsynaptic effect Effects 0.000 claims description 2
- 238000012421 spiking Methods 0.000 claims description 2
- 210000005215 presynaptic neuron Anatomy 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 6
- 230000000946 synaptic effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 210000004205 output neuron Anatomy 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000005587 bubbling Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002964 excitative effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000003518 presynaptic effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于时间编码的低功耗脉冲神经网络片上学习系统,包括排序模块和计算模块,排序模块用于接收已进行时间编码的若干组输入数据,并将所述输入数据升序或降序排列;计算模块用于接收所述输入数据和预存储的与输入数据匹配的权重数据;基于预定规则将所述输入数据量化为预设常数,获得量化输入数据;基于权重数据判断神经元是否会激发,若激发,则采用所述量化输入数据和权重数据计算输出脉冲时间,并采用线性化规则更新权重数据。通过将输入数据量化降低硬件运算难度,采用优化的权重更新规则以便于硬件设计,减少运算量,具有功耗低、面积小速度快的优点;提升了脉冲经网络运算速度,且能够在硬件上实现片上学习。
Description
技术领域
本发明属于人工智能算法硬件加速领域,尤其涉及一种基于时间编码的低功耗脉冲神经网络片上学习系统。
背景技术
近些年来很多用于手写数字图片的识别的神经网络在硬件上实现。其中卷积神经网络为代表的网络被大规模地使用。然而卷积池化等操作需要大量的运算,这样一来需要消耗大量的硬件资源,也不利于低功耗的设计。针对以上的问题,近些年来脉冲神经网络(Spiking Neural Networks,SNNs)应运而生。
脉冲神经网络的出现是受到生物大脑结构的启发,生物学上的大脑可以以无监督的形式高效、低功率地处理信息。因此出现了模拟人类大脑的脉冲神经网络,该网络也被广泛认为是第三代神经网络。SNN在具有离散脉冲的神经元之间传播信息,相应的神经形态硬件可以在低功率下实现,这对电池受限的设备非常重要。
训练SNNs的方法主要有三种:从人工神经网络(ANNs)进行的转换、有监督学习方法和无监督学习方法。尽管由转换的SNNs和使用反向传播等监督学习方法转换的SNNs已经取得了一定的效果,但他们复杂的算法,让用硬件实现在线学习这些方法非常困难。
如何实现片上学习,降低系统功耗和减少硬件开销,是目前需要解决的问题。
发明内容
本发明的目的在于:
克服普遍神经网络硬件实现的不足之处,提供一种基于时间编码的低功耗脉冲神经网络片上学习系统,能够有效地降低功耗,减少硬件开销,并且还可以实现片上学习。
具体由以下技术方案实现:
一种基于时间编码的低功耗脉冲神经网络片上学习系统,包括:
排序模块,用于接收已进行时间编码的若干组输入数据,并将所述输入数据升序或降序排列;
计算模块,用于接收所述输入数据和预存储的与输入数据匹配的权重数据;基于预定规则将所述输入数据量化为预设常数,获得量化输入数据;基于权重数据判断神经元是否会激发,若激发,则采用所述量化输入数据和权重数据计算输出脉冲时间,并采用线性化规则更新权重数据。
发明的优点如下:在硬件上实现了使用时间编码的脉冲神经网络,并且具备在线学习的功能;经过设计和改进,该硬件系统具有计算复杂度低、面积小、功耗低等特性。
附图说明
图1为本发明的总体硬件架构示意图。
图2为本发明的改进九输入排序树结构示意图。
图3为本发明的运算单元架构示意图。
图4为本发明的CU结构示意图。
图5为本发明的权重更新架构示意图。
图6是本发明的排序过程示意图。
具体实施方式
基于上述问题,提出一种基于时间编码的低功耗脉冲神经网络片上学习系统,主要包括排序模块和计算模块。
其中,排序模块用于接收已进行时间编码的若干组输入数据,并将所述输入数据升序或降序排列;
计算模块用于接收所述输入数据和预存储的与输入数据匹配的权重数据;基于预定规则将所述输入数据量化为预设常数,获得量化输入数据;基于权重数据判断神经元是否会激发,若激发,则采用所述量化输入数据和权重数据计算输出脉冲时间,并采用线性化规则更新权重数据。
通过预设的规则将输入数据量化为预设常数,改变了原有方法需要通过计算指数函数值,因此能够大大提高计算效率,便于硬件实现。同时,权重更新采用线性化规则进行更新,改变了现有方法中,采用指数计算权重增量,导致计算效率较低的问题,同时提高了计算的准确率,而且输入量化可以自主选择量化细度,便于硬件实现,根据需求可以选择量化到底到多细。
换句话说,与现有技术不同的是,增加了数据量化的处理过程,解决了现有方法对硬件要求高,实现困难,计算效率低的问题。
如图1所示,在进一步的实施例中,本发明的基于时间编码的低功耗脉冲神经网络片上学习系统所使用的SNN有Nin个输入轴突和Nout兴奋性神经元。主要包括如下模块:
排序模块,用于对使用时间编码的数据进行从大到小或者从小到大的排序。
计算模块,主要用于根据量化输入的数据计算脉冲发生的时间,并找到最先发生的脉冲。
权重更新模块,根据最先发生的脉冲更新相对应的权重。
阈值和分类更新模块,根据最先发生的脉冲更新相对应的阈值,并给对应的输出神经元分类;存储单元,存储输入数据,排序结果,权重,阈值和输出分类。
工作流程为:整个系统由于可以进行片上学习,工作模式分为学习模式和推理模式。
在学习模式下,输入的数据经过排序模块进行排序,数据按从大到小输入运算单元,运算单元通过运算得到最先发生脉冲的神经元,然后将这个神经元索引输入权重更新模块、阈值和分类更新模块更新相对应的权重、阈值,并将该输出神经元贴上标签。
推理模式下,排序和计算过程不变,但是不再进行权重,阈值和标签的更新,此时阈值和分类更新模块只输出最先发生脉冲的神经元对应的标签。该标签就是图片分类的结果。
输入的像素首先被传递到输入的脉冲缓冲区。当所有输入像素值都存储在输入脉冲缓冲区中时,输入排序模块将与输入像素值按降序排序。排序后的像素和相应的像素索引存储在排序后的像素缓冲区中。一旦排序的脉冲缓冲区中内存的第一行排满,计算模块开始工作。计算模块计算每个神经元在每个输入脉冲时间,判断是否有神经元输出。整个系统分为学习模式和推理模式。
在学习模式下,利用寻找最小模块的最小输出指数来更新突触权值和膜阈值。根据简化的STDP学习规则,对连接到输出最小的神经元的突触权值进行更新,并通过膜电位阈值增加量Δv提高神经元的权值更新指标和膜阈值(膜电位阈值)。学习模式中的另一项任务是为每个神经元分配一个类。每次只给输出最小的神经元分配一个类,因为只有输出最小的神经元才能决定网络的输出。这次的最小输出用于与类值内存中之前保存的最小输出值进行比较。
如果这次的最小输出小于之前的值,我们将更新神经元的类,并将最小输出值保存在类值内存中,否则不更新。在推理模式中,没有更新任何值。重量更新模块不工作。膜阈值和类更新模块仍然可以工作,但膜阈值没有更新。该模块仅根据找到最小脉冲时间的神经元来给出网络的输出。
根据本申请的一个方面,所述预定规则的获取过程为:
获取待处理的像素值,将其归一化至[0,1]区间,获得归一化像素值,对于任一归一化像素值,求取其与1的差值,计算该差值的偶次幂,并进一步获得自然指数e的该偶次幂数值;
针对所有归一化像素值,计算自然指数e的偶次幂的上下限,并划分为若干区间,每一区间的端点值为2的倍数;
通过上述计算过程的逆运算获取各端点值对应的归一化像素值,并将其作为自变量区间端点,形成若干自变量区间;以端点值或两相邻端点值的算术平均数作为量化目标值,形成与所述自变量区间一一对应的若干量化常数值,以所述自变量区间和量化常数值构建所述预定规则。
在运行时,查找归一化像素值对应的自变量区间,并读取该自变量区间对应的量化常数值,即获得量化输入数据。
如图2所示,在一个实施例中,预定规则可以具体为:
输入数据≤0.125时,量化常数值Zq=2;
0.125≤输入数据≤0.3125时,量化常数值Zq=1.5;
输入数据≥0.3125时,量化常数值Zq=1。
Zq是量化后输入的数据,数据经过量化之后,在不影响计算精度的前提下,大大减小了运算的难度,减少了面积资源的消耗。
基于这一研究发现,计算复杂度和准确率没有特定的关系,本申请提出的方案,不仅降低了复杂度,而且提高了精度。
根据本申请的一个方面,所述排序模块的排序处理过程如下:
根据所述输入数据组数的质因数集合xt×yk×zj,构建α输入排序树和β输入排序树;
其中,α<β,β-α≤常数C,α、β∈{xa,yb,zc},其中1≤a≤t,1≤b≤k,1≤c≤j;α、β、a、b、c均为正整数;
将Nin组输入数据划分Nin/α个向量,每个向量由α个数据组成,保存至存储单元;
依序将Nin/α个向量发送到α输入排序树,
将Nin组输入数据划分Nin/β个向量,每个向量由β个数据组成,保存至存储单元;
依序将Nin/β个向量发送到β输入排序树,
重复上述过程排序过程,最终得到Nin个输入像素的排序。
在某个实施例中,有12组数据,则可以先两两拆分,分成6组数据,每组排序好后,再依序拆分为4组数据,再次排序好。反复上述过程,即可将12组数据全部排序好。
通过这一设计,便于硬件实现,节省硬件资源,同时提高计算效率。通过因数分解,获得输入数目相近的排序树。而使用输入数目接近的排序树,可以重复使用,便于减少面积资源。并且这种方法比起冒泡排序速度更快,比起并行排序,速度基本相同但资源大大减小。
如图3所述,根据本申请的一个方面,所述计算模块包括Kcal个计算单元和寻找最小模块,
每次计算Kcal个神经元,每次输入脉冲输入,Kcal个计算单元并行计算,
计算结束后,观测是否有输出脉冲发生,若有,则停止计算,
反之,继续下一个输入脉冲,直到有输出产生,或者所有输入脉冲都输入完毕;
如一轮中有多个输出脉冲,寻找最小模块比较并获得最小的输入脉冲。
具体地,该系统中计算模块分为计算和寻找最小值两个部分。由于输出有nout个神经元,理论上应该并行计算这nout个神经元,但在硬件实现上消耗太大,因此使用ncal个计算单元,一次只计算ncal个神经元,每次输入脉冲输入,ncal个计算单元并行计算,nout/ncal轮结束后,观测是否有输出脉冲发生,如果有就停止计算,如果没有则继续下一个输入脉冲,直到有输出产生,或者所有的输入脉冲都输入完毕。如果一轮中有多个输出脉冲,那么寻找最小模块就会比较这些脉冲哪个更小,也就是哪个更先发生。
计算模块由控制块和ncal个控制单元CU组成。控制单元CU可以每次计算一个输出神经元,因此每次可以在一个输入脉冲时计算ncal个兴奋性神经元。计算模块访问已排序的缓冲区和两个像素,前文中被量化的像素,发送到控制单元CUs。相应的突触权值、膜阈值和运算的中间结果也被发送到控制单元CUs。由于输出有nout个神经元,理论上应该并行计算这nout个神经元,但在硬件实现上消耗太大,因此使用ncal个计算模块,一次只计算ncal个神经元,如果神经元出现脉冲,控制单元CU就会发出一个停止信号,当这一轮的计算结束后,计算过程就会停止。如果没有则继续下一个输入脉冲,直到有输出产生,或者所有的输入脉冲都输入完毕。如果一轮中有多个输出脉冲,那么寻找最小模块就会比较这些脉冲哪个更小,也就是哪个更先发生。由于输入量化方案,在控制单元CU中不需要两个乘法器,而是只需要移位器和加法器,结构如图4所示。
根据本申请的一个方面,线性化规则更新权重数据的过程包括:
读取预存储的突触的权重上限wmax、下限wmin、各突触的原权重wold,以及权重更新系数η,
计算突触前神经元和后神经元的时间差,并判断该时间差是否大于零,
若大于,则突触的权重增量Δw=η(wmax-wold);
反之,突触的权重增量Δw=-η(wold-wmin)。
采用改进的权重更新规则,大大减小了运算的难度,减小了面积,降低了功耗,还提高了精度。而现有算法中权重更新规则需要用到指数运算,这大大提高了硬件设计的难度。权重更新模块针对时间编码的指数权重更新进行了硬件上的简化,并且新的权重更新规则还有上下界线,可以避免权重更新爆炸。
如图5所示,由于简化的权重更新规则,当选择适当的学习速率时,权重更新单元中只需要加法器、减法器和移位器。首先从权重记忆中提取相应的突触权值,并根据权重更新指数进行增强或减弱;然后将新的突触权值存储回权值记忆中。单个突触权重更新的这个过程消耗4个时钟周期。
根据本申请的一个方面,还包括阈值和分类更新模块,
在学习模式下,计算并存储最小输出值对应神经元的膜阈值增加量ΔV,并将该膜阈值增加量ΔV与预定值比较,若大于预定值,则为该神经元分配一个新的类,并更新该神经元的预定值。采用这种方式,提高该神经元的模电压门限值,从而避免该神经元一直被强化。
基于时间编码的低功耗脉冲神经网络片上学习系统中的阈值和分类更新模块用于更新阈值和分类。在学习模式下,输出最小的神经元的膜阈值增加了Δv。将这次的最小输出值与该神经元之前的最小输出值进行比较,以决定是否为该神经元分配一个新的类,并更新该神经元的最小输出值。在推理模式下,该模块通过指定的类给出网络的输出。
在进一步的实施例中,基于权重数据判断神经元是否会激发的过程具体为
当前各个权重数据的累加和,如果大于点火阈值,则会激发。
在进一步的实施例中,采用所述量化输入数据和权重数据计算输出脉冲时间的过程具体为:
输出脉冲时间tout=ln((权重数据与量化输入数据之积的累加和)/(各权重数据的累加和与点火阈值之差))。
如图6所示,在进一步的实施例中,排序过程还可以采用如下方式:
所述排序模块的排序处理过程如下:
根据所述输入数据组数的质因数集合xt×yk×zj,构建α输入排序树和β输入排序树;
其中,α和β之间的差值小于预定值,α和β为输入数据组数的因数或因数的乘积;
将Nin组输入数据划分为Nin/α个向量,每个向量具有α个数据,保存至存储单元,依序将Nin/α个向量发送到α输入排序树,获得Nin/α个排序好的向量;
当Nin/α为α的倍数时,将Nin/α个排序好的向量拆分成Nin/α2个向量,并依次发送到α输入排序树;获得Nin/α2个排序好的向量;
当Nin/α不为α的倍数时,填充若干组输入数据范围之外的向量,使之满足Nin/α为α的倍数,然后将其拆分为Nin/α2个向量,并依次发送到α输入排序树;获得Nin/α2个排序好的向量;
判断Nin/α2是否为β的倍数,将Nin/α2个排序好的向量发送到β输入排序树;
当Nin/α2不为β的倍数时,填充若干组输入数据范围之外的向量,使之满足Nin/α2为β的倍数,并依次发送到β输入排序树。
例如,针对一个24*24的输入数据,由于576=26*32,首先使用一个8输入排序树将Nin个输入像素值划分为Nin/8个向量,每个向量由8个数据组成,并将它们保存回存储单元。然后将72个已经排序好的向量拆分成9组,每组8个向量,每8个向量再次发送到8输入排序树,得到Nin/64=9个由64个数据组成的向量。再将每9个向量发送到9个输入排序树,以此类推最终得到Nin个输入像素的排序。
上述实施例,576、72均是8和9的倍数,当其不符合上述条件时,可以采用填充无效输入数据的方式实现。
根据本申请的一个方面,所述排序模块的排序处理过程还可以采用如下方式:
获取输入数据组数,并将其进行因数分解,获得至少两个差值小于预定值且正整数幂的乘积等于输入数据组数的因数α和β;依序构建α输入排序树和β输入排序树;
将Nin组输入数据划分为每组包含α或β个数据的向量,并送到α输入排序树或β输入排序树,使得每组数据被排序好;
再将排序好的若干组向量,再次划分为α或β组,每组包含α或β个向量,并送到α输入排序树或β输入排序树;
重复上述过程,直至Nin组输入数据被排序好。
因此,在设计输入数据的时候,可以将输入数据组数Nin设计成αλ×βτ=Nin的形式,
在第一次排序时,获得α(λ-1)×βτ个向量;
在第二次及后续的排序时,可以直接将已经排序好的向量输入排序树,例如将α(λ-2)×βτ组,每组α个向量输入排序树,
依次类推,最后将每组β个向量输入β输入排序树。
λ和τ为排序的次数。通过对输入数据组数的设计,可以实现硬件上的节约,减少面积,提高复用次数和计算速度。如果设计成三个质因数,也可以采用上述的方式进行计算。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
Claims (8)
1.一种基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,包括:
排序模块,用于接收已进行时间编码的若干组输入数据,并将所述输入数据升序或降序排列;
计算模块,用于接收所述输入数据和预存储的与输入数据匹配的权重数据;基于预定规则将所述输入数据量化为预设常数,获得量化输入数据;基于权重数据判断神经元是否会激发,若激发,则采用所述量化输入数据和权重数据计算输出脉冲时间,并采用线性化规则更新权重数据。
2.如权利要求1所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,所述预定规则的获取过程为:
获取待处理的像素值,将其归一化至[0,1]区间,获得归一化像素值,对于任一归一化像素值,求取其与1的差值,计算该差值的偶次幂,并进一步获得自然指数e的该偶次幂数值;
针对所有归一化像素值,计算自然指数e的偶次幂的上下限,并划分为若干区间,每一区间的端点值为2的倍数;
通过上述计算过程的逆运算获取各端点值对应的归一化像素值,并将其作为自变量区间端点,形成若干自变量区间;以端点值或两相邻端点值的算术平均数作为量化目标值,形成与所述自变量区间一一对应的若干量化常数值,以所述自变量区间和量化常数值构建所述预定规则;
在运行时,查找归一化像素值对应的自变量区间,并读取该自变量区间对应的量化常数值,即获得量化输入数据。
3.如权利要求2所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于, 所述排序模块的排序处理过程如下:
根据所述输入数据组数的质因数集合xt×yk×zj,构建α输入排序树和β输入排序树;
其中,α<β,β-α≤常数C,α、β∈{xa,yb,zc},其中1≤a≤t,1≤b≤k,1≤c≤j;α、β、a、b、c、t、j、k均为正整数;
将Nin组输入数据划分Nin/α个向量,每个向量由α个数据组成,保存至存储单元;
依序将Nin/α个向量发送到α输入排序树,
将Nin组输入数据划分Nin/β个向量,每个向量由β个数据组成,保存至存储单元;依序将Nin/β个向量发送到β输入排序树,
重复上述过程排序过程,最终得到Nin个输入像素的排序。
4.如权利要求3所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,所述计算模块包括Kcal个计算单元和寻找最小模块,
每次计算Kcal个神经元,每次输入脉冲输入,Kcal个计算单元并行计算,
计算结束后,观测是否有输出脉冲发生,若有,则停止计算,
反之,继续下一个输入脉冲,直到有输出产生,或者所有输入脉冲都输入完毕;
如一轮中有多个输出脉冲,寻找最小模块比较并获得最小的输入脉冲。
5.如权利要求1所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,线性化规则更新权重数据的过程包括:
读取预存储的突触的权重上限wmax、下限wmin、各突触的原权重wold,以及权重更新系数η,
计算突触前神经元和后神经元的时间差,并判断该时间差是否大于零,
若大于,则突触的权重增量∆w=η(wmax-wold);
反之,突触的权重增量∆w=-η(wold-wmin)。
6.如权利要求1至5任一项所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,还包括阈值和分类更新模块,
在学习模式下,计算并存储最小输出值对应神经元的膜阈值增加量∆V,并将该膜阈值增加量∆V与预定值比较,若大于预定值,则为该神经元分配一个新的类,并更新该神经元的预定值。
7.如权利要求2所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,所述排序模块的排序处理过程如下:
根据所述输入数据组数的质因数集合xt×yk×zj,构建α输入排序树和β输入排序树;
其中,α和β之间的差值小于预定值,α和β为输入数据组数的因数或因数的乘积;
将Nin组输入数据划分为Nin/α个向量,每个向量具有α个数据,保存至存储单元,
依序将Nin/α个向量发送到α输入排序树,获得Nin/α个排序好的向量;
当Nin/α为α的倍数时,将Nin/α个排序好的向量拆分成Nin/α2个向量,并依次发送到α输入排序树;获得Nin/α2个排序好的向量;
当Nin/α不为α的倍数时,填充若干组输入数据范围之外的向量,使之满足Nin/α为α的倍数,然后将其拆分为Nin/α2个向量,并依次发送到α输入排序树;获得Nin/α2个排序好的向量;
判断Nin/α2是否为β的倍数,将Nin/α2个排序好的向量发送到β输入排序树;
当Nin/α2不为β的倍数时,填充若干组输入数据范围之外的向量,使之满足Nin/α2为β的倍数,并依次发送到β输入排序树。
8.如权利要求2所述的基于时间编码的低功耗脉冲神经网络片上学习系统,其特征在于,所述排序模块的排序处理过程如下:
获取输入数据组数,并将其进行因数分解,获得至少两个差值小于预定值且正整数幂的乘积等于输入数据组数的因数α和β;依序构建α输入排序树和β输入排序树;
将Nin组输入数据划分为每组包含α或β个数据的向量,并送到α输入排序树或β输入排序树,使得每组数据被排序好;
再将排序好的若干组向量,再次划分为α或β组,每组包含α或β个向量,并送到α输入排序树或β输入排序树;
重复上述过程,直至Nin组输入数据被排序好。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210317373.6A CN114676831A (zh) | 2022-03-29 | 2022-03-29 | 基于时间编码的低功耗脉冲神经网络片上学习系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210317373.6A CN114676831A (zh) | 2022-03-29 | 2022-03-29 | 基于时间编码的低功耗脉冲神经网络片上学习系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676831A true CN114676831A (zh) | 2022-06-28 |
Family
ID=82076315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210317373.6A Pending CN114676831A (zh) | 2022-03-29 | 2022-03-29 | 基于时间编码的低功耗脉冲神经网络片上学习系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676831A (zh) |
-
2022
- 2022-03-29 CN CN202210317373.6A patent/CN114676831A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Spike-train level backpropagation for training deep recurrent spiking neural networks | |
Belagiannis et al. | Adversarial network compression | |
Shrestha et al. | Stable spike-timing dependent plasticity rule for multilayer unsupervised and supervised learning | |
Sussner | Morphological perceptron learning | |
WO2020095321A2 (en) | Dynamic structure neural machine for solving prediction problems with uses in machine learning | |
CN111898689A (zh) | 一种基于神经网络架构搜索的图像分类方法 | |
CN112116001A (zh) | 图像识别方法、装置及计算机可读存储介质 | |
Zeebaree et al. | Csaernet: An efficient deep learning architecture for image classification | |
KR20210039921A (ko) | 신경망 모델을 최적화하도록 구성된 심층 신경망 시스템의 동작 방법 | |
CN114186672A (zh) | 一种用于脉冲神经网络的高效高精度训练算法 | |
Sun et al. | An energy efficient STDP-based SNN architecture with on-chip learning | |
Mitschke et al. | Gradient based evolution to optimize the structure of convolutional neural networks | |
Cardinaux et al. | Iteratively training look-up tables for network quantization | |
CN113239949A (zh) | 一种基于1d分组卷积神经网络的数据重构方法 | |
CN114266351A (zh) | 基于无监督学习时间编码的脉冲神经网络训练方法及系统 | |
CN112288078B (zh) | 一种基于脉冲神经网络的自学习、小样本学习和迁移学习的方法与系统 | |
Xu et al. | LRP-based policy pruning and distillation of reinforcement learning agents for embedded systems | |
CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
Chen et al. | Low latency spiking convnets with restricted output training and false spike inhibition | |
CN114676831A (zh) | 基于时间编码的低功耗脉冲神经网络片上学习系统 | |
Wen et al. | Novel pruning of dendritic neuron models for improved system implementation and performance | |
CN115063597A (zh) | 一种基于类脑学习的图像识别方法 | |
WO2023181318A1 (ja) | 情報処理装置及び情報処理方法 | |
Wang et al. | A Multi-objective Evolutionary Approach for Efficient Kernel Size and Shape for CNN | |
Littow | Customization of structured neural network weight pruning method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |