一种基于DW-Tempotron算法的图像分类方法
技术领域
本发明涉及图像分类领域,具体涉及一种基于DW-Tempotron算法的图像分类方法。
背景技术
在监督学习方面,按照学习机制可将Spiking神经网络学习算法分为膜电压驱动和脉冲驱动两大类。所谓膜电压驱动,就是以某一时刻实际膜电压与目标膜电压的差值为误差来调整权重;同理脉冲驱动是以实际脉冲激发时刻与目标脉冲激发时刻的时间差为误差来调整权重的。膜电压驱动算法中数Tempotron学习算法最为经典,它是一个两层网络学习算法,其用梯度下降方法使应点火的神经元最大膜电压超过阈值;不应点火的最大膜电压低过阈值。
另外,众所周知,抗噪能力即鲁棒性对一个算法也是至关重要的,好的鲁棒性是一个算法得到大面积应用的重要前提。我们所处的环境中处处存在噪声,大脑也不例外,但这并未对其产生太大影响,大脑仍可以精准高效地处理信息,然而目前科学还无法对大脑的这种特性做出解释。Spiking神经网络在实际场景应用时,毋庸置疑会受到噪声的影响,但目前大多数学习算法都是在无噪声的理想环境下进行训练学习的,并未将噪声考虑在内,这与Spiking神经网络处于初级发展阶段不无关系。
目前一种解决方案是在将噪声加入到训练数据中然后再对神经元进行训练,以此来提升抗噪能力。不过这种方法只对训练时使用的噪声表现出较好的效果,对其他噪声的干扰则无能为力。近来一种被称为膜电位相关塑性的新型可塑性规则被提出,该规则允许膜电压无论是在训练进行中或完成后,都可以在遇到噪声时进行记忆恢复,但这种机制效率较低并且膜电压恢复效果并不理想,还有待进一步提高。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于DW-Tempotron算法的图像分类方法解决了现有Tempotron算法在进行图像分类时学习效率不高的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于DW-Tempotron算法的图像分类方法,其包括以下步骤:
S1、构建Tempotron算法;
S2、在Tempotron算法中的突触施加延迟,得到DW-Tempotron算法;其中DW-Tempotron算法中的LIF模型为:
其中V(t)为LIF模型突触后神经元膜电压;ωi为第i个突触的权重;K(·)为核函数,表示每个传入spike对突触后神经元膜电压所做出的贡献;t为期望点火时间,ti为第i个突触前神经元的spike输入时间;di为施加的延迟;Vrest为静息电位;τ为突触后膜积分时间常数;τs为突触电流衰减时间常数;V0为对膜电压标准化的因子;
S3、初始化DW-Tempotron算法的参数;初始化的参数包括输入脉冲时间、突触权重、点火阈值、延迟、学习率、突触后膜积分时间常数、突触电流衰减时间常数和迭代次数;
S4、分别获取当前DW-Tempotron算法中LIF模型的突触后神经元分别在+模式下的膜电压和-模式下的膜电压;
S5、判断当前+模式下的膜电压是否小于点火阈值,若是则更新延迟并重新计算+模式下的膜电压,进入步骤S6;否则进入步骤S7;
S6、判断当前+模式下的膜电压是否小于点火阈值,若是则更新突触权重,返回步骤S5;否则进入步骤S7;
S7、判断当前-模式下的膜电压是否大于点火阈值,若是则更新延迟并重新计算-模式下的膜电压,进入步骤S8;否则结束当前轮次的训练,进入步骤S9;
S8、判断当前-模式下的膜电压是否大于点火阈值,若是则更新突触权重,返回步骤S7;否则结束当前轮次的训练,进入步骤S9;
S9、判断训练轮次是否达到迭代次数,若是则采用当前DW-Tempotron算法进行图像分类;否则返回步骤S4。
进一步地,步骤S5中更新延迟的具体方法为:
根据公式:
获取当前更新后的延迟其中表示当前更新前的延迟;为当前延迟调整值;为当前突触前神经元的spike输入时间;ψ=ττs(lnτ-lnτs)/(τ-τs);为当前突触权重。
进一步地,步骤S6中更新突触权重的具体方法为:
根据公式:
获取DW-Tempotron算法中的突触权重更新值Δωi,并将更新值Δωi与当前的权重值相加,完成突触权重的更新;其中λ为常数且大于0;和均为突触后神经元膜电压达到最大值的时间,对应的膜电压大于点火阈值,对应的膜电压小于点火阈值。
进一步地,步骤S7中更新延迟的具体方法为:
根据公式:
获取当前更新后的延迟其中表示当前更新前的延迟;为当前延迟调整值;为当前突触前神经元的spike输入时间;ψ=ττs(lnτ-lnτs)/(τ-τs);为当前突触权重。
进一步地,步骤S8中更新突触权重的具体方法为:
根据公式:
获取DW-Tempotron算法中的突触权重更新值Δωi,并将更新值Δωi与当前的权重值相加,完成突触权重的更新;其中λ为常数且大于0;和均为突触后神经元膜电压达到最大值的时间,对应的膜电压大于点火阈值,对应的膜电压小于点火阈值。
进一步地,DW-Tempotron算法的损失函数为:
其中C表示损失值;为突触后神经元膜电压达到最大值的时间,且对应的膜电压大于点火阈值;thr为点火阈值;η2为大于0的常数;为突触后神经元膜电压达到最大值的时间,且对应的膜电压小于点火阈值;η1为大于0的常数。
本发明的有益效果为:本方法通过对输入脉冲的时间进行调整进而直接去影响突触后神经元的点火时间从而提高了学习效率,本方法提出的DW-Tempotron算法相比传统的Tempotron算法具有更高的学习效率和准确率。
附图说明
图1为本发明的流程示意图;
图2为DW-Tempotron的输入脉冲分布;(3-5)
图3为初始条件下神经元的分类结果;
图4为Tempotron训练完成后神经元的分类结果;
图5为DW-Tempotron采用原损失函数时训练完成后神经元的分类结果;
图6为Tempotron权重迭代调整过程;
图7为DW-Tempotron采用原损失函数时权重迭代调整过程;
图8为Tempotron训练前后两个算法权重的变化;
图9为DW-Tempotron采用原损失函数时训练前后两个算法权重的变化;
图10为采用原损失函数时训练前后DW-Tempotron突触延迟的变化;
图11为DWDT-Tempotron准确率情况。(图4-8)
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,该基于DW-Tempotron算法的图像分类方法包括以下步骤:
S1、构建Tempotron算法;
S2、在Tempotron算法中的突触施加延迟,得到DW-Tempotron算法;其中DW-Tempotron算法中的LIF模型为:
其中V(t)为LIF模型突触后神经元膜电压;ωi为第i个突触的权重;K(·)为核函数,表示每个传入spike对突触后神经元膜电压所做出的贡献;t为期望点火时间,ti为第i个突触前神经元的spike输入时间;di为施加的延迟;Vrest为静息电位;τ为突触后膜积分时间常数;τs为突触电流衰减时间常数;V0为对膜电压标准化的因子;
S3、初始化DW-Tempotron算法的参数;初始化的参数包括输入脉冲时间、突触权重、点火阈值、延迟、学习率、突触后膜积分时间常数、突触电流衰减时间常数和迭代次数;
S4、分别获取当前DW-Tempotron算法中LIF模型的突触后神经元分别在+模式下的膜电压和-模式下的膜电压;
S5、判断当前+模式下的膜电压是否小于点火阈值,若是则更新延迟并重新计算+模式下的膜电压,进入步骤S6;否则进入步骤S7;
S6、判断当前+模式下的膜电压是否小于点火阈值,若是则更新突触权重,返回步骤S5;否则进入步骤S7;
S7、判断当前-模式下的膜电压是否大于点火阈值,若是则更新延迟并重新计算-模式下的膜电压,进入步骤S8;否则结束当前轮次的训练,进入步骤S9;
S8、判断当前-模式下的膜电压是否大于点火阈值,若是则更新突触权重,返回步骤S7;否则结束当前轮次的训练,进入步骤S9;
S9、判断训练轮次是否达到迭代次数,若是则采用当前DW-Tempotron算法进行图像分类;否则返回步骤S4。
步骤S5中更新延迟的具体方法为:根据公式:
获取当前更新后的延迟其中表示当前更新前的延迟;为当前延迟调整值;为当前突触前神经元的spike输入时间;ψ=ττs(lnτ-lnτs)/(τ-τs);为当前突触权重。
步骤S6中更新突触权重的具体方法为:根据公式:
获取DW-Tempotron算法中的突触权重更新值Δωi,并将更新值Δωi与当前的权重值相加,完成突触权重的更新;其中λ为常数且大于0;和均为突触后神经元膜电压达到最大值的时间,对应的膜电压大于点火阈值,对应的膜电压小于点火阈值。
步骤S7中更新延迟的具体方法为:根据公式:
获取当前更新后的延迟其中表示当前更新前的延迟;为当前延迟调整值;为当前突触前神经元的spike输入时间;ψ=ττs(lnτ-lnτs)/(τ-τs);为当前突触权重。
步骤S8中更新突触权重的具体方法为:根据公式:
获取DW-Tempotron算法中的突触权重更新值Δωi,并将更新值Δωi与当前的权重值相加,完成突触权重的更新;其中λ为常数且大于0;和均为突触后神经元膜电压达到最大值的时间,对应的膜电压大于点火阈值,对应的膜电压小于点火阈值。
在本发明的一个实施例中,DW-Tempotron算法采用Tempotron算法的原有损失函数:
Tempotron使用连续的LIF神经元模型就在于方便使用梯度下降方法,将原有损失函数展开对突触权重ωi求偏导可得突触权重调整规则。
采用随机实验来验证DW-Tempotron算法的学习能力。我们设置8个突触前神经元,它们可向突触后神经元随机传送+模式和-模式的脉冲信号,具体序列如图2所示,黑色代表+模式信号,灰色代表-模式信号。我们将训练时间设置为300ms,突触权重初始化为均值和方差均为0.1的高斯分布,延迟权重初始值设为区间[0,5]ms的均匀分布,点火阈值设置为1。
我们用初始权重将所有输入spike带入突触后神经元后,其膜电压如图3所示。从图3中可以看出,+模式下膜电压在250ms处达到最大值,但始终未超过点火阈值;-模式下膜电压在111ms处达到最大值并超过阈值使突触后神经元点火,后神经元不再接收输入spike,膜电压渐渐衰减为0。显然,此时的分类结果是不正确的。
之后,我们分别用Tempotron和DW-Tempotron算法对神经元进行训练,将训练迭代次数设置为100。训练完成后,突触后神经元膜电压的情况如图4和图5所示。此时,+模式下膜电压顺利超出阈值使神经元点火;-模式下膜电压在时间周期内均处于阈值以下,两个算法均可使神经元正确完成对+模式-模式的分类。
下面我们对两个算法的各个参数在训练时的变化过程进行分析。突触权重方面,图6和图7显示了两个算法的各个突触权重随训练迭代次数的变化过程。从图中可看出,Tempotron的突触权重在40次迭代训练后还未完全稳定;DW-Tempotron由于加入了延迟权重,相应地突触权重的调整就有所减少,大约在28次迭代训练处于稳定状态,从而提高了学习效率。
接下来,我们对训练完成后突触权重与初始值的变化差值进行分析,图8描绘了Tempotron训练完后权重与初始权重的分布情况;图9是DW-Tempotron训练完后权重与初始权重的分布情况。总体上看,DW-Tempotron的突触权重变化幅度要比Tempotron少,这也是引入本发明延迟权重的意义所在。突触延迟方面,图10是初始延迟与训练完成后延迟的对比情况。每个突触的延迟最多只能被调整一次,可以看到,在8个突触中,有3个突触延迟被调整过,其余神经元都处于初始状态,没有被延迟过。
在本发明的另一个实施例中,将DW-Tempotron算法中原有的Tempotron的损失函数采用动态阈值进行更新,得到新的损失函数为:
其中C表示损失值;为突触后神经元膜电压达到最大值的时间,且对应的膜电压大于点火阈值;thr为点火阈值;η2为大于0的常数;为突触后神经元膜电压达到最大值的时间,且对应的膜电压小于点火阈值;η1为大于0的常数。此时DW-Tempotron算法的突触调整规则无需改变。调整后的损失函数可使突触后神经元膜电压在-模式时远离原阈值;在时超过原阈值足够得多,由此达到提高算法抗噪能力的目的。
将采用动态阈值更新了损失函数的DW-Tempotron算法命名为DWDT-Tempotron算法。用随机实验来验证DWDT-Tempotron算法的学习能力。我们设置8个突触前神经元,它们可向突触后神经元随机传送+模式和-模式的脉冲信号。我们将训练时间设置为300ms,突触权重初始化为均值和方差均为0.1的高斯分布,延迟权重初始值设为区间[0,5]ms的均匀分布,点火阈值设置为1。在训练过程的中同时用随机抽取的测试集测试DWDT-Tempotron的准确率。图11表示的是测试集准确率在训练过程中的变化情况。训练前,准确率值很低,之后随着迭代训练逐步上升,约在迭代训练80次后,准确率趋近于1,这表明神经元已经可以完成对绝大部分测试数据的正确分类。
本实施例中采用动态阈值的初衷是为了提高算法的抗噪能力,增强鲁棒性,此处我们来验证它的抗噪能力,分别用Tempotron和DWDT-Tempotron分别训练突触后神经元,之后对比它们在噪声干扰下的输出结果。Spiking神经网络中的噪声主要是背景膜电压噪声和脉冲扰动噪声,我们分别验证dynamic-threshold对它们的抵抗能力。
对于背景膜电压噪声,将实验条件设置如下:10个突触前神经元,输入脉冲序列按泊松分布生成,输入脉冲序列生成频率为5Hz。突触权重初始值取区间[0,0.1]上的均匀分布,突触延迟初始值设为区间[0,2]ms的均匀分布,脉冲序列时间长度从300ms变化到900ms。我们先分别用两个算法训练神经元,之后对神经元输入高斯白噪声电压模拟噪声环境,噪声电压的均值是0,方差σ从0.03mV逐渐增加到0.33mV,并用从UCI中随机抽取的数据对它们进行测试,记录它们能够准确进行分类的准确率。表1是固定其他参数在不同脉冲序列时间长度下的测试结果,表2是固定其他参数在不同输入脉冲频率下的测试结果。
表1:Tempotron和DWDT-Tempotron膜电压噪声不同脉冲序列时间长度下的准确率情况
表2:Tempotron和DWDT-Tempotron膜电压噪声不同输入脉冲频率下的准确率情况
从上述两表可以看出Tempotron的准确率随着噪声强度的增加会明显的下降。另一边,噪声强度的增加对DWDT-Tempotron的准确率影响却不是很大,说明DWDT-Tempotron比Tempotron具有更高的鲁棒性。
接下来我们分析脉冲扰动噪声的影响。对于Tempotron和DWDT-Tempotron算法,实验条件设置与探讨膜电压噪声时相同。我们同样先分别用两个算法训练神经元,之后将脉冲扰动噪声加到输入脉冲上,该噪声电压的均值是0,方差从0.3mV逐渐增加到3.3mV,我们用同样的数据对它们进行测试,记录它们能够准确进行分类的准确率。表3是固定其他参数在不同脉冲序列时间长度下的测试结果,表4是固定其他参数在不同输入脉冲频率下的测试结果。
表3:Tempotron和DWDT-Tempotron脉冲扰动噪声不同脉冲序列时间长度下的准确率情况
表4:Tempotron和DWDT-Tempotron脉冲扰动噪声不同输入脉冲频率下的准确率情况
从上述两表可以看出脉冲扰动噪声对Tempotron和DWDT-Tempotron的准确率都有较大的影响。不过随着噪声强度的增加DWDT-Tempotron算法准确率的下降幅度要比Tempotron小不少。因此,在脉冲扰动噪声干扰下,DWDT-Tempotron算法具有更好的抗噪能力。
综上所述,本方法通过对输入脉冲的时间进行调整进而直接去影响突触后神经元的点火时间从而提高了学习效率,本方法提出的DW-Tempotron算法相比传统的Tempotron算法具有更高的学习效率和准确率。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于延迟机制的单层图像分类方法