尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

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

从论文到代码:EEG-Conformer 网络架构设计全解析(附模块图) 从论文到代码EEG-Conformer 网络架构设计全解析附模块图【免费下载链接】EEG-Conformer[TNSRE 23] EEG Transformer 2.0. i. Convolutional Transformer for EEG Decoding. ii. Novel visualization - Class Activation Topography.项目地址: https://gitcode.com/gh_mirrors/ee/EEG-ConformerEEG-Conformer 是发表于《IEEE TNSRE 2023》的经典脑电信号解码模型它巧妙地把卷积神经网络CNN与 Transformer 自注意力机制融为一体在一套统一框架中同时捕捉脑电信号的局部与全局特征。本文从论文出发带你一步步拆解这套EEG-Conformer 网络架构的设计思路并结合开源代码conformer.py等讲清每个模块到底在做什么。一、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 TransformerViT的读者知道ViT 需要先把图像切成 patch 再做线性投影。EEG-Conformer 借鉴了这一思想但用卷积层代替位置编码与线性投影从而让 Token 天然携带局部时空语义。这一模块在代码中对应PatchEmbedding类包含Temporal Conv时间卷积卷积核(1, 25)在时间轴上滑过提取每个通道的短时波形特征Spatial Conv空间卷积卷积核(22, 1)在所有电极通道上做融合学习空间模式类似脑电空间滤波BatchNorm ELU Dropout稳定训练并抑制过拟合AvgPool2d 平均池化沿时间轴降采样这一步相当于 ViT 里的切块把长序列切成若干个 patch1×1 卷积投影把特征映射到emb_size40维并Rearrange成 Transformer 需要的(batch, token数, 特征维)格式。值得注意的是针对不同数据集卷积核的通道数会做微调BCI 2a 使用(22, 1)空间卷积见conformer.py而 SEED 数据集因电极数更多62 通道对应调整为(62, 1)见conformer_seed_1s_5fold.py。四、Transformer 编码器在时间轴上做全局注意力经过卷积模块后脑电信号被压缩为一系列时间 token。接下来6 层 Transformer 编码器负责在时间维上计算自注意力让模型能关联相距很远的脑电波形——例如运动想象中准备期与执行期的关联。每个编码器块包含两个标准子层对应TransformerEncoderBlock类多头自注意力10 个头Q/K/V 均由线性层生成用缩放点积计算注意力权重前馈网络FFNLinear → GELU → Dropout → Linear对特征做非线性变换。每个子层都采用**残差连接ResidualAdd 层归一化LayerNorm**的结构这保证了深层的梯度稳定也是 Transformer 能堆叠 6 层的关键。如果读者熟悉 ViT会发现这里的结构几乎一致——区别只在于输入是卷积切出来的脑电 patch而不是图像 patch。五、分类头与训练细节Transformer 输出的特征序列经全局平均池化Reduce(b n e - b e, mean)压缩成一个向量再经过层归一化后送入全连接分类器输出四类运动想象的得分。分类头代码见ClassificationHead类。训练阶段有几个值得借鉴的细节SR 数据增强Segmentation and Reconstruction把 4 秒信号按 125 点切块、跨样本重组扩增训练数据interaug函数优化器Adam学习率 0.0002评估BCI 数据集采用逐被试 hold-out 划分SEED 采用严格的 5 折交叉验证。六、不只是分类全新的可视化方法 CATEEG-Conformer 的另一大亮点是提出了Class Activation TopographyCAT类激活地形图把深度学习模型的注意力翻译成脑地形图让研究者直观看到模型依据哪些脑区的哪些特征做出决策。可视化流程分为三步代码集中在visualization/目录GradCAM 提取类激活图利用visualization/utils.py中实现的 GradCAM对 Transformer 编码器的输出求梯度得到每个通道的注意力权重叠加到脑电信号上将类激活图与原始信号相乘visualization/CAT.py中的hyb_all突出模型重点关注的时段投影为地形图借助 MNE 工具包将 22 个电极的激活值绘制成头皮拓扑图。项目还提供了另外两个可视化工具visualization/tSNE.py用 t-SNE 展示特征聚类的可分性visualization/topography.py直接绘制平均脑电地形图。对于需要写论文配图的科研工作者这套可视化管线非常实用。七、三个数据集上的表现官方代码分别在三个经典脑电数据集上验证均达到当时一流水平数据集任务准确率对应代码文件BCI Competition IV 2a四类运动想象22 通道78.66%conformer.pyBCI Competition IV 2b二类运动想象3 通道84.63%conformer_BCIIV2b.pySEED三类情绪识别62 通道95.30%conformer_seed_1s_5fold.py其中 BCI 2a/2b 的预处理脚本在preprocessing/目录下BCIIV2a.m、BCIIV2b.mSEED 的标签文件在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.项目地址: https://gitcode.com/gh_mirrors/ee/EEG-Conformer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表