从零构建大脑的“静默交响曲”:用BrainPy实战E-I平衡网络建模
不知道你有没有观察过深夜的森林?表面上万籁俱寂,但如果你用红外摄像机去看,会发现无数小生命在活动:昆虫的爬行、夜行动物的觅食、树叶的呼吸。大脑皮层在静息状态下的活动,与这有异曲同工之妙。单个神经元看似在随机、不规则地“噼啪”放电,但宏观上,整个网络却维持着一种精妙的动态平衡。这种被称为“兴奋-抑制平衡”的状态,不仅是大脑高效处理信息的基础,更是理解许多神经计算原理的关键。
今天,我们就抛开复杂的数学公式和抽象的理论,直接上手代码,用Python生态中新兴的神经动力学建模库——BrainPy,亲手搭建一个这样的平衡网络。无论你是计算神经科学的研究生,还是对类脑计算感兴趣的工程师,这篇文章都将带你走完从模型定义、参数调试到结果可视化的完整流程。你会发现,模拟一个拥有数千个神经元、展现复杂集体行为的网络,并没有想象中那么遥不可及。
1. 理解基石:什么是兴奋-抑制平衡网络?
在深入代码之前,我们有必要先搞清楚要构建的究竟是个什么东西。兴奋-抑制平衡网络的核心思想,可以概括为“在混沌的边缘维持秩序”。
想象一个嘈杂的鸡尾酒会。每个人都在说话(兴奋性输入),但同时背景音乐和周围人的谈话声也形成了干扰(抑制性输入)。为了让对话进行下去,你大脑需要巧妙地放大你想听的声音,同时抑制其他噪音。大脑皮层中的神经网络,正是通过持续不断的兴奋性和抑制性信号的动态抵消,来实现这种“选择性关注”。在平衡状态下,每个神经元接收到的净输入(兴奋减去抑制)均值接近于零,但方差很大。这就好比每个神经元都站在发放动作电位的“悬崖”边缘,一点微小的扰动就能让它“跌落”并产生一个脉冲,从而产生了看似随机、实则受严格动力学规律支配的发放模式。
这种网络有几个关键特征:
- 稀疏连接:神经元并非与所有其他神经元相连,连接是随机的且概率较低。这保证了输入的统计独立性,是产生不规则发放的基础。
- 强反馈:网络内部的连接强度足够大,使得网络活动主要由内部循环驱动,而非外部输入。外部输入更像是一个“调节旋钮”,而不是“动力源”。
- E/I比例恒定:通常,兴奋性神经元(E)的数量远多于抑制性神经元(I),比例大约在4:1。但抑制性连接的单个强度往往更强,以实现快速的“刹车”效果。
注意:这里所说的“平衡”是动态的、即时的平衡,而非长时间的平均。每一毫秒,兴奋和抑制都在激烈地竞争和抵消。
理解了这些,我们就能明白建模的目标:用代码复现一个系统,使其自发产生异步、不规则的发放活动,并且对外部刺激表现出快速、线性的响应。
2. 搭建舞台:BrainPy环境与LIF神经元模型
工欲善其事,必先利其器。我们选择BrainPy,是因为它在易用性、灵活性和性能之间取得了很好的平衡。它基于JAX,能进行高效的自动微分和GPU加速,特别适合迭代快速的科研探索。
首先,确保你的环境已经就绪:
# 创建并激活一个虚拟环境是良好的习惯
python -m venv brainpy_env
source brainpy_env/bin/activate # Linux/macOS
# 或 brainpy_env\Scripts\activate # Windows
# 安装BrainPy及其依赖
pip install brainpy brainpy-simulation numpy matplotlib scikit-learn
我们的网络由最基本的积木——神经元构成。在这里,我们选用泄漏积分发放模型。它是对真实生物神经元一种优美而有效的简化,核心是模拟细胞膜电位的充放电过程。
LIF模型的关键方程其实很简单:
- 膜电位变化:当膜电位
V低于阈值V_th时,它会朝着静息电位V_rest“泄漏”,同时整合接收到的输入电流I。 - 发放与重置:当
V达到V_th时,神经元产生一个脉冲(spike),随后V被重置为V_reset,并进入一段短暂的不应期tau_ref,在此期间它不会对输入做出反应。
在BrainPy中,内置的 bp.neurons.LIF 类已经封装好了这一切。我们需要做的,就是理解并设置那几个关键的生物物理参数。下面这个表格对比了典型参数及其生理意义:
| 参数符号 | 参数名 | 典型值 (ms或mV) | 生理意义 |
|---|---|---|---|
V_rest |
静息电位 | -60 mV | 神经元未受刺激时的稳定膜电位。 |


3061

被折叠的 条评论
为什么被折叠?



