[控场AI]
· 5 分钟阅读· 2,852 字

MIT研究员用纯Python打造狗狗数字孪生:把Jackie的fMRI大脑变成了AI

MIT研究员用纯Python打造狗狗数字孪生:把Jackie的fMRI大脑变成了AI

MIT研究员用纯Python把狗狗Jackie的fMRI与EEG数据做成可交互数字孪生。

一位MIT研究员将自家狗狗Jackie的兽医MRI与家用EEG数据整合为六个同步会话数据集,并仅用纯Python(dataclasses、deques、状态机)构建了一个可交互的数字孪生。系统维持6维情绪向量与25区域脑激活图,输入刺激后通过匹配真实会话、注入BOLD值、更新心率等步骤模拟情绪与脑区响应。社交条件数据尤其突出:遇到陌生流浪狗时杏仁核双侧激活、心率124 bpm;见到狗朋友时中脑/颞叶反应更平衡;见到熟悉邻居狗时双侧颞叶强烈激活、心率降至98。研究员承认模型是高度简化的线性近似,未做HRF卷积或神经质量建模,但强调每个数字都可追溯到真实测量值,代码已在GitHub开源。

一位MIT研究员在Reddit上分享了一个相当不寻常的项目:他把自家狗狗Jackie的脑成像数据变成了一个可交互的“数字孪生”。整个系统没有用PyTorch或TensorFlow,只用纯Python实现。

从兽医MRI到意外数据集

事情的起点完全是个意外。Jackie去年因为一个小问题需要做几次兽医MRI扫描,结果并无大碍。趁她已经在扫描仪里,兽医团队允许研究员留下,出于好奇多跑了几个短时功能序列。之后他们又在家中用定制软帽做了无线EEG,记录Jackie接触不同气味、其他狗、散步和食物时的脑电活动。

最终得到了六个干净的数据会话(J001–J006),每个会话同时包含:

  • T2*加权EPI fMRI数据
  • EEG频段功率(theta、alpha、beta、gamma)
  • 心率、呼吸、加速度
  • 简单行为记录(舔舐等)
  • 从左右嗅球、左右杏仁核、左右伏隔核提取的BOLD值

还有三个在社交条件下的轴向切片特别有意思:遇到陌生流浪狗时,心率升到124 bpm,杏仁核双侧明显激活;见到真正的狗朋友时,心率112,中脑/颞叶反应更平衡;见到邻居家狗(已多次接触)时,心率降到98,双侧颞叶强烈激活。

Jackie的fMRI轴向切片展示不同社交条件下的脑区激活

术语补充:T2*加权EPI fMRI

T2*加权EPI(Echo-Planar Imaging,回波平面成像)是功能磁共振成像(fMRI)中最常用的快速成像序列。它利用血液中脱氧血红蛋白与氧合血红蛋白磁化率差异造成的T2*信号变化(即BOLD效应),间接反映局部神经活动。EPI能在几十毫秒内采集一整幅二维图像,因此时间分辨率可达1–3秒,适合捕捉脑区激活的时间进程。但其空间分辨率与抗磁化率伪影能力弱于常规T1/T2解剖扫描,且多用于固定头部的实验环境——在兽医场景下对清醒动物实施EPI,需要克服运动伪影、麻醉干扰以及噪声耐受等额外挑战,这也是Jackie数据集相对罕见的原因之一。

术语补充:BOLD信号与ROI提取

BOLD(Blood-Oxygen-Level-Dependent)信号是fMRI的测量基础:当某脑区神经元活动增强时,局部血流和血氧供应会超过耗氧需求,导致脱氧血红蛋白相对减少,T2*加权信号轻度上升。文中的“左右嗅球、左右杏仁核、左右伏隔核”等BOLD值,就是把每个解剖区域(ROI,Region of Interest)内的体素信号做平均后得到的时间序列。ROI通常由配准后的解剖图谱或手动勾画定义;对犬类而言,常用简化犬脑图谱,因为其沟回结构与人类差异较大。ROI提取的关键步骤包括运动校正、平滑、去趋势和生理噪声回归,这些预处理会直接影响后续数字孪生中情绪增量的可信度。

