首页
/ NeuromatchAcademy课程:隐藏动力学与序列概率比检验教程

NeuromatchAcademy课程:隐藏动力学与序列概率比检验教程

2025-07-10 07:49:13作者:何将鹤

摘要

本教程将介绍序列概率比检验(SPRT)及其在神经科学中的应用——漂移扩散模型(DDM)。我们将从基础概念出发,逐步构建数学模型,并通过Python实现模拟和分析。

1. 序列概率比检验(SPRT)基础

序列概率比检验是一种统计决策方法,用于在二元假设检验中逐步收集证据并做出决策。在神经科学中,它被广泛用于建模感知决策过程。

1.1 数学模型

假设我们有两个可能的假设:

  • H₀: s = -1
  • H₁: s = +1

每次观测mₜ来自正态分布:

  • 若s = +1,则mₜ ~ N(μ, σ²)
  • 若s = -1,则mₜ ~ N(-μ, σ²)

对数似然比(LLR)定义为: LLRₜ = log[P(mₜ|H₁)/P(mₜ|H₀)] = (2μ/σ²)mₜ

1.2 累积证据

随着时间的推移,我们累积证据: Eₜ = Σ LLRₜ = (2μ/σ²)Σmₜ

决策规则:

  • 若Eₜ ≥ θ,接受H₁
  • 若Eₜ ≤ -θ,接受H₀
  • 否则继续观测

2. 漂移扩散模型(DDM)

SPRT可以转化为连续时间的漂移扩散模型,这是神经科学中决策过程的经典模型。

2.1 模型转换

将离散时间SPRT转换为连续时间过程,我们得到: dE = v dt + σₑ dW

其中:

  • v = 2μ²/σ² (漂移率)
  • σₑ = 2μ/σ (扩散系数)
  • dW是维纳过程

2.2 关键参数

  1. 漂移率(v):反映信息积累的速度,与信号强度成正比
  2. 阈值(θ):决策标准,影响准确性和反应时间
  3. 噪声(σₑ):反映观测中的不确定性

3. 实现与模拟

3.1 固定时间停止规则

def simulate_SPRT_fixedtime(mu, sigma, stop_time):
    """模拟固定时间停止的SPRT"""
    Mvec = np.random.randn(stop_time) * sigma + mu * (2*(np.random.rand()>0.5)-1)
    evidence_history = np.cumsum(2 * mu / sigma**2 * Mvec)
    decision = 1 if evidence_history[-1] > 0 else -1
    return evidence_history, decision, Mvec

3.2 固定阈值停止规则

def simulate_SPRT_threshold(mu, sigma, threshold):
    """模拟固定阈值停止的SPRT"""
    evidence = 0
    evidence_history = []
    Mvec = []
    while True:
        m = np.random.randn() * sigma + mu * (2*(np.random.rand()>0.5)-1)
        Mvec.append(m)
        evidence += 2 * mu / sigma**2 * m
        evidence_history.append(evidence)
        if abs(evidence) >= threshold:
            decision = np.sign(evidence)
            break
    return evidence_history, decision, Mvec

4. 速度-准确性权衡

DDM揭示了决策过程中速度与准确性之间的基本权衡关系:

  1. 高阈值:准确性↑,反应时间↑
  2. 低阈值:准确性↓,反应时间↓

这种关系可以通过改变决策阈值θ来调节:

def simulate_accuracy_vs_threshold(mu, sigma, threshold_list, num_sample):
    """模拟不同阈值下的准确性和决策速度"""
    accuracies = []
    decision_speeds = []
    for threshold in threshold_list:
        correct = 0
        total_time = 0
        for _ in range(num_sample):
            _, decision, Mvec = simulate_SPRT_threshold(mu, sigma, threshold)
            correct += (decision == 1)
            total_time += len(Mvec)
        accuracies.append(correct/num_sample)
        decision_speeds.append(total_time/num_sample)
    return accuracies, decision_speeds

5. 分析与讨论

5.1 理论准确性分析

对于固定时间停止规则,准确性可以解析计算: P(correct) = Φ(μ√T/σ)

其中Φ是标准正态CDF。

5.2 实际应用考虑

  1. 神经科学应用:DDM成功解释了感知决策中的神经活动模式
  2. 工程应用:SPRT用于质量控制、信号检测等领域
  3. 认知建模:解释人类决策中的速度-准确性权衡

6. 扩展与进阶

  1. 时变信号:当潜在状态随时间变化时的扩展
  2. 多选项决策:从二元到多元决策的推广
  3. 神经实现:大脑如何实现证据积累的神经机制

结论

本教程介绍了SPRT和DDM的基本原理及实现方法。这些模型为理解动态决策过程提供了强大的数学框架,在神经科学和工程领域都有广泛应用。通过调整参数,我们可以研究不同条件下的决策行为,深入理解感知和认知过程的基本机制。