基于SVM的P300实验的数据分析摘要:脑机接口(BCI)是在人脑和外界之间建立不依赖于常规大脑信息输出通路(外围神经和肌肉组织)的一种通讯系统。而P300电位是一种常见的用于构建脑机接口系统的脑电信号。本文通过选择支持向量机(SVM)作为信号分类识别的算法,来处理来自本实验室竞赛的P300数据,成功地实现了对P300信号的分类识别研究。关键词:脑机接口(BCI);脑电(EEG);P300;支持向量机(SVM);分类ClassificationwithsupportvectormachinesforP300experimentsAbstract:Brain-ComputerInterface(BCI)isacommunicationsysteminwhichmessagesorcommandsthatanindividualsendstotheexternalworlddonotpassthroughbrain’snormaloutputpathways(peripheralnervesandmuscles).P300potentialisusuallyusedasonecomponentofelectroencephalography(EEG)signal.Inthispaper,westudymethodofSVM(SupportVectorMachines)whichisusedtoclassifyP300signalscomefromtheBCICompetitionofourlab.Keywords:Brain-ComputerInterface;Electroencephalogram;P300;SupportVectorMachines;Classification1引言近些年来,脑机接口(brain-computerinteraction,BCI)技术的研究在国际上引起了广泛的兴趣并获得了快速的发展。它利用脑电(electroencephalogram,EEG)来实现无动作的人机交互,可以为神经肌肉损伤患者提供一种不依赖正常的外围神经和肌肉输出通道的新型通讯工具,也可以为正常人提供辅助控制通道或在特殊环境下的控制通道,具有巨大的社会价值和应用前景。P300字符拼写实验范式首先由Farwell和Donchin在1988年提出,该范式是利用P300诱发电位即视觉刺激后约300ms开始在头顶皮层引起的EEG正峰,设计出的BCI应用实验。本文所处理的P300字符拼写实验数据采自本实验室BCI2000系统。将原始数据经过预处理及特征提取后,通过设计的分类器,就可以推断出受试者所注意的字符。其中,P300电位的特征提取方法有基于独立成分分析、连续小波变换等。分类器的设计常用线性分类器。支持向量机(supportvectormachines,SVM),是在高维特征空间使用线性函数假设空间的学习系统,该方法已成功应用于多维模式识别的分类和回归。近些年来,研究人员开始将其应用于事件相关的EEG信号的处理,同样取得了比较理想的分类效果,第3届国际脑机接口竞赛前3组数据分类正确率最高的参赛者所使用的分类器均为SVM。本文将该算法应用于P300字符拼写实验范式,算法性能较为突出,在小样本的情况下推断字符的正确率较高。2视觉诱发电位用于脑机接口的原理2-1利用视觉诱发电位(VisualEvokedPotential,VEP)在视觉诱发界面或显示装置上显示多个选项,使用者注视希望选择的一项。通过对显示方式进行处理,可以使人在注视不同选项时产生不同的脑电信号。几种同时表达的刺激以一些控制方式(强度、模式、颜色转换)快速改变,受试者由安放在视觉皮层(枕部)上方的电极,在这个位置来探测诱发电位EvokedPotential(EP)的改变。2-2利用事件相关电位(EventRelatedPotential,ERP)P300是ERP的一种,其峰值大约出现在相关事件发生后的300ms。相关事件出现的概率越小,所引起的P300越显著,并在头部的顶骨区(中部或后部)最为显著。由于诱发电位有固定的空间、时间和相位特征,即必须在特定的部位(150~500ms)才能检测出来。如图1所示,由于特定的波形和电位分布与刺激有较严格的锁时关系,进而能从检测到的视觉诱发电位判别出受试者在注视哪个目标。图1P300相关电位示意图视觉诱发电位用于脑机接口的原理与视觉的生理特性密切相关。物体在眼睛的成像与物体在简单的一个物理光学系统(如照相机)的成像不同。因为视觉系统本身就对图像进行了信号处理,在每一水平上削弱了某些不太重要的信息,增强了更有用的信息。屏幕上有多个可供选择的视觉刺激目标,当受试者注视其中一个目标时,虽然屏幕上所有目标进入视野,但所注视的目标影像进入受试者的中央视野,而不被注视的目标影像仅位于周围视野中,因此在大脑枕部检测到的视觉诱发电位中主要是由所注视目标刺激引起的。根据刺激与诱发电位的锁定关系,就能从检测到的视觉诱发电位判别出受试者在注视哪个目标。这就是视觉诱发电位用于脑机接口的原理。图2为本实验室脑机接口竞赛P300视觉诱发界面。3支持向量机支持向量机(SupportVectorMachines,SVM)由Vapnik及其合作者发明,是在统计学习理论(StatisticalLearningTheory,SLT)的基础上发展起来的新一代学习算法,在1992年计算学习理论的会议上被引入机器学习领域,目前己成为机器学习和数据挖掘领域的重要工具。该算法在文本分类、手写识别、车牌识别、图像分类、生物信息学等领域中获得了较好的应用。支持向量机是一种新颖的小样本学习方法,不同于现有的统计方法,简化了通常的分类和回归等问题。传统的统计方法只有在样本数趋向无穷大时其性能才有保证,对于实际应用中的有限样本难以取得理想的效果,支持向量机在此领域取得了非常好的效果。支持向量机方法的优点是所获得的分类器的复杂度可以通过支持向量的个数,而不是变换空间的维数来刻画。因此,SVM通常不会发生过拟合现象。图2脑机接口竞赛视觉诱发界面图3支持向量机算法理论解释支持向量机本质上属于两类分类器,也可以通过一定算法应用于多类模式识别中。例如可以把k类识别的问题转化为k个两类识别的问题,其中第i个问题是用线性判别函数把属于iC类与不属于iC类的点分开;此外也可以用21kk个线性判别函数,把样本分为k个类别,每个线性判别函数只对其中的两个类别分类。支持向量机的基本原理是运用非线性变换,将输入空间变换到一个高维空间,这样在原来的空间中不能线性分类的数据样本就可以在高维空间中进行线性分类,如图3所示。图中o代表一类数据,x代表另一类数据。在原始空间中两类样本是线性不可分的;经过非线性映射变换Φ后,在变换后的空间中,两类数据成为线性可分的。线性可分数据的分类算法是比较成熟的。支持向量机的算法可描述为:已知n个观测样本nnyxyxyxyx,,,,,,,,332211,其中nixi,,2,1为观测数据,niyi,,2,1为对应的类别标号,iy为二值化取值,可设为+1和-1,将线性不可分的数据,按某种非线性变换方式变换到高维空间后,通过线性分类器进行分类,其分类判别公式为:Niiiibxxayxf1,sgn其中,0101sgnxx,N为支持向量机的数目,0ia为拉格朗日乘子,xxi,,为高维空间中的内积运算,b为分类的阈值,iiyx,为对应的观测样本数据。核函数的选择是支持向量机算法的核心,用不同核函数可以构造实现输入空间中不同类型的非线性决策面的学习机,从而形成不同的支持向量机算法。Minsky和Papert在20世纪60年代明确指出线性学习器计算能力有限。目标通常不能由给定属性的简单线性函数组合表达,需要寻找待研究数据的更抽象的特征。核函数表达方式提供了一条解决途径,即将数据经过非线性映射变换Φ映射到高维空间来增加线性学习器的分类能力。只要核函数jixx,K满足Mercer条件,它就对应某它就对应某一变换空间中的内积xxxxiji,,K。所以,上述高维空间中的分类判别公式,可以写成如下低维空间内用核函数表示的分类判别公式:Niiiibxxayxf1,Ksgn其中,xxi,K为核函数。核函数有多项式(Polynomial)、齐次多项式(HomogeneousPolynomial)、高斯(Gaussian)、径向基函数(RBF)、一维墨西哥状小波(Mexican1DWavelet)等,常用的核函数分别如下:1.线性核函数(Linearkernel)iixxxx,,K2.多项式核函数(Polynomialkernel)diicxxsxx,,K,其中是s,c,d为参数。3.径向基核函数(Radicalbasisfunction,RBF)2exp,Kiixxxx,其中为参数。4.Sigmoid核函数(Sigmoidtanh)cxxsxxii,tanh,K,其中s,c为参数。选定了支持向量机的核函数之后,还需要对核函数中的参数进行设定。SVM分类函数是一组以支持向量为参数的非线性函数的线性组合。分类函数的表达式仅和支持向量的数量有关,而独立于空间的维度。在处理高维输入空间的分类时,这种方法尤其有效。因此本文选取SVM对P300脑电信号进行分类识别。4基于SVM标准数据分类识别4-1研究数据介绍本文中作为处理对象的数据是本实验采集的数据。数据采自BCI2000系统,该系统是一个灵活的脑机接口研究和开发平台,提供各种各样的脑信号、信号处理方法和用户应用。实验过程中脑电信号是通过受试者脑部头皮上的32个采样电极,以250Hz的采样频率被记录的。实验过程中,受试者注视一个410的字符矩阵如图2所示。根据P300脑电诱发电位出现的原理,以小概率出现的期望字符的刺激就是靶刺激,不是期望字符的刺激为非靶刺激。当某一个指定字符被高亮的时候,即呈现刺激的时候就会引出P300电位。根据刺激与诱发电位的锁定关系,就能从检测到的视觉诱发电位判别出指定的字符。受试者按照提示注视字符矩阵,每拼写一个字符,矩阵中的每个字符都要连续的、随机的被高亮。40个字符全部被高亮一遍则形成一个block,为了增加拼写程序的可靠性,每个字符的拼写要重复10次,拼写一个字符过程中形成连续的10个block。受试者按照指示,将注意力集中到他想拼写的字符上,然后由包含预想字符的一个block随机刺激所产生的P300诱发电位就会出现在脑电信号当中。根据这一特点,只要在一个block中,分类器根据P300电位进行分类判断,就可以推断出所选择的字符。拼写过程描述:开始的时候屏幕上字符矩阵都没有被高亮,这个状态持续2.5s的时间;随后字符矩阵中的字符被随机的高亮,即有40次高亮,这样也就产生40个随机的刺激;这40次高亮的刺激的持续时间都是1s,两次高亮之间的间隔为75ms;这样就完成一个字符的拼写。为了达到稳定的视觉刺激响应,每一个字符的输入要重复10次,这样随机高亮的刺激次数为4001040次。10次重复完成后,屏幕上的字符全部又恢复到没被高亮的状态,在持续2.5s的时间,这段持续时间就提示受试者目前要指定拼写的字符拼写过程已经完成。通过BCI2000系统完整记录的P300诱发电位信号数据存储在LiYQ_P300_Nov0608_60ms.cnt中,这个文件是对一个受试者采集的数据,其中包括训练集数据和测试集数据。此外,保存的数据文件中同时保存了每次刺激序列中的一些变量的状态。如变量结构体EVENT表示一个刺激事件,其中EVENT.TYP表示刺激类型,EVENT.POS表示刺激位置。EVENT(这个变量只有在训练集数据中有,测试集中是没有的,是待识别确定的)。单步运行下面的程序片段就可以得到上述描述。clearallcloseall