fly_brain_transformer_notes
果蝇大脑与 Transformer 讨论笔记
1. 项目定位
eonsystemspbc/fly-brain 不是“果蝇大脑玩具”。它拿真实果蝇大脑当尺子,给 6 种仿真软件测速度和准确度。
- 模型:13.8 万神经元、约 500 万突触(基于 Nature 2024 论文)。
- 做的事:① 模拟光遗传刺激实验;② 给 6 个后端测速;③ 以 Brian2(CPU) 为准,校验其他后端的准确度。
2. 与具身智能的关系
这个项目本身不做具身。它是“上游地基”:先解决大脑怎么又快又准地跑起来,具身项目(erojasoficial-byte/fly-brain、FlyDrones、Lulzx/fly-brain)再给它接上身体去做动作。
3. Brian2 与 LIF 模型
Brian2 用三个对象搭脑:NeuronGroup(LIF 方程定义神经元)、Synapses(连接 + 权重)、PoissonInput(外部刺激)。
LIF(漏电积分-放电)方程核心:
dv/dt = (v_0 - v + g)/t_mbr:膜电位向静息电位回归,受输入g驱动;dg/dt = -g/tau:输入信号随时间衰减,这就是“漏电”;- 电压到阈值
v_th就放电,随后复位并进入不应期。
4. LIF 是否通用
方程形式通用,参数必须按物种调。 果蝇那套参数——静息 -52mV、阈值 -45mV、膜时间常数 20ms、突触时间常数 5ms、不应期 2.2ms、传导延迟 1.8ms——全部查自果蝇文献,没有拿老鼠或人的值套上去。
5. LIF vs Transformer
| 维度 | LIF 神经元 | Transformer |
|---|---|---|
| 输出 | 脉冲(二值、稀疏) | 连续浮点数 |
| 时间 | 动态系统,随时间演化 | 静态一步到位,时间靠位置编码 |
| 记忆 | 膜电位衰减(短时) | 注意力 / KV Cache(显式、长程) |
| 编码 | 脉冲时间/频率 | 数值大小 |
| 连接 | 稀疏、局部 | 全连接、全局 |
| 权重 | 相对固定、局部 | 注意力动态、全局 |
| 学习 | STDP 等局部规则 | 全局反向传播 |
共同点:都是“多输入加权聚合,过一层非线性,再输出”的分层并行计算单元。
6. 记忆存在哪
澄清一点:LIF 的“漏电”是膜电位的物理特性,不代表它不能模拟记忆。记忆不在单个细胞的膜电位里,而在突触权重(长期)和网络的持续放电(短期)。
| 记忆类型 | 生物/LIF | Transformer |
|---|---|---|
| 长期记忆 | 突触权重 syn.w |
训练好的网络权重 |
| 短期/工作记忆 | 膜电位 + 持续放电(隐式、会漏) | 激活值 + KV Cache(显式、可精确查找) |
7. 具身智能下 Transformer 的局限
Transformer 是为“静态、离线、完整序列”设计的,具身智能要的是“动态、在线、闭环”。短板有四条:没有内在时间动力学、全连接带来二次复杂度、没有在线学习、不闭环。
神经科学在这里是启发源,不是说明书。取的是稀疏、脉冲、闭环、局部学习、时间动力学这些原则,不搬细节。
8. 蘑菇体(Mushroom Body):联想学习
链路:ORN(2562) → 触角叶(50 glomeruli) → PN(686) → KC(4064,稀疏扩展约 6 倍) → MBON(97)。
- 机制:每个 KC 只随机采样约 5 个 PN,把相似气味投影到高维稀疏空间里分开(稀疏编码)。
- APL,只有 2 个:旁路反馈抑制环,作用在 KC 层,调 KC 的活跃度(增益控制)。
- 多巴胺神经元,约 340 个:教学信号,作用在 KC→MBON 突触上改权重,也就是写记忆。
9. 中央复合体(Central Complex):导航
- 环形连接:8 个朝向位置首尾相接排成环。
- 余弦权重:近邻互助、远邻互斥,逼出唯一一个活动亮斑(环形吸引子),亮斑的位置就是当前朝向。
- 方向更新:PEN 通路左右偏移,带着亮斑随转身沿环移动。
10. 朝向 → 转向的闭环
1 | 朝向亮斑(EB/PB) → 扇形体FB(PFL3/PFL2,比较器) → 下行神经元 → 运动神经元 → 腿部肌肉 |
- PFL3(左转)/ PFL2(右转)把“当前朝向 vs 目标方向”的差翻译成转向指令。
- 诚实提醒:连接组能一路传到与转向相关的下行神经元,但协调转身和走路的节奏,有一部分靠外挂步态生成器,不完全是连接组自己涌现的。
11. 核心方法论:结构 ≠ 功能
连接图只回答“在哪找功能”,不回答“零件怎么运转”。
例证:拿点神经元(开关)去模拟 APL(实际是连续分级信号的调光旋钮),复现不出增益控制。零件类型错了,接线图再对也跑不出功能。
12. 感觉系统全景(多模态)
果蝇不是只有视觉和嗅觉,它是多模态的。关键区分是“进大脑做认知”还是“进脊髓做反射”:
| 感觉 | 器官 | 去向 |
|---|---|---|
| 嗅觉 | 触角→触角叶 | 中央脑 |
| 视觉 | 复眼→视叶 | 中央脑 |
| 味觉 | 口器唇瓣、腿爪 | 部分进中央脑(学习),部分 VNC 反射 |
| 触觉 | 跗节、触角尖、全身刚毛 | 多走 VNC 反射 |
| 本体感觉 | 腿关节(角度/负载) | VNC |
| 平衡(陀螺仪) | 平衡棒 haltere | VNC + 飞行 |
| 振动/风速/听觉 | Johnston 器官 | VNC |
| 温度 | 触角芒 | 中央脑 / VNC |
- 视觉和嗅觉是通向“大脑认知”的两条大路;触觉、本体感觉、平衡大多在腹神经索(VNC,相当于脊髓)这一层就完成反射,不都上报大脑。
- 反直觉的地方:果蝇用嘴和腿尝味(爪踩糖水会触发伸喙 MN9);它的“听觉”是 Johnston 器官感受振动,没有耳膜;平衡棒是退化的后翅,测的是身体旋转角速度,相当于陀螺仪。
13. 视觉通路:视叶三层如何逐层抽象
细胞命名:字母是层或形态,数字是亚型。R1–R8 是光感受器(R1–R6 管明暗,走 Lamina;R7/R8 管颜色,直接插进 Medulla);L1–L5 是 Lamina 单极细胞(L1/L2/L3 是主通道,L4/L5 负责调节);Mi/Tm 在 Medulla;T4/T5 在 Lobula Plate 做方向选择;HS/VS 是宽场光流;LC 是视觉投射的出口。
光感受器极性(易错点):果蝇光感受器是光去极化,亮处活跃,跟人眼相反。它释放组织胺,是抑制性的,所以 L1–L3 是 OFF 细胞,对变暗兴奋。
ON/OFF 两条通道是分叉,不是串行反转。光感受器信号在 Lamina 分叉给 L1、L2 两条并列的线;到 Medulla,L1 保持 OFF(喂给 T5,测暗边),L2 再反转回 ON(喂给 T4,测亮边)。层与层之间串行,一层之内并行分叉。
三层各算什么、为什么分层:
| 层 | 做什么 | 机制 | 为什么单独一层 |
|---|---|---|---|
| Lamina | 亮度→变化 | 光感受器适应(时间高通)+ 侧抑制(空间高通) | 绝对亮度没用,只留变化 |
| Medulla | 变化→朝向/颜色 | 组合相邻列做朝向选择;R7/R8 颜色拮抗 | 需要跨列做空间重组 |
| Lobula/Plate | 特征→运动/物体 | T4/T5 方向选择(空间偏移+时间延迟);HS/VS 求和=光流;LC 整合物体 | 运动是时空计算,需要最深的连接 |
T4/T5 是方向选择细胞,每个位置四个方向(前后上下)。T4 测亮边,T5 测暗边,靠“这里现在”和“旁边刚才”两个信号比对。HS/VS 把全视野的 T4/T5 求和成光流,喂给飞行稳定;LC 把它们整合成威胁或物体,送去决策。
宽场和柱状(HS/VS 对 LC):两者的感受野大小正好相反。HS/VS 是宽场,全视野求和,空间信息被平均掉,得到全局光流,用来稳定自己;LC 是柱状,各守一小块,位置保留,得到局部威胁或对象,用来追或逃。根因也简单:全局运动是自己动了,要纠正;局部物体是世界里真有东西,要应对。Medulla 交给 Lobula 的是保留空间的局部特征图(每列带朝向、ON/OFF、颜色),宽场和柱状,是 Lobula 两类下游对它分别做全局求和与局部读取的结果。
“延迟”不等于记忆。方向选择里的“旁边刚才”是物理延迟(膜电容充放电、多跳突触、传导距离,毫秒级),不是存储。快慢两路信号同时到达就能判方向,不需要记忆单元。
为什么非得三层:一是依赖链,边依赖变化,变化依赖亮度,跳不过去;二是感受野逐层扩大,从单列到几列再到全视野,每种抽象需要不同的空间尺度;三是每层产出的标签通道不一样,供给不同下游,威胁走最短的硬连线,逃跑能快到 10ms 级。
项目实现:用 flyvis(训练出来的神经网络)映射连接组,不是手写电路。
14. Lulzx-fly-brain = 具身智能的最小完整样本
呼应第 2 节:fly-brain 是上游地基,具身项目给它接上身体;Lulzx-fly-brain 就是接上身体之后的具体样本——16.5 万神经元的真实连接组,加 flybody 身体,加 MuJoCo 物理环境,行为在闭环里自己冒出来。
具身智能的核心是闭环,不是开环:
- 开环:实验者喂输入,看输出。网络是被动的,跟世界没有互动。
- 闭环:大脑发命令,身体动,环境变了,环境反过来给感官输入,影响下一步命令。
- 这个项目每毫秒都在跑:读物理状态 → 翻译成感觉神经元 → 眼睛投光线给 flyvis → 大脑跑 0.5ms 脉冲步 → 运动神经元设执行器 → MuJoCo 推进。它读的是物理状态,不是实验者设计的刺激,这是闭环和开环的分水岭。
身体是计算的一部分,有三个证据只有闭环才暴露得出来:
| 现象 | 说明 |
|---|---|
| 再传入(reafference) | 身体一动、脚触地,接触信号反过来把行走神经元顶到 10–13Hz,停不下来(需要门控抑制) |
| 逃逸变难 | 自己动、墙逼近、腿在视网膜上产生的“膨胀”,跟真的 looming 难分(10 次 loom 只有 2 次成功) |
| 偏差放大 | 左右不对称的微小偏差被累积成原地转圈(开环看不到,因为开环没有位置累积) |
两条诚实边界,也是具身智能的经典难题:
- 命令 ≠ 运动程序。连接组能给“往前走”的命令,但走路的节律和姿态协调靠外部步态生成器(拟合了 100 条真实轨迹)。运动智能有相当一部分在身体和神经索里,不在大脑。
- 自发活动从哪来?什么时候走、什么时候停、什么时候理毛,来自外部模块,不是连接组产生的。命令的出处,和它经过哪条路径,一样重要。
两条路线,呼应“先天 vs 后天”:
| 路线 | 做法 | 代表 |
|---|---|---|
| 自下而上(发育 / 接线) | 真实连接组 + 身体,看先天布线能不能自发产生行为,不训练 | Lulzx-fly-brain |
| 自上而下(训练逼近) | 用 RL 在果蝇身体上训练一个连接组结构的控制器 | Fly-connectomic Graph Model (Jin et al. 2026) |
警告:训练出来的控制器不一定会用生物动力学,它成功了,也不能证明接线本身就规定了运动程序。
一句话:用真实连接组、真实身体和物理环境,回答具身智能的核心问题——行为怎么在闭环里冒出来,哪些算大脑的功劳,哪些是身体和环境给的。最有价值的,反倒是闭环逼出来的那些诚实失败。
留言
- 文章链接: https://wd-2711.tech/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!