一种基于延迟机制的单层图像分类方法
技术领域
本发明涉及图像处理
技术领域
,具体涉及一种基于延迟机制的单层图像分类方法。背景技术
Tempotron是对脉冲神经元膜电压变化描述的最早的算法之一,开创性地描述了基于膜电压驱动的一类算法的基本特征。突触权重的调整只与最大膜电压有关,只需要考虑阈值、核函数的影响。Tempotron在脉冲神经网络中的作用类似于感知机的基础作用。Tempotron算法的简单性导致其只能解决二分类问题。但是众多的科研工作者也基于Tempotron算法进行了大量的创新和改进
Tempotron算法主要有两个缺陷:一是突触后膜电压只能发放一个脉冲,然后不再接收传入信号,导致了Tempotron算法的局限性,针对这个问题,有学者已经提出了Muti-Tempotron等算法进行优化解决;二是Tempotron算法调整策略单只能通过突触权重的调整完成训练和学习的目的。然而,单一的调整策略导致学习算法的学习效率低,且学习效果极易受到干扰。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于延迟机制的单层图像分类方法解决了Tempotron学习算法仅仅依靠调整突触权重,导致学习效果极易受到干扰的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于延迟机制的单层图像分类方法,包括以下步骤:
S1、构建图像分类模型;
S2、采用图像集对图像分类模型进行训练,得到训练完成的图像分类模型;
S3、采用训练完成的图像分类模型对图像进行分类,得到图像的类别。
进一步地,步骤S1中图像分类模型包括依次连接的特征提取单元、脉冲延迟编码单元和单层分类器;
所述特征提取单元用于对图像进行特征提取,得到特征图像数据;
所述脉冲延迟编码单元用于对特征图像数据进行编码,得到激发脉冲时间序列;
所述单层分类器用于处理激发脉冲时间序列,得到图像的类别。
进一步地,脉冲延迟编码单元对特征图像数据进行编码的公式为:
ti=tmax-ln(axi+1) (1)
其中,ti为第i个像素点对应的激发脉冲时间点,tmax为编辑时间窗的大小,a为编码参数,xi为特征图像数据对应的第i个像素点的像素值。
进一步地,单层分类器的输入层包括:正模式L+和负模式L-两类神经元,共计N个神经元;
其训练方法为:
A1、根据激发脉冲时间序列,计算激发脉冲时间序列在输入到单层分类器的输入层神经元后,输入层神经元的脉冲膜电位电压:
A2、判断在正模式L+下,时刻输入层神经元的脉冲膜电位电压是否小于阈值,若是,则找到时刻之前的所有激发脉冲时间点,在di延迟上增加延迟并跳转至步骤A3,若否,则跳转至步骤A8,其中,为激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟;
A3、判断此时输入层是否存在一个神经元的延迟di小于0,若是,则将对应神经元的延迟di置为0,并跳转至步骤A4,若否,则跳转至步骤A4;
A4、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否达到阈值,若否,则跳转至步骤A5,若是,则跳转至步骤A8;
A5、增加时刻之前所有神经元的权重;
A6、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否达到阈值,若否,则跳转至步骤A7,若是,则跳转至步骤A8;
A7、判断时刻是否达到设定时间阈值,若是,则跳转至步骤A8,若否,则增加时刻的值,并跳转至步骤A2;
A8、判断在正模式L-下,最大的输入层神经元的脉冲膜电位电压是否大于阈值,若是,则找到时刻之前的所有激发脉冲时间点,在di延迟上增加延迟并跳转至步骤A9,若否,则跳转至步骤A12,其中,为最大的输入层神经元的脉冲膜电位电压对应的激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟;
A9、判断输入层是否存在一个神经元的延迟di小于0,若是,则将对应神经元的延迟di置为0,并跳转至步骤A10,若否,则跳转至步骤A10;
A10、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否大于阈值,若是,则跳转至步骤A11,若否,则跳转至步骤A12;
A11、增加时刻之前所有神经元的权重,并跳转至步骤A8;
A12、对单层分类器的训练完成。
进一步地,步骤A1中计算输入层神经元的脉冲膜电位电压的公式为:
其中,V(t)为输入层神经元的脉冲膜电位电压,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,di为输入层第i个神经元的延迟,t为时间,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量,Vrest为静息电压。
进一步地,步骤A2中增加的延迟的计算公式为:
其中,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,为正模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
进一步地,步骤A5中增加的权重的计算公式为:
其中,λ为学习率,ti为第i个像素点对应的激发脉冲时间点,为正模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
进一步地,步骤A8中增加的计算公式为:
其中,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,为负模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
进一步地,步骤A11中增加的权重的计算公式为:
其中,λ为学习率,ti为第i个像素点对应的激发脉冲时间点,为负模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
综上,本发明的有益效果为:
(1)、单层分类器是对Tempotron学习算法的一种改进,通过增加延迟机制,使得学习算法不再仅仅依靠调整突触权重。
(2)、单层分类器影响权重调节的不仅仅只有膜电压的变化,还有延迟的变化。因此单层分类器对权重的调节能够更好地分布在不同神经元上。因此学习效率更高,神经元对网络调节的参与度更高。
(3)、单层分类器的延迟调整是基于其原始延迟时间的,通过对延迟地调整,影响膜电压,进而影响权重的调节。这个过程是一个持续变化的过程。延迟的变化使得权重分配更合理,使得学习效果更加鲁棒,图像分类的准确率更高。
(4)、单层分类器延迟机制中,每个神经元的延迟随着膜电压的变化趋势改变,可以多次调整。因此,单层分类器不仅仅依赖于突触的调节,延迟的加入使得算法具有了更高的效率和鲁棒性。比较重要的是其训练流程,每次求得最新的膜电压后,需要优先调整延迟,然后再对比延迟效果,没有达到目标,再更新权重。因为延迟是依赖于膜电压和权重的一个非常小的量,可以对整个网络的膜电压进行微调。如果先更新权重再调整延迟,通常会错过最接近的目标的机会,导致整个算法学习时间的增长。单层分类器的突触的调整幅度相对更小,延迟的调整机制使得其分类能力有小幅度的提升。
附图说明
图1为一种基于延迟机制的单层图像分类方法的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,一种基于延迟机制的单层图像分类方法,包括以下步骤:
S1、构建图像分类模型;
S2、采用图像集对图像分类模型进行训练,得到训练完成的图像分类模型;
S3、采用训练完成的图像分类模型对图像进行分类,得到图像的类别。
步骤S1中图像分类模型包括依次连接的特征提取单元、脉冲延迟编码单元和单层分类器;
所述特征提取单元用于对图像进行特征提取,得到特征图像数据;
所述脉冲延迟编码单元用于对特征图像数据进行编码,得到激发脉冲时间序列;
所述单层分类器用于处理激发脉冲时间序列,得到图像的类别。
脉冲延迟编码单元对特征图像数据进行编码的公式为:
ti=tmax-ln(axi+1) (1)
其中,ti为第i个像素点对应的激发脉冲时间点,tmax为编辑时间窗的大小,a为编码参数,xi为特征图像数据对应的第i个像素点的像素值。
单层分类器的输入层包括:正模式L+和负模式L-两类神经元,共计N个神经元;
其训练方法为:
A1、根据激发脉冲时间序列,计算激发脉冲时间序列在输入到单层分类器的输入层神经元后,输入层神经元的脉冲膜电位电压:
步骤A1中计算输入层神经元的脉冲膜电位电压的公式为:
其中,V(t)为输入层神经元的脉冲膜电位电压,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,di为输入层第i个神经元的延迟,t为时间,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量,Vrest为静息电压。
A2、判断在正模式L+下,时刻输入层神经元的脉冲膜电位电压是否小于阈值,若是,则找到时刻之前的所有激发脉冲时间点,在di延迟上增加延迟并跳转至步骤A3,若否,则跳转至步骤A8,其中,为激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟;
步骤A2中增加的延迟的计算公式为:
其中,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,为正模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
A3、判断此时输入层是否存在一个神经元的延迟di小于0,若是,则将对应神经元的延迟di置为0,并跳转至步骤A4,若否,则跳转至步骤A4;
A4、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否达到阈值,若否,则跳转至步骤A5,若是,则跳转至步骤A8;
A5、增加时刻之前所有神经元的权重;
步骤A5中增加的权重的计算公式为:
其中,λ为学习率,ti为第i个像素点对应的激发脉冲时间点,为正模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
A6、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否达到阈值,若否,则跳转至步骤A7,若是,则跳转至步骤A8;
A7、判断时刻是否达到设定时间阈值,若是,则跳转至步骤A8,若否,则增加时刻的值,并跳转至步骤A2;
A8、判断在正模式L-下,最大的输入层神经元的脉冲膜电位电压是否大于阈值,若是,则找到时刻之前的所有激发脉冲时间点,在di延迟上增加延迟并跳转至步骤A9,若否,则跳转至步骤A12,其中,为最大的输入层神经元的脉冲膜电位电压对应的激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟;
步骤A8中增加的计算公式为:
其中,ωi为输入层第i个神经元的权重,ti为第i个像素点对应的激发脉冲时间点,为负模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
A9、判断输入层是否存在一个神经元的延迟di小于0,若是,则将对应神经元的延迟di置为0,并跳转至步骤A10,若否,则跳转至步骤A10;
A10、重新计算并判断时刻输入层神经元的脉冲膜电位电压是否大于阈值,若是,则跳转至步骤A11,若否,则跳转至步骤A12;
A11、增加时刻之前所有神经元的权重,并跳转至步骤A8;
步骤A11中增加的权重的计算公式为:
其中,λ为学习率,ti为第i个像素点对应的激发脉冲时间点,为负模式L+下,激发脉冲时间序列的某个时间点,di为输入层第i个神经元的延迟,V0为输入层神经元的脉冲膜电位电压的初值,exp()为指数函数,τm、τs均为时间常量。
A12、对单层分类器的训练完成。