大脑神经元动作电位序列的快速预测方法与流程

文档序号:12272418阅读:582来源:国知局
大脑神经元动作电位序列的快速预测方法与流程

本发明涉及大脑模拟领域,尤其是针对大规模大脑模拟中神经元动作电位序列的计算问题。



背景技术:

大脑是由数以亿万计的神经元组成,这些神经元构成了神经信息处理的基本单元,神经元表现出的放电活动就代表了该神经元对外界刺激的编码方式。如何准确地模拟这些放电活动是进行大脑仿真的关键一步。此外,大脑中神经元的数目是非常庞大的,而且神经元之间会通过复杂的突触连接形成功能性的群体,构成大脑的有机组成部分。在大脑模拟中,为了能逼近真实的脑区,通常需要保证网络中神经元数目具有一定的规模,数目的扩大就带来了仿真速度方面的需求,也就迫切需要一种既快速又准确的计算方法来满足大脑模拟的需求。



技术实现要素:

本发明所要解决的技术问题是在模拟大规模神经元网络方面速度慢和准确性低下的问题。

为了解决这一问题,本发明采用的技术方案分为以下三个方面:

a)对神经元spike序列进行采样和特征指标提取,形成spike样本库;

b)根据三个连续的采样点(spike最高值前1ms、2ms和3ms的三个连续的电压值V1、V2和V3),利用预测网络模块对神经元spike的最高值、最低值和宽度进行预测;

c)任意给定三个连续的采样电压点(Vt1、Vt2和Vt3,间隔为1ms),先通过分类网络模块判断这三个点是否可以用来预测下一个spike的特征。如果分类网络的输出结果达到或超过预先设定的阈值,就表示可用预测网络对具体的特征做进一步的预测;如果分类网络的输出结果小于阈值,则用0.05ms的步长对Vt1、Vt2和Vt3进行更新,然后再做分类判断。

根据本发明的第一个方面,采用如下方法:

首先,利用网上公开的神经元离子通道模型库和已发表的相关文献中提供的实验数据,搜集神经元离子通道模型,这些模型所表现出的放电模式能涵盖神经系统中所能观察到的80%以上的放电现象。

其次,针对每一个模型,采用步长为0.01ms的四阶龙格库塔数值算法,获取不同幅度直流刺激下,膜电位序列中的电压值,并提取出这些序列中单个spike的最高值(Vmax)、最低值(Vmin)和宽度(最高值与最低值对应时间的差,即:Dt=tmin-tmax)特征。同时,记录Vmax前1ms、2ms和3ms时的电压值V1、V2和V3。对于每个模型,通过改变电流刺激幅度,收集多组[Vmax,Vmin,Dt,V1,V2,V3]数据。然后构建单个模型对应的spike样本库A,用于后续对预测网络模块进行训练和测试,训练和测试数据量的比值为7:3。

最后,同样利用步长为0.01ms的四阶龙格库塔算法,获取前一个spike的Vmin之后到下一个spike的Vmax之前这一区间中神经元的电压值,并从中以0.01ms的滑动窗选取间隔为1ms的三个连续值VV1、VV2和VV3,构成数据库B,作为分类网络模块的训练和测试数据。其中,标记Vmax前1ms、2ms、3ms的VV1、VV2、VV3(与样本库A中V1、V2、V3的选取一致)为正样本,表示它们可用来预测spike的特征,其它的VV1,VV2,VV3为负样本,表示它们无法用来预测spike的特征。训练和测试数据量的比值为7:3。

根据本发明的第二个方面,采用如下方法:

首先是训练:根据已收集样本数据库A的特点,构建相应的预测网络模块,这里我们采用3层的人工神经网络来做预测,这里层数值3并非是固定的,其它大于3层的神经网络也是适用的,但层数过多会造成网络训练的时间变长。此外,这里用于预测的模块也并非一定要是人工神经网络,其他的预测方法同样适用,如:基于回归分析的方法(线性回归等)和基于树的方法(决策树等)。

