【论文笔记】NDT: Neural Data Transformers (NBDT, 2022)

在这里插入图片描述
neural-data-transformers
https://github.com/snel-repo/neural-data-transformers

DANDI: Neural population dynamics during reachinghttps://dandiarchive.org/dandiset/000070/


Abstract

神经群体活动理论上反映了潜在的动态结构。这种结构可以使用具有显式动力学的状态空间模型(例如基于循环神经网络(RNN)的模型)准确捕获。然而,使用递归来显式地建模动态需要对数据进行顺序处理,从而减慢脑机接口等实时应用程序的速度。作者提出神经数据transformer(NDT),一种非循环替代方案,在猴子运动皮层的数据上进行测试可实现 3.9 毫秒的推理延迟,完全在实时应用程序的循环时间内。


Introduction

  • 背景:理论上,神经群体具有潜在的动态结构,可以随着时间的推移驱动群体活动的演变。一种基于 RNN 的方法(称为动态系统潜在因子分析 (LFADS))已被证明可以比传统基线(例如尖峰平滑或 GPFA)更好地模拟神经尖峰活动的单次试验变异性,并且能够在每时每刻和毫秒的时间尺度上准确预测受试者的行为。
  • 动机:最先进的基础模型架构 Transformer 可以接收一系列单词标记或输入,并行处理每个单独的标记。例如,Transformer 可以同时对句子中每个单词的词性进行分类,而 RNN 必须先处理较早的单词,然后再处理较晚的单词。 Transformer 的并行性使其能够比 RNN 更快地对顺序数据进行训练和操作。尽管神经科学数据集可能还不够大,无法实现很大的训练优势,但减少推理时间已经有利于循环时间至关重要的实时应用程序,例如脑机接口或闭环神经刺激。
  • 结果:在仿真数据集和真实数据集上测试 NDT 以验证其性能。仿真数据使用自主动力系统生成放电率,并从放电率中采样峰值。证明了 NDT 可以使用采样的尖峰来恢复未观察到的速率。并且NDT可以在 3.9 毫秒内执行推理,并且对序列长度的依赖性最小。

Method

在这里插入图片描述

  • LFADS:首先使用双向 RNN对完整输入序列进行编码,并且该编码用于设置解码器的初始状态。然后,解码器会跨时间步演化其状态,对神经群体的动态进行建模。在每个时间步,解码器的状态直接转换为发放率。LFADS 的顺序设计,即解码器必须使用完整数据窗口的编码进行初始化,会阻止在线推理中各个时间步流的迭代状态更新。

在这里插入图片描述

  • NDTTransformer 通过使用一堆一起处理所有输入的层来避免顺序瓶颈。Transformer 层包含多个非线性子层或块(图 2b),特别是自注意力块,其中通过合并来自每个其他输入的相关信息来构造每个输入的新表示。
    • 虽然大多数语言 Transformer 受益于 h ≥ 8,但作者发现多头注意力在猕猴的实验中没有用处,因此保持 h = 1, 2 的小值。

在这里插入图片描述

  • Transformer training:为了以无监督的方式训练模型,我们采用了 BERT 中使用的子集屏蔽建模方法(将屏蔽时间步长的尖峰输入归零)。子集大小通常是完整序列的固定比例,例如输入的 20%,然后要求模型重现该屏蔽子集的原始输入。为此,模型必须学习如何利用未屏蔽时间步长提供的上下文。同时,使用强化正则化来稳定训练,作者发现这在数据集较小时尤其重要。

Results

1. NDT 实现了仿真自主动力系统的高保真推理

在这里插入图片描述

  • 仿真数据:使用两种自主动力系统合成仿真数据:Lorenz system 和 chaotic RNN。合成方法使我们能够通过与产生合成尖峰的GT发放率进行比较来评估推断的发放率。
  • 图 4a:在这两个数据集中,NDT 和 AutoLFADS 推论与GT发放率非常匹配,尽管 NDT 速率显得不太平滑。两个模型之间的差距很小,表明 NDT 可以准确地推断自主动力系统中的放电率。
  • 图 4b:在 HP 搜索中,具有高数据可能性的 NDT 模型(根据观察到的尖峰活动计算)往往与底层系统很好地匹配(通过与GT发放率的对应来测量),即R2和NLL负相关。

2. NDT 以高保真度推断真实的运动皮质放电率

