4. 卷积神经网络(CNN)基础:1D卷积原理、池化层作用、感受野计算、经典CNN架构(EEGNet、ShallowFBCSPNet)
说实话,很多做脑电信号处理的朋友,一上来就想着用LSTM或者Transformer。但我个人的经验是——先别急。对于EEG这种时序信号,1D卷积神经网络往往是个更稳的起点。它计算量小,容易调参,而且效果一点都不差。
这一节,我们就来聊聊CNN在神经信号里的核心玩法。我会结合自己踩过的坑,把原理、计算、架构一次讲透。
4.1 1D卷积原理:从图像到信号的迁移
你想想看,图像是2D的,有宽有高。而EEG信号呢?它是1D的——时间轴。所以,我们用的卷积核也得从2D变成1D。
1D卷积到底在干什么?
说白了,就是一个滑动窗口在时间序列上扫过去,每个位置做一次点积。这个窗口就是卷积核,它学习的是局部时间模式。
核心公式(简化版):
输出长度 = (输入长度 - 卷积核大小 + 2 × 填充) / 步长 + 1
举个例子。假设你的EEG采样率是250Hz,一个 trial 有1000个时间点。你用大小为32的卷积核,步长1,不填充。那么输出长度就是 (1000 - 32) / 1 + 1 = 969。
嗯,这里要注意:输出长度会变短。我在做运动想象分类时,一开始没注意这个,结果深层特征图尺寸缩得太小,导致分类器没法用。后来我习惯在每层卷积后都算一遍输出尺寸,养成这个习惯能省很多事。
我的小技巧: 对于EEG信号,卷积核大小一般取采样率的1/8到1/4。比如250Hz的数据,我用32或64。太小了学不到完整波形,太大了又容易过拟合。
4.2 池化层作用:降维与抗噪
池化层,很多人觉得它就是「缩小图片」用的。其实在EEG里,它的作用更关键——抗时间抖动。
你想想,同一个想象动作,不同 trial 里的事件相关电位(ERP)出现的时间点可能差几十毫秒。如果没有池化层,模型就会死记硬背时间位置,泛化能力很差。
常见的池化方式:
- 最大池化(Max Pooling): 取窗口内的最大值。适合提取显著峰值,比如P300信号。
- 平均池化(Average Pooling): 取窗口内的平均值。适合平滑噪声,比如稳态视觉诱发电位(SSVEP)。
- 全局平均池化(Global Average Pooling): 直接对整个时间维度取平均。常用于分类层之前,能大幅减少参数量。
我曾经踩过的坑: 有一回做睡眠分期,我把池化窗口设得太大(64个时间点),结果把关键的纺锤波特征给抹平了。后来我改成32,效果立马回升。池化窗口大小,建议不要超过卷积核大小的一半。
4.3 感受野计算:你的模型能看多远?
感受野,就是网络里某个神经元能看到输入信号的「视野范围」。这个指标太重要了——它直接决定了模型能不能捕捉到完整的脑电节律。
计算公式:
RF_{l} = RF_{l-1} + (kernel\_size_l - 1) × stride\_product_{l-1}
其中 stride_product 是前面所有层步长的乘积。
我举个例子你就明白了。假设一个两层1D CNN:
- 第一层:kernel=16, stride=2
- 第二层:kernel=32, stride=2
计算过程:
- 第一层感受野 = 16
- 第二层感受野 = 16 + (32 - 1) × 2 = 16 + 62 = 78
也就是说,第二层的每个神经元能看到输入信号里78个时间点的信息。
实战建议: 对于alpha波(8-12Hz),一个完整周期大约需要100ms。如果你的采样率是250Hz,那就是25个点。所以,你的感受野至少要覆盖25个点,才能看到完整的alpha节律。我个人习惯让最后一层的感受野覆盖2-3个完整周期。
4.4 经典CNN架构:EEGNet与ShallowFBCSPNet
聊完了原理,咱们来看看两个真正能打的架构。这两个我都亲手调过,效果确实稳。
4.4.1 EEGNet:紧凑而高效
EEGNet是2018年提出的,它的设计哲学是「少而精」。整个网络只有几千个参数,但效果能媲美几十万参数的模型。
核心结构:
- 第一层:时间卷积 —— 用1D卷积学习时间特征。卷积核大小通常取64(250Hz数据)。
- 第二层:深度可分离卷积 —— 先对每个通道做空间滤波,再对时间做深度卷积。这一步能大幅减少参数量。
- 第三层:可分离卷积 —— 进一步提取高层特征。
- 分类层: 全局平均池化 + 全连接 + Softmax。
我的调参心得: EEGNet的F1和D参数(滤波器数量)很关键。我一般从F1=8, D=2开始试。如果欠拟合,就翻倍;如果过拟合,就加Dropout(0.25到0.5之间)。
4.4.2 ShallowFBCSPNet:浅但有力
这个架构是受FBCSP(滤波器组共空间模式)启发设计的。它很浅,只有两层卷积,但效果在运动想象任务上非常出色。
核心结构:
- 第一层:时间卷积 —— 用多个不同频带的滤波器组提取特征。相当于可学习的滤波器组。
- 第二层:空间卷积 —— 在通道维度上做卷积,学习空间模式。这一步和CSP的核心思想一致。
- 分类层: 全局平均池化 + 全连接。
注意: ShallowFBCSPNet对数据量要求比较高。我试过在只有100个trial的数据集上训练,结果过拟合得一塌糊涂。建议至少500个trial以上再考虑用它。
4.5 本章知识体系总览
下面这张图,是我自己梳理的本章核心逻辑。你可以把它当作一个「思维导图」来用。
好了,这一节的内容就到这里。1D卷积、池化、感受野、经典架构——这些是你在EEG深度学习里绕不开的基础。下一节我们会深入聊训练技巧和调参策略,到时候我会分享更多实战中的「血泪教训」。
公众号:蓝海资料掘金营,微信deep3321