在本发明所构造的预测模块中,输入层有3个单位,分别对应V1,V2和V3;中间层(隐含层)有10个单元,用于提取输入层中的特征信息,这里10个单元数并非固定,5-15之间的单元数都是可行的,过小的单元数会导致无法有效提取前一层中的特征,而过大的单元数对特征提取效果的影响已经不大;输出层有3个单元,输出结果需要与真实值Vmax,Vmin和Dt进行对比,因此整个过程属于有监督的学习。接着用反向传播(backpropagation)算法对网络中不同单元之间的连接权重进行更新,直到网络训练完成(设定迭代次数为1000,此时训练误差已非常小(<10-5),超过迭代次数确定训练完成)。

然后是测试:对于已经训练好的预测网络模块,利用测试集中的数据输入到网络中,检验网络的输出与测试集中真实值之间的差(用均方误差来描述,mean squared error,MSE),来分析网络的测试效果。

根据本发明的第三个方面,采用如下方法:

首先是分类网络模块的训练:根据已收集样本数据库B的特点,构建相应的分类模块,这里我们仍采用3层的人工神经网络来做分类。当然,其它大于3层的神经网络也是适用的,只是层数过多会造成网络训练的时间变长。同样地,这里用于分类的模块也并非一定要是人工神经网络,其他的分类方法同样适用,如:基于贝叶斯理论的方法(贝叶斯网络等)、基于树的方法(二叉树等)和基于支持向量机SVM的方法。

分类网络模块中:输入层有3个单元,分别对应VV1,VV2和VV3;中间层有10个单元,用于提取输入层中的特征信息,同样地,这里10个单元数并非固定,5-15之间的单元数都是可行的,过小的单元数会导致无法有效提取前一层中的特征,而过大的单元数对特征提取效果的影响已经不大;输出层有2个单元,用于判断该输入下的三个点(VV1,VV2和VV3)是否足以用来判断后面spike对应的三个特征值(Vmax,Vmin和Dt)。网络输出的2个结果分别是1和0,其中1表示足以判断,0表示无法判断。当输出的值大于阈值0.5时,标记为1,反之标记为0。在这里,阈值0.5取自0和1的平均值,表明输出结果出现0和1的概率均为50%。其它的阈值,如:0.4或0.6理论上也是可行的,只是最终分类网络的准确性会比0.5时要低。

然后是分类网络模块的测试:对于已经训练好的分类网络模块,利用测试集中的数据输入到网络中,检验网络的输出与测试集中真实值之间的差(用两者之差的绝对值来描述),来分析网络的测试效果。

最后,将分类网络模块和预测网络模块结合:通过0.05ms的步长,获取在某一刺激下神经元非spike部分的电压值,并提取间隔为1ms的三个连续值Vt1、Vt2、Vt3。先用分类模块进行判断,如果输出结果为1,则将Vt1、Vt2、Vt3输入到预测模块中,对神经元spike的三个特征值(Vmax,Vmin和Dt)进行预测;如果输出结果为0,则将Vt1、Vt2、Vt3向前以0.05ms的步长进行更新,然后重新进行分类判断。最终,神经元动作电位序列中spike部分的信息就可以用非spike部分的值(Vt1、Vt2、Vt3)来准确地预测出。由于Vt1、Vt2、Vt3的取值是在步长0.05ms下得到的,因此整个动作电位序列的求解和计算比在0.01ms下用四阶龙哥库塔方法快了近5倍,同时仍保持了很高的精确性。

本发明的有益效果是大大提高了在大规模脑神经元网络模型中,神经元动作电位的快速计算和准确获取。

附图说明

图1为一种快速的大脑神经元动作电位序列的预测方法简化框图

图2为神经元动作电位序列中样本采集示意图

图3为分类模块网络和预测模块网络对神经元spike特征进行分类和预测的架构图

图4为采集训练和测试数据时所用到的几种神经元模型及对应的放电波形

图5为利用0.05ms步长来求解并预测spike特征的结果示意图

具体实施方式

下面将结合本发明中的附图和具体实施方案对本发明的技术方案进行详细描述。

本发明中Vmax,Vmin和Dt分别表示单个spike的最高值、最低值和宽度(最高值与最低值对应时间的差,即:Dt=tmin-tmax),V1,V2和V3表示间隔为1ms的三个连续的电压值,同样地,VV1、VV2、VV3和Vt1、Vt2、Vt3也分别表示间隔为1ms的三个连续的电压值。

图1为一种快速的大脑神经元动作电位序列的预测方法简化框图,其中10表示对给定神经元的动作电位序列进行样本采集;20表示基于采集的样本信号,搭建预测模块网络,并进行训练和测试;30表示基于采集的样本信号,搭建分类模块网络,并进行训练和测试,然后根据分类结果将数据输入到预测模块网络中,进行预测。

