跳转至

维纳与卡尔曼滤波

维纳滤波(Wiener Filter)卡尔曼滤波(Kalman Filter) 是线性解码器的两大主力。它们把群体向量从"瞬时估计"扩展到"时间序列估计",是 BrainGate 2004–2012 的核心算法,也是所有后续 BCI 动力学解码器的原点。

一、从瞬时到时间序列

PVA 每个时刻独立估计方向:

\[\hat{v}_t = f(\mathbf{f}_t)\]

但运动是连续的——用历史信号能显著改善估计:

\[\hat{v}_t = f(\mathbf{f}_t, \mathbf{f}_{t-1}, \ldots)\]

这就是维纳/卡尔曼的核心。

二、维纳滤波

数学形式

\[\hat{v}_t = \sum_{\tau=0}^{L} W_\tau \mathbf{f}_{t-\tau}\]

其中 \(\mathbf{f}_{t-\tau}\)\(\tau\) 时刻前的神经活动向量,\(W_\tau\) 是对应滤波器权重,\(L\) 是历史窗口长度。

求解

在最小均方误差意义下,\(W = (F^T F)^{-1} F^T v\) —— 一个大的线性回归

特点

  • 非因果视角:本质是 FIR 滤波器
  • 无状态:每个时刻独立估计,不维护"当前状态"
  • 对噪声不鲁棒:直接吃原信号

BCI 应用

Carmena et al. 2003 PLOS Biology:猴子用维纳滤波闭环控制机械臂,是侵入式 BCI 早期里程碑。

三、卡尔曼滤波

状态空间模型

卡尔曼滤波假设一个状态空间模型

\[\mathbf{x}_t = A \mathbf{x}_{t-1} + \mathbf{w}_t \quad \text{(状态转移)}$$ $$\mathbf{y}_t = H \mathbf{x}_t + \mathbf{v}_t \quad \text{(观测)}\]

其中: - \(\mathbf{x}_t\) = 运动状态(位置、速度) - \(\mathbf{y}_t\) = 神经发放率 - \(A\) = 状态转移矩阵(平滑假设:速度不会突变) - \(H\) = 每个神经元的调谐矩阵 - \(\mathbf{w}_t, \mathbf{v}_t\) = 高斯噪声

递推公式

预测

\[\hat{\mathbf{x}}_{t|t-1} = A \hat{\mathbf{x}}_{t-1|t-1}$$ $$P_{t|t-1} = A P_{t-1|t-1} A^T + Q\]

更新

\[K_t = P_{t|t-1} H^T (H P_{t|t-1} H^T + R)^{-1}$$ $$\hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + K_t (\mathbf{y}_t - H \hat{\mathbf{x}}_{t|t-1})$$ $$P_{t|t} = (I - K_t H) P_{t|t-1}\]

\(K_t\) 称为 Kalman 增益——平衡预测和观测的权重。

直觉

  • 如果观测噪声大\(K_t\) 小,更依赖动力学预测
  • 如果状态预测不准\(K_t\) 大,更听观测

这是 BCI 解码器中第一个带"状态记忆"的模型——知道"用户意图不会瞬间跳变"。

四、卡尔曼在 BCI 中的优势

对比维纳:

Wiener Kalman
结构 FIR 滤波器 状态空间模型
平滑先验 显式
在线更新 递推(\(O(n^2)\)
可解释性 高(有真实状态)
对噪声鲁棒性

Wu et al. 2006 Neural Computation 首次证明卡尔曼在 BCI 上优于维纳——从此成为 BrainGate 默认解码器。

五、ReFIT-Kalman

ReFIT(Gilja et al. 2012, Nature Neuroscience) 是卡尔曼的两阶段改进:

  1. 第一次训练:标准卡尔曼闭环运行
  2. 重校准:观察用户实际行为轨迹,重新估计 \(H\) 矩阵
  3. 假设修正:训练时假设用户意图直接指向目标(即便实际轨迹偏移)

这个"假设用户做对了"的重校准让性能显著提升——从 ~3 bps 到 >5 bps。详见 ReFIT与在线校准

六、扩展卡尔曼与非线性

扩展卡尔曼滤波(EKF)

对非线性系统线性化:

\[\mathbf{x}_t = f(\mathbf{x}_{t-1}) + \mathbf{w}_t\]

在运动 BCI 中用途有限(线性调谐已足够好)。

无迹卡尔曼(UKF)

用 sigma points 近似非线性传播,Li et al. 2009 在 BCI 上测试,增益有限。

粒子滤波

对高度非线性 / 非高斯系统更强,但计算开销大——不适合实时 BCI。

七、卡尔曼的局限性

  1. 线性假设:神经调谐实际是高度非线性的
  2. 高斯噪声:spike 计数实际上是 Poisson
  3. 固定参数:不适应神经元响应的日内漂移
  4. 单时间步:不建模长期依赖

这些限制推动了后续 LFADS、RNN、NDT 的发展——深度学习解码器都是在卡尔曼基础上松弛这些假设

八、点过程滤波

Point Process Filter(PPF) 用 Poisson 观测模型替代高斯:

\[P(y_t^i | \mathbf{x}_t) = \text{Poisson}(\lambda_i(\mathbf{x}_t) \cdot \Delta t)\]

Eden et al. 2004Shanechi et al. 2012 在 BCI 上展示 PPF 相比卡尔曼的优势——特别是 spike 稀疏、bin 小时。

九、混合与神经-卡尔曼

现代 BCI 把卡尔曼结构 + 深度网络观测模型结合:

\[\mathbf{x}_t = f_\theta(\mathbf{x}_{t-1}) + \mathbf{w}_t$$ $$\mathbf{y}_t = g_\phi(\mathbf{x}_t) + \mathbf{v}_t\]

\(f_\theta, g_\phi\) 为神经网络。这给了"端到端学习 + 状态空间结构"的最佳平衡——LFADS 就是其中一支

十、逻辑链

  1. 维纳滤波把 PVA 扩展到时间维,加入历史提升估计精度。
  2. 卡尔曼滤波加入状态空间结构,显式建模"意图平滑演化"。
  3. ReFIT-Kalman 重校准了观测矩阵,让线性解码器达到更高性能。
  4. 卡尔曼的线性/高斯假设是局限,推动深度学习解码器取代它。
  5. 现代 LFADS/NDT 保留卡尔曼的"潜状态演化"结构,替换为非线性网络——卡尔曼的精神延续至今。

参考文献

  • Wu et al. (2006). Bayesian population decoding of motor cortical activity using a Kalman filter. Neural Computation. https://www.mitpressjournals.org/doi/10.1162/089976606774841585
  • Carmena et al. (2003). Learning to control a brain-machine interface for reaching and grasping by primates. PLOS Biology.
  • Gilja et al. (2012). A high-performance neural prosthesis enabled by control algorithm design. Nat Neurosci. — ReFIT
  • Eden et al. (2004). Dynamic analysis of neural encoding by point process adaptive filtering. Neural Comp.
  • Shanechi et al. (2012). Neural population partitioning and a concurrent brain-machine interface for sequential motor function. Nat Neurosci.

评论 #