这篇文章,是我做完毕设写的,机器学习的脑电信号的四分类,基于python的代码。代码及资料有偿提供 QQ1281037486,欢迎交流。
下面是过程中的经验吧,希望你能快速上手,快速有一些基础。
一、脑电信号数据
开源数据集,注意数据的格式,我用过,mat,gdf,以前都没处理过这种格式的数据。
1、非常好用的脑电信号数据集,BNCI地平线2020:http://bnci-horizon-2020.eu/database/data-sets
里面包括BCI竞赛的数据等等26个,可以直接单个下载。
2、BCI竞赛的数据集:http://www.bbci.de/competition/
使用:进去某一年的竞赛数据,找到下载数据集。填写好信息,会发送一个下载链接给你的邮箱,还有登陆的账号和密码。
3、 https://github.com/meagmohit/EEG-Datasets
2、数据的读取
https://mne-tools.github.io/stable/index.html
用于探索,可视化和分析人类神经生理学数据的开源Python软件:MEG,EEG,sEEG,ECoG等。
3、算法的库
小波变换的库
https://pywavelets.readthedocs.io/en/latest/#
4、一些基础概念
人脑具有电活动是Hans Berger于1924年首先检测到的,并将这种检测方法命名为脑电图(electroencephalo-graph,EEG)。脑电信号主要由皮质内大量神经元突触后电位同步总和形成,是很多神经元共同活动的结果。传统脑电信号分析大多由专家根据经验辨别伪差目测完成,并根据脑电图波形的幅度、频率和瞬态分布等给出评价。这使对脑电信号的特征提取与分析停留在主观水平上。傅立叶变换进行脑电图分析后,相继引入频域分析、时域分析等脑电图分析的经典处理方法,脑电信号的处理理论与方法均有较大的进展。
采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。
通俗的讲采样频率是指计算机每秒钟采集多少个样本(样本点)。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。
脑信息解码被广泛用于脑机接口系统(brain computer interface system, BCIs)
脑机接口(英语:brain-computer interface,简称BCI;有时也称作direct neural interface或者brain-machine interface),是在人或动物脑(或者脑细胞的培养物)与外部设备间创建的直接连接通路。在单向脑机接口的情况下,计算机或者接受脑传来的命令,或者发送信号到脑(例如视频重建),但不能同时发送和接收信号[1]。而双向脑机接口允许脑和外部设备间的双向信息交换。
BCIs主要包括信号采集,信号特征提取和模式分类三个部分
信号采集
脑信息记录信号分为侵入式或非侵入式
侵入式脑机接口主要用于重建特殊感觉(例如视觉)以及瘫痪病人的运动功能。此类脑机接口通常直接植入到大脑的灰质,因而所获取的神经信号的质量比较高。但其缺点是容易引发免疫反应和愈伤组织(疤),进而导致信号质量的衰退甚至消失。
优点:非入侵式脑机接口具有良好的时间分辨率、易用性、便携性和相对低廉的价格。
缺点:虽然这种非侵入式的设备方便佩戴于人体,但是由于颅骨对信号的衰减作用和对神经元发出的电磁波的分散和模糊效应,记录到信号的分辨率并不高。这种信号波仍可被检测到,但很难确定发出信号的脑区或者相关的单个神经元的放电。存在较低的信噪比和空间分辨率等问题。
范式
它指的是一个共同体成员所共享的信仰、价值、技术等等的集合。指常规科学所赖以运作的理论基础和实践规范,是从事某一科学的研究者群体所共同遵从的世界观和行为方式。开展科学研究、建立科学体系、运用科学思想的坐标、参照系与基本方式,科学体系的基本模式、基本结构与基本功能。
实验范式
实验范式即相对固定的实验程序。在许多领域尤其是心理学中,为了验证某种假设,以及发现某些有意思的现象。实验者会设计具有验证性目的的实验。有些实验比较经典,被有相同或类似目的的后来人多次沿用,就形成了一种实验范式。实验范式包括实验的目的、具体流程、手段以及是被试内还是被试间或者是混合实验设计等。用一句话讲就是:实验范式在具体的实验中可以做为模板,并根据自己的新要求进行修改。比如,在决策心理学中,经典的实验范式有:爱荷华博弈任务、剑桥博弈任务等。
两个脑电方面的实验范式
1、MI
运动想象(Motor Imagery, MI)是利用自发脑电信号实现无动作人机交互的一种重要BCI实验范式
2、SSVEP
稳态视觉诱发电位 (英语:Steady state visually evoked potential, SSVEP) 是指大脑对于特定频率的视觉刺激会诱发的讯号。当视网膜接收到 3.5Hz 至 75Hz 的视觉刺激,大脑会产生和视觉刺激相同频率或倍数频率的电气活动[
在概述国内外稳态视觉诱发电位脑机接口技术研究的基础上,针对传统稳态视觉诱发电位 (SSVEP)在脑一机接口(BCI)系统应用中存在的问题,在范式设计方面,分别提出了基于牛顿环、高 频组合编码和幅值调制的SSVEP的3种BCI范式。
10-20系统电极位置
世界上绝大多数实验室采用的是国际10-20系统(the 10-20 international System)电极放置法
其特点是:
电极有各自的名称:位于左侧的是奇数,右侧的是偶数。
按近中线的用较小的数字,较外侧的用较大的数字。
电极名称包括电极所在头部分区的第一个字母。
诸点电极的间隔均以10%和20%来测量
二个电极间电位差变化的形式 谓之波形。
二个相同的波连续出现,谓之电活动 。
三个以上大小、形状相同的脑波称之为节律。
大脑皮质分区
脑电图、脑波图(英语:Electroencephalography, EEG)是透过医学仪器脑电图描记仪,将人体脑部自身产生的微弱生物电于头皮处收集,并放大记录而得到的曲线图。
脑电解码
脑电解码是通过对原始脑电信号进行预处理,特征提取然后分类识别的过程
脑机接口系统中EEG信号特征提取与分类(http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=wjsjxx200818108)
预处理
将从头皮表层采集到的含有大量外界及内源干扰噪声的脑电进行提纯,保留下与脑活动有关的主要信息成分。
(1)信号滤波
由于脑电信号信噪比较低,内含大量外界干扰噪声(设备仪器工频干扰等)和伪迹成分(人体内部振荡引起的非脑电信号,如眼动,心跳等)。外界干扰噪声频率较高,可以利用滤波器分离,但人体内部引起的伪迹成分与脑电有效成分的频率接近,需要用其他预处理方法进行滤除。
(2)信号分割
对于连续的脑电信号,我们只关心包含运动想象信息的部分
(3)伪迹去除
针对采集的脑电数据中可能存在的眨眼、心电、肌电等伪迹干扰问题
主成分分析法(PCA)、独立成分分析法(ICA)、
特征提取
特征提取是将相关的信号特征与无关的成分分开,并以紧凑或有一定意义的形式表达的过程
ERD and ERS
两篇相关的文献
The blocking of the rolandic wicket rhythm and some central changes related to movement-
作者:Gian EmilioChatrianM.D.Magnus C.PetersenM.D.Jorge A.LazarteM.D.
Event-related cortical desynchronization detected by power measurements of scalp EEG.
作者:PFURTSCHELLER,G.
事件相关去同步化(event-related desynchronization,ERD)和事件相关同步化(event related synchronization,ERS)是研究脑功能信号有用的分析方法(http://news.medlive.cn/ns/info-progress/show-145145_181.html)
Phenomena reflecting sensorimotor brain activity resulting in an amplitude decrease (ERD) or increase (ERS) of oscillatory components.
当某一皮层区域活跃起来, 特定频率的节律性活动表现为幅度的降低,生理现象称作 事件相关去同步化(event-related desynchronization,ERD)
在大脑静息或者惰性状态下表现出明显波幅增高,事件相关同步化(event related synchronization,ERS)
首先报道alpha去同步化活动的是 Berger的先驱性工作,又称为"alpha波阻滞"。之后Gastaut和Chatrian等发现10Hz的去同步化活动与手运动密切相关, 而且仅局限于运动皮质的Rolantic区 。 由于10Hz与运动系统的特异性,这些学者将10Hz命名为“rolantic mu rhythms”或者“central mu rhythms”,也就是mu节律。其后Pfurscheller等将alpha频谱去同步化的现象作称作ERD,并进行了大量与运动相关作业的研究,他们进一步证实不仅alpha频谱而且beta频谱对运动具有反应敏感的特点 。与此同时,他们还发现与ERD 截然不同的现象 ,alpha和beta频谱在大脑静息或惰性状态下表现出明显波幅增高的电活动,将其称为事件相关同步化(event related synchronization,ERS)
在时序信号上出现的幅度增减变化即是时域特征
PFURTSCHELLER和ANDREW在1999年证实在单手准备和执行运动时,对侧感觉运动皮质脑电信号中α频段(8~12Hz)和β频段(13~30Hz)出现振幅降低,并称为ERD,代表受激活的皮质脑电信号振幅减低。同时,运动手同侧的脑皮质信号中α频段(8~12Hz)和β频段(13~30Hz)出现振幅增加,称为ERS,代表相应皮质在静息状态下出现波幅增高。
研究表明,大脑在想象或实施动作时均能显著地改变所诱发 ERP信号内某些特征频段成分 ( 如α波、β波和 µ 节律 )的功率谱强弱比率.这一现象被称为事件相关去同步( event related desynchronization,ERD ) 或事件相关同步 ( event related synchronization,ERS ) 现象 [3-4] .ERD对应于功率谱比率下降,ERS 则对应于功率谱比率上升.并且,对应于大脑主观想象肢体动作思维和作业提示所诱发被动思维的 ERD/ERS 在具体表现特征频段和运动皮层区域均有所不同.例如,对应于手部运动的 ERD 多发生在 10~11,Hz 及 20~24,Hz 频段,而与足部运动有关的 ERD 则常见于 7~8,Hz 与20~24,Hz 频段 [4] .
当某一皮层区域活跃起来, 特定频率的节律性活动表现为幅度的降低或称为事件相关去同步(event-related desynchronization, ERD);当某一活动在一定时刻没有使相关皮层区域明显地活跃起来 ,特定频率就表现为幅度升高或称为事件相关同步(event-related synchronization, ERS)。运动感觉区的固有频率就是典型的 EEG 局部分量 , 如 μ(mu)、中心β和α节律
时域分析的常用分析方法有方差分析、相关分析以及微分、积分、直方图、峰值检验等
ERD/ERS量化方法
方法包括:经典频带功率法、试用方差法、自回归模型和频谱分解法、时间频谱演化方法、任务相关能量的增减方法、柯氏复杂性和傅里叶谱熵。除柯氏复杂性和傅里叶谱熵是非线性测量之外,其他都是鉴于该频带的功率熵
功率谱分析是频域特征分析的主要手段
基于公共空间模式(common spatial Pattem,CSP)的方法对基于事件相关去同步的运动相关电位的信号特征提取具有很好的分离效果。但是由于EEG信号信噪比很低,单纯依靠CSP提取特征是不够的,还需要利用数据驱动的方法作进一步处理.从数据中
提取特征规律。特征提取分为三步,首先是CSP滤波,接下来是连续小波(continuous wavelet transform,CWT)分析,最后采用T加权方法提取特征。
支持向量机(support Vector Machines,SVM),是在高维特征空间使用线性函数假设空间的学习系统,该方法已成功应用于多维模式识别的分类和回归。近些年来,研究人员开始将其应用于事件相关的EEG信号的处理,同样取得了比较理想的分类效果。我们将该算法应用于运动想象实验范式,算法性能较为突出,在小样本的情况下识别正确率较高。
2001 年 Litt 提出了积累能量算法并分析了癫痫发作前后的能量变化,实验结果表明癫痫发作期前能量发生了明显的变化,而且结果的正确性还比较高 [4, 15] 。
模式识别
模式识别过程是预先用提取的特征训练识别模型,让识别模型学习并对特征保留下“记忆”,以便以后遇到类似特征的数据能够快速判别出
目前常用于MI-EEG的分类方法主要有线性判别分析 (linear discriminant analysis,LDA)、朴素贝叶斯(Naive Bayes,NB) 、支持向量机(Support Vector Machine, SVM)和基于反向传播(BackPropagation,BP)的神经网络
神经网络,进一步的深度神经网络
CNN,RNN,LSTM,GAN等等
Generative Adversarial Network,就是大家耳熟能详的 GAN,由 Ian Goodfellow 首先提出
什么是生成(generation)?就是模型通过学习一些数据,然后生成类似的数据。让机器看一些动物图片,然后自己来产生动物的图片,这就是生成。
discriminator 就是一个二分类器
(一)
主要流程类似上面这个图。首先,有一个一代的 generator,它能生成一些很差的图片,然后有一个一代的 discriminator,它能准确的把生成的图片,和真实的图片分类,简而言之,这个 discriminator 就是一个二分类器,对生成的图片输出 0,对真实的图片输出 1。
接着,开始训练出二代的 generator,它能生成稍好一点的图片,能够让一代的 discriminator 认为这些生成的图片是真实的图片。然后会训练出一个二代的 discriminator,它能准确的识别出真实的图片,和二代 generator 生成的图片。以此类推,会有三代,四代。。。n 代的 generator 和 discriminator,最后 discriminator 无法分辨生成的图片和真实图片,这个网络就拟合了。
(二)
GAN的基本原理其实非常简单,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:
在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。
最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。
这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。