图2为神经元动作电位序列中样本采集示意图,按照0.01ms的步长滑动选取间隔为1ms的连续三个电压值V1,V2和V3,以及单个spike对应的三个特征值Vmax,Vmin和Dt。这里,0.01ms步长可确保得到足够精确的数据。

图3为分类模块网络和预测模块网络对神经元spike特征进行预测的架构图。

首先,根据已收集样本数据的特点,构建3层的预测模块网络,其中输入层有3个单位,分别对应V1、V2和V3;中间层(隐含层)有10个单元,用于提取输入层中的特征信息;输出层有3个单元,输出结果与真实值Vmax、Vmin和Dt进行对比(有监督的学习),然后用反向传播算法对网络中单元之间的连接权重进行更新,直到网络训练完成(迭代1000次以上)。

其次,对于已经训练好的预测模块网络,利用测试集中的数据输入到网络中,检验网络的输出与测试集中真实值之间的差(用均方误差MSE来刻画),来分析网络的测试效果。

再次,同样构建3层的用于分类的模块网络,其中输入层有3个单元,分别对应VV1、VV2和VV3;中间层有10个单元,用于提取输入层中的特征信息;输出层有2个单元,用于判断该输入下的三个点(VV1、VV2和VV3)是否足以用来判断后面spike对应的三个特征值(Vmax,Vmin和Dt)。输出的2个结果分别是1和0,其中1表示足以判断,0表示无法判断。当输出的值大于阈值0.5时,标记为1,反之标记为0。紧接着,使用反向传播算法对网络中单元之间的连接权重进行更新,直到网络训练完成(迭代1000次以上)。

然后,对于已经训练好的分类模块网络,利用测试集中的数据输入到网络中,检验网络的输出与测试集中真实值之间的差(用两者之差的绝对值来刻画),来分析网络的测试效果。

最后,整合分类模块网络和预测模块网络。针对某个模型,通过0.05ms的时间步长,获取在某一刺激下神经元非spike部分的电压值,并得到间隔为1ms的三个连续值Vt1、Vt2和Vt3。首先通过分类网络对其进行判断,如果输出结果大于或等于阈值,就将Vt1、Vt2和Vt3引入到预测网络中,对神经元spike的三个特征值(Vmax、Vmin和Dt)进行预测。如果输出结果小于阈值,则将Vt1、Vt2、Vt3向前以0.05ms的步长进行更新,然后重新进行分类判断。这样,神经元动作电位序列中spike部分的信息就可以用非spike部分的值(Vt1、Vt2和Vt3)来准确地预测出,从而加快了整个动作电位序列的求解和计算过程。

图4为收集训练和测试数据时所用到的几种神经元模型及对应的放电波形。

在神经系统中,神经元的类型有很多种,其所表现出来的放电波形也是多种多样。为了更好地检验我们的算法,我们搜集了9种离子通道模型,在一定幅度的刺激下,这些模型可以表现出10种典型的放电波形,这些波形涵盖了大脑中神经元80%以上的放电行为。

图5为利用0.05ms步长来预测spike特征的结果示意图。

在实际操作中,利用0.05ms的迭代步长来获取spike之前的电压样本数据(Vt1、Vt2和Vt3)。通过输入到分类网络模块来判断其能否用于预测spike的特征,如果输出结果为1,则输入到预测网络模块做具体的预测;如果输出结果为0,则以0.05ms步长向前做下一组电压样本(Vt1、Vt2和Vt3)的搜集,再经过分类网络进行判断。

图5中曲线是用4阶龙哥库塔算法在0.01ms步长下计算得到的膜电位曲线,用作对照。星形标记的是用4阶龙哥库塔算法在0.01ms步长下计算得到的真实数据点,依次标记的是spike峰值前3ms、2ms和1ms的V3,V2和V1,以及spike的峰值和最低值。三角形标记的是网络的预测值。从图中的数据可以看出,预测值和真实值非常的接近。这就表明,虽然采取的步长(0.05ms)是典型的0.01ms的5倍,但模型仍然能很精确地预测出spike的几个特征值。由于采用了相对大的步长,因此在计算速度上也就得到了5倍的提升。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1