36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类

Abstract:

今天讲解的BCI模型是我读研期间看的一篇“启蒙”文章。本文由加拿大蒙特利尔康考迪亚大学康考迪亚信息系统工程研究所(CIISE)Soroosh Shahtalebi,和 Arash Mohammadi;以及康考迪亚大学电子与计算机工程系Amir Asif共同发表,三位学者的这项工作得到了加拿大国防部国防卓越与安全创新(IDEaS)项目的部分支持。文章:,于2020年9月5日发表于Annu Int Conf IEEE Eng Med Biol Soc .

在该篇文章之后,孪生神经网络迎来为时近两年的热潮(BCI领域),众多论文发表,以下是Pubmed关于孪生模型的统计:

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第1张图片

22年76篇,23年77篇,在此之前孪生一直处于低迷状态。

Methodology:

写在最前,这篇文章值得学习的地方在于:

1、采用One vs Rest(OVR) + One vs One(OVO)相结合的方式,预处理EEG信号

2、采用孪生神经网络和对比损失训练数据

一般来说,要处理多类分类问题,有两种主要方法:

1、使用自然能够处理多类问题的分类器,例如K均值、K近邻(kNN)和决策树等

2、将多类问题分解为若干二元分类问题,其中可以使用二元分类器。

由于二进制特征提取技术在BCI领域的广泛应用,例如CSP。对后者用于多类问题的技术进行了深入研究。为了达到这个目的,有两种技术,即一对一(OVO)和一对一Rest (OVR),这两种方法都采用了基于二进制码字的编码矩阵C,将训练试验分类识别为两个超集。OVO和OVR的编码矩阵分别如表1和表2所示。C中的列数决定了要训练的二元分类器的数量。对于分类器j,需要形成两个超集Sj 0和Sj 1,其中所有用0和1表示的类分别形成超集Sj 0和Sj 1。给定一个4类问题的编码矩阵C和训练试验集{Xi, Yi}p i=1,其中Yi表示试验的标签(数字范围为[1,2,3,4]),形成超集如下:

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第2张图片

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第3张图片

在表1和表2中,每个码字的长度表示要解决的二值分类问题的个数。由于所提出的Siamese架构提供了一个二进制输出,表明两个输入是否来自同一个超集,我们相信它们非常适合于OVR和OVO方法来解决多类EEG分类问题。同样值得一提的是,分类器j实际上是一个Siamese网络(Gj W(.)),它是在两个超集Sj 0和Sj 1上训练的。

Model:

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第4张图片

好,咱们看一下这个孪生模型。它有两个并行输入,这里对于脑机接口使用DL的同学可能不太友好,就是你写代码的过程中会首先遇到一个问题:另一个通道如何搭建?比如你使用该文章用的BCI Iv2a数据,这个数据9位被试,每个被试有2个文件,一个T用于训练,一个E用于测试。你是把整个T输入到一个通道吗?那另一个通道没数据咋办,那把这个T文件我随机切分一半一半?这样对吗?这是值得思考的。

当你解决完这个问题后,开始搭建下面的结构:每个分支共享参数,由两层卷积+两层全连接构成,模型简单,思路清晰。但是现在你会遇到第二个问题:数据进入模型后层层出来没问题,但是你使用的是对比损失,而不是传统的交叉熵损失做分类,因为孪生需要对比损失函数得到两输入通道每批次数据的相似度,这个模型是依靠相似度来做分类的。这里数据从模型出来和真实标签在对比损失里做对比,你会出一个比较难搞的Bug。

当这个Bug解决后,你得到模型测试的结果了,经过一番努力的调参后,你会发现模型结果达不到论文所说的,甚至低不少,这里你可以查阅其他孪生模型,里面还有一个非常重要的参数设置,在对比损失函数里可以设置,大家自行查阅也可以咨询我。

模型伪代码:

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第5张图片

ResUlt:

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第6张图片

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第7张图片

写在最后:

这篇论文是3区文章,是因为他建的这个模型未达到2a数据上的SOTA水准,精度差EEGNet一截。但也是前辈目光远大的尝试,值得我们尊敬。

此外,也欢迎大家加入我们的脑机接口群聊,本人每天会分享一些资料,主要是CNN、RNN,Transfomer等DL模型用于处理BCI生理数据,涉及到BCI数据的预处理,特征工程,建模(ML,DL都有),结果可视化(混淆,ACC、AUC、F1等值)一套完整的流程,助力大家使用深度学习处理BCI数据。最后也会不定时发一些数据集,涉及到运动想象MI、情感分类、疲劳、SSVEP、心电、EMG、血氧数据等等。欢迎加入,随时交流,我随时解答~

36、Siamese Network:人类第一次使用孪生神经网络处理EEG生理信号,用于运动想象分类_第8张图片

你可能感兴趣的:(脑机接口—人工智能,神经网络,人工智能,深度学习,孪生神经网络,BCI,IV2a,脑机接口BCI)