溯源原理与模型:正问题、逆问题与头模型
头皮上测到的只是"投影"。这一课先把溯源大厦的地基打牢:正问题为什么 有唯一解、逆问题为什么病态,以及头模型与源模型这两块积木怎么搭。
🎯 本节学习目标
- 说清"头皮电位不等于脑内活动"的两层原因:采样稀疏与容积导体模糊化
- 区分正问题与逆问题:为什么一个有唯一解、一个本质病态
- 记住正向模型三要素:源模型(偶极子/网格)、头模型(同心球 vs BEM)、前置场
- 理解个体 MRI 在溯源中的角色:提供头的几何,不提供功能
- 看懂 FieldTrip 溯源流水线:
ft_read_headmodel→ft_prepare_leadfield→ft_sourceanalysis的位置关系 - 会用"分辨率矩阵"的直觉评估溯源结果的可信度(点扩散与泄露)
一、为什么需要溯源:头皮电位的"先天近视"
到模块 6 为止,我们所有的分析——ERP、时频、连接——都发生在头皮电极层面。 但你大概早就察觉:头皮地形图上一片"发亮"的区域,并不等于它正下方的脑区在活动。原因有两个:
- 采样稀疏:64 或 128 个电极,只是头顶上几十个离散的空间采样点;
- 容积导体的模糊化:脑内的电流要穿过脑脊液、颅骨、头皮这些电导率相差很大的组织,才能变成电极上的电位。颅骨的电导率大约只有脑组织的 1/40——它像一层"毛玻璃",把原本尖锐的局部活动抹成一片模糊。
一个贯穿整个模块的类比:隔墙听声。你站在走廊里听到隔壁有人说话(电极记录到电位), 能大致判断"声音从那边来"(地形图上的模糊峰值),但说不清"是坐在桌子左边还是右边的人在说"。 源定位分析(source localization)要做的,就是把"听到的声音"反推回"说话的人在哪、说了多大声"—— 把头皮电位反推回脑内的电流活动。
溯源不是显微镜:它给出的是在一系列物理假设下的最优推断,而不是"看见了"脑活动。头模型越准、约束越合理,推断越可信——但逆问题本身的病态性(下一节)永远绕不过去。把预期立在前面,后面每一步的"较真"才有意义。
二、正问题与逆问题:一对不对称的兄弟
源定位的全部数学就是两个方向相反的问题,先摆在一起看:
| 正问题(forward) | 逆问题(inverse) | |
|---|---|---|
| 问什么 | 已知脑内源的位置与强度,头皮上会测到什么电位? | 已知头皮电位,脑内的源在哪里、多强? |
| 解的性质 | 唯一解——由物理定律完全确定 | 没有唯一解——不同的脑内源组合可以产生一模一样的头皮分布 |
| 听声类比 | 已知每个人站位,算你耳朵听到的混音 | 听到混音,反推每个人站位 |
| 困难类型 | 只是计算量问题 | 原则上就欠定:病态(ill-posed) |
数学上一个问题"适定"要同时满足三条:解存在、解唯一、解随数据连续变化。逆问题三条全犯——很多解都能解释数据(不唯一),而且噪声稍大解就剧烈跳动(不稳定)。所以逆问题没有"算出来"的解,只有"在约束下选出来"的解。
一句话记住模块 7 的总纲:MNE、Beamformer、sLORETA 的区别,本质上不是"谁算得准", 而是"用什么假设把无穷多解砍到只剩一个"。这句话是理解后面三节课的钥匙。
三、正向模型三要素:源模型、头模型与前置场
1. 源模型:把"脑内活动"翻译成数学对象
- 等效电流偶极子(dipole):一小片同步放电的锥体神经元,被简化成一个有位置、朝向、强度三个属性的"电流发生器"。这是源的基本单元;
- 分布式源模型(网格):在脑内铺一张固定网格(例如 1cm 间隔、几千个格子),每格放一个偶极子,让数据决定哪些格子亮。本模块的 FieldTrip 实战用的都是它。
2. 头模型(体积导体):电在头里怎么传播
头模型描述组织的几何形状 + 电导率,是那层"毛玻璃"的数学化身:
| 头模型 | 思路 | 精度 | 需要什么 | 适用场景 |
|---|---|---|---|---|
| 同心球模型 | 把头简化成嵌套的几个球(脑/脑脊液/颅骨/头皮),有解析解 | 低(忽略头的真实形状) | 只要电极位置 | 快速探索、教学演示 |
| 边界元 BEM | 从 MRI 分割出脑/颅骨/头皮三层界面,按界面计算电位传播 | 中到高 | 个体或模板 MRI 结构像 | 正式研究的标准选择 |
| 有限元 FEM | 把头划分成几十万个小单元逐个求解 | 最高(可建模各向异性白质) | 高质量 MRI + 大计算量 | 高精度需求(如癫痫术前定位) |
MRI 的角色:它在这里登场,不是用来看功能,而是用来提供头的几何—— 分割出三层界面(BEM 用)、对齐电极位置、把结果映射到标准脑。模块 7 所有"个体解剖精度"都来自它。
% 头模型的两种来路(对应上表的前两行):
% 来路一:同心球——快,只用电极位置拟合(适合探索/教学)
cfg = [];
cfg.method = 'concentricspheres'; % 最多 4 层同心球
headmodel = ft_prepare_headmodel(cfg, elec); % elec 为电极结构(位置已在 2.2 配准)
% 来路二:真实头模型——读入基于 MRI 分割的边界元(BEM)
headmodel = ft_read_headmodel('standard_bem.mat'); % FieldTrip 自带的标准脑 BEM 模板
% 个体 BEM 则由个体 MRI 经 ft_volumesegment(分割)+ ft_prepare_mesh(建面)
% + ft_prepare_headmodel(cfg.method = 'openmeeg')生成,详见官方教程
3. 前置场(lead field):把前两者连起来的"传播字典"
对每个源位置 i 与每个电极 j,前置场存了一个数:位置 i 的单位偶极子会在电极 j 上产生多大电位。几千个源位置 × 几十个电极,构成一张"传播字典"。有了它,正问题就是查字典加权求和,逆问题则是"从查表结果反查"。
四、逆问题为什么必须加约束
用一个能心算的小例子感受"欠定":头皮上 2 个电极测到 [3, 3],脑内 3 个候选位置的单位活动在两个电极上都各产生 1。那么源强度 [3,0,0]、[0,3,0]、[1,1,1]……全都能完美解释数据。数据本身无法在它们之间做选择。
所以必须从外部引入偏好(先验假设):
- 最小范数:在所有解里挑"总能量最小"的那个(7.2 的 MNE);
- 空域滤波:不求全局最优解,逐个位置单独问"这里像不像真源"(7.3 的 Beamformer);
- 统计标准化:把解除以它自身的期望方差,让深浅可比(7.4 的 sLORETA)。
"加约束"并不玄妙——就是如无必要,勿增实体。最小范数假设"大脑不爱浪费能量",因此天然偏爱"许多小源分摊"而不是"一个巨大源独撑"。假设是否合理,由你的科学问题决定,也要在论文里明说。
五、FieldTrip 溯源流水线总览
FieldTrip 把溯源拆成清晰的三段式。先把这张地图记牢,7.2 和 7.3 再进入每一段的细节:
① 数据准备 ft_preprocessing → ft_timelockanalysis(ERP)/ ft_freqanalysis(时频) ② 头模型 ft_read_headmodel(读入现成 BEM)/ ft_prepare_headmodel(球模型或自建) ③ 源模型网格 ft_prepare_sourcemodel(或用 cfg.resolution = 1 自动生成 1cm 网格) ④ 前置场 ft_prepare_leadfield(头模型 × 网格 × 电极 → "传播字典") ⑤ 溯源求解 ft_sourceanalysis(cfg.method = 'mne' / 'lcmv' / 'sloreta' ...) ⑥ 可视化与统计 ft_sourceinterpolate + ft_sourceplot / ft_sourcestatistics
其中 ②③④ 是正问题的全部——它们与数据无关,每个被试只需算一次、可保存复用;⑤ 才是逆问题本体,换方法只换这一格。
% 溯源骨架:③④ 可由 ft_prepare_leadfield 一步完成(每被试只算一次)
headmodel = ft_read_headmodel('standard_bem.mat'); % ② 头模型
cfg = [];
cfg.resolution = 1; % ③ 源模型:1cm 网格
cfg.headmodel = headmodel;
cfg.elec = data.elec;
cfg.channel = data.label;
leadfield = ft_prepare_leadfield(cfg); % ④ 前置场(一并建好网格)
cfg = [];
cfg.method = 'mne'; % ⑤ 溯源(7.2 详解)
cfg.sourcemodel = leadfield; % 旧教程写作 cfg.grid,二者等价
cfg.headmodel = headmodel;
cfg.elec = data.elec;
source = ft_sourceanalysis(cfg, timelock); % 输入是 ft_timelockanalysis 的输出
% ⑥ ft_sourceinterpolate + ft_sourceplot 可视化,见 7.2
用模板头模型(如 standard_bem.mat 这类标准脑 BEM)是完全合法的选择,大量 ERP 研究都这么做。但务必在论文里如实报告,并记住代价:头形不匹配会引入厘米级定位误差;电极与头模型的对齐(配准)误差是溯源误差的头号来源。另外,模板头模型只适合 EEG——MEG 的传感器阵列位置固定,与个体头形耦合更强,不能简单套模板。
六、溯源结果可信吗:分辨率矩阵的直觉
最后一个概念,回答"我怎么知道看到的激活是真的"。分辨率矩阵回答的问题是: 如果脑内位置 A 真的有一个单位强度的源,我的溯源结果会把它显示在哪里? 理想答案是"只在 A";现实是"A 最亮、A 周围一圈也亮、有时远处还有假亮点"。
- 对每个候选位置都问一遍这个问题,就得到完整的分辨率矩阵——相当于给溯源方法做的"体检报告";
- 从这张报告能读出两张脸:点扩散函数(真源被抹开多大一片,决定空间分辨率)与泄露(leakage)(A 的活动漏进 B 的读数里——模块 6 提过它对连接分析的威胁);
- MNE 家族"抹得宽而平",偶极子拟合"敢给尖峰但也敢报错"。不同方法在这份体检报告上的表现不同,这正是 7.2–7.4 三条路线比较的底层逻辑。
三层结构请记牢:头皮电位只是投影(一)→ 逆问题病态、必须选假设(二、四)→ 正向模型是基础设施(三、五)。7.2 选"总能量最小"假设,7.3 选"逐点空域滤波"假设,7.4 在"标准化"上做文章——三条路,回答的是同一个病态问题。
📌 本节小结
- 头皮电位只是脑内活动的模糊投影:颅骨低电导是天然的"毛玻璃"
- 正问题有唯一解,逆问题病态——所有溯源方法的区别在于用什么约束把无穷多解砍到一个
- 头模型三档:同心球(快而糙)→ BEM(标准)→ FEM(高精尖);MRI 的角色是提供头的几何
- 前置场是"源位置 → 电极"的传播字典,与数据无关,算一次可复用
- 分辨率矩阵回答"真源会被抹成什么样":点扩散决定分辨率,泄露威胁连接分析
✏️ 课后练习
- 画出本课的溯源流水线框图(六步),标注每一步的输入与输出,并写出对应的 FieldTrip 函数名。
- 用自己的话(不超过 3 句)向一位不做脑电的同学解释:为什么头皮电位最强的位置不一定在源的正上方。
- 查一篇你感兴趣的 EEG 溯源论文,记录它用的头模型类型(同心球/BEM/FEM、个体/模板)与逆问题方法,判断它属于本课讲的哪条路线。