深入研究scRNA-seq基础模型

news2024/9/27 15:27:59

基础模型在大量未标记的数据集上进行预训练,然后在特定任务上进行微调,最近基础模型在生物学应用中取得了成功。该文探讨了最近的scRNA-seq基础模型,scBERT和scGPT。专注于细胞类型注释的微调任务,主要探索了与简单基线,比如L1正则化的logistic regression相比,预训练模型的优势和缺陷,包括few shot设置。作者还进行了消融实验,以了解预训练是否真的能提高模型性能。最后,以scBERT为例,作者演示了微调对超参数设置和参数初始化的敏感性。综上所述,该文的结果强调了严格测试基础模型的重要性,并对模型学习的嵌入进行思考,以便更有效地利用这些模型来促进单细胞数据分析。

来自:A Deep Dive into Single-Cell RNA Sequencing Foundation Models

目录

  • 背景概述
  • 方法
  • 部分实验结果
    • 对于scBERT,在不学习丰富表征的情况下,可以获得良好的预训练精度和微调精度

背景概述

scRNA-seq数据的高质量大规模基础模型可以大大提高单细胞RNA测序分析管道的性能,最近开发了几个基础模型,如scBERT、scGPT、Geneformer、scFoundation和scSimilarity。这些模型采用预训练+微调范式,在下游任务上对模型进行微调时,理论上需要收集比从头开始训练模型所需的小得多的特定于应用的数据集。这种样本效率在生物学领域具有特别的价值,在生物学领域,获取标签可能具有挑战性或昂贵,导致下游任务的可用数据集很小。

在该文中,作者探讨了两个模型,scBERT和scGPT。专注于细胞类型注释的微调任务,作者提供了原始论文研究以外的新基准,以检查这些基础模型在该任务的能力。然后,以scBERT为例,作者演示了微调对超参数设置和参数初始化的敏感性。实验结果强调了严格测试基础模型的重要性,以便更有效地利用这些模型促进单细胞数据分析。

方法

图1概述了的不同模型。对于研究的两个基础模型,scBERT和scGPT,都依赖于基于Transformer的架构来处理输入,但它们在如何表示输入数据、模型架构和训练过程方面有所不同。作者还分析了一个逻辑回归基线,该基线直接训练感兴趣的特定任务而不进行预训练。

scBERT
scBERT将每个基因编码为两个embedding的总和:一个代表基因的规范化,即binned log-scale表达水平,另一个通过先前开发的gene2vec嵌入指定基因身份,允许模型在无序数据中区分基因。由此产生的嵌入通过内存高效的Performer进行处理以产生输出。

与BERT中的预训练策略非常相似,scBERT通过对112万个人类细胞的imputation任务进行预训练,其中“被mask”的基因表达值被预测为细胞中所有其他基因嵌入的函数。在微调过程中,一个3层神经网络在较小的标记数据集上进行训练,以获取Transformer层输出的基因嵌入并预测细胞类型。在该文中,作者还评估了一个“无预训练”版本的scBERT,在微调时将Transformer设置为随机初始化的权重。

scGPT
scGPT在很大程度上遵循与scBERT相似的体系结构和预训练范例,只是有一些不同的设计选择。scGPT不是在log-scale上对输入数据进行分组,而是根据基因的表达对基因进行分组,从而使基因均匀分布在每个分组中。代替gene2vec,scGPT使用随机基因身份嵌入和附加的描述元信息的“条件嵌入”来区分每个基因。scGPT不是Performer架构,而是通过Flash-Attention处理嵌入。除了基因嵌入之外,scGPT还进一步训练一个CLS token来总结每个细胞。scGPT使用受OpenAI的GPT系列启发的因果掩蔽策略,实现了生成式预训练。

该模型在3300万个人类细胞上进行了预训练,并通过更广泛的微调任务进行了评估,包括细胞类型注释、遗传扰动预测、批次校正和多组学整合。本文主要研究细胞类型注释。

