1. 神经信号与深度学习概述
大家好,我是你们这门课的主讲。在脑科学领域摸爬滚打了快十年,我见过太多人一上来就扎进模型调参,结果连信号的基本特性都没搞清楚。今天这第一讲,咱们先把地基打牢。
神经信号处理,说白了就是跟大脑的「电活动」和「血氧变化」打交道。你想想看,大脑里有860亿个神经元,它们之间的通信靠的是电信号和化学信号。我们能用设备捕捉到的,只是这些活动的宏观表现。
1.1 神经信号的三种主流模态
我个人习惯把神经信号分成三类:EEG、MEG 和 fMRI。它们各有各的脾气,选错了模态,后面再牛的模型也白搭。
| 模态 | 测量原理 | 时间分辨率 | 空间分辨率 | 典型应用 |
|---|---|---|---|---|
| EEG | 头皮电位变化 | 毫秒级(1ms) | 厘米级(差) | 癫痫检测、睡眠分期 |
| MEG | 脑磁场变化 | 毫秒级(1ms) | 毫米级(较好) | 脑功能区定位 |
| fMRI | 血氧水平依赖(BOLD) | 秒级(1-2s) | 毫米级(好) | 认知任务、静息态网络 |
核心要点:EEG 和 MEG 看的是「什么时候」大脑在活动,fMRI 看的是「哪里」在活动。做实时脑机接口,你只能用 EEG;做脑区定位,fMRI 是首选。
我在项目中遇到过不少同学,拿着 fMRI 数据想做毫秒级的解码,这其实是不现实的。BOLD 信号本身就有 4-6 秒的延迟,你强行做高时间分辨率分析,结果往往不可靠。
1.2 深度学习为什么能用在脑科学?
传统方法处理神经信号,比如带通滤波、独立成分分析(ICA),其实都是在做「特征工程」。你得手动设计特征:时域的均值、方差,频域的 alpha/beta 波功率,等等。这活儿又累又容易出错。
深度学习的好处在于——它自己学特征。你给它一堆原始信号,它自己就能找出哪些模式对分类任务有用。为什么会这样?因为卷积神经网络天生擅长捕捉局部模式,而神经信号恰恰有很多局部的时间模式(比如棘波、纺锤波)。
嗯,这里要注意:深度学习不是万能药。我见过有人拿 ResNet 直接怼 EEG 信号,结果过拟合得一塌糊涂。神经信号的信噪比很低(通常只有 -10dB 到 -20dB),模型太深反而学不到东西。
我的建议:刚开始做神经信号深度学习,先从浅层 CNN 或 LSTM 入手。别一上来就上 Transformer,除非你的数据量超过 10 万条样本。
1.3 项目整体流程
咱们这门课会带着你走完一个完整的项目。我把它拆成 5 个阶段,你心里有个数:
- 数据采集与预处理——拿到原始信号,去噪、分段、标注
- 特征提取与增强——时频分析、空间滤波、数据扩增
- 模型设计与训练——选网络结构、调超参、防过拟合
- 评估与解释——不只是看准确率,还要看模型学到了什么
- 部署与落地——模型压缩、实时推理、硬件适配
说白了,这 5 步每一步都有坑。我曾经在预处理阶段少做了一个 50Hz 陷波滤波,结果模型学到的全是工频干扰,准确率虚高到 99%,一上真实数据直接崩盘。这种教训,我希望你别再经历。
1.4 本章知识体系
下面这张图,是我自己画的。它把神经信号和深度学习的关系、以及咱们项目的核心逻辑串在了一起。你多看几遍,后面每讲一个模块,都可以回来对照一下。
避坑指南:我曾经犯过一个低级错误——在预处理阶段用了全局归一化,结果把不同受试者的信号差异给抹平了。模型在训练集上表现很好,但跨受试者验证时准确率直接掉到 50%。记住:神经信号的归一化一定要按受试者或按 session 独立做。
1.5 项目目标设定
咱们这门课最终要完成的项目是:基于 EEG 信号的癫痫发作检测系统。为什么选这个?因为癫痫发作的 EEG 特征非常明显——棘波、尖波、棘慢复合波,这些模式深度学习很容易捕捉。而且这个任务有明确的临床价值,你做完之后是真的能拿去用的。
具体目标:
- 输入:多通道 EEG 信号(19 导联,采样率 256Hz)
- 输出:每个 2 秒窗口的发作概率(0~1)
- 评价指标:灵敏度 > 90%,假阳性率 < 0.5 次/小时
- 模型大小:< 10MB,能在树莓派上实时运行
这个目标不算简单,但也不至于难到让人放弃。我当年做第一个版本的时候,灵敏度只有 75%,假阳性率高达 2 次/小时。后来通过改进数据增强和模型结构,才慢慢达标。这个过程,我会在后面的章节里一步步带你走。
好了,第一讲就到这里。记住我今天说的:理解信号特性,比调模型参数重要得多。下一讲,咱们会深入 EEG 信号的预处理,我会手把手教你写代码。