从论文到代码:EEG-Conformer 网络架构设计全解析(附模块图)

从论文到代码:EEG-Conformer 网络架构设计全解析(附模块图)

【免费下载链接】EEG-Conformer [TNSRE 23] EEG Transformer 2.0. i. Convolutional Transformer for EEG Decoding. ii. Novel visualization - Class Activation Topography. 【免费下载链接】EEG-Conformer 项目地址: https://gitcode.com/gh_mirrors/ee/EEG-Conformer

EEG-Conformer 是发表于《IEEE TNSRE 2023》的经典脑电信号解码模型,它巧妙地把卷积神经网络(CNN)与 Transformer 自注意力机制融为一体,在一套统一框架中同时捕捉脑电信号的局部与全局特征。本文从论文出发,带你一步步拆解这套 EEG-Conformer 网络架构的设计思路,并结合开源代码(conformer.py 等)讲清每个模块到底在做什么。

EEG-Conformer 网络架构图:从脑电输入到卷积模块、Transformer 自注意力编码器再到分类输出的完整数据流

一、EEG-Conformer 解决了什么问题?

传统的脑电(EEG)解码模型大致分两类:

  • CNN 类模型(如 EEGNet、Shallow ConvNet):擅长提取时间、空间上的局部特征,但感受野有限,难以建模长距离依赖;
  • Transformer 类模型:擅长捕捉全局依赖,但直接作用于原始脑电信号时,计算量大、易过拟合,且缺少对局部结构的归纳偏置。

EEG-Conformer 的核心贡献,就是用一条简洁的流水线把两者"焊接"起来:卷积模块负责提取局部时空特征,Transformer 负责建模全局关系,最后接一个轻量分类头输出结果。论文在三个公开数据集上都取得了当时领先的准确率。

二、整体架构:三段式流水线

从上面的模块图可以看到,EEG-Conformer 由三大模块顺序拼接而成,对应代码中的 Conformer 类(见 conformer.py):

输入 EEG → 卷积模块(PatchEmbedding)→ Transformer 编码器(×6 层)→ 分类头(ClassificationHead)
  • 输入:维度为 (1, 通道数, 时间采样点) 的原始脑电片段,例如 BCI 竞赛 IV 2a 数据集是 22 个电极通道、1000 个采样点(4 秒、250Hz);
  • 卷积模块:用时空卷积 + 平均池化提取局部特征,并完成"切块";
  • Transformer 编码器:6 层自注意力块,建模时间维度的全局依赖;
  • 分类头:全局平均池化后接全连接层,输出四类运动想象类别。

三、卷积模块:用卷积"切出"Token

熟悉 Vision Transformer(ViT)的读者知道,ViT 需要先把图像切成 patch 再做线性投影。EEG-Conformer 借鉴了这一思想,但用卷积层代替位置编码与线性投影,从而让 Token 天然携带局部时空语义。这一模块在代码中对应 PatchEmbedding 类,包含:

  • Temporal Conv(时间卷积):卷积核 (1, 25),在时间轴上滑过,提取每个通道的短时波形特征;
  • Spatial Conv(空间卷积):卷积核 (22, 1),在所有电极通道上做融合,学习空间模式(类似脑电空间滤波);
  • BatchNorm + ELU + Dropout:稳定训练并抑制过拟合;
  • AvgPool2d 平均池化:沿时间轴降采样,这一步相当于 ViT 里的"切块",把长序列切成若干个 patch;
  • 1×1 卷积投影:把特征映射到 emb_size=40 维,并 Rearrange 成 Transformer 需要的 (batch, token数, 特征维) 格式。

值得注意的是,针对不同数据集,卷积核的通道数会做微调:BCI 2a 使用 (22, 1) 空间卷积(见 conformer.py),而 SEED 数据集因电极数更多(62 通道),对应调整为 (62, 1)(见 conformer_seed_1s_5fold.py)。

四、Transformer 编码器:在时间轴上做全局注意力

经过卷积模块后,脑电信号被压缩为一系列"时间 token"。接下来,6 层 Transformer 编码器负责在时间维上计算自注意力,让模型能关联相距很远的脑电波形——例如运动想象中"准备期"与"执行期"的关联。

每个编码器块包含两个标准子层(对应 TransformerEncoderBlock 类):

  1. 多头自注意力:10 个头,Q/K/V 均由线性层生成,用缩放点积计算注意力权重;
  2. 前馈网络(FFN)Linear → GELU → Dropout → Linear,对特征做非线性变换。

