Skip to content

Latest commit

 

History

History
135 lines (82 loc) · 4.86 KB

File metadata and controls

135 lines (82 loc) · 4.86 KB

Brian2 从零到完整实验:课程目录

这里是本仓库真正的教材正文。

lessons/*.py 是可以运行的实验,但只看代码不等于学会。建议每章严格按下面顺序学习:

  1. 先读本章的“问题背景”和“运行前预测”。
  2. 不运行代码,自己解释方程每一项。
  3. 打开对应 Python 文件,对照教材逐段阅读。
  4. 运行实验,查看终端输出和 outputs/ 图片。
  5. 用教材中的预测解释结果。
  6. 完成至少一个“动手实验”,每次只改一个变量。
  7. 用自己的话写下:改了什么、为什么变化、证据是什么。

课程结构

第一阶段:建立仿真思维

理解 Python、Brian2、代码生成目标和编译器之间的关系。学会把环境错误定位到正确层次。

从漏积分直觉出发,推导指数解和第一次脉冲时间,理解连续方程、阈值、重置、不应期和离散时间步。

理解群体变量、子组、白噪声、随机种子和栅格图。区分参数异质性与随时间随机波动。

第二阶段:建立网络

理解 source、target、i、j、权重、on_pre 和延迟。运行前计算每条响应的到达时刻和幅度。

比较 TimedArrayPoissonInputSpikeGeneratorGroupPoissonGroup 的建模含义与计算代价。

区分连续状态、离散脉冲和群体率。学习从研究问题倒推 Monitor,而不是盲目保存所有数据。

第三阶段:学习、控制与空间结构

从痕迹变量推导 STDP 学习窗,理解前后事件、权重边界和 event-driven 方程。

学习显式 Network、调度、run_regularlystore/restore 和随机状态恢复,建立公平对照实验。

从点神经元过渡到电缆模型,理解形态、区室、膜电流密度、点电流、比膜电容和轴向电阻。

第四阶段:模型组织与性能

区分动态变量、参数和子表达式,理解自定义事件条件、事件动作与 EventMonitor。

理解 NumPy、Cython 和 C++ standalone,区分墙钟时间、内部 profiling、编译开销和真实优化。

综合项目

把外部随机输入、E/I 子组、随机循环连接、不同权重与延迟、栅格图和群体率组合起来。学习用期望连接数和输入量级检查参数。

每章都要回答的七个问题

读完一章后,不看教材回答:

  1. 本章的研究问题是什么?
  2. 模型保留了现实中的哪些机制,又省略了哪些?
  3. 每条方程的左边和右边分别是什么?
  4. 连续更新和离散事件分别发生在哪里?
  5. 哪些量属于神经元、突触、群体或外部实验条件?
  6. 输出图中的每个轴和每种标记代表什么?
  7. 改变一个参数后,你能否在运行前预测方向?

如果只能复述 API 名称,还没有真正理解这一章。

推荐实验记录格式

每次改参数时记录:

实验问题:
只改变的参数:
修改前预测:
运行结果:
支持或反驳预测的证据:
如果不同,可能原因:
下一步实验:

这个格式会迫使你把“看起来有变化”变成可检验的解释。

运行命令

从仓库根目录运行单章:

.\.venv\Scripts\python.exe lessons\01_first_neuron.py

运行全部实验:

.\.venv\Scripts\python.exe run_all.py

图片和文本报告位于:

outputs/

怎样使用官方文档

本教程负责建立概念和推理链,官方文档负责提供完整参数与 API 细节。

推荐顺序:

  1. 先用本教程理解“为什么”。
  2. 再打开对应章末的官方链接查询完整选项。
  3. 遇到报错时阅读 Brian2 的完整错误信息。
  4. 不要只搜索一段可复制代码,要确认它使用的版本、单位和模型假设。