本发明涉及计算机应用技术领域,具体涉及一种基于脑电信号的情绪分类方法、装置和存储介质。
背景技术:
情绪识别与分类对大脑功能机制研究、各种精神类疾病的检测以及与人工智能间的人机交互等领域都有重要意义。目前情绪识别主要基于人类的外在行为表现或生理信号序列得以实现。相比外在行为,由于生理信号序列不受主观意志控制,因此它应能更准确地表现人的情绪。基于脑电信号(eeg)的情绪分类正是其主要研究内容之一。但由于脑电信号中含有大量噪声以及和情绪无关的信息,如何获得脑电信号中“微弱”的情绪特征仍是一项极有挑战性的工作。目前,主要方法是利用某些波段脑电信号的复杂性特征和深度信念网络(dbn)实现情绪分类,分类结果准确率有待提高。另外,需要保留细节信息的特性导致上述方法抗缺失值性和抗噪性不强,在实际应用时对数据的清洁性要求高,鲁棒性不强。
技术实现要素:
针对现有技术的不足,本发明提供一种基于脑电信号的情绪分类方法、装置和存储介质。
第一方面,本发明提供了一种基于脑电信号的情绪分类方法,该方法包括:
步骤1,获取脑电信号序列数据。
步骤2,根据具有标定的超参数范围的人工智能分类器,按照十折交叉验证要求,选择所述脑电信号序列数据中的一部分作为训练集组,另一部分作为验证集组。
步骤3,将所述训练集组和所述验证集组中的元素映射为复杂网络,并确定网络特征统计指标。
步骤4,根据所述训练集组和所述验证集组对应的所述网络特征统计指标生成多通道脑电地形图分别作为训练数据和验证数据。
步骤5,遍历所有超参数,分别采用所述训练数据和所述验证数据对所述人工智能分类器进行训练和验证,并基于十折交叉验证法确定具有最优模型的人工智能分类器。
步骤6,选择所述具有最优模型的人工智能分类器,基于脑电信号进行情绪分类。
第二方面,本发明提供了一种基于脑电信号的情绪分类装置,该装置包括:
获取模块,用于获取脑电信号序列数据。
第一处理模块,用于根据具有标定的超参数范围的人工智能分类器,按照十折交叉验证要求,选择所述脑电信号序列数据中的一部分作为训练集组,另一部分作为验证集组。
第二处理模块,用于将所述训练集组和所述验证集组中的元素映射为复杂网络,并确定网络特征统计指标。
第三处理模块,用于根据所述训练集组和所述验证集组对应的所述网络特征统计指标生成多通道脑电地形图分别作为训练数据和验证数据。
第四处理模块,用于遍历所有超参数,分别采用所述训练数据和所述验证数据对所述人工智能分类器进行训练和验证,并基于十折交叉验证法确定具有最优模型的人工智能分类器。
分类模块,用于选择所述具有最优模型的人工智能分类器,基于脑电信号进行情绪分类。
第三方面,本发明提供了一种基于脑电信号的情绪分类装置,该装置包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上所述的基于脑电信号的情绪分类方法。
第四方面,本发明提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的基于脑电信号的情绪分类方法。
本发明提供的基于脑电信号的情绪分类方法、装置和存储介质的有益效果是,能够基于脑电信号序列的复杂网络范式下的特征和人工智能分类器较准确地实现情绪分类,在对脑电信号序列进行复杂网络化时,具有较好的鲁棒性,在实际应用中具备较强的抗缺失值性和抗噪性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种基于脑电信号的情绪分类方法的流程示意图;
图2为本发明实施例的一种基于脑电信号的情绪分类装置的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明实施例的一种基于脑电信号的情绪分类方法包括:
步骤1,获取脑电信号序列数据。
步骤2,根据具有标定的超参数范围的人工智能分类器,按照十折交叉验证要求,选择所述脑电信号序列数据中的一部分作为训练集组,另一部分作为验证集组。
步骤3,将所述训练集组和所述验证集组中的元素映射为复杂网络,并确定网络特征统计指标。
步骤4,根据所述训练集组和所述验证集组对应的所述网络特征统计指标生成多通道脑电地形图分别作为训练数据和验证数据。
步骤5,遍历所有超参数,分别采用所述训练数据和所述验证数据对所述人工智能分类器进行训练和验证,并基于十折交叉验证法确定具有最优模型的人工智能分类器。
步骤6,选择所述具有最优模型的人工智能分类器,基于脑电信号进行情绪分类。
本实施例的基于脑电信号的情绪分类方法能够基于脑电信号序列的复杂网络范式下的特征和人工智能分类器较准确地实现情绪分类,在对脑电信号序列进行复杂网络化时,具有较好的鲁棒性,在实际应用中具备较强的抗缺失值性和抗噪性。
优选地,所述步骤1的具体实现包括:获取具有标签的脑电信号序列数据,并对所述脑电信号序列数据进行带通滤波处理。
优选地,人工智能分类器可以为神经网络分类器,其超参数包括中间层神经元数量、层数以及cnn网络卷积核尺寸、dropout比例等。
优选地,训练数据可表示为trainset,验证数据可表示为testset,所述步骤3包括:
步骤3.1,基于多尺度熵的时间窗宽估计方法对所述训练集组的元素进行分割,并取时间窗宽的中位数作为统一的时间窗宽。
具体地,以脑电信号复杂网络化为例,将原序列转化为变化率序列,令rt=xt。
指定尺度参数取值范围τ∈t,对某τ,令yt=mean{r(t-1)τ+1,r(t-1)τ+2,…,rtτ},生成均值序列
指定嵌入维数m为2,产生嵌入向量序列{ri},其中ri=[yi+1,yi+2,…,yi+m]t。
指定相容性阈值θ为0.2,计算均值序列
遍历所有τ∈t,得到
时间窗宽度
遍历所有trainset的所有导联,将得到的所有width取中位数作为统一的时间窗宽width0。
将所有信号序列
步骤3.2,确定所述训练集组中所有序列片段的数字特征和分位数矩阵,基于所述数字特征和所述分位数矩阵构建粗粒节点序列。
具体地,对第一个导联,计算trainset中对应的所有脑电信号序列片段
对于第一次测量的第一个片段的第一项数字特征ds1,如果ai-1,1<ds1≤ai,1,则令cs1=i。
遍历所有特征,得第一个片段的粗粒化节点cs1=[cs1,…,csm]。
遍历所有序列片段,获得
剔除粗粒节点序列中的重复节点,建立节点集{nodei},用g:ri→nodej代表时间序列片段到粗粒化节点的映射。
遍历所有测量,得到
遍历所有导联,得到
步骤3.3,针对所述粗粒节点序列,基于概率转移方法连边并加权构建复杂网络,并使用相同参数,将所述验证集组也映射成复杂网络。
对于两个前后相邻的粗粒节点,若它们对应的节点nodej和nodek之间没有从nodej指向nodek的有向边,那么在节点nodej和nodek之间连上一条边,边的指向为nodej→nodek,并置其权重为1;否则,只须令此边权重增加1。
遍历所有相邻的粗粒节点对后,得到所有节点间连边的权重,复杂网络构建完毕,记为
与此同时,基于时间窗宽和分位数矩阵,将testset映射为复杂网络。
计算复杂网络
指标1):节点数量numnodes,其是节点集{nodei}的元素个数。
指标2):边数
指标3):图密度
指标4):平均出度
指标5):出度标准差
指标6):节点出度的交叉熵,其中,节点按字典序排列。
指标7):平均加权出度
指标8):加权出度标准差
指标9):加权出度的交叉熵entropyout-strength。与指标6)类似,只需将k.out替换成
另外,将网络退化为无权无向网,有以下指标:
指标10):平均介数between=mean{betweeni},其中
指标11):介数标准差
指标12):介数交叉熵entropybetween。与指标6)类似,只需将k.out替换成between即可。
指标13):平均聚类系数cluster=mean{clusteri},其中
指标14):聚类系数标准差
指标15):聚类系数交叉熵entropycluster。与指标6)类似,只需将k.out替换成cluster.即可。
将trainset对应的
同时,对于testset,也可相应获得验证数据,可表示为testdata。
分别使用traindata和testdata对人工智能技术分类器进行训练和验证,并采用十折交叉验证法选择分类器的相关超参数。
返回步骤3.1,遍历所有traindata和对应的testdata,计算平均正确率。
返回步骤2,遍历标定的超参数范围内的所有超参数,计算对应的平均正确率。
选择平均正确率最高的分类器作为最优结果,也就是具有最优模型的人工智能分类器。
下面以公开数据库为研究对象,对本发明的一种基于脑电信号的情绪分类方法进行进一步的说明。
选用上海交通大学公开的seed数据库(sjtuemotioneegdataset)所提供的脑电信号作为数据源。seed数据库使用esineuroscan脑电采集平台、按国际10-20系统设置62导联、采样频率为1000hz记录原始eeg信号,然后下采样到200hz后提供下载。该数据库包括15个被试的3次实验记录(同一被试相邻实验间隔不低于一周),每组数据包括62个导联脑电信号记录,每个导联约40000个数据。每次实验时,被试观看15个中文影视片段(负面、正面及中性情绪片段各5段,每段片段长度约4分钟,两个片段之间间隔1分钟以供被试脱离之前音视频材料所诱发的情绪),esineuroscan平台记录被试观看音视频片段时的脑电信号,再由人工将观看每个影视片段期间的脑电信号数据截取出来并添加标签,最终获得共计675组脑电信号数据,其中负面、正面以及中性情绪各对应225组数据。
本实施例展示基于脑电信号的正面情绪、中性情绪的分类,主要步骤包括:
构造一个8阶fir带通滤波器,通带为30hz至50hz。
让每个导联的序列数据通过带通滤波器,获取各导联的gamma波数据。
计算所有导联的gamma波数据序列的多尺度熵集,尺度参数取值范围为5-20。
计算每个导联的时间窗宽度,其公式为:
其中,τ为尺度参数,seτ为样本熵,rt为变化率序列。
计算所有导联的统一时间窗宽度,即所有时间窗宽度width的中位数,本实施例计算结果为10。
统一时间窗宽度取10,将每个导联的gamma波数据序列分割为若干序列片段(为便于比较,将总片段数设置为3000,多余部分删除)。
计算每个序列片段的4项数字特征,均值、标准差、极差和波动率,其中波动率的计算公式为:
wave=mean{|diff(x)|}。
其中,diff(·)代表一阶差分。
遍历所有序列片段后,得到由4项数字特征所构成的4维序列m,计算其10-分位数矩阵a=(ai,j),其中,ai,j是此4维序列的第j分量列数据集的ith-10分位数。
建立复杂网络,即,对于第一个片段的第一项数字特征,根据a第一列的取值,确定其对应的粗粒化分量,例如,第一项数字特征为1.08,a第一列为
遍历所有特征,得到第一个片段的粗粒化节点。
遍历所有序列片段,得到粗粒化节点序列。
剔除重复节点,建立节点集{nodei}。
对第一组的第一个导联的粗粒化节点序列,对于其中两个前后相邻的粗粒节点,若它们对应的节点nodej和nodek之间没有从nodej指向nodek的有向边,那么在节点nodej和nodek之间连上一条边,边的指向为nodej→nodek,并置其权重为1;否则,只需令此边权重增加1。然后遍历所有相邻的粗粒节点对后,得到所有节点间连边的权重,该导联对应的网络构建完毕。最后计算该网络的15项网络特征统计指标。
遍历所有导联,遍历所有数据组,获得对应的复杂网络统计指标集合。
对每一个复杂网络特征统计指标,按导联位置构造9×9的脑电地形图,缺失位置补0,并将结果整合成一个维数为[m,n,l,d]的4维矩阵s,其中m=n=9,通道数l=15,d=675。另外,按照脑电数据原始标签,构造分类标签矩阵c。
将s按照第4维进行正态标准化,将数据映射为均值为0,方差为1的数据。
截取s和c中正面情绪、中性情绪对应部分,作为卷积神经网络的训练数据及验证数据。
由于每种情绪共计225个数据集,为方便计算,本实施例中将采用九折交叉验证法,即,将每种情绪对应的225个数据集随机分成9份,循环训练9次,每次用其中的8份作为训练集,剩下1份作为测试集。接下来以第一卷积层的卷积核数量cn作超参数为例,描述构造卷积神经网络分类器及选择超参数的过程。
统一dropout比例为50%,指定cn取值范围是[195,205],步长为1。
构造卷积神经网络分类器neteegclassifier,该分类器共计17层,依次为:
1)图形输入层,大小为9×9×15。
2)batchnormalization层。
3)第一卷积层,卷积核大小为3×3,步长为[1,1],数量为cn。
4)relu激活层。
5)dropout层。
6)第二卷积层,卷积核大小为2×2,步长为[1,1],数量为40。
7)batchnormalization层。
8)relu激活层。
9)dropout层。
10)第三卷积层,卷积核大小为3×3,步长为[1,1],数量为3。
11)batchnormalization层。
12)relu激活层。
13)dropout层。
14)输出维数为2的全连接层。
15)dropout层。
16)softmax层。
17)2分类器层。
另外,设定训练参数如表1所示。
表1训练参数设置
按照九折交叉验证方法的要求,依次对分类器neteegclassifier进行训练和检验,正确率如表2所示。
表2验证集上的准确率
在表3中给出了基于序列特征的分类器(featureeegclassifier)分类方法的平均正确率以作对比。featureeegclassifier同样基于gamma波数据,提取5种序列特征psd(能量谱密度)、de(微分熵特征)、dasm(左右半球不对称差特征)、rasm(左右半球不对称商特征)、dcau(前后半球不对称商特征),使用dbn(深度信念网络)进行分类。
表3featureeegclassifier平均正确率
对比可知,neteegclassifier分类结果正确率更高,当cn不取196、200时,neteegclassifier分类结果正确率都高于featureeegclassifier。
根据结果可知,本发明实施例给出的一种基于脑电信号的情绪分类方法,具体可选用卷积神经网络分类器,对脑电信号进行中性情绪和正面情绪辨识,具有80%左右的平均准确率,其中以205个卷积核的结构获得最高平均准确率81.56%。特别地,如果对数据集进行多次抽样反复训练,准确率可达到90%,可将其用于情绪分类。
如图2所示,本发明实施例的一种基于脑电信号的情绪分类装置包括:
获取模块,用于获取脑电信号序列数据。
第一处理模块,用于根据具有标定的超参数范围的人工智能分类器,按照十折交叉验证要求,选择所述脑电信号序列数据中的一部分作为训练集组,另一部分作为验证集组。
第二处理模块,用于将所述训练集组和所述验证集组中的元素映射为复杂网络,并确定网络特征统计指标。
第三处理模块,用于根据所述训练集组和所述验证集组对应的所述网络特征统计指标生成多通道脑电地形图分别作为训练数据和验证数据。
第四处理模块,用于遍历所有超参数,分别采用所述训练数据和所述验证数据对所述人工智能分类器进行训练和验证,并基于十折交叉验证法确定具有最优模型的人工智能分类器。
分类模块,用于选择所述具有最优模型的人工智能分类器,基于脑电信号进行情绪分类。
优选地,所述获取模块具体用于:获取具有标签的脑电信号序列数据,并对所述脑电信号序列数据进行带通滤波处理。
优选地,所述第二处理模块具体用于:
基于多尺度熵的时间窗宽估计方法对所述训练集组的元素进行分割,并取时间窗宽的中位数作为统一的时间窗宽。
确定所述训练集组中所有序列片段的数字特征和分位数矩阵,基于所述数字特征和所述分位数矩阵构建粗粒节点序列。
针对所述粗粒节点序列,基于概率转移方法连边并加权构建复杂网络,并使用相同参数,将所述验证集组也映射成复杂网络。
在本发明另一实施例中,一种基于脑电信号的情绪分类装置包括存储器和处理器。所述存储器,用于存储计算机程序。所述处理器,用于当执行所述计算机程序时,实现如上所述的基于脑电信号的情绪分类方法。
在本发明另一实施例中,一种计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的基于脑电信号的情绪分类方法。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。