深度学习与脑机接口_1(基于卷积神经网络的P300信号检测)
参考论文《
Convolutional Neutral Networks for P300 Detection with Application to Brain-Computer Interfaces》
Hubert Cecotti and Axel Gra¨ser
1、所研究问题:检测单次刺激P300信号的有无(即不经过叠加平均)
以下四个图全部都包含P300波形:
我们只能从图1和4中观察出P300波形,图2和图3很难确定的说P300波形存在与否(然而实际上是有的)
提出问题:如何在叠加了背景脑电和噪声的信号中正确识别出P300波形?
2、论文模型CNN for P300 Detection
网络的第一层L0是输入层:
输入样本是一个64x78的矩阵,64代表EEG信号通道数,78代表EEG信号在120HZ采样率下650ms
的时域波形;
在输入网络之前,样本数据进行预处理,
使得每个通道信号的均值为零,方差为1。
第二层L1层实现了空域滤波的功能,用1x64的向量对输入样本进行卷积计算,实际就相当于对所有通道做加权平均。模型一共设计了10个空间滤波器,在网络进行反向传播训练时,滤波器可以自动学习出对应通道的权重大小。
第三层L2层实现了时域滤波器及下采样,把第二层L1层滤波得到的10个特征波形进行滤波和下采样,每个特征波形是一个1x78的向量,经过滤波和下采样后得到一个1x6的向量。
第四层和第五层是由普通的全连接神经网络组成。
第五层网络的输出是一个2维的向量,输出[1,0]时代表检测到P300波形,输出[0,1]代表网络没有检测到P300波形。
准确的说这个模型只是借鉴了卷积网络的感受野和权值共享两个概念,实际实现中没必要使用卷积计算(模型较简单,用到卷积的地方比较少,直接用矩阵乘法就能搞定了)。
3、实验结果
我的实验中,用来训练的样本为5100个,一半的样本包含P300波形,另外一半从没有P300波形的12750个样本中随机抽取出2550个(因为整体样本个数较少,若正负样本个数不一样,就容易出现100%正确分类一类样本,另一类样本却100%分错)。
学习率0.05迭代2次,改变学习率为0.01迭代4次,对训练样本分类结果为
[1845,705;3873,8877],对测试样本分类结果为[2024,976;4725,10275]。
把TP、TN、FP和FN四个集合中的样本进行叠加平均得到以下波形:
无法解释的是FP,FN的两个集合的样本——没有P300的样本集合FP经过叠加平均后,反而得到一个类似P300波形的信号(图中黑色虚线);有P300的样本集合FN的叠加平均却得到类似背景脑电和噪声的波形??一个可能的解释是论文中的
TABLE 8
Confusion of Character Recognition。
4、网络敏感输入(即网络提取出了这些特征波形)一共50个
找不到解释有一些不是P300波形的特征