Logistic Regression
与之前描述的深度学习基础模型不同,逻辑回归基线不遵循预训练/微调范式。这种方法具有最少数量的可训练参数,并且简单地估计对数归一化基因表达数据的线性系数。作者使用L1正则化来提高稀疏性。

实验流程
在这项工作中,作者首先探索了预训练模型(如scGPT或scBERT)与简单基线(L1正则化逻辑回归)相比的相对性能。由于预训练表示对于训练数据有限的少样本预测特别有用,因此作者额外评估了每个模型在few shot设置中注释细胞类型的能力。作者发现,一个简单的逻辑回归基线与预训练的模型相比,即使在few shot设置中,也可以对细胞类型进行注释。

接下来,作者试图了解预训练对基于Transformer模型的性能有多大贡献。为此,跳过预训练过程,直接对模型进行细胞类型标注的微调。实验表明,对于scBERT,去除预训练不会对模型在细胞类型注释上的性能产生有意义的影响,而对于scGPT,它会。作者进一步证明,在不学习有意义的基因表示的情况下,scBERT可以在mask预训练和细胞类型注释上获得良好的准确性,注意到良好的准确性并不一定意味着丰富的表示学习。

最后,作者探讨了scBERT对超参数设置和随机种子的鲁棒性,发现这些设置显著影响模型性能。

fig1

  • 图1:对不同方法的原理进行了比较。两个基础模型,scBERT和scGPT,构建输入数据的嵌入,并通过基于Transformer的体系结构处理它们。架构通过mask任务进行训练,并针对感兴趣的任务进行微调。作者将这些模型与逻辑回归和没有预训练的Transformer架构进行比较,以了解预训练/微调范式在几种不同实验环境中的潜在好处。

部分实验结果

对于scBERT,在不学习丰富表征的情况下,可以获得良好的预训练精度和微调精度

尽管在预训练目标上表现良好(准确率为78%),但该文的实验显示预训练的scBERT并不影响最终的微调性能。在本节中,作者将删除scBERT架构的另一个组件,并表明具有良好的预训练或微调accuracy不足以证明模型正在学习丰富的基因表示。

在scBERT中,给定基因的embedding是该基因的两个独立embedding的总和:“gene2vec”嵌入和“expression”嵌入。“gene2vec”嵌入将每个基因的身份编码,并且对于数据集中每个细胞中的每个基因都是恒定的。“expression”嵌入将给定基因的表达根据其分箱表达(分箱为[0-1)、[1-3)、[3-7)、[7-15)、[15-31]和31+library size-normalized UMIs)将其转换为六个随机初始化向量之一。expression嵌入(而不是gene2vec嵌入)驱动不同细胞下给定基因的可变性,并且是用于预训练模型的mask任务的重点。

在本实验中,作者从每个基因的表示中去除gene2vec嵌入。这严重限制了模型的表示能力,因为现在只有六种expression嵌入用于表示数据集中的每个基因。在预训练过程中,模型不知道基因的身份,每个被mask的基因都有相同的“上下文”。每个落在同一表达bin中的基因都是相同的。例如,在整个Panglao预训练数据集中,95%的基因被相同地表示为落在[0,1)中,2%的基因在[1-3)中,1.5%的基因在[3-7)中。

考虑到该模型不知道哪个基因是哪个基因,人们可能会认为,scBERT将无法高精度地预测基因的表达。然而,实验观察到,即使在这种具有挑战性的设置中,scBERT在Panglao验证集上预测隐藏基因表达的准确率达到72%(相比之下,当同时使用gene2vec +expression嵌入时,准确率为78%)。在对“no gene2vec”实验进行反思后,作者发现,在Panglao预训练验证集中的67,880个细胞中,有99.8%的细胞,scBERT预测了该细胞中所有被mask基因的每个细胞最常见的表达bin。这些结果表明,使用scBERT的bin表达嵌入方案,一个模型可以依靠简单的启发式方法,比如预测最常见的表达bin,在不学习上下文基因表示的情况下,在mask预训练中表现良好。