在这里插入图片描述

  • 公开数据集:“Monkey J Maze dataset”,session 2009-09-18
  • 图 5a:通过对相同到达条件的重复试验的推断速率进行平均来计算模型的刺激周围时间直方图(PSTH)。NDT 和 AutoLFADS 都表现出较低的跨试验方差(如阴影误差条所示),表明这些模型对于相同条件的不同试验产生一致的推断发放率。而使用高斯核平滑得到的基线PSTH表现出更大的跨试验方差。
  • 图5b:为了量化模型推断率的质量,测量了推断的 PSTH 和经验 PSTH 之间的对应关系。可能性较大(NLL较小)的 NDT 模型往往具有更好的 R2。性能最高的模型与 AutoLFADS 的性能相当。
  • 图5c:使用最优线性估计将发射率映射到手部速度,发现 NDT 能够实现与 AutoLFADS 匹配的准确行为解码(R2分别为 0.918 和 0.915)。这些速度预测可以综合起来产生预测的到达轨迹。
  • 图5d:大量试验还可以通过从完整数据集中进行二次采样来评估每个模型对数据集大小的敏感性。6 层 NDT 在 92 次试验中的表现比 AutoLFADS 差,但这可能是因为模型层数过高导致模型复杂,在小数据上泛化性降低(作者在后续表明2层NDT可以提高小数据上的泛化性)。

3. NDT的并行性可以提高推断效率

在这里插入图片描述

4. 较小的 NDT 提高了训练速度和数据效率

在这里插入图片描述

  • 只需使用较小的 NDT,就可以大大减少训练时间。同时,2 层 NDT 与 6 层性能相匹配。

5. 消融实验

在这里插入图片描述

  • 表3:每一项对实现高性能都至关重要
  • 图7:推断速率而不是对数速率的模型训练速度更慢,并且无法在大量超参数上收敛到良好的解决方案。这表明,即使在长期训练制度下,NDT 也无法很好地学习求幂。

Discussion

  • 作者引入了 NDT,一种用于神经尖峰活动的并行神经网络架构,并证明它可以在自主动态系统中与 RNN 竞争,同时实现更快的推理速度。
  • NDT 最关键的限制,也是未来工作的重要途径,是它无法对非自主动力学(即具有不可预测的外部扰动的系统)进行建模。当不受监控的大脑区域向记录区域发送信号时,就会发生这种情况。要使 NDT 在这种非自主设置中有效地学习样本,可能需要修改架构以显式地对动态和输入进行建模。
  • 未来方向:
    • 单个 Transformer 模型可以产生有关神经活动的快速和慢速特征的见解,揭示活动中自然映射到动物行为的多尺度性质的层次结构。(分布式层次结构)
    • Transformer 已被有效地用于理解多种模式数据的交互。例如,vision-language transformers产生由伴随图像语境化的语言表示。类似的技术可用于构建模型,可以处理包含多个大脑区域的记录、不同的记录方式和行为测量。(多模态)

创作不易,麻烦点点赞和关注咯!

学术会议征稿
  • 想要了解国内主办的覆盖学科最全最广的学术会议,请前往【所有会议官网】:
    学术会议官网www.ais.cn


http://www.ppmy.cn/embedded/108817.html

相关文章

2.2.3 UDP的可靠传输协议QUIC 1

2.2.3 UDP的可靠传输协议QUIC darren老师 这个好多啊2:47 3个小时 这里有课件pdf 看official code 对应职位:比如智能终端 udp可靠传输 ack重传 rtt t2收应答 - t1发时刻序号 tcp本来就有,udp没有,在应用层sendto (…

【动手学深度学习】04 数据操作 + 数据预处理(个人向笔记)

数据操作 N维数组是机器学习和神经网络的主要数据结构其中 2-d 矩阵中每一行表示每一行表示一个样本 当维度来到三维的时候则可以表示成一张图片,再加一维就可以变成多张图片,再加一维则可以变成一个视频 访问元素 冒号表示从冒号左边的元素到冒号右…

MAT:一款针对MSSQL服务器的安全检测与审计工具

关于MAT MAT是一款针对MSSQL服务器的安全检测与审计工具,该工具使用C#开发,可以帮助广大研究人员快速识别和发现MSSQL 服务器中的安全问题,并实现安全检测与审计目的。 功能介绍 1、执行自动检查并识别安全问题; 2、允许通过 Win…

什么是云计算?

1.云计算的概念? 现阶段广为人们所接受的是美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)给出的定义:“云计算”是一种按使用量付费的模式,这种模式提供可用的、便捷的、…