每个子层都采用**残差连接(ResidualAdd)+ 层归一化(LayerNorm)**的结构,这保证了深层的梯度稳定,也是 Transformer 能堆叠 6 层的关键。如果读者熟悉 ViT,会发现这里的结构几乎一致——区别只在于输入是"卷积切出来的脑电 patch"而不是"图像 patch"。

五、分类头与训练细节

Transformer 输出的特征序列,经全局平均池化Reduce('b n e -> b e', 'mean'))压缩成一个向量,再经过层归一化后送入全连接分类器,输出四类运动想象的得分。分类头代码见 ClassificationHead 类。

训练阶段有几个值得借鉴的细节:

  • S&R 数据增强(Segmentation and Reconstruction):把 4 秒信号按 125 点切块、跨样本重组,扩增训练数据(interaug 函数);
  • 优化器:Adam,学习率 0.0002;
  • 评估:BCI 数据集采用逐被试 hold-out 划分,SEED 采用严格的 5 折交叉验证。

六、不只是分类:全新的可视化方法 CAT

EEG-Conformer 的另一大亮点是提出了 Class Activation Topography(CAT,类激活地形图),把深度学习模型的注意力"翻译"成脑地形图,让研究者直观看到模型依据哪些脑区的哪些特征做出决策。

可视化流程分为三步,代码集中在 visualization/ 目录:

  1. GradCAM 提取类激活图:利用 visualization/utils.py 中实现的 GradCAM,对 Transformer 编码器的输出求梯度,得到每个通道的注意力权重;
  2. 叠加到脑电信号上:将类激活图与原始信号相乘(visualization/CAT.py 中的 hyb_all),突出模型重点关注的时段;
  3. 投影为地形图:借助 MNE 工具包,将 22 个电极的激活值绘制成头皮拓扑图。

项目还提供了另外两个可视化工具:visualization/tSNE.py 用 t-SNE 展示特征聚类的可分性;visualization/topography.py 直接绘制平均脑电地形图。对于需要写论文配图的科研工作者,这套可视化管线非常实用。

七、三个数据集上的表现

官方代码分别在三个经典脑电数据集上验证,均达到当时一流水平:

数据集任务准确率对应代码文件
BCI Competition IV 2a四类运动想象(22 通道)78.66%conformer.py
BCI Competition IV 2b二类运动想象(3 通道)84.63%conformer_BCIIV2b.py
SEED三类情绪识别(62 通道)95.30%conformer_seed_1s_5fold.py

其中 BCI 2a/2b 的预处理脚本在 preprocessing/ 目录下(BCIIV2a.mBCIIV2b.m),SEED 的标签文件在 preprocessing/seed_file/ 中。

八、如何快速跑通官方代码

想要复现或在此基础上做实验,只需克隆仓库并按以下步骤操作:

git clone https://gitcode.com/gh_mirrors/ee/EEG-Conformer

环境要求:Python 3.10 + PyTorch 1.12。之后把数据按论文要求预处理成 (trial, 1, 通道, 时间点).mat 格式,修改脚本顶部的数据路径,运行 python conformer.py 即可开始训练。注意不同数据集对应不同的脚本,训练 SEED 时请使用 conformer_seed_1s_5fold.py,并遵循其严格的 5 折划分以保证结果可比。

九、总结与启发

EEG-Conformer 用极简的架构设计证明了:CNN 与 Transformer 不是对手,而是搭档。卷积模块提供高效的局部特征提取与降采样,Transformer 负责全局建模,两者配合让模型在脑电这种高噪声、低信噪比的信号上依然表现出色。它的代码结构清晰、模块化程度高,非常适合作为入门脑电解码与 Transformer 应用的范本。

如果你正在设计自己的脑电解码模型,不妨从 EEG-Conformer 出发:先用卷积压缩信号、降低序列长度,再让 Transformer 在压缩后的 Token 上做全局注意力——这套"卷积打底、注意力提效"的组合拳,至今仍是该领域的主流范式。

【免费下载链接】EEG-Conformer [TNSRE 23] EEG Transformer 2.0. i. Convolutional Transformer for EEG Decoding. ii. Novel visualization - Class Activation Topography. 【免费下载链接】EEG-Conformer 项目地址: https://gitcode.com/gh_mirrors/ee/EEG-Conformer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值