在微调方面,未经gene2vec嵌入的scBERT在细胞类型注释任务上表现出下降但仍合理的性能(“no gene2vec”准确率为0.701,F1为0.595)。注意到,作者没有专门为no gene2vec实验重新调优超参数,而是使用之前确定的超参数来微调完整的scBERT模型,因此,在这里报告的性能可能低估了专门为该任务调优超参数的潜在性能。虽然逻辑回归基线和无预训练消融实验已经证明,在PBMC数据中,准确的细胞类型注释不需要丰富的表示,但这一结果进一步强化了细胞类型注释的性能并不能代表基础模型的表示学习能力
tab2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV教程04:结合pillow在图片上显示中文文字

1.如果添加的内容是纯英文文字,直接使用cv2.putText 函数操作即可。但它不支持自定义字体文件,仅限于这些内置的字体样式。如果你需要更复杂的字体支持,可能需要使用其他库,如 Python Imaging Library (PIL) 或 Pillow。可用的字体…

判断用户是否在pwa环境中打开运行?(已安装的 PWA 与未安装的 PWA 网站之间有什么区别?)以及pwa安装成功/失败的回调

前言: 👉vue3tsvite项目中使用vite-plugin-pwa搭建 PWA 项目,以及如何处理pwa安装图标的显示隐藏 👉pwa在iframe下能否显示,以及在iframe下相关问题解析 如何判断用户是否在pwa环境中运行? 根据pwa配置的display-mo…

下载qwen2-72b报错

下载大模型或者是国外的大文件,最好配置git的代理,报错如下:https://modelscope.cn/models/qwen/Qwen2-72B 增加以下配置解决 git config --global http.sslVerify “false” git config --global advice.detachedHead false

小程序测试文档

预约小程序测试文档 一、访客 1、访客审批预约在vue修改过成功以后&#xff0c;在小程序页面未显示 解决办法 在pages\appointQuery\appointQuery.wxml页面中修改 <view class"order_right"><view class"order_status_left" wx:if"{{item…

想发Top实力不够:顶刊也能“水”!影响因子9.1 ,国人友好,2个月秒速录用

本周投稿推荐 SCI&EI • 4区“水刊”&#xff0c;纯正刊&#xff08;来稿即录&#xff09; • CCF-B类&#xff0c;IEEE一区-Top&#xff08;3天初审&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; 知网&#xff08;CNKI&#xff09;、谷歌学术 …

exptern “C“的作用,在 C 和 CPP 中分别调用 openblas 中的 gemm 为例

openblas提供的sgemm有两种方式&#xff0c;一种是通过cblas&#xff0c;另一种是直接声明并调用 sgemm_ 其中&#xff0c;cblas方式是更正规调用方法&#xff1b; 1&#xff0c;调用openblas的 sgemm 的两种方式 1.1 c语言程序中使用 sgemm hello_sgemm.c #include <st…

层次分析法(评价类问题)

本文章内容来自&#xff1a;​​​​​​​ 层次分析法模型讲解(附matlab和python代码) 【数学建模快速入门】数模加油站 江北_哔哩哔哩_bilibili 一. 概念 做决策依托于量化分析&#xff0c;量化分析依托于选择的指标以及各项指标的权重&#xff08;重要性及对结果的影响程度…

XLT开关矩阵

开关矩阵 苏州新利通 系列化开关矩阵是提高被测件测试效率、实现自动化测试的核心设备&#xff0c;是基于标准控制平台可进行定制化设计的产品。系列化开关矩阵工作频率范围覆盖DC~67GHz&#xff0c;可通过LAN、GPIB、RS232和USB-B等标准控制接口&#xff0c;支持客户端、Web…

ElasticSearch安装与集群部署

ElasticSearch安装与集群部署 很多小伙伴第一次接触ElasticSearch的时候是一脸愁容,这个东西他怎么用啊,不知道从哪里安装,那我们今天就着重从哪里下载?怎么下载?怎么安装?来研究一下吧! windows下载安装ElasticSearch 下载地址&#xff1a;https://www.elastic.co/cn/do…

移动端下拉加载更多(h5,小程序)