Java网络编程入门

在现代软件开发中,网络编程是一项不可或缺的技能。Java提供了强大的网络编程支持,使得开发者能够轻松地创建网络应用程序。今天将介绍Java中的网络编程基础,重点讲解Socket和ServerSocket类的使用。 什么是Socket? Socket是网络通…

计算机毕业设计选题推荐-酒店预订系统-Java/Python项目实战(亮点:数据备份、库存预警、数据统计)

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

经验笔记:软件许可(License)

软件许可笔记 引言 在当今数字化时代,软件已成为各行各业不可或缺的一部分。无论是个人用户还是企业机构,软件的选择和使用都至关重要。然而,软件的分发和使用并非无序,而是受到各种软件许可的规范。软件许可不仅定义了软件的使…

Linux网络编程IO管理

网络 IO 涉及到两个系统对象,一个是用户空间调用 IO 的进程或者线程,一个是内核空间的内核系统,比如发生 IO 操作 read 时,它会经历两个阶段: 等待内核协议栈的数据准备就绪;将内核中的数据拷贝到用户态的…

从零开始构建大语言模型并进行微调:全面指南

要从0开始搭建并训练一个大语言模型(LLM),涉及到多个步骤和资源,包括理论理解、工具使用、数据准备、模型训练与微调。以下是一个从基础到应用的指南,帮助你理解并逐步实现这一目标。 1. 理解基础概念 在开始搭建大语…

线性调频信号脉冲压缩

注意,如果用线性调频信号频谱省略前面常数因子,得到的脉冲压缩信号也会有一个幅度的不同

Golang | Leetcode Golang题解之第389题找不同

题目: 题解: func findTheDifference(s, t string) (diff byte) {for i : range s {diff ^ s[i] ^ t[i]}return diff ^ t[len(t)-1] }

Linux入门攻坚——31、rpc概念及nfs和samba

NFS:Network File System 传统意义上,文件系统在内核中实现 RPC:函数调用(远程主机上的函数),Remote Procedure Call protocol 一部分功能由本地程序完成 另一部分功能由远程主机上的 NFS本质…

【Python】按格式输出指定内容至新的Excel表中

优化之前写的文档更新工具,输出指定列的数据到公式表中,且确保数值单元格不会被识别为文本,导致Excel文档数值计算公式失效 ExcelTool.py import os import pandas as pd from openpyxl import load_workbook import json### Excel表指定shee…

Ubuntu20.04更新系统推送内容后找不到ros_pcl

本来用的好好的,手贱点了更新,结果报错: Could not find the required component pcl_ros. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it c…

高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标

高斯平面直角坐标系(Gauss-Krger 坐标系)是基于 高斯-克吕格投影 的一种常见的平面坐标系统,主要用于地理信息系统 (GIS)、测绘和工程等领域。该坐标系将地球表面的经纬度(地理坐标)通过一种投影方式转换为平面直角坐标,以便在二维平面中进行距离、面积和角度的计算。 一…

彻底理解防抖和节流

目录 防抖(debounce)理解应用场景Underscore库手写基本实现优化实现 节流(throttle)理解应用场景Underscore库手写基本实现优化实现 防抖(debounce) 理解 防抖的核心思想是:在某段时间内&…

每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

乍一看这个题很简单,但是不能用除法,并且在O(N)时间复杂度完成或许有点难度。 考虑到不能用除法,如果我们要计算输出结果位置i的值,我们就要获取这个位置左边的乘积和右边的乘积,那么我新设立两个数组L和R。 对于L来…

WebSocket详解

介绍 WebSocket 是基于 TCP 的一种新的网络协议。 它实现了浏览器与服务器全双工通信——浏览器和服务器只需完成一次握手,就可创建持久性的连接, 并进行双向数据传输。 全双工:意思就是服务器向浏览器发送数据的同时,浏览器也…

Excel文档的读取(1)

熟悉使用Excel的同学应该都知道,在单个Excel表格里想要分商品计算总销售额,使用数据透视表也可以非常快速方便的获得结果。但当有非常大量的Excel文件需要处理时,每一个Excel文件单独去做数据透视也会消耗大量的时间。就算使用Power Query这样…

springboot学习(10)(自定义starter)(自定义mybatis的starter)(解决:java:错误:不支持发行版本?)

目录 一、引言 (1)为什么要学习自定义starter? (2)如何自定义starter? 二、制作一个自定义mybatis-starter (1)需求 (2)步骤 (3)开始实…