解码器给了一个分数,但分数单位不统一、上限不明确。信息论补上这把标尺:以比特为单位量化"尖峰序列里到底装着多少关于刺激的信息",并让率码、时码、群体码的争论第一次可以定量裁决。本节给出三个核心量——熵、条件熵、互信息——以及神经数据上用它们时绕不开的偏置陷阱。
熵 H(X) 度量随机变量的不确定性:H = −Σ p(x)·log2 p(x),单位比特。一枚均匀硬币的熵是 1 比特。对神经元,最常用的两个变量是刺激 S 与响应 R(一段尖峰序列)。响应的熵 H(R) 是"这段序列可能有多少种花样"——它可以小得惊人:一个每秒仅发 3 个脉冲、观察窗 100 ms 的细胞,其尖峰序列的熵每秒往往只有几个比特,这就是大脑通道的"带宽预算"。
条件熵 H(R|S) 是"知道刺激后响应还剩多少花样"——即响应中与刺激无关的部分(含噪声)。互信息 I(S;R) = H(R) − H(R|S) 是两者之差:响应里确定由刺激引起的部分,也是"看响应最多能把对刺激的不确定性消除多少比特"。信息处理链上的另一个经典量是信息瓶颈:让压缩变量 T 在"尽量少"的约束下最大化 I(T;Y)——有工作用它解释视觉通路各级表示的形成,是"大脑在带宽约束下做最优压缩"这一猜想的形式化版本。
三条立刻有用的推论。推论一:I(S;R) ≤ H(R),响应熵封顶了信息量——这就是"低发放率神经元带宽有限"的定量说法。推论二:I(S;R) ≤ H(S),刺激熵封顶另一头——实验里刺激分布设计得太窄,测到的信息就只是刺激分布的熵,不是系统的能力。推论三:独立响应的群体信息 ≤ 各细胞信息之和,而相关噪声(noise correlation)决定实际损失多少——群体码是否"1+1>2",取决于相关性结构,这是当前群体编码研究的核心战场。
测互信息的标准流程叫直接方法:把刺激与响应都离散化(刺激分档、尖峰按时间窗拼成"字"),从联合频数表估计 p(s,r),代入公式。麻烦在于神经数据的现实——样本永远不够填满高维联合表。直接估计的互信息带正偏置(有限样本下估计值系统性偏高,甚至超过 H(R)),维度越高偏得越狠。给一维变量加一个字母,理论上信息量加 1 比特——实测却常见"加 2 比特",多出的就是伪影。
处理思路按代价从低到高:解析修正(Panzeri-Treves 修正,扣除采样伪影项,最常用);洗牌对照(打乱试验配对重算,把相关性贡献分离出来,检验时码主张的标配);嵌套分化或贝叶斯估计(控制字长增长,代价是计算量)。实操纪律:报告信息量时必须同时报告样本量、字长、修正方法——不含这些的信息量数字不可比也不可信。
import numpy as np from collections import Counter def entropy(counts, n): return -sum((c/n)*np.log2(c/n) for c in counts if c > 0) def mutual_info(s_labels, r_words): n = len(s_labels); joint = Counter(zip(s_labels, r_words)) cs, cr = Counter(s_labels), Counter(r_words) I = 0.0 for (s, r), nsr in joint.items(): p = nsr/n I += p*np.log2(p/((cs[s]/n)*(cr[r]/n))) return I # 人造数据:响应 = 信号 + 洗牌噪声 rng = np.random.default_rng(0) S = rng.integers(0, 4, 2000) # 4 种刺激 R = (S + rng.integers(0, 4, 2000)) % 4 # 响应含很大噪声 print("样本互信息:", round(mutual_info(S, R), 3), "比特") # 洗牌对照:只保留刺激锁定的部分 R_shuf = R[rng.permutation(len(R))] print("洗牌后:", round(mutual_info(S, R_shuf), 3), "比特(应接近 0)")
再做一个偏置演示:把上面样本数从 2000 减到 50 重算,读数会明显虚高——那就是有限样本偏置的现场。这组小实验是信息量数字的"防骗训练":任何超过 H(R) 或随字长虚涨的读数都是伪影。
裁决一:率码还是时码。 对同一批记录,把响应分别按"窗口内计数"(率码字)与"精确时序字"(时码字)离散化,比较互信息。蝗虫嗅觉、视网膜运动的经典结果:时序字的信息比计数字多出 20% 至 50%,且增量集中在首个脉冲后的一小段——时码在这类快速感官决策中胜出,但优势是有界的,并非压倒。
裁决二:相关噪声是敌是友。 用洗牌对照把群体信息分解:独立项 + 相关项。视觉皮层的实测常显示相关噪声略微限制信息(负贡献),但信号相关(调谐相似性)与噪声相关的特定组合也能产生协同(正贡献)。结论随脑区与任务变——这正说明信息论标尺的价值:把争论从口号变成可测的正负号。
裁决三:稀疏化的收益核算。 果蝇蘑菇体 Kenyon 细胞的稀疏码:气味从几百个投射神经元的高维表示压缩到极少数 Kenyon 细胞响应。测下来,稀疏层的单细胞信息远高于上游,群体总信息经压缩几乎不损失——"稀疏=高信噪比+低带宽消耗"从口号变成了对账单。
💡 关键直觉:互信息是唯一自带"上限文化"的度量——它永远提醒你响应熵封顶、样本有限、洗牌对照不可省。神经科学里大部分"信息含量惊人"的说法,都死于这三道防线之一。
差在三处:解码器的损失(有限样本学出的映射不完美)、行为噪声之外的内部噪声(模型没建模的部分)、以及信息论估计本身的偏置修正残差。两者的关系是"上限与实现"——互信息给出该通道理论上可读出的最大量,解码成绩是当前实现水平。差距本身有诊断价值:差距大说明解码方法还没榨干通道(值得改进模型),差距小说明通道已被充分利用(该换更丰富的记录)。
因为准确率与任务绑定,不可跨任务比较。二选一任务的 75% 与四选一任务的 50% 谁更厉害——准确率给不出答案,互信息可以(前者约 0.19 比特、后者恰为 1 比特)。信息量具把不同任务、不同脑区、不同物种的结果放到同一把比特标尺上,这是它能成为领域通用货币的原因;代价是估计流程的纪律要求更高(4.3 节的三道防线)。
编码解码的工具链至此配齐。下一章把镜头拉远:当许多这样的细胞连成环路,会涌现出单个细胞没有的行为——平衡、吸引子与节律。