Neural Dynamics Universal Translator
一种用于神经脉冲数据的基础模型,使用多任务掩码(MtM)自监督学习方法,可以在不同脑区、不同动物之间解决多种任务,实现神经活动的"通用翻译"。
read - 读取神经脉冲数据exec - 运行 Python 训练脚本web_fetch - 获取论文详细内容神经科学的碎片化问题:
解决方案:
多任务掩码(MtM)方法:
输入:神经群体活动(时间 × 神经元 × 脑区)
掩码策略:
1. 时间掩码:遮蔽不同时间步
2. 神经元掩码:遮蔽不同神经元
3. 脑区掩码:遮蔽不同脑区
目标:重建被遮蔽的活动
模型架构:
import torch
import torch.nn as nn
class NeuralUniversalTranslator(nn.Module):
def __init__(self, num_neurons, num_regions, embed_dim=256):
super().__init__()
# 神经元嵌入
self.neuron_embed = nn.Embedding(num_neurons, embed_dim)
# 脑区嵌入
self.region_embed = nn.Embedding(num_regions, embed_dim)
# 时间位置编码
self.time_embed = nn.Parameter(torch.randn(1, 1000, embed_dim))
# Transformer 编码器
encoder_layer = nn.TransformerEncoderLayer(
d_model=embed_dim,
nhead=8,
dim_feedforward=1024
)
self.transformer = nn.TransformerEncoder(encoder_layer, num_layers=6)
# 解码头
self.decoder = nn.Linear(embed_dim, 1) # 预测脉冲率
def forward(self, spikes, neuron_ids, region_ids, mask=None):
# 嵌入组合
x = self.neuron_embed(neuron_ids) + self.region_embed(region_ids)
x = x + self.time_embed[:, :spikes.shape[1], :]
# Transformer 编码
x = self.transformer(x)
# 重建
output = self.decoder(x)
return output
无监督任务:
1. 单神经元活动预测
2. 脑区活动预测
3. 前向预测
有监督任务:
1. 行为解码
2. 刺激预测
3. 决策预测
International Brain Laboratory (IBL) 数据集:
User: 如何预测一个脑区的神经活动?
Agent: 使用 Neural Dynamics Universal Translator:
1. 输入:已知脑区的神经活动
2. 掩码:遮蔽目标脑区
3. 模型:基于已知活动推断遮蔽区域
arXiv:2407.14668 的方法:
- MtM 模型学习跨脑区的统计依赖
- 可以从视觉皮层活动推断运动皮层活动
- 重建精度显著高于基线方法
User: 如何从神经活动解码动物行为?
Agent: 使用预训练的 Universal Translator:
1. 微调步骤:
- 冻结编码器
- 添加行为分类头
- 在目标任务上微调
2. 性能:
- 预训练模型比从头训练提升 10-15%
- 小样本情况下优势更明显
IBL 数据集上的任务:
- 视觉决策任务
- 运动选择任务
- 奖励预测任务
atlas-free-brain-network-transformer - 无图谱脑网络 Transformerneural-dynamics-decision-making - 决策神经动力学eeg-brain-connectivity-bci - EEG 脑连接 BCI