纯Python实现的数字孪生

研究员把所有数据做成了一个数字孪生。有意思的是,他没有选择花哨的深度学习框架——没有PyTorch,没有TensorFlow,只有dataclasses、deques、基本统计和一个状态机。

系统维持着几项核心状态:一个6维情绪向量(joy、curiosity、calm、excitement、anxiety、affection),一张基于简化犬类图谱的25区域激活图,以及当前生理状态(心率、唤醒指数等)。

当你输入一个刺激时,管线大致这样运作:StimulusMapper先尝试匹配真实会话(社交刺激则做简单模糊匹配),然后应用由真实BOLD和EEG值平均得到的情绪增量,各区域向基线衰减后从匹配会话注入BOLD,针对三种狗狗条件加入特殊社交增强,心率更新为实际测量值,一切存入记忆缓冲区。

情绪向量与脑区激活的实时变化界面

术语补充:状态机与dataclasses/deques

状态机(finite-state machine)是一种把系统行为建模为“状态+转移”的计算范式:系统在任一时刻处于有限个离散状态之一,外部刺激触发状态转移。本文的数字孪生用状态机维护6维情绪向量与25区域激活图,使每次刺激输入都对应确定的状态更新路径。dataclasses是Python 3.7引入的语法糖,用于简洁地定义以数据为中心的类(自动生成__init__、__repr__等),适合承载情绪向量和生理状态。deque(双端队列)来自collections模块,支持O(1)时间复杂度的两端插入/删除,常被用作固定长度的记忆缓冲区——这正是保存最近刺激与脑区响应历史所需的轻量结构。三者结合可在不引入NumPy以外科学栈的情况下实现可检查的模拟循环。

简单线性近似,但保留了可追溯性

研究员坦承这是一个高度简化的线性近似,没有做正确的HRF卷积或生物物理神经质量建模。但他有意保持透明,让每个数字都能追溯到从Jackie身上采集的真实测量值。目标是“感觉活着且可检查”,而不是“最先进的准确性”。

即便如此,当你输入“最好的朋友狗”和“陌生流浪狗”时,情绪状态和主导区域的变化确实与扫描仪和现实生活中观察到的结果吻合。研究员说这部分每次都让他起鸡皮疙瘩。

术语补充:HRF卷积与神经质量模型

HRF(Hemodynamic Response Function,血流动力学响应函数)描述神经活动发生后BOLD信号随时间变化的典型形状:约2秒后开始上升,5–6秒达峰,随后缓慢回落并伴随轻微下冲。规范的fMRI分析会把假定的神经事件与HRF做卷积,以预测BOLD时间序列;忽略这一步会导致模拟信号与真实扫描在时间形状上不匹配。神经质量模型(neural mass model)则用少数微分方程描述群体神经元的平均放电率与抑制/兴奋耦合,能产生更接近生物物理的振荡和瞬态响应。本文选择绕过这两者,用简单线性增量代替,虽然牺牲了动力学真实性,却换来了每个数值都能回溯到Jackie真实测量值的可审计性。

社区反馈与改进方向

他特别希望得到动物fMRI、犬类认知、情感计算领域的反馈,也欢迎任何喜欢奇怪个人科学项目的人参与讨论,愿意分享ROI提取、软EEG帽、回归权重等细节。同时他也在征求建议:如何在不引入巨大依赖的前提下让区域动态更真实一些。

系统架构与数据流示意图

截至发帖时,Jackie正在沙发上睡觉,经过一次长途散步后。她完全不知道自己现在有了一个数字孪生——会对流浪狗焦虑,也会因最好的朋友而超级开心。

Jackie本狗

代码已在GitHub开源:github.com/StoopwenpueNq/jackie-fmri-sim

#狗狗数字孪生#动物fMRI#纯Python AI#犬类认知#情感计算#EEG脑机接口#开源项目
分享:

相关推荐