1.h5,使用原生方式监听页面滚动下拉加载更多 <template><div></div> </template><script> export default {data() {return {loadflag: true,maxpages: 0, //最大页码currentpage: 0, //当前页listData: [],config: {page: 1,pageSize: 15,tota…

Unity开发的Domino多米诺3D小游戏源码

Unity开发的Domino多米诺3D小游戏源码下载地址

计算机组成原理 - 总线、输入/输出系统

总线 考纲内容 总线的基本概念总线的组成及性能指标总线事务和定时 本章大多以选择题的形式出现&#xff0c;特别是总线的特点、猝发传输方式、性能指标、定时方式及常见的总线标准等 思考以下问题&#xff1a; 1、引入总线结构有什么好处? 2、引入总线结构会导致什么问题…

公司官网为何建议用OV SSL证书?如何申请?

随着网络安全威胁的日益增多&#xff0c;保护用户数据安全变得尤为重要。其中SSL&#xff08;Secure Sockets Layer&#xff09;证书成为了保障网站安全的关键技术之一。而在众多SSL证书中&#xff0c;OV&#xff08;Organization Validation&#xff09;SSL证书因其独特的优势…

JVM(九)深入解析Java字节码技术与执行模型

这篇文章深入探讨了Java字节码技术&#xff0c;包括字节码的简介、获取字节码清单的方法、解读字节码清单、查看class文件中的常量池信息、查看方法信息、线程栈与字节码执行模型、方法体中的字节码解读、对象初始化指令、栈内存操作指令、局部变量表、流程控制指令、算术运算指…

读取压缩文件

读取压缩文件 1、背景 D盘下面有一个zipTest1.zip压缩文件 1.1 zipTest里面的内容 1.2 zipTest中有三个文件夹dir1、dir2、dir3 1.3 每一个文件夹下都有一个.txt文件 2、要求 读取D盘下面zipTest1.zip压缩文件里的内容到D盘下面zipTest2 3、实现 public static void main…

Go语言使用cobra开发第一个命令行程序

源码下载 本教程源码下载地址&#xff1a;https://github.com/zhangdapeng520/zdpgo_cobra_examples 案例说明 实现一个简单的命令行程序&#xff0c;能够将输入的单词转换为大写。 使用演示 执行命令&#xff1a; go run .\main.go word -u -s hello输出结果&#xff1a…

XXE靶机教学

arp-scan -l主机发现 arp-scan -l 端口扫描 nmap -p- 192.168.48.139 服务探测 nmap -p80,5355 -sT -sC -sV 192.168.48.139 目录扫描 dirsearch -u http://192.168.48.139 访问robots.txt 发现两个可访问路径 burp抓包 测试是否存在xxe漏洞 <?xml version "1.…

超声波清洗机性价比高的型号有哪些?四款值得关注的高性能超声波清洗机推荐

如果你发现眼镜变得非常脏&#xff0c;甚至出现青铜色的污渍&#xff0c;那说明是时候清洁眼镜了&#xff01;很多人往往不在意这些细节&#xff0c;结果眼镜越戴越模糊&#xff0c;实际上这主要是因为镜片上的油污、手指皮肤的残留以及生活中的灰尘积累。如果不及时清洁&#…

【实现100个unity特效之15】最简单的方法使用shader graphs实现2d树叶草的随风摇摆效果

文章目录 前言新建shader graphs新建材质效果完结 前言 本文只是实现一个简单版本的2d树叶草随风摇摆的效果&#xff0c;如果你想要实现更加复杂的效果&#xff0c;包括2d互动草&#xff0c;你可以参考我之前的文章&#xff1a; 【推荐100个unity插件之24】实现2d交互式草树叶…

瑞熙贝通智慧库房物料管理系统v3.0

一、系统介绍 智慧库房物料软件是库房全流程管理中的管理方式&#xff0c;为强化库房在各个环节管理&#xff0c;提高库房物料管理的效率&#xff0c;针对库房物料管理中存在的问题&#xff0c;瑞熙贝通在库房物料管理工作等方面不断创新&#xff0c;在制度建设、管理流程设计…