MIT-6-874-生物科学深度学习笔记-全-

MIT 6.874 生物科学深度学习笔记(全)

🧬 课程 P1:第01讲 - 课程介绍、AI与ML

在本节课中,我们将学习麻省理工学院课程“生命科学中的深度学习”的总体介绍。我们将了解课程目标、后勤安排、核心模块以及为什么深度学习在生命科学领域至关重要。


📚 课程概述与后勤

本课程是麻省理工学院课程编号 6.874,也被称为 HST.506。课程将在基因调控、疾病机制、治疗设计、病历与医学影像等计算生物学核心问题上,深入应用机器学习方法。

课程将在周二和周四下午进行。辅导课将在周五下午举行,这是可选的,但对于完成出色的期末项目非常有帮助。

教学团队成员包括 Dylan、Azhang、Tess 和 Jackie。他们的研究兴趣涵盖机器学习与基因组学、计算统计学解决生物学问题、深度学习技术解析生物数据以及合成生物学与药物发现等领域。

课程网站包含往年所有讲座录音的链接。Canvas 网站可以通过特定 URL 访问。课程相关问题可以通过 Piazza 或指定邮箱联系教学团队。


🎯 先修知识与课程要求

学习本课程需要以下几个基础:

  1. 微积分与线性代数:涉及张量、矩阵、向量和特征值等数学与计算知识。
  2. 概率与统计:这是机器学习和深度学习的普遍基础。
  3. 编程:课程习题集和实验都需要编程,以深入探索课程主题。
  4. 生物学入门知识:课程将在此基础上进行构建。

课程评分构成如下:

  • 习题集:共五个,可放弃最差的一个,占总成绩的 30%
  • 测验:一个半小时,可带一张笔记,占总成绩的 5%
  • 期末项目:由2-3名学生组队完成,占总成绩的 5%
  • 课堂参与与转录:占总成绩的 10%,包括指导会议、客座讲座和文献研讨。

学生将很快通过邮件收到 Google Cloud 优惠券,以便使用 Jupyter Notebook 完成习题集。


❓ 为什么生命科学需要深度学习?

深度学习出版物中约有8%是关于生物信息学的,这是一个巨大的比例。例如,AlphaFold 在蛋白质结构预测上达到了与实验方法相当的精度,这从根本上改变了我们对生物学的理解。

三个领域的融合推动了这一变革:

  1. 廉价、高质量的大数据集:包括测序数据、影像数据、医疗记录和文本数据库。
  2. 机器学习方法的根本性进步:包括新算法和组合多种数据的方式。
  3. 高性能计算:如图形处理器(GPU)提供了强大的计算单元,极大地加速了机器学习。

因此,本课程旨在培养能够处理这些复杂生物数据集的新一代学生。


🗺️ 课程大纲与核心模块

课程内容分为五个主要模块:

  1. 机器学习基础:涵盖卷积神经网络(CNN)、循环神经网络(RNN)、图神经网络(GNN)、模型可解释性、降维以及生成模型(如GAN和VAE)。
  2. 基因调控回路:深入探讨基因组学,包括DNA可及性、增强子、染色质、基因调控、转录因子、DNA甲基化、基因表达与剪接,并重点介绍如何用深度学习方法直接从基因组推断这些结构。
  3. 疾病与变异:探讨如何利用深度学习发现遗传变异,理解变异如何影响基因调控电路和表达水平,以及如何利用电子健康记录推断与疾病相关的变异。
  4. 结构与药物设计:聚焦蛋白质-蛋白质相互作用、蛋白质结构、折叠以及药物开发,重点介绍图神经网络在这些领域的应用。
  5. 影像分析:研究生物学中各类影像分析应用,如形态学、治疗学、视频处理和结构测定,这些都非常适合深度学习。

此外,课程最后还会涉及医疗保健中的文本应用、神经科学以及癌症与传染病等前沿交叉领域。


📝 习题集与项目

课程将通过五个习题集引导学生实践:

  1. 习题集1:TensorFlow 入门,完成字符识别等基础任务。
  2. 习题集2:将机器学习技术应用于基因组数据,识别序列模式。
  3. 习题集3:深入分析单细胞RNA测序数据,关联遗传变异与疾病。
  4. 习题集4:应用图神经网络于蛋白质折叠和药物设计。
  5. 习题集5:专注于医学影像分析。

学生将在整个学期中完成一个团队项目(2-3人)。项目旨在模拟真实的研究过程,包括:构建生物学问题、收集文献与数据、应用新算法、解释结果、接收同行评议、撰写科学论文和进行成果展示。

项目设有多个里程碑,如提交初步想法、数据管道演示、中期报告和最终演示,以确保稳步推进。


🤖 机器学习核心概念简介

上一节我们介绍了课程的整体框架,本节中我们来看看支撑本课程的机器学习核心思想。

传统人工智能依赖于手工编写的规则和评分函数。例如,在国际象棋中,程序需要人类为每个棋盘位置手工设计一个评分函数,然后通过搜索算法(如Minimax)来选择最佳走法。

深度学习改变了这一范式。它不依赖专家定义规则,而是让机器通过数据自我学习。例如,AlphaZero 通过自我对弈来理解游戏,而非被明确告知规则。这种方式能更好地应对现实世界和自然环境的极端复杂性。

机器学习的核心是从可观测数据中推断世界的隐藏状态。一个基础框架是贝叶斯推理:

公式
P(假设 | 数据) = [P(数据 | 假设) * P(假设)] / P(数据)
其中:

  • P(假设 | 数据) 是后验概率,即在观察到数据后,假设成立的概率。
  • P(数据 | 假设) 是似然,即假设成立时观察到该数据的概率。
  • P(假设) 是先验概率,即在观察数据前,假设成立的概率。
  • P(数据) 是证据或边缘似然,即观察到该数据的总概率。

这允许我们从生成模型(由因推果)转向判别模型(由果推因)。

机器学习主要分为以下几类:

以下是主要的机器学习类型:

  • 监督学习:使用带有标签的数据集训练模型,以对新数据进行分类或回归预测。
  • 无监督学习:在没有标签的数据中发现内在结构或模式,如聚类。
  • 表征学习:自动从数据中学习有用的特征,而非依赖手工设计。深度学习是其中的代表,它通过多层网络构建从简单到抽象的特征层次。

深度学习网络受到生物神经元的启发。生物视觉信号从视网膜像素开始,经过层层神经元处理,逐步抽象出边缘、轮廓、物体部件等概念,最终识别出物体。人工神经网络模拟了这一过程:

代码示意(概念)

# 简化的前馈神经网络层计算
output = activation_function( dot(input, weights) + biases )

其中,activation_function(如 ReLU, Sigmoid)决定了神经元是否“激活”,weightsbiases 是需要通过反向传播算法从数据中学习的参数。


🎉 总结

本节课中,我们一起学习了“生命科学中的深度学习”这门课程的总体介绍。我们了解了课程的目标、安排和评分方式,探讨了深度学习在生命科学领域兴起的原因,并预览了涵盖机器学习基础、基因调控、疾病变异、结构生物学和影像分析五大模块的课程大纲。最后,我们简要介绍了机器学习的核心思想,特别是深度学习如何通过分层学习特征来理解复杂世界。我们期待在接下来的课程中与大家一同深入探索这些激动人心的主题。

课程10:单细胞基因组学入门教程 🧬

在本节课中,我们将学习单细胞基因组学的基础知识。我们将探讨为何需要单细胞分析、现代单细胞RNA测序技术的发展历程、超越RNA的多组学分析、数据处理中的挑战,以及相关的计算方法。

概述:为何需要单细胞分析?

传统批量测序方法提供的是细胞群体的平均测量值,这可能会掩盖细胞间的异质性。单个细胞在基因表达上存在巨大差异,这种差异可能源于环境刺激、细胞间相互作用、细胞周期阶段、转录爆发事件或分化轨迹。特别是在癌症研究中,肿瘤细胞间的基因型差异会导致显著的表型多样性。因此,单细胞分析对于揭示细胞多样性、捕获罕见事件以及理解复杂的生物过程至关重要。

单细胞分析的传统与现代技术

上一节我们介绍了单细胞分析的必要性,本节中我们来看看实现单细胞分析的技术是如何演进的。

早期技术依赖于对单个细胞进行物理分离和单独分析,例如通过成像、单细胞PCR或原位测序。这些技术能够揭示单个细胞中基因表达的时空动态和异质性。

现代技术的革命性进步在于通量的大幅提升。主要有三类技术路径:

  • 基于孔板的技术 (如 Smart-seq2):将单个细胞分选到独立的孔板中进行RNA扩增和测序。优点是捕获基因数多,但成本较高,通量有限。
  • 基于液滴的技术 (如 10x Genomics):利用微流控技术将单个细胞与带有独特条形码的微珠共同包裹在油滴中。所有细胞的RNA在后端混合进行一次性测序,再通过条形码追溯RNA的细胞来源。这种方法实现了高通量和相对较低的成本。
  • 组合索引技术 (如 Split-seq):不进行物理上的单细胞分离,而是通过多轮细胞池化与重新分配,为每个细胞的RNA添加独特的组合条形码。最后进行混合测序,并通过条形码组合解析细胞身份。这种方法成本极低,适合超大规模研究。

超越RNA:单细胞多组学

我们了解了单细胞RNA测序,但细胞的特性远不止RNA表达。现在,技术已扩展到在单细胞水平同时测量多种分子层面,即单细胞多组学。

常见的多组学分析包括:

  • 单细胞ATAC-seq:测量染色质可及性,用于推断转录因子活性和基因调控状态。
  • 单细胞DNA甲基化测序:分析表观遗传修饰。
  • 蛋白质组学:通过抗体标记(如CITE-seq)检测细胞表面或细胞内蛋白质丰度。

整合这些多模态数据,可以更全面地刻画细胞状态和功能。

单细胞数据的计算挑战与深度学习方法

单细胞数据具有高维度、高噪声(含大量技术性零值)和稀疏性等特点。计算分析的核心任务包括降维、聚类、细胞类型注释、轨迹推断和差异表达分析等。

近年来,深度学习方法在该领域显示出强大潜力。变分自编码器(VAE)等生成模型被广泛用于学习数据的低维潜在表示(潜在空间),并进行去噪和插补。

以下是VAE用于单细胞数据去噪的一个概念性代码框架:

# 伪代码示意:基于VAE的单细胞数据去噪模型
class scVAE(nn.Module):
    def __init__(self, input_dim, latent_dim):
        super().__init__()
        # 编码器:将高维基因表达数据压缩到低维潜在空间
        self.encoder = nn.Sequential(
            nn.Linear(input_dim, 128),
            nn.ReLU(),
            nn.Linear(128, latent_dim * 2) # 输出均值和方差
        )
        # 解码器:从潜在空间重建基因表达数据
        self.decoder = nn.Sequential(
            nn.Linear(latent_dim, 128),
            nn.ReLU(),
            nn.Linear(128, input_dim),
            # 通常使用适合计数数据的损失函数,如负二项分布
        )

    def reparameterize(self, mu, logvar):
        # 重参数化技巧,用于从分布中采样
        std = torch.exp(0.5*logvar)
        eps = torch.randn_like(std)
        return mu + eps*std

    def forward(self, x):
        # 编码
        h = self.encoder(x)
        mu, logvar = h.chunk(2, dim=-1)
        z = self.reparameterize(mu, logvar)
        # 解码重建
        x_recon = self.decoder(z)
        return x_recon, mu, logvar

在潜在空间中,我们可以进行更有意义的操作,例如:

  • 扰动预测:通过潜在空间向量算术(如 z_perturbed = z_control + (z_stimulated - z_control)),预测细胞对药物或刺激的反应。
  • 批次效应校正:将批次信息作为条件输入模型,学习不受批次影响的生物变异表示。
  • 跨数据集整合与标签转移:利用半监督或条件VAE模型,将已知细胞类型的注释迁移到新的未标注数据集。

总结

本节课中我们一起学习了单细胞基因组学的核心内容。我们从单细胞分析的必要性出发,回顾了从传统到现代的高通量测序技术发展,包括基于孔板、液滴和组合索引的主流方法。接着,我们探讨了超越RNA测序的单细胞多组学前沿。最后,我们深入了解了处理单细胞数据时面临的计算挑战,并重点介绍了变分自编码器等深度学习方法如何在数据去噪、潜在空间学习、扰动预测和批次校正等方面发挥重要作用。这些工具正推动着我们对细胞异质性和复杂生物系统的理解迈向新的深度。

课程 P11:降维 📉

在本节课中,我们将学习单细胞数据分析中的降维技术。课程将涵盖监督与非监督方法、线性与非线性降维,并探讨其与深度学习的联系。我们还将聆听Josh Welch博士关于多组学数据整合的客座讲座。


概述

降维是分析高维数据(如单细胞基因表达数据)的关键步骤。它能帮助我们可视化数据、减少噪声、识别数据中的主要变异来源,并发现潜在的细胞类型或状态。本节课将从线性方法(如主成分分析)入手,逐步深入到非线性方法(如t-SNE),最后介绍整合多模态数据的先进技术。


线性降维方法

上一节我们概述了降维的目标。本节中,我们来看看最经典的线性降维方法——主成分分析。

主成分分析

主成分分析旨在寻找一个低维线性投影,以最优方式捕捉数据变异的主要来源。主成分是数据变异最大的方向轴。

给定一个数据矩阵,PCA通过特征值分解(对于方阵)或奇异值分解(对于一般矩阵)来找到这些主成分。其核心思想是将原始数据转换到一组新的坐标轴上(即主成分),其中前几个成分包含了数据的大部分信息。

公式描述
对于一个中心化后的数据矩阵 X,其协方差矩阵为 C = XᵀX / (n-1)。PCA求解该协方差矩阵的特征值和特征向量:
C v = λ v
其中,λ 是特征值,v 是对应的特征向量。特征值大小表示对应主成分所解释的方差。

代码描述(概念性):

# 假设 data 是一个 numpy 数组,行为样本,列为基因
from sklearn.decomposition import PCA
pca = PCA(n_components=2) # 降至2维
reduced_data = pca.fit_transform(data)

奇异值分解

对于非方阵的数据矩阵(例如,基因数不等于细胞数),我们需要使用奇异值分解。SVD可以将任意矩阵分解为三个矩阵的乘积,其奇异值同样指示了数据变异的重要性。

公式描述
对于矩阵 A,其SVD分解为:
A = U Σ Vᵀ
其中,UV 是正交矩阵,Σ 是对角矩阵,其对角线元素即为奇异值。保留前k个最大的奇异值及其对应的向量,即可得到最优的k秩近似。


非线性降维方法

上一节我们介绍了PCA这种线性投影方法。然而,生物数据中的关系往往是非线性的。本节中我们来看看非线性降维方法,例如t-SNE。

t-分布随机邻域嵌入

t-SNE的核心思想是在低维空间中保持数据点之间的局部相似性结构,而非全局距离。它特别擅长在二维或三维空间中形成清晰的簇,便于可视化。

以下是t-SNE的关键步骤:

  1. 计算高维空间中的相似性:对于每个数据点i,计算其与点j的相似性条件概率 ( p_{j|i} ),该概率与以点i为中心的高斯分布概率密度成正比。
  2. 定义低维空间中的相似性:在低维嵌入中,使用学生t分布(重尾分布)来计算点i和点j之间的相似性 ( q_{ij} )。
  3. 优化嵌入:通过梯度下降法,最小化高维分布P和低维分布Q之间的Kullback-Leibler散度,从而优化低维空间中的点坐标。

公式描述
目标是最小化KL散度:
( C = KL(P || Q) = \sum_i \sum_j p_{ij} \log\frac{p_{ij}}{q_{ij}} )
其中,( p_{ii}=0 ),且 ( p_{ij} = \frac{p_{j|i} + p_{i|j}}{2n} ) 以使其对称。

t-SNE的参数(如困惑度)对结果影响很大,需要根据数据特点进行调整。


多组学数据整合

上一节我们讨论了如何对单一模态的数据进行降维。在单细胞研究中,我们常同时获得多种类型的组学数据。本节中,我们将了解如何整合这些多模态数据以获得更全面的细胞身份视图。

整合非负矩阵分解

Josh Welch博士介绍的Liger工具使用整合非负矩阵分解方法。其目标是整合多个共享同一组特征(如基因)的单细胞数据集(例如来自不同个体、物种或不同组学模态)。

iNMF为每个“元基因”(metagene,即共表达基因集)学习一个共享因子和一个数据集特定因子。共享因子代表所有数据集中共有的生物信号,而数据集特定因子捕捉该信号在不同数据集中的独特变化。

这种方法能:

  • 实现跨数据集的联合聚类,识别共同的细胞类型。
  • 获得可解释的“元基因”,用于理解生物学通路或技术因素(如线粒体基因污染)。
  • 整合不同模态数据(如RNA-seq和ATAC-seq),通过“伪表达量”计算将表观基因组特征与基因表达关联起来。

在线学习扩展

为了处理大规模或持续产生的数据流,Liger扩展了在线学习算法。该算法可以:

  1. 处理超出内存的大型数据集。
  2. 在新增数据到达时迭代更新模型,无需重新分析全部历史数据。
  3. 将新数据投影到已有的参考坐标系中。

处理部分重叠特征

当整合的数据集特征仅部分重叠时(如空间转录组仅测部分基因,而scRNA-seq测全部基因),扩展的iNMF算法可以同时利用共享和非共享的特征,从而更充分地利用信息。

生成模型:结合VAE与GAN

最后,Josh博士介绍了其团队将变分自编码器与生成对抗网络结合的工作(Michigan模型)。VAE善于学习解耦的、有意义的潜在表示,而GAN善于生成逼真的样本。结合二者优势的模型,有望用于生成真实的单细胞表达谱,并对细胞特性进行预测和干预。


总结

本节课我们一起学习了单细胞数据分析中的降维技术。

  • 我们从线性降维(PCA, SVD)开始,理解了如何找到数据变异的主要线性方向。
  • 然后探讨了非线性降维(t-SNE),它通过保持局部相似性来揭示复杂的流形结构。
  • 最后,通过Josh Welch博士的讲座,我们学习了利用整合非负矩阵分解等先进方法,来整合多组学、多批次、多模态的单细胞数据,从而对细胞身份进行更定量、更全面的定义。这些技术是解析高维生物数据、发现新生物学的强大工具。

🧬 课程12:全基因组关联研究与疾病回路解析

在本节课中,我们将学习人类遗传学的基础知识,特别是如何通过全基因组关联研究来识别和解释与疾病相关的遗传变异。我们将从遗传学的基本概念开始,逐步深入到GWAS的原理、挑战,以及如何利用计算工具来理解非编码变异的功能机制。


🧬 人类遗传学基础

上一节我们介绍了课程的整体目标,本节中我们来看看人类遗传学的历史背景和核心概念。

人们很早就知道,通过选择性繁殖可以改变动植物的性状,例如培育出皮毛更厚的动物或可食用的玉米。关于遗传模式的观察,如眼睛和头发颜色,也已有很长的历史。然而,理解其内在机制则经历了漫长的过程。

孟德尔通过豌豆实验提出了颗粒遗传的概念,即遗传不是混合的,而是由离散的遗传单位(后来称为基因)控制,这些单位有显性和隐性之分。然而,人类许多性状(如身高、肤色)表现为连续变化,这与孟德尔的离散观察似乎矛盾。

这一矛盾在20世纪初由费舍尔等统计学家解决。他们意识到,连续的性状变异可以由多个孟德尔基因座共同解释。即使每个基因只有微小的影响(例如,每个基因影响身高一英寸),多个基因叠加起来就能产生看似连续的分布。这奠定了现代数量遗传学的基础。


🔗 连锁与连锁不平衡

上一节我们介绍了多基因解释连续性状的概念,本节中我们来看看遗传变异在染色体上是如何共同传递的。

摩根和斯特蒂文特发现,位于同一条染色体上且彼此靠近的基因,在遗传时倾向于共同分离,而不是独立分配。这种偏离独立分配的现象被称为连锁。如果两个基因座距离足够远,重组事件会使它们独立分离;如果距离很近,它们则处于连锁不平衡状态,倾向于一起遗传。

这一发现成为连锁分析的基础。在20世纪80年代,科学家利用染色体上的标记(如重复长度多态性)来追踪疾病性状与这些标记的共同分离情况,从而将疾病基因定位到基因组的特定区域。

连锁分析的公式通常基于重组分数(θ) 来计算两个基因座之间的遗传距离。LOD分数(对数优势比)用于评估连锁的证据强度:
LOD = log10(连锁假设下的数据概率 / 无连锁假设下的数据概率)


🧬 遗传变异的类型

上一节我们讨论了如何利用连锁定位基因,本节中我们来看看构成遗传多样性的各种变异类型。

以下是主要的遗传变异类型:

  • 单核苷酸多态性:基因组中单个碱基的改变。例如,A -> T
  • 小插入/缺失:一小段DNA序列的插入或删除。例如,序列中插入 TATGG
  • 短串联重复:一段短序列的多次重复。例如,(GTC)n 重复次数的变化。
  • 结构变异/拷贝数变异:涉及较大片段(>5000个碱基)的插入、删除、倒位或拷贝数变化。

大多数变异位于非编码区,没有明显效应。但有些变异会产生重大影响:

  • 位于蛋白质编码区的SNP可能改变氨基酸,例如导致镰状细胞贫血的 A -> T 突变(血红蛋白β链基因)。
  • 位于调控区的变异可能影响基因表达。
  • 短串联重复的异常扩展可导致疾病,如亨廷顿病(HTT基因中CAG重复次数过多)。

根据频率,变异可分为:

  • 常见变异(>5%人群频率)
  • 低频变异(0.5%-5%)
  • 罕见变异(<0.5%)
  • 私有/新生变异(通常仅存在于单个个体或家庭中)

此外,还有体细胞变异,发生在个体从受精卵发育成体的过程中,仅存在于部分细胞。


🧬 常见变异与罕见变异

上一节我们了解了变异的类型,本节中我们来看看研究这些变异的两大策略及其内在联系。

在寻找疾病基因时,我们面临一个核心挑战:效应强度与变异频率之间存在反比关系

  • 罕见变异,强效应:导致孟德尔遗传病(如囊性纤维化)的变异通常非常罕见,但对疾病有巨大影响。这类变异适合用连锁分析在家族中研究。
  • 常见变异,弱效应:与复杂疾病(如糖尿病、精神分裂症)相关的变异通常很常见,但每个变异只轻微增加风险。这类变异需要通过全基因组关联研究在大规模人群中发现。

这种“常见-弱效应”与“罕见-强效应”的二分现象并非巧合。如果一个变异效应很强且有害,自然选择会阻止它在人群中变得常见。反之,效应微弱的变异则可以容忍较高的频率。

GWAS主要捕捉常见、弱效应的变异,而连锁分析擅长发现罕见、强效应的变异。两者共同覆盖了疾病遗传架构的不同层面。


📊 全基因组关联研究详解

上一节我们对比了两种研究策略,本节中我们深入探讨GWAS的具体步骤和计算方法。

GWAS的核心是病例-对照设计。研究者收集患有特定疾病的个体(病例)和未患病的个体(对照),然后比较两组在基因组数百万个位点上的遗传差异。

由于对每个个体进行全基因组测序成本高昂,GWAS通常采用基因分型技术。该技术利用已知的常见变异数据库,通过特异性探针检测个体携带的是参考等位基因还是替代等位基因,成本远低于测序。

获得基因型数据后,需进行严格的质量控制,包括去除低质量样本、排除有亲缘关系的个体、校正群体分层等。

对于每个SNP,我们构建一个列联表,统计病例和对照中携带每个等位基因的人数。然后使用卡方检验来评估观察到的分布是否与随机期望存在显著偏差。

卡方统计量计算公式为:
χ² = Σ (观测值 - 期望值)² / 期望值
其中求和针对列联表中的所有单元格。根据自由度(对于2x2表,df=1)查表即可得到p值。

为了直观展示全基因组范围内的关联信号,我们将每个SNP的 -log10(p值) 绘制成曼哈顿图。每个点代表一个SNP,y轴值越高,表示关联越显著。通常,跨越特定阈值(如 p < 5×10⁻⁸,即基因组显著性水平)的峰值区域被认为是关联信号。

我们还可以通过QQ图来评估整体p值分布,检查是否存在因群体分层等技术问题导致的假阳性膨胀,并确认真正的关联信号。


🎯 精细定位与功能阐释的挑战

上一节我们介绍了如何通过GWAS发现关联信号,本节中我们来看看找到关联区域后所面临的下一个巨大挑战。

由于人类群体历史相对较短,重组事件有限,基因组变异是以单倍型块的形式共同遗传的。这意味着,在一个关联区域内,许多SNP彼此高度相关(处于连锁不平衡中)。因此,GWAS发现的显著信号往往代表一个包含数十甚至上百个SNP的区域,而真正的致病变异可能只是其中的一个

精细定位的目标就是在这个关联区域内,找出最可能是功能性的因果变异。这是一项计算和实验上的重大挑战。

为了理解非编码变异如何发挥作用,我们需要系统地回答以下几个问题:

  1. 作用位置:该变异在哪种细胞或组织中起作用?
  2. 靶基因:它调控的是哪个或哪些远端基因?
  3. 因果变异:区域内众多相关SNP中,哪个是功能性的?
  4. 上游调控因子:是哪个转录因子结合被该变异破坏或创建?
  5. 细胞表型:这如何改变细胞行为?
  6. 机体表型:这如何最终导致疾病?

🔬 案例研究:FTO基因座与肥胖

上一节我们提出了理解非编码变异的六个关键问题,本节中我们通过一个经典案例来看看如何逐步解答这些问题。

FTO基因座是与体重指数和肥胖关联最强的遗传区域之一。早期GWAS发现该区域有89个常见变异与肥胖相关。研究步骤如下:

  1. 确定作用细胞类型:利用表观基因组学数据(如ENCODE、Roadmap),发现该区域在脂肪前体细胞中有一个活跃的超级增强子
  2. 寻找靶基因:通过三维基因组学数据(Hi-C)发现,该增强子与远端(相隔约200万个碱基)的 IRX3IRX5 基因启动子相互作用。表达分析证实,风险等位基因会上调这两个基因的表达。
  3. 鉴定因果变异:通过序列保守性和调控 motif 分析,锁定一个破坏ARID5B转录因子结合位点的特定SNP。
  4. 验证调控回路:实验证明,ARID5B通常结合该位点并抑制增强子活性。风险等位基因破坏了结合,导致增强子过度活跃,进而上调IRX3/IRX5。
  5. 阐明细胞机制:IRX3/IRX5的高表达会抑制线粒体功能,促使脂肪前体细胞分化为储脂细胞(白色脂肪),而非燃脂细胞(米色脂肪)。
  6. 验证生理表型:在小鼠中敲低Irx3基因,即使给予高脂饮食,小鼠也能保持苗条。利用CRISPR技术将人类风险等位基因(C)回改为保护性等位基因(T),可以恢复细胞的燃脂能力。

这个案例展示了如何从一个GWAS信号,逐步解析出一个完整的“SNP -> 调控元件破坏 -> 靶基因失调 -> 细胞功能改变 -> 疾病表型”的因果链条。


🤖 利用深度学习预测变异功能

上一节我们看到了解析单个基因座的复杂过程,本节中我们来看看如何利用计算方法,大规模预测遗传变异的功能影响。

面对数以万计的GWAS关联位点,实验方法逐一解析是不现实的。深度学习模型为我们提供了强大的计算预测工具

基础模型:预测染色质特征
首先,我们可以训练卷积神经网络模型,直接根据DNA序列预测转录因子结合、组蛋白修饰或染色质可及性。这类模型能够:

  • 利用长序列上下文信息。
  • 捕捉序列特征间的非线性相互作用。
  • 在不同任务间共享学习到的序列特征。

从序列到功能影响
即使模型仅在参考基因组序列上训练,我们也可以通过“硅基诱变”来预测变异的影响:

  1. 输入包含参考等位基因的序列,得到预测值P_ref。
  2. 输入包含替代等位基因的序列,得到预测值P_alt。
  3. 比较P_ref和P_alt的差异,即可预测该变异对结合或染色质状态的影响方向(增强或减弱)。

评估与验证
我们可以利用来自杂合子个体的等位基因特异性数据(如ChIP-seq或ATAC-seq reads的偏向性)来评估模型预测的准确性。模型能够有效区分出那些真正具有功能影响的变异。

扩展到基因表达预测
预测基因表达更具挑战,因为它涉及更大的基因组区域和更少的训练样本(基因数量有限)。一种策略是:

  1. 首先用基础模型在启动子/增强子区域生成染色质特征谱。
  2. 然后使用正则化线性模型,学习这些空间特征谱对基因表达的贡献权重。
  3. 最终实现从序列变异到表达量变化的预测。

应用于疾病研究:自闭症的新生突变
在自闭症研究中,新生非编码突变的功能难以评估。利用上述预测模型,我们可以为每个突变计算一个“功能影响分数”。比较自闭症患者与其未患病兄弟姐妹的新生突变,发现患者的突变在预测上对染色质和转录因子结合具有更强的影响,并且这些影响富集在与突触功能和染色质调控相关的基因网络上。这为理解非编码变异在自闭症中的作用提供了计算证据。


📝 总结

本节课中我们一起学习了人类遗传学与全基因组关联研究的核心内容。

我们从遗传学的基本原理出发,理解了连续性状如何由多个基因座解释。我们探讨了连锁分析与GWAS这两种策略,分别用于发现强效应的罕见变异和弱效应的常见变异。我们详细剖析了GWAS从实验设计、质量控制、统计检验到结果可视化的全过程。

更重要的是,我们认识到GWAS发现的关联信号往往指向一个区域,而非单个变异,因此精细定位功能阐释是后续的关键挑战。通过FTO基因座的案例,我们看到了结合表观基因组学、三维基因组学和基因编辑技术来解析非编码变异机制的完整路径。

最后,我们了解到,面对海量的遗传变异,深度学习模型已成为预测其功能影响的强大工具。这些模型能够从序列预测染色质状态和基因表达潜力,并应用于复杂疾病变异的研究中,帮助我们系统性地解读“疾病电路”。


注:本教程根据提供的视频内容整理,保留了原话的核心含义,删除了语气词,并按照要求的结构、格式和风格进行重组与阐述。

🧬 课程13:GWAS机制剖析与因果推断

在本节课中,我们将学习全基因组关联研究(GWAS)的机制剖析方法,以及如何利用表观基因组富集分析和表达数量性状位点(eQTL)研究来推断疾病相关的组织、细胞类型和靶基因。我们还将探讨因果推断的基本概念和方法,以区分遗传变异与疾病之间的因果关系和相关关系。


🔍 GWAS机制回顾与目标

上一节我们介绍了GWAS的基本概念。本节中,我们来看看如何深入剖析GWAS发现的基因座背后的生物学机制。

GWAS的目标是利用遗传学来研究疾病机制、预测靶基因、开发疗法并实现个性化医疗。然而,机制研究面临巨大挑战:绝大多数与疾病相关的常见变异位于非编码区,不直接改变蛋白质序列。这意味着目标基因未知、因果变异不明、起作用的细胞类型和通路也不清楚。

关键思路是,我们不孤立地研究单个基因座,而是全局性地分析所有与特定性状相关的遗传变异,寻找它们共同的功能特征。


🌐 全局富集分析:推断相关组织与细胞类型

为了理解曼哈顿图中每个峰背后的生物学基础,我们采用全局富集分析的方法。其核心思想是:通过共同研究所有与疾病相关的基因座,我们可以发现它们共有的属性,并利用这些属性反过来解释单个基因座。

以下是进行全局富集分析的步骤:

  1. 收集与特定性状(如身高、糖尿病)相关的所有遗传区域(通常基于连锁不平衡区块)。
  2. 计算这些遗传区域与各种细胞/组织类型中活跃的增强子等表观基因组注释之间的重叠程度。
  3. 使用超几何检验等统计方法,评估观察到的重叠是否显著高于随机预期。
  4. 将显著富集的组织或细胞类型视为与该性状相关的功能背景。

通过这种方法,我们可以构建一个矩阵,行代表不同性状,列代表不同组织/细胞类型,从而揭示特定的关联模式。例如:

  • 与身高相关的变异富集于胚胎干细胞中的活性增强子。
  • 与免疫性疾病相关的变异富集于T细胞和B细胞中的增强子。
  • 与血压相关的变异富集于心脏(左心室)中的增强子。

一个有趣的发现是,阿尔茨海默病的遗传变异并未富集于大脑神经元增强子,而是富集于CD14+单核细胞(包括大脑中的小胶质细胞)中的增强子,这提示了该疾病中免疫成分的重要性。


🎯 从全局富集到局部优先:贝叶斯精细定位

上一节我们介绍了如何发现全局富集模式。本节中,我们来看看如何利用这些全局信息来指导单个基因座内的因果变异推断。

我们可以将全局富集分析的结果转化为经验性的先验知识。例如,对于克罗恩病,如果一个变异片段与免疫细胞增强子重叠,那么它作为因果变异的先验概率就更高。

然后,我们结合以下两方面信息,计算每个变异片段是因果关系的后验概率:

  1. 先验概率:基于该片段与全局富集特征(如特定组织增强子)的重叠情况。
  2. 似然值:基于GWAS汇总统计中该片段与疾病关联的证据强度。

公式可以简化为:
后验概率 ∝ 先验概率 × 似然值

通过这种方法,我们可以从包含数百个变异的一个基因座中,优先选出那些既具有强遗传关联信号,又落在相关功能注释区域的片段,这些片段更可能是真正的因果变异。


🧬 利用eQTL连接遗传变异与基因表达

仅仅知道变异可能影响哪些组织的调控元件还不够,我们还需要知道它最终影响了哪个基因的表达。这就是表达数量性状位点(eQTL)研究的目的。

eQTL分析旨在填补遗传变异(G)与复杂疾病(Y)之间的巨大鸿沟,通过引入中间分子表型(X),如基因表达水平或DNA甲基化水平。

其基本模型是线性回归:
表达水平 = α + β1 * 基因型 + β2 * 协变量1 + ... + βn * 协变量n + ε

其中,我们检验基因型(如等位基因计数)是否能够显著解释个体间基因表达的差异。与GWAS相比,eQTL研究通常需要更少的样本量就能发现关联,因为遗传变异对局部基因表达的影响往往更强、更直接。

除了传统的整体eQTL(比较不同基因型个体间的总表达水平),还有等位基因特异性表达(ASE)分析。ASE专门研究杂合子个体,比较来自父母双方的不同等位基因在同一细胞环境下的表达量差异,能更精细地识别顺式调控效应。


⚖️ 因果推断:从相关到因果

上一节我们讨论了如何发现遗传变异与中间表型(如表达)的关联。本节中,我们来看看如何推断这些关联是否是因果关系。

混淆因素是导致相关关系不等于因果关系的主要原因。因果推断的两大主流框架是:

  1. 潜在结果框架:核心是反事实问题——“如果同一个个体接受了不同的处理(如携带不同等位基因),结果会有什么不同?”。
  2. 结构因果模型/图模型:使用有向无环图表示变量间的因果关系,并通过诸如“后门准则”等规则来识别可估计的因果效应。

在遗传学中,孟德尔随机化是一种利用遗传变异作为工具变量来推断中间表型(如基因表达)与疾病之间因果关系的强大方法。其核心优势在于,基因型在配子形成时随机分配,通常不受后天环境因素影响,因此能有效避免混淆。

简单的孟德尔随机化估计公式为:
β(中介效应) = β(G -> 疾病) / β(G -> 表达)

这相当于利用大自然进行的随机对照试验,来估计改变基因表达对疾病风险的平均因果效应。


📝 总结

在本节课中,我们一起学习了:

  1. 全局富集分析:通过分析所有疾病相关遗传变异的共同功能特征,来推断相关的组织、细胞类型和调控元件。
  2. 贝叶斯精细定位:结合全局富集提供的先验信息和局部的遗传关联信号,优先选择最可能的因果变异。
  3. eQTL分析:研究遗传变异如何影响基因表达等中间分子表型,从而将非编码变异与靶基因连接起来。
  4. 因果推断:介绍了潜在结果框架和图模型的基本概念,并重点讲解了如何利用孟德尔随机化等方法,从观察性数据中推断暴露(如基因表达)与结局(如疾病)之间的因果关系。

这些方法共同构成了从GWAS发现到机制解析,再到因果验证的完整研究链条,是理解复杂疾病遗传基础的关键。

课程14:系统遗传学与电子健康记录 🧬📊

在本节课中,我们将要学习系统遗传学,这是遗传学模块的最后一课。我们将把视角提升到系统层面,并讨论电子健康记录。课程将介绍线性混合模型、遗传力定义、LD分数回归,以及如何将基因组学与电子健康记录整合。


回顾与引入

上一节我们讨论了常见与罕见变异、强效应与弱效应、多基因风险评分以及连锁不平衡分析。本节中,我们将深入探讨如何整合这些信息,并引入系统层面的分析方法。

我们已经探讨了如何整合基因组信息以精细定位变异,以及如何利用RNA测序数据和深度学习模型来预测驱动基因和细胞类型。今天,我们将重点学习线性混合模型和遗传力估计,并了解LD分数回归这一流行方法。


线性混合模型

线性混合模型用于预测表型,同时考虑固定效应和随机效应。固定效应是我们感兴趣的预测因子,而随机效应则捕捉个体间的相关性,例如由亲缘关系或群体结构引起的效应。

基本框架

我们试图用个体的基因型数据来预测其表型。基本公式如下:

Y = Xβ + Zu + ε

其中:

  • Y 是表型向量。
  • X 是固定效应设计矩阵(如基因型)。
  • β 是固定效应系数向量。
  • Z 是随机效应设计矩阵。
  • u 是随机效应向量,假设服从分布 u ~ N(0, Gσ²_g)G 是亲缘关系矩阵。
  • ε 是残差向量,假设服从分布 ε ~ N(0, Iσ²_e)

该模型的美妙之处在于,即使不知道真正的因果变异,它也能有效捕捉额外的遗传变异。


遗传力

遗传力衡量了表型变异中可由加性遗传效应解释的比例。我们主要关注片段遗传力,即特定一组单核苷酸多态性所能解释的遗传力。

估计方法

我们可以通过比较表型相似性和基因型相似性来估计遗传力。更先进的方法是使用LD分数回归,它利用全基因组关联研究的汇总统计数据来估计遗传力,并探究其在不同基因组功能类别中的分布。


LD分数回归

LD分数回归是一种分析GWAS汇总统计数据的方法,用于估计遗传力并探究其在不同功能基因组注释中的富集情况。

核心思想

GWAS中平均卡方统计量大于1,并不一定意味着混淆,而可能是真实多基因信号的结果。LD分数衡量了一个SNP与其他SNP的连锁不平衡程度。LD分数回归将每个SNP的关联卡方统计量对其LD分数进行回归。

回归方程近似为:E[χ²] ≈ 1 + N * h² * (ℓ / M)

其中:

  • N 是样本量。
  • 是遗传力。
  • 是该SNP的LD分数。
  • M 是SNP数量。

截距接近1表明混淆较少,斜率则可用于估计遗传力。

分层LD分数回归

我们可以将这种方法扩展到多个功能类别。以下是分析步骤:

  1. 计算每个SNP相对于不同功能类别(如编码区、增强子)的LD分数。
  2. 将SNP的卡方统计量对多个功能类别的LD分数进行多元线性回归。
  3. 每个功能类别回归系数的斜率,反映了该类别对遗传力的贡献。

通过比较某个功能类别解释的遗传力比例与其在基因组中所占的比例,可以计算富集度。例如,如果编码区SNP占所有SNP的1%,却解释了10%的遗传力,那么其富集度就是10倍。


电子健康记录与基因组学整合

电子健康记录为遗传学研究提供了海量的表型数据。结合基因组数据,可以揭示更广泛的基因型-表型关联。

多表型遗传关联分析

传统GWAS一次只分析一个表型。利用EHR,我们可以同时分析数千个表型,构建“变异-表型”关联矩阵。通过降维技术(如奇异值分解),可以提取出代表共同遗传结构的低维成分。

多基因风险评分

对于疾病风险预测,同时考虑所有相关SNP的多元模型比单变量模型效果更好。以下是构建PRS的步骤:

  1. 使用大规模数据集(如UK Biobank)拟合多元回归模型(如LASSO、弹性网络)。
  2. 模型同时纳入数百万个SNP作为预测因子。
  3. 通过交叉验证选择模型参数,防止过拟合。
  4. 将得到的权重应用于目标个体的基因型数据,计算其风险评分。

挑战:目前基于欧洲人群数据训练的PRS模型,在其他人群(如非洲、东亚人群)中预测性能会显著下降。这主要是由于等位基因频率、连锁不平衡结构的差异以及某些人群特异性变异的缺失造成的。


总结

本节课中我们一起学习了系统遗传学的核心内容。我们介绍了线性混合模型,它能够同时处理固定效应和随机效应。我们探讨了遗传力的概念及其估计方法,并深入学习了LD分数回归,这种方法可以利用GWAS汇总数据估计遗传力并发现其在特定基因组功能区域的富集。最后,我们了解了如何将电子健康记录与基因组数据整合,进行大规模表型关联分析和构建多基因风险评分,同时也认识到跨人群应用时面临的挑战。这些工具共同推动了我们对复杂性状遗传架构的理解。

🧬 课程15:图神经网络 (GNNs) 教程

在本节课中,我们将学习图神经网络 (GNNs) 的基础知识。我们将从图和网络的基本概念开始,然后深入探讨图神经网络的核心原理及其在生物学中的应用,例如蛋白质相互作用网络和药物设计。课程将包含两位客座讲师的分享,内容涵盖半监督学习、多关系数据处理以及前沿研究领域。


📊 图与网络基础

网络在我们的世界中无处不在,从社交网络到生物网络,如基因调控网络、代谢网络和蛋白质相互作用网络。这些网络可以是有向或无向的,有权重或无权重,有符号或无符号的。理解网络的结构和特性对于分析复杂系统至关重要。

图的基本表示方法有两种:

  1. 邻接列表:列出图中所有的边。
  2. 矩阵表示(如邻接矩阵):允许我们对网络进行矩阵运算。

图的矩阵表示使得我们可以计算各种网络属性,例如节点的中心性(衡量节点的重要性)。中心性可以通过多种方式定义,例如节点的邻居数量、穿过该节点的最短路径数量等。

此外,我们可以使用线性代数方法(如矩阵分解、特征值分解、奇异值分解)来学习网络的低维表示,发现网络中的社区结构。例如,谱聚类方法利用图的拉普拉斯矩阵的特征值来识别网络中的可分离组件。


🧠 图神经网络 (GNNs) 核心思想

上一节我们介绍了图的基础分析方法,本节中我们来看看如何将深度学习应用于图结构数据。图神经网络的核心思想是:根据图中每个节点附近的信息来更新该节点的表示。

具体来说,GNN通过聚合邻居节点的信息来更新目标节点的嵌入表示。随着GNN层数的增加,每个节点能够接收到来自更远邻居(即K跳邻居)的信息,从而获得更大的感受野。

GNN的典型流程分为三步:

  1. 定义每个节点的邻域(例如其一跳或二跳邻居)。
  2. 通过多层神经网络在图上传播和聚合信息,更新节点嵌入。
  3. 利用最终得到的节点嵌入进行下游任务预测,例如节点分类或图分类。

以下是图卷积网络 (GCN) 中节点更新的一个简化公式:

h_i^(l+1) = σ( Σ_(j∈N(i)∪{i}) (1 / c_ij) * W^(l) * h_j^(l) )

其中:

  • h_i^(l) 是节点 i 在第 l 层的嵌入。
  • N(i) 是节点 i 的邻居集合。
  • W^(l) 是第 l 层可学习的权重矩阵。
  • c_ij 是一个归一化常数(通常与节点度数相关)。
  • σ 是非线性激活函数。

这种参数共享的机制,类似于卷积神经网络中的权重共享,使得模型能够高效地处理不同大小和结构的图,并具有排列不变性(即节点顺序不影响结果)。


🎯 GNN的任务与应用场景

我们已经了解了GNN如何更新节点表示,现在来看看它可以应用于哪些具体任务。图神经网络可以处理多种任务,主要包括:

  • 节点分类:预测图中每个节点的类别(例如,在论文引用网络中预测每篇论文的研究领域)。
  • 链接预测:预测两个节点之间是否存在边(例如,预测蛋白质之间是否存在相互作用)。
  • 图分类:对整个图进行预测(例如,给定一个分子图,预测其溶解度或毒性)。

在半监督学习设置中,GNN尤其强大。即使只有少量带标签的节点,GNN也能利用图的结构信息,为大量未标记的节点生成准确的预测。这是因为信息通过边在图中传播,带标签节点的信息可以影响其邻居节点的表示。


🔗 处理复杂图结构

前面的例子主要针对同构图(只有一种节点和边类型)。然而,生物数据通常更加复杂。本节中我们来看看如何将GNN应用于更复杂的图结构,例如多关系图。

在异构网络(包含多种节点类型或边类型)中,我们需要根据不同的关系类型分别聚合信息。例如,在药物-副作用网络中,药物节点可能通过“共同服用导致副作用A”或“靶向相同蛋白质”等不同类型的关系相连。

关系图卷积网络 (R-GCN) 通过为每种关系类型引入不同的权重矩阵来扩展基础的GCN:

h_i^(l+1) = σ( W_0^(l) * h_i^(l) + Σ_(r∈R) Σ_(j∈N_r(i)) (1 / c_i,r) * W_r^(l) * h_j^(l) )

其中 W_r^(l) 是针对关系类型 r 的特定权重矩阵。为了减少参数量,可以对 W_r 进行低秩分解或作为基础变换的线性组合。


🤖 前沿研究与发展方向

GNN的研究正在快速发展。除了监督学习,无监督学习在图表示学习中也扮演着重要角色。对比学习是当前的一个热点,其核心思想是学习一个编码器,使得在原始图中相似的节点(如相邻节点)在嵌入空间中也彼此接近,而不相似的节点则相距较远。

另一个令人兴奋的方向是深度生成图模型,它旨在生成新的、有效的图结构(例如生成新的潜在药物分子)。例如,Junction Tree VAE 方法先生成分子的树状骨架(高级结构),再填充原子细节,从而确保生成分子的化学有效性。

此外,潜图推理 旨在从观察到的系统动态(如时间序列数据)中推断出潜在的因果图结构。这在理解基因调控网络或相互作用粒子系统等领域具有巨大潜力。

GNN目前也面临一些挑战,例如过度平滑(过深的网络会使所有节点嵌入变得相似)、处理图中循环结构的能力有限,以及如何扩展到超大规模图数据集。


💊 生物学应用实例:预测药物副作用

让我们看一个GNN在生物学中的具体应用:预测多药副作用(即两种药物联合使用时产生的副作用)。

我们可以构建一个异构网络,其中包含:

  • 节点:药物和蛋白质。
    • 药物-药物边:表示两种药物联合使用会导致特定副作用。
    • 药物-蛋白质边:表示药物靶向的蛋白质。
    • 蛋白质-蛋白质边:来自已知的蛋白质相互作用网络。

通过使用能够处理多关系数据的GNN(如R-GCN)对这个网络进行编码,我们可以学习到每个药物节点的综合嵌入。这个嵌入同时考虑了药物的化学特性、其靶点蛋白以及与其他药物的相互作用信息。然后,我们可以解码器部分计算任意两种药物嵌入的相似度,来预测它们联合使用时产生副作用的概率。

这种方法将多种生物医学知识整合到一个统一的深度学习框架中,有助于发现未知的药物相互作用。


🧬 跨数据集泛化:元学习应用

最后一个例子展示了如何利用GNN和元学习解决单细胞数据分析中的挑战:如何将细胞类型注释推广到全新的、未见过的实验或组织?

我们提出了一种名为 MARS 的元学习方法。其核心思想是:

  1. 学习一个嵌入函数 f,将高维基因表达向量映射到低维空间。
  2. 在该嵌入空间中,同时学习一组可代表的“细胞类型地标”。
  3. 目标函数鼓励相同细胞类型的细胞嵌入彼此靠近且接近其地标,而不同细胞类型的细胞嵌入则彼此远离。

通过在大型、多样化的已注释数据集(元数据集)上训练,MARS 学习到的表示能够很好地泛化到全新的组织数据中,即使其中包含训练时未出现过的细胞类型,其性能也优于之前的深度学习方法。


📝 总结

本节课中,我们一起学习了图神经网络 (GNNs) 的核心概念与应用。我们从图的基础知识出发,探讨了GNN通过聚合邻居信息来更新节点表示的核心机制。我们介绍了GNN在节点分类、链接预测和图分类等任务中的应用,并扩展到了处理多关系异构网络的复杂场景。

我们还浏览了GNN的前沿研究方向,包括无监督对比学习、深度生成模型和潜图推理。最后,通过预测药物副作用和跨数据集单细胞分析两个具体案例,我们看到了GNN在解决实际生物医学问题中的强大能力和灵活性。

图神经网络为我们分析和理解复杂的生物网络系统提供了强大的新工具,是连接深度学习与生物网络科学的重要桥梁。

🧪 课程16:AI药物设计

在本节课中,我们将学习如何利用人工智能,特别是图神经网络,来加速和革新药物发现的过程。我们将探讨虚拟筛选、从头药物设计等核心概念,并通过抗生素发现和COVID-19药物组合等实际案例,了解AI如何解决药物研发中的关键挑战。


📊 概述:药物发现的挑战与AI机遇

药物发现是一个耗时且昂贵的过程。从数百万候选分子中识别出一种新药,平均需要超过10年时间和约26亿美元成本。传统的实验方法,如高通量筛选,每天只能测试约10万种化合物,这与估计高达10^60的潜在化学空间相比微不足道。因此,开发高效的计算算法来自动设计药物至关重要,而深度学习和人工智能为此提供了新的解决方案。

计算药物发现主要围绕两个核心概念:

  • 功能空间:指化合物与其性质(如毒性、溶解度)之间的映射关系。这些性质通常可以用数字评分来衡量。
  • 化学空间:指所有潜在分子的巨大集合。目标是找到具有特定理想性质的化学结构。

🔬 第一部分:利用图神经网络发现新型抗生素

上一节我们介绍了药物发现的基本挑战,本节中我们来看看如何利用图神经网络进行虚拟筛选,并以发现新型抗生素Halicin为例。

传统方法的局限:手工特征

在深度学习兴起之前,虚拟筛选主要依赖于手工设计的分子特征,例如分子量或更复杂的“摩根指纹”。摩根指纹将分子分解为不同的子结构(如特定半径内的原子组合),并将其映射为一个高维向量。

代码示例:摩根指纹概念

# 伪代码:生成摩根指纹
from rdkit import Chem
from rdkit.Chem import AllChem

molecule = Chem.MolFromSmiles(‘CCO’) # 乙醇
fingerprint = AllChem.GetMorganFingerprintAsBitVect(molecule, radius=2, nBits=2048)

然而,这些手工设计的特征可能无法捕捉所有未知的、与抗菌活性相关的关键化学模式,从而限制了模型的预测性能。

图神经网络:自动学习特征

图神经网络(GNN)可以直接从分子图中学习特征表示,将特征学习和模型预测融为一体。分子可以很自然地用图来表示:原子是节点,化学键是边。

公式:图卷积的基本思想
节点特征通过聚合其邻居节点的信息来更新。经过多层卷积后,每个节点的表示都编码了其局部子图的结构信息。最后,通过池化操作(如求和或平均)将所有节点表示汇总为整个分子的单一向量表示。

以下是图神经网络的工作流程:

  1. 输入表示:每个原子被编码为一个向量(如原子类型)。
  2. 图卷积:通过聚合邻居信息,更新每个原子的表示,编码局部化学环境。
  3. 多次卷积:重复此过程以捕获更大范围的分子结构信息。
  4. 图池化:将所有原子的表示合并为一个代表整个分子的向量。
  5. 性质预测:在该向量上添加前馈神经网络,预测目标性质(如抗菌概率)。

案例研究:发现Halicin

研究人员利用约2500个具有已知抗菌活性的分子训练了一个GNN模型。该模型在测试集上表现出色。随后,他们用该模型对约6000种已知化合物(原本用于其他用途)进行排名,以寻找潜在的抗生素。

模型排名第61位的化合物(原代号SU3327)被选中进行实验验证。该化合物被命名为Halicin,其结构与现有抗生素差异很大。实验证明,Halicin不仅能有效抑制大肠杆菌,还对多种耐药菌株(如鲍曼不动杆菌、艰难梭菌)具有广谱抗菌活性,甚至在小鼠感染模型中效果显著。

相比之下,基于传统摩根指纹和神经网络的模型未能发现Halicin,这凸显了GNN学习到的特征表示更具优势。


🦠 第二部分:融合生物知识预测COVID-19药物组合

上一节我们看到了GNN在虚拟筛选中的威力,但模型仅依赖化学结构。本节中我们来看看,在面对数据稀缺的新疾病(如COVID-19)时,如何将生物知识注入模型以提升预测能力。

动机:数据稀缺与知识融合

对于COVID-19,早期可用的实验数据非常有限(仅数百个药物组合的协同性数据)。纯数据驱动的GNN模型容易过拟合。因此,需要将病毒生物学知识融入模型,以改善其泛化能力。

关键生物学知识包括病毒复制周期中的干预点:

  1. 阻止病毒进入(如抑制ACE2受体)。
  2. 抑制病毒蛋白(如3CL蛋白酶)。
  3. 抑制与病毒相互作用的宿主蛋白。

模型设计:CombioNet

研究人员设计了名为CombioNet的模型,它同时结合了化学和生物学表示。

模型构建分为三个步骤:

  1. 学习生物靶点表示:利用公开的药物-靶点相互作用数据库(如ChEMBL),训练一个GNN来预测药物是否会抑制某个与COVID-19相关的靶点(病毒或宿主靶点)。这解决了数据稀疏性问题,并为每种药物生成一个“生物特征”向量。
  2. 学习化学结构表示:同时,使用标准的GNN为每种药物生成“化学特征”向量。
  3. 预测协同效应:对于药物组合(A, B),模型结合它们的化学和生物特征,预测其联合抗病毒活性。协同效应得分通过比较联合活性与各自活性的简单加和来计算(类似于集合的容斥原理)。

成果与验证

融合了生物和化学信息的CombioNet模型,其预测性能显著优于仅使用化学信息的标准模型。利用该模型进行预测,并与美国国立卫生研究院合作进行实验验证,成功发现了两种具有强协同效应的新型药物组合(例如瑞德西韦与另一种药物的组合)。


🧬 第三部分:基于图生成的从头药物设计

前两部分主要关注“虚拟筛选”,即对现有化合物库进行排名。但化学空间极其庞大,虚拟筛选无法覆盖全部。本节中我们来看看更雄心勃勃的“从头药物设计”,即直接生成具有理想性质的新分子结构。

生成模型的挑战

从头药物设计本质上是一个生成建模问题:学习一个在“好分子”区域概率密度高的分布,然后从中采样。挑战在于分子是图结构,而非序列或网格。

已有方法存在局限:

  • 基于序列的方法:使用SMILES字符串表示分子,并用RNN生成。但SMILES表示脆弱,相似分子可能有完全不同的字符串,导致生成效果不佳。
  • 逐节点生成:一次向图中添加一个原子和化学键。但对于稀疏的分子图,这种方法复杂度高(O(n²)),且重建大分子的准确率低。

新思路:利用分子的结构先验

分子图通常具有“树宽较低”的特点,这意味着它们可以被有效地分解为较小的、重复出现的“ motifs”(如环、特定官能团)。对大量分子进行分析发现,仅约600种不同的motif就能覆盖99.9%的分子。

模型架构:连接树变分自编码器

受图模型中“连接树算法”的启发,研究人员提出了连接树变分自编码器(Junction Tree VAE)。

模型工作流程

  1. 编码:将输入分子分解为其对应的连接树(树节点是motif)。使用GNN分别编码分子图和连接树,得到潜在向量表示。
  2. 解码:先解码生成连接树(一个motif序列),这是一个更简单的序列生成任务。然后,根据生成的树结构,将motif逐步连接、扩展,最终组装成完整的分子图。

这种方法将复杂的图生成任务分解为树生成和子图组装两个更简单的步骤,显著提高了生成效率和准确性,特别是在生成较大分子时。

应用:分子优化

该生成模型不仅能从头生成分子,还能对现有分子进行优化。例如,给定一个活性良好但“类药性”(如水溶性、口服生物利用度)较差的先导化合物(如Halicin),模型可以学习对其进行局部修改,在保持其抗菌活性的同时,提升其类药性评分。实验表明,这种基于motif的生成方法在分子优化任务上的成功率高于基于序列或逐节点生成的方法。


💎 总结与展望

本节课我们一起学习了人工智能在药物设计中的关键应用:

  1. 虚拟筛选与抗生素发现:利用图神经网络自动学习分子特征,能够更有效地从化合物库中识别出具有新颖结构和强效活性的候选药物,如抗生素Halicin。
  2. 知识融合与药物组合:在面对数据稀缺的新疾病时,将生物学知识(如药物-靶点相互作用)融入图神经网络模型,可以显著提升预测能力,成功发现协同药物组合。
  3. 从头药物设计与分子生成:通过利用分子图的结构先验(低树宽、motif),设计新的图生成模型(如连接树VAE),能够高效地生成和优化分子结构,实现对庞大化学空间的探索。

AI在分子科学(药物发现、化学生物学、材料科学)中的应用前景广阔。未来的挑战包括处理蛋白质3D结构、设计大分子聚合物以及规划化学合成路线等。这是一个需要跨学科合作、充满机遇的领域。

课程17:深度学习在蛋白质折叠中的应用 🧬

在本节课中,我们将学习如何利用深度学习技术来研究蛋白质结构,特别是蛋白质折叠问题。课程内容分为三个主要部分:首先,我们将探讨如何利用几何深度学习分析蛋白质表面特征;其次,我们将深入了解如何从蛋白质序列预测其三维结构;最后,我们将讨论端到端可微分方法在蛋白质结构预测中的最新进展。

蛋白质结构与功能概述

蛋白质是生命活动的主要承担者,其功能与其三维结构密切相关。蛋白质的氨基酸序列(一级结构)会折叠成特定的三维构象,这种构象决定了蛋白质的催化、识别、机械支撑等多种生物学功能。

例如,抗体是一种蛋白质,其结构使其能够识别并结合特定抗原。此外,还有负责离子转运、细胞间通讯等功能的蛋白质。因此,理解蛋白质结构对于理解其功能至关重要。

研究蛋白质结构的重要性

研究蛋白质结构的方法多种多样。我们可以从不同层面表示蛋白质结构:从氨基酸序列、二级结构(如α螺旋、β折叠),到更复杂的三维原子坐标点云,再到连续的分子表面表示。本课程将重点讨论如何利用蛋白质的分子表面信息来推断其功能。

蛋白质表面指纹与几何深度学习

一个有趣的现象是,许多具有相似功能的蛋白质,其氨基酸序列可能不同,三维架构也可能不同,但其分子表面却可能具有相似的物理化学模式。这引导我们提出一个核心问题:能否仅通过分析蛋白质表面的“指纹”模式来预测其功能,而不依赖于序列信息?

为了研究这些高维、结构丰富的表面数据,我们转向几何深度学习。这与传统深度学习(如图像分类)处理规则网格数据不同,几何深度学习擅长处理图、点云、网格等非欧几里得数据结构。

几何深度学习引擎:网格与补丁

我们使用三角网格来表示蛋白质表面。网格由节点(顶点)、构成。

以下是我们的数据处理流程:

  1. 构建网格:将蛋白质三维结构转化为表面三角网格。
  2. 定义补丁:以网格上每个节点为中心,根据测地线距离(表面最短路径)定义一个局部区域,称为“补丁”。
  3. 编码特征:在每个节点上,我们编码两类特征向量:
    • 几何特征:如形状指数、曲率,描述表面的拓扑形状。
    • 化学特征:如疏水性、静电势,描述表面的生化性质。
    • 极坐标:编码节点相对于补丁中心的方向信息。
  4. 应用可学习卷积:对每个补丁应用特殊的图卷积操作。卷积核包含可学习的参数(例如,用于加权不同区域的高斯权重 ge),最终将整个补丁的信息汇总为一个特征向量。

通过这种方式,我们可以为蛋白质表面的任何区域生成一个“指纹”描述符,用于后续的功能分析。

应用:从表面指纹预测功能

学习了如何提取表面指纹后,我们来看看其具体应用。我们的目标是利用这些指纹来理解未知蛋白质结构的功能特性。

以下是几个关键的应用方向:

  • 结合口袋分类:预测蛋白质表面哪些凹陷区域(口袋)更可能结合特定的辅因子或代谢物。
  • 蛋白质-蛋白质相互作用位点预测:识别表面哪些区域更倾向于与其他蛋白质结合。
  • 蛋白质对接预测:预测两个蛋白质之间最可能的结合构象。

在我们的研究中,通过消融实验发现,同时结合化学特征几何特征能获得最佳预测性能。仅使用几何特征效果不佳,而化学特征本身已包含大量信息,但二者结合能进一步提升准确性。

在对接预测方面,我们的方法(通过比较指纹向量距离)在保持与主流对接程序相近精度的同时,速度提升了数个数量级,因为它将三维空间搜索简化为一维向量距离计算。

下一代方法:可微分表面建模(D-MASIF)

上一节我们介绍了基于预处理特征提取的流程。本节我们来看一种更先进的端到端方法。

最初的流程需要手动计算并映射化学和几何特征到网格上。新一代方法 D-MASIF 旨在建立一个完全可微分的网络,直接从蛋白质的原子点云出发,端到端地同时学习表面几何和计算静电势等化学特征。

这种方法减少了预处理步骤,并且预测的静电势等特征与之前基于物理计算的结果高度吻合,为后续设计应用提供了更高效的框架。

蛋白质结构预测:从序列到三维构象

接下来,我们将视角从表面分析转向一个更根本的问题:如何仅从氨基酸序列预测蛋白质的三维结构。这是一个长期存在的重大挑战。

传统方法主要分为两类:

  1. 基于模板的建模:在已知结构数据库(PDB)中寻找同源蛋白作为模板进行建模。当模板相似度高时,此方法非常可靠。
  2. 自由建模:当没有合适模板时使用。过去的主流方法是片段组装,即从序列中截取短片段,在PDB中寻找可能的结构片段,然后通过采样和能量优化将它们组装成完整结构。这种方法计算成本极高,且对大蛋白成功率低。

近年来,一种新策略取得了突破性进展:利用共进化信息与深度学习

共进化分析与接触预测

新策略的核心是:通过深度学习方法,从蛋白质的多序列比对中预测残基间的空间接触关系。

其流程如下:

  1. 输入目标蛋白质序列。
  2. 进行同源性搜索,构建多序列比对(MSA),即收集大量同源序列。
  3. 从MSA中提取信息,输入机器学习模型,预测残基接触图或更精确的残基间距离矩阵
  4. 将这些空间约束输入优化引擎,生成三维坐标。

接触预测的精度是该方法成功的关键。早期基于互信息等全局统计方法需要大量同源序列,对于同源物少的蛋白效果不佳。而早期的监督学习方法只利用局部序列特征,忽略了蛋白质整体的上下文信息。

深度卷积神经网络在接触预测中的突破

为了解决上述问题,我们开发了新的方法。关键思路是将整个蛋白质的接触预测建模为一个图像分割问题。

我们将蛋白质序列视为一个二维图像,其中每个像素代表一对残基。我们使用一个非常深的二维残差卷积神经网络,同时预测所有残基对之间的接触状态。网络的输入是整个蛋白质的序列特征和MSA的概要信息。

这种方法能够捕获蛋白质全局的上下文信息,显著提升了接触预测的精度,从早期的20%左右提升到了80%以上。高精度的接触信息极大地改善了后续的三维结构建模。

从接触图到三维模型

获得预测的接触或距离信息后,需要将其转化为三维结构。主要有两种方法:

  • 距离几何法:直接使用距离约束求解三维坐标。
  • 能量最小化法:将预测信息转化为能量势,通过梯度下降等优化方法寻找低能构象。

由于深度学习方法提供的约束非常精确,现在仅需采样数百个构象即可得到良好模型,计算效率远高于传统的片段组装法。

最新进展:端到端可微分模型

上一节我们介绍了基于预测接触图的流程,其中包含不可微分的后处理步骤(如能量最小化)。本节我们来看更前沿的端到端可微分模型

这类模型(如AlphaFold 2,以及我们开发的trRosetta、RGN等)旨在直接从序列(或MSA)预测三维坐标,整个流程可微分,允许损失梯度从最终的三维结构直接反向传播到输入。

我们早期的工作(RGN)使用循环神经网络,通过预测离散的扭转角来逐步构建主链。损失函数基于最终三维结构的全局精度,迫使网络学习隐含的全局约束。

近期,我们改进了参数化方法,使用刚体运动(旋转矩阵)来描述Cα原子间的几何关系,并结合了基于蛋白质语言模型(如ESM-1b)提取的单个序列的深层语义表示。这使得我们能够仅从单条序列出发,在某些情况下(如孤儿蛋白、从头设计蛋白)取得与需要MSA的先进方法相媲美的预测效果。

总结与展望

本节课中,我们一起学习了深度学习在蛋白质科学中的三个重要应用方向。

首先,我们学习了如何利用几何深度学习分析蛋白质表面指纹,从而预测功能位点和相互作用界面。其次,我们深入探讨了如何通过深度卷积神经网络从多序列比对中预测残基接触,进而实现高精度的蛋白质三维结构预测。最后,我们了解了端到端可微分模型的最新进展,这些模型能够直接从序列生成结构,并在单序列预测等场景展现出巨大潜力。

这些技术的发展不仅解决了基础科学问题,也为药物设计(如靶点识别、抗体设计)、理解基因突变影响、蛋白质工程等领域带来了新的工具和可能性。未来,结合更强大的蛋白质语言模型、更高效的架构以及物理与学习的融合,这一领域将继续快速发展。

课程P18:第19讲 - 病理学中的机器学习 🧬

在本节课中,我们将学习深度学习在数字病理学图像分析中的应用与挑战。我们将探讨如何利用深度学习技术处理高分辨率病理图像,同时也会审视其局限性,并了解结合传统手工特征工程的重要性。


临床背景与机遇 📊

上一节我们介绍了课程主题,本节中我们来看看应用这些技术的临床背景。

癌症是美国男性和女性中非常普遍的疾病,约40%的人一生中会被诊断出患有某种形式的癌症。然而,每年因癌症死亡的人数约为60万。诊断率与死亡率之间的差异部分归因于早期检测的进步、更好的生物标志物和治疗方法(如免疫疗法)。但另一个重要原因是,对于许多癌症(例如惰性前列腺癌),存在过度诊断和过度治疗的问题,这不仅可能对患者造成伤害,还带来了“经济毒性”的挑战。

因此,人工智能和机器学习的机遇不仅在于疾病诊断,更在于诊断后的环节:如何治疗、如何管理、如何区分侵袭性与惰性癌症,从而制定更精准的治疗方案。这涉及到开发预后和预测工具,而不仅仅是诊断工具。

目前已有一些基于基因组或基因表达的分析工具(如Oncotype DX),但它们价格昂贵、具有组织破坏性,并且可能因肿瘤异质性而无法准确采样到最具侵袭性的部分。


数字病理学与深度学习 🖼️

上一节我们了解了临床需求,本节中我们来看看数字病理学如何提供新的解决方案。

随着全玻片扫描技术的发展,病理玻片可以被数字化,生成高分辨率图像。这为病理学家在屏幕上阅片提供了便利,更重要的是,为数据科学家和计算机视觉专家提供了使用先进机器学习方法分析这些图像的机会。

我们可以识别出超越人类视觉的模式。例如,算法可以识别单个细胞(如癌细胞核、淋巴细胞),并利用网络理论观察其空间结构和排列。我们可以从细胞的空间排列、不同组织区域(上皮、间质)内的纹理模式中提取一系列定量指标。这些指标不仅能用于诊断,还能用于疾病预后和预测治疗反应。

核心优势:这种方法无需破坏组织,只需将数字化玻片图像通过云端算法分析,即可将结果反馈给肿瘤科医生。


深度学习在计算病理学中的角色 🤖

上一节我们看到了数字病理学的潜力,本节中我们深入探讨深度学习的具体应用。

深度学习在计算病理学领域产生了重大影响,主要是因为病理玻片提供了海量的数据。单次前列腺活检可能产生20-30GB的数据,远超典型的MRI或CT扫描。

一个早期的应用是使用堆叠稀疏自编码器进行细胞检测。具体方法是:

  1. 手动标注单个细胞周围的边界框。
  2. 将包含细胞的图像块输入网络。
  3. 网络以无监督的方式学习特征,例如细胞的椭圆形形状、内部染色梯度等。
  4. 训练后的网络可以识别图像中是否有细胞。

代码示例思路

# 伪代码:使用自编码器进行特征学习
autoencoder.fit(training_patches) # training_patches 是包含标注细胞的图像块
learned_features = autoencoder.encode(new_image_patch)

然而,这种方法面临挑战,如染色差异、细胞类型多样性和预处理变异,这些都会影响分割的准确性。因此,后续研究开始关注颜色标准化等预处理步骤。


深度学习的陷阱与教训 ⚠️

上一节我们看到了深度学习的初步应用,本节中我们通过一个案例来了解其潜在风险。

一项研究试图训练CNN(卷积神经网络)基于心内膜心肌活检图像区分正常心脏与衰竭心脏。在初始测试集上,CNN的AUC(曲线下面积)达到了0.97,而病理学家的AUC约为0.74,结果非常出色。

然而,当从同一机构、同一扫描仪获取的新一批患者数据上测试同一个CNN时,其AUC从0.97下降到了0.75。调查发现,在这两批数据采集之间,扫描仪进行了一次不显眼的软件升级,微妙地改变了图像属性。尽管人眼难以察觉,但图像分布的细微变化足以导致神经网络性能显著下降。

核心教训:不能盲目相信深度学习算法。它们可能对数据采集过程中的微小变化(如扫描仪设置、染色差异)非常敏感,导致泛化能力差。必须仔细评估算法学到了什么,尤其是在高风险医疗决策中。


结合深度学习与手工特征工程 🔧

上一节我们认识了深度学习的脆弱性,本节中我们探讨一种更稳健的策略:将深度学习用于初始分割,再结合可解释的手工特征。

研究发现,深度学习在检测和分割任务上非常有效且高效。例如,可以使用预训练网络快速识别大图像中的细胞核、有丝分裂等结构。

主要瓶颈在于标注。为了提升标注效率,可以开发交互式工具(如快速标注器),允许用户在算法初步结果上进行修正,并利用这些反馈实时重新训练网络,形成人机协同的主动学习循环。

在分割之后,可以提取手工设计的、可解释的特征进行后续分析。例如:

  1. 空间结构特征:利用图网络理论(如Delaunay三角剖分、Voronoi图)分析不同细胞类型(基质细胞、肿瘤细胞、淋巴细胞)的空间排列和相互作用。
  2. 胶原纤维取向:使用深度学习分割出胶原纤维,为其分配方向向量,然后计算这些向量的熵来量化纤维排列的无序程度。研究表明,胶原纤维取向熵对乳腺癌患者的生存有很强的预测能力。
  3. 腺体结构特征:在前列腺癌研究中,用深度学习分割腺体,然后分析其空间构架。基于图像特征的模型在预测术后复发方面表现优异,甚至与昂贵的分子检测效果相当,但成本低得多。

公式示例:胶原纤维取向熵

H = -Σ p(θ) log p(θ)

其中,p(θ) 是纤维方向在角度 θ 上的概率分布。

这种“深度学习分割 + 手工特征工程”的混合方法,既利用了深度学习在感知任务上的强大能力,又通过可解释的特征保证了结果的透明度和可靠性,临床医生更容易理解和信任。


总结与展望 🎯

本节课我们一起学习了深度学习在计算病理学中的应用旅程。

我们了解到,深度学习为处理海量病理图像、自动识别微观结构提供了强大工具。然而,我们也看到了它作为“黑箱”的局限性,包括对数据细微变化的敏感性和可解释性差的挑战。

关键的收获是,在当前阶段,一种有效的策略是将深度学习定位为强大的分割工具,用于提取图像中的基础对象(如细胞、组织区域)。然后,在此基础上,结合领域知识驱动的手工特征工程,提取具有明确生物学意义的定量特征(如空间排列、纹理、形态),用于最终的诊断、预后或预测模型。

这种方法在多项研究中显示出巨大潜力,不仅能取得优异性能,而且成本更低、可解释性更强,有助于推动精准医疗的真正实现。未来,深度学习可能会在特征发现方面提供更多线索,但可解释性和与临床实践的紧密结合,始终是医疗AI成功的关键。


注:本教程根据关于病理学机器学习的讲座内容整理,聚焦于核心方法、案例与教训,旨在为初学者提供清晰的理解路径。

🧫 课程19:深度学习用于细胞图像分割

在本节课中,我们将学习如何利用深度学习技术对细胞显微镜图像进行分析,特别是细胞分割和单细胞表征学习。我们将探讨这些技术如何帮助生物学家从图像中提取定量信息,以用于药物发现和功能基因组学研究。


🧬 基于图像的表型分析

上一节我们介绍了课程主题,本节中我们来看看什么是基于图像的表型分析。这是一种通过图像来理解生物系统的方法,尤其是在设计治疗方法或发现细胞新表型时。

显微镜图像可以量化多种表型。不同类型的显微镜图像能揭示大部分细胞结构,例如患者组织的活检切片。我们可以使用多种显微镜技术,包括光谱成像,来捕捉三维图像甚至时间序列图像。

显微镜技术让我们能以不同的方式、在不同的分辨率下观察细胞,包括时间和空间分辨率。因此,我们能够从图像中看到大量信息。

挑战在于如何量化这些信息。图像看起来很漂亮,但为了做出治疗决策或在细胞中发现新的行为模式,我们需要精确测量细胞的状态和活动。


💊 图像在药物发现中的应用

以下是我们可以使用图像进行测量的一个例子。这是一项2012年的研究项目,研究人员正在寻找一种潜在的白血病候选药物。

他们的假设是:如果我们取患病的细胞(例如患有白血病的红细胞),并测试特定的化合物,观察细胞是否能从疾病状态中恢复。在这种情况下,细胞大小是一个指示其恢复健康的特征。

在左侧图像中,我们看到六个用中性化合物处理的细胞。在右侧图像中,我们看到用特定候选化合物处理的细胞,该化合物旨在使细胞恢复正常大小。为了确定化合物是否有效,研究人员通过观察图像并测量DNA总量来进行评估。

经过多次临床试验和长期研究,这种特效药最终在2019年或2020年被FDA批准为白血病的潜在治疗方法。这项研究背后的团队甚至成立了一家公司,专门基于图像寻找新的治疗方法或药物。这展示了利用图像设计治疗方法的可能性。


🔬 基于图像的分析流程

在前面的案例中,我们研究了一个特定的特征来区分患病细胞与健康细胞。但在更普遍的情况下,如果我们想比较像这样的一群细胞与另一群细胞,我们可能没有明显的单一特征可以依赖。

在这种情况下,可能涉及更多的功能以及从一种治疗到另一种治疗的更多细胞特征。对于这些情况,我们可能需要更多的信息和更好的策略来从图像中提取信息。

这就是我们所说的基于图像的分析。本质上,这是一种利用图像研究细胞形态或细胞状态的方法。想象一下,你正在设计一种化学治疗或基因治疗,这取决于你想在细胞系统中进行什么类型的干预。

你在培养皿(称为多孔板)中进行模拟实验,每个孔中可以同时进行不同的实验,例如加入不同的化合物。让细胞生长一段时间(例如几小时)后,你给细胞拍照以捕捉其状态。在化合物或基因治疗对细胞产生影响后,你再次捕捉图像。

下一步是计算分析部分。我们拍摄这些照片并进行分析,以提取定量信息,从而评估哪些治疗有效,哪些无效。这种方法在生物学中有许多应用,主要是在药物发现中测试化合物,同时也在功能基因组学中用于敲除基因或编辑基因组,以观察细胞的反应或表型变化。


🧩 细胞分割:识别单个细胞

今天,我们将讨论与这个基于图像的分析流程相关的两个计算问题。第一个是细胞分割,第二个是单细胞表征学习。让我们从细胞分割开始。

细胞分割的问题在于识别图像中单个细胞的位置。实际上有很多方法可以实现这一点,但生物学家捕捉的显微镜图像类型非常多样。

如果你查阅每种图像类型的文献,可能会找到专门的分割算法。这不太好,因为每当改变成像协议时(生物学家喜欢创造性地使用颜色或成像技术以观察更多细胞细节),就必须调整分割算法以确保其在实际中有效。

这阻碍了许多实验室的进展,因为他们要么坚持使用已知的图像协议和分割算法,要么在改变方法时必须花费更多时间和精力来分割图像。因此,我们开始思考:如果我们能开发一个通用的细胞分割算法,就像自然图像中的人脸检测器一样,会怎样?

社交媒体甚至我们手机中的算法可以自动检测人脸,我们无需调整任何参数或进行训练。这些模型经过训练,可以在各种条件下(包括人群、室内、室外等)检测人脸,并且效果很好。那么,为什么在生物学中不能有这样的东西呢?


🏆 数据科学竞赛:通用细胞分割

我们提出了这个问题,并在2018年围绕这一挑战组织了一场数据科学竞赛,旨在将计算机视觉技术应用于生物学。我们提供了十万美元的奖金,目标是分割任何类型的显微镜图像。

以下是我们在比赛中考虑的五种图像类型的例子。当然还有更多类型,但我们包括了来自三十种不同实验的五种图像类型。比赛持续了三个月,有三千个团队参加,他们总共进行了超过65,000次实验,试图解决如何在任何类型的显微镜图像上分割单个细胞的问题。

为了组织这场比赛,我们主要进行了三个步骤。第一步是创建带注释的数据集,因为我们希望团队参与监督机器学习模型的训练。我们需要输入输出示例,因此我们收集了来自多个不同实验的图像,并手动注释了算法应产生的输出,以获得准确的分割结果,我们称之为“地面实况”。

在收集了大约三万两千个单细胞的手动注释图像后,我们将数据集拆分为训练集和测试集。实际上有三个主要分区:公开的开发分区或训练分区,参与者可以以任何方式使用这些数据进行训练;第二个分区是测试分区,参与者可以用它从系统中获得反馈,但他们无法访问测试数据集的地面实况标签,只能看到图像并为其生成分割结果。

我们还必须定义成功的衡量标准。在这种情况下,度量标准是交并比(IoU),它主要测量两个细胞区域之间的重叠比例。这里有一个例子:想象紫色圆圈是一个真实的细胞,算法给出了这个更小的物体。我们可以计算两个区域的重叠部分(交集),并将其与两个区域的总和(并集)进行比较。这个分数告诉我们分割有多准确。理想情况下,我们希望物体与地面实况完全相同,但在实践中存在一些不匹配。

这是我们给参与者的反馈,以便让他们知道在分割测试集中的细胞方面是否做得好。在比赛的最后一轮,他们只有一周的时间来分割最终的测试集,这是对模型的最终测试。他们只能提交有限次数(如果我没记错的话,在那个时间跨度里可能只有三次),并且不会得到任何反馈,因为这将决定比赛的获胜者,即谁能够根据这个度量标准更准确地将最终测试集分割到数据集中。


🏅 竞赛中的优秀解决方案

在这种情况下,用于分割的模型被认为是有监督的训练模型,基本上需要一些带有示例输出的示例图像,这样我们就可以训练一个模型来学习输入和输出之间的关系。希望在测试用例中,他们只需要运行模型,就能为我们作为输入提供的图像生成分割图。请注意,这里我们没有对竞争对手可以使用的模型做出具体假设,他们可以选择任何他们想要的架构或机器学习模型,甚至经典分割算法,如果这也有效的话。

在实践中,本次比赛的前三名选手使用了以下架构。第三名是一个名为“深视网膜”的团队,他们使用了掩码R-CNN架构。以今天的标准来看,这是一个经典的架构,在深度学习中一切变化都很快,但这个架构是在2014年和2015年提出的,所以它已经有几年历史了,但非常成熟和可靠。

它的工作方式是:它观察图像,在图像中提议区域,这是掩码R-CNN程序,即系统认为可能有一些感兴趣物体的区域。它从卷积神经网络中提取特征,并生成一些候选区域。这些候选区域由另一个网络再次审查,该网络能够判断物体是否是真实物体,或者是否应该丢弃。如果它是一个真实物体,那么包围物体的确切边界框是什么?将物体与背景分开的掩码是什么?所有这些组件都在掩码R-CNN架构中。因此,这支队伍能够获得第三名。很高兴看到正确重用计算机视觉技术也可以实现高精度的细胞分割。

许多其他团队使用了相同的架构,但他们无法让它像这个特定团队一样准确地工作。这也告诉我们,这不仅仅是架构的问题,还关乎你运行的方式、正则化以及交叉验证实验以确保算法正常工作。

其次,我们拥有的是另一种类型的架构,我觉得这也很有趣,因为它再次告诉我们,也许确切的架构并不像你训练它的方式那么重要。这里的架构是一个图像金字塔网络。基本上,在这种情况下,我们把图像作为输入,然后计算多个特征图,这些特征图用于生成几个中间输出。这样,你可以从图像的所有尺度获得反馈,以改善特征。在最后一层有不同的分辨率,你正在聚合来自所有这些分辨率的信息,以便生成特定的输出。

我认为这个解决方案的创新之一不是架构本身(因为它也是计算机视觉中公认的架构之一),而是他们模拟输出的方式。他们不是预测二元掩码(这是对这类问题的常见做法),而是建议预测某种距离图或角度图。他们创建了一些编码,我猜测输出是为了获得更精确的测量,确保物体被准确定位。就这样,他们在比赛中获得了第二名。我认为主要的创新是输出的编码方式。

最后,第一名团队使用的架构类型是经典的U-Net。也许你在其他作品中见过。这里的基本思想是:你输入图像,一直计算表示直到更低的分辨率,甚至是单个特征向量,然后从那里你将这个表示解码成一个完整分辨率的图像。这是一个在编码器和解码器之间具有跳过连接的多分辨率编码器-解码器架构。他们以一种方式交流信息,基本上是通过将信息从编码器复制到解码器。这是一个非常简单的架构。

这里的创新与其说是架构(因为它也很古老和简单),不如说是他们用三种不同的模型复制了这种结构。他们有三个不同的U-Net,基于ResNets、DenseNets甚至Inception ResNets等。所以他们有各种各样不同的架构来形成编码器和解码器。他们同时训练所有这些模型,所以这是一个大规模的集成类型。我认为这是一种计算上涉及的方式来解决我们想要完成的任务。他们赢得了比赛,我认为集成对赢得比赛是有用的,但在实践中,更简单的模型似乎做得很好。这个组合的表现与第二名和第三名之间的差异很小,我们认为这可能并不重要,但计算负载肯定要大得多。


📊 分割方法的性能比较

有了这三种方法,我们真正想评估的事情之一是:我们得到了什么改进,以促进生物学研究?在这种情况下,想象一下我们有这五种类型的一百张图像。你有一个生物实验室,必须在本周内分割这100张图像中的细胞。那么有什么选择?

其中一个选项是:我们可以雇佣一个数据科学家,他可以用一个基本的U-Net模型,为我们拥有的每种图像类型分别训练一个模型,因为那是当时的惯例。这个人要花大约20个小时的工作,为五种图像类型优化五个U-Net。通过在这些图像上运行一个独立的模型,我们可以看到你能得到多准确。这里我们用点的颜色表示每个类别中的一张图像。例如,这里只有一个绿色的图像,就是这个,然后在紫色的图像上等等。精度是F1的测量,所以越高越好。正如你所看到的,有些图像很难被这些模型分割,这里的平均准确率是62%,所以很难分割,因为你没有受过足够的训练来准确分割那种图像。

我认为这是这个特定数据集的问题之一:我们得到的注释类型不平衡,对于每个数据集,这也代表了现实世界的情况。有些图像也很难注释,因为它们需要专家真正进入并指出这是一个对象,这是一个单独的对象。所以我们肯定缺少一些例子,尤其是蓝色和紫色的例子,在这个里面是比较难分割的。

另一种可能是使用经典算法对图像进行分割。在这种情况下,你基本上必须下载图像分割工具,然后配置参数。你可以使用多种东西。这个人会花更少的时间,因为它只是调整参数,但它也会得到几乎相同的精度。同类问题,有些图像更难分割,这只是经典的算法,不需要做任何训练或任何优化。

如果你问专家图像分析师,他们可以更好地优化分割算法的参数,因为他们有经验,知道帮助正确分段的参数是什么。他们可以获得高达74%的准确率,这在更短的时间内有点有趣,所以有经验绝对有帮助。

最后,如果你用比赛中排名第一的模型,你不需要配置任何东西,因为模型是预先训练的,可以拍摄任何图像。有趣的是,你也可以得到更高的准确性。我认为这也是一个信息:如果我们利用从所有图像中获得的协同学习,你可以做得更准确。在一天结束的时候,你只需要训练一个模型,你可以分享和使用,就像是通用的检测器。

最近的一些作品专门研究了分割的特定方面。我想,我们现在正在实现一种通用的细胞分割工具的目标。你可以在网上找到至少三种方法:Cellpose、StarDist和Mesmer。它们都是预先训练好的模型,令人惊讶的是,它们都使用了人们在比赛中使用的策略。在Cellpose的情况下,使用了U-Net;在StarDist的情况下,使用了掩码R-CNN;在Mesmer的情况下,使用了特征金字塔网络。所以我们作为一个自动分割细胞的社区正在取得进展。我们不仅仅是分割细胞核,我们现在也分割细胞体,这当然更具挑战性。


🚀 单细胞表征学习

我要切换到第二个主题:单细胞表征学习。我想我不会有太多时间详细讨论,但基本上,回到表型分析的想法,我们想把图像转换成我们可以用来做决定的信息。一个步骤是分割,我们刚才已经讨论过。第二步是测量细胞的表型,那是最初的动机,比如细胞是怎么回事?我们需要测量这些性质。

测量形态学的一个经典方法是使用区域形状、细胞核的大小或非常具体的工程测量。但我们知道,机器学习方法可能也能够学习我们无法轻松描述的特征。细胞就是这样,只是看着细胞,有时这些已经足够复杂了。发现能在细胞群体之间产生差异的特征,机器学习方法也许能更好地帮助我们。

原来这里有一个重要的警告:我们正在处理扰动实验。这意味着我们要取细胞,用化合物处理细胞(一些化学物质),我们应用这些化合物到培养皿中的细胞,它们给了我们一个形态学,这就是我们在图像中观察到的。但是,这些化合物通常像板一样成批组织。批次对形态也有影响。所以如果是在早上,也许细胞会更活跃;如果是在晚上,它们可能状态不同;或者是另一个人在做实验,一天结束时的一些显微镜干扰,这很敏感。所以批次中任何类型的最小扰动都会在这里产生影响。

我们想发现的,真的是什么表型解释了化合物的效果。我们不能直接测量化合物的效果,我们想通过形态学来观察它,但是批处理效应有时会产生噪音,有时混淆了我们对细胞表型中什么是重要的理解。哦,顺便说一句,我们这里没有标记,这是与分割的一个主要区别:这不是一个监督学习问题。我们最终不知道表型是什么,这是药物发现,我们不知道这种化合物是否有效。所以没有基本的事实。

我们希望在这里使用完全不需要监督的方法。我们使用的是弱监督学习的方法,它使用关于化合物的信息。所以基本上,我们取一个细胞,通过神经网络运行该细胞,我们问:你能说出应用在细胞上的化合物是什么吗?因为这是实验的一部分,我们知道化合物是什么。我们不知道的是这种化合物是否有效。所以网络必须做出分类决定,但我们不在乎分类,因为我们已经知道应用于细胞的化合物是什么。我们想要的是网络学习到的特征,为了以有意义的方式组织这些细胞,因为这些特征会告诉我们化合物是否相似。

我们如何评估?想象一下我们得到十三种化合物。所以图中的每个灰色节点都是一个化合物,我们在每个化合物中都有一个细胞群。这些细胞已经根据网络中的特征聚集在一起,假设这是形态的平均值。所以我们想做的是能够理解哪些化合物彼此相似。我们可以把这个图(所有化合物对所有化合物)中观察到的连接与生物学意义进行比较。这只是为了基准测试的目的,为了了解我们将做出的发现在生物学上是否重要。

如果我们得到的特征表示是有用的,我们应该观察到化合物之间的连接具有生物学意义。这几乎是这里在实践中的目标。当制药公司实际运行这项技术时,他们不知道这种联系是真是假,所以他们必须进行另一个实验,也许更复杂,不仅仅是图像,也许是测序什么的,或者也可以和真正的病人在一起。但是使用图像的目标,就是把搜索空间缩小到几个有用的化合物。

当我们用不同的实验进行测试时,我们观察到深度学习的特征和经典的特征有很大的不同。在x轴上,我们有我们在图中观察到的连接总数的百分比;在y轴上,我们观察到真正有生物学意义的联系有多丰富。深度学习给了我们优势,尤其是在连接化合物方面。例如,在这种情况下我们有一万六千六百种药物,我们想看看它们在生物学上是否有联系,只要看图像。这些结果表明是这样的。

您可以根据细胞形态特征确定癌症梯度或突变的影响。有时当癌症患者有肿瘤时,他们现在常规地对肿瘤进行测序,你可以看出有很多突变,但我们不知道突变是否导致了癌症,或者只是乘客突变(那是癌症的影响,但不会真正产生癌症)。所以在这种情况下,我们比较原始类型的基因与突变体,只要再看一次图像,我们可以看到有区别。问题是我们如何量化它?我们可以计算特征,比较细胞的群体(例如蓝色、红色和绿色的种群),测量它们之间的表型相似性,以估计突变体是否真的导致了癌症。所以这是测量细胞形态的另一个应用。


🧪 处理批次效应与领域自适应

我说的是批次效应,这是我们在学习过程中必须注意的事情。如果我们不纠正批次效应,数据将有一个结构,基本上对应于批次(这是这里的颜色)。在最下面的一排,当我们在事实发生后对批次进行校正时,我们可以消除一些结构,但它仍然存在。我们应该多用一点防止批次效应的主要方法。

这是我们最近正在测试的一个想法:领域自适应。我们基本上可以添加另一个分类器。这里的标签是:这是一个神经网络,它有两个头。第一个头对化合物进行分类,因为它是我们可以用来学习特征的东西。第二个分类器确定批次,我们不希望这些信息影响我们使用的功能。所以我们用负样本来摧毁任何来自图像并与批次相关联的潜在信息。

使用这种方法,我们可以纠正批次效应。神经网络学习特征,右边的列指示批次,而左边的列指示未经批次更正的信息。所以你可以看到它都混在一起了。我们想把批次和表型分开,为了减少混乱。理想情况下应该是这样的,但不应该影响这些群体中的任何一个,并应通过网络明确确定表型。这就是我们用梯度反转层得到的。

以下是关于表征学习的一些开放挑战,其中涉及批量校正,这仍然是一个问题,以及可解释的模型,因为这些特征在深度学习中通常是没有意义的。所以我们真的需要推动这个领域,然后把它也修好。


📝 课程总结

本节课中我们一起学习了如何利用深度学习进行细胞图像分割和单细胞表征学习。我们探讨了基于图像的表型分析在药物发现和生物学研究中的重要性,并详细介绍了通过数据科学竞赛推动通用细胞分割算法发展的过程。我们分析了竞赛中优秀的解决方案(如掩码R-CNN、图像金字塔网络和U-Net集成),并比较了不同分割方法的性能。最后,我们讨论了单细胞表征学习的挑战,特别是如何处理批次效应,并介绍了领域自适应等解决方法。图像是丰富的信息来源,通过深度学习技术,我们可以从中提取有价值的定量信息,助力生物医学发现。

🧠 机器学习基础 02:神经网络基础与优化

在本节课中,我们将学习机器学习的基本概念、传统神经网络的定义、以及如何使用梯度下降法来优化和训练网络。我们还将探讨如何评估模型性能以及防止模型过拟合的正则化方法。


什么是机器学习?

机器学习可以广义地定义为:利用经验(数据)来提升性能或做出更准确预测的计算方法。其核心在于从数据中自动检测模式,并利用这些模式对未来数据或其他结果进行预测。

一个机器学习任务通常包含三个要素:

  • 任务:例如,对手写数字图像进行分类。
  • 经验:即训练数据集,例如一组带有标签的手写数字图像。
  • 性能度量:用于评估模型好坏的指标,例如测试集上正确分类的百分比。

我们的目标是学习一个函数,将输入数据 x 映射到输出预测 y_hat,并使其在未见过的数据(测试集)上表现良好,这被称为模型的泛化能力


机器学习任务类型

机器学习任务主要根据输出标签 y 的情况进行分类。

以下是主要的机器学习任务类型:

  • 监督学习:训练数据包含输入 x 和对应的输出标签 y。我们的目标是学习 xy 的映射关系。
    • 分类:预测离散的类别标签(例如,猫或狗)。
    • 回归:预测连续的数值(例如,房价)。
  • 无监督学习:训练数据只有输入 x,没有标签 y。目标是发现数据中的内在结构或模式(例如,聚类)。
  • 半监督学习:训练数据中只有部分数据带有标签,结合有标签和无标签数据进行学习。
  • 强化学习:智能体通过与环境交互,根据获得的奖励或惩罚(部分反馈)来学习如何采取行动。

模型、参数与目标函数

上一节我们介绍了机器学习的任务类型,本节中我们来看看模型是如何构建和优化的。

一个机器学习模型可以看作是一个函数 f,它接受输入 x 和一组参数 θ(例如权重 w 和偏置 b),然后计算输出 y_hat

为了训练模型,我们需要定义一个目标函数(通常称为损失函数或成本函数),它用于衡量模型预测 y_hat 与真实标签 y 之间的差距。我们的目标是通过调整参数 θ 来最小化这个目标函数。

以下是常见的损失函数:

  • 均方误差:用于回归任务,计算预测值与真实值之差的平方的平均值。公式为:MSE = (1/n) * Σ(y_i - y_hat_i)^2
  • 交叉熵损失:常用于分类任务,特别是与Softmax函数结合。它衡量两个概率分布之间的差异。
  • 0-1损失:用于分类,如果预测错误则损失为1,正确则为0。


训练、验证与测试

为了可靠地评估模型,我们需要将数据划分为三个互斥的集合。

以下是数据划分的目的:

  • 训练集:用于拟合模型参数。模型直接从此数据中学习。
  • 验证集:用于调整超参数(如网络层数、学习率)和选择模型,以及在训练过程中监控是否出现过拟合(当验证集误差开始上升时)。
  • 测试集:用于在模型完全训练和调优后,最终评估模型的泛化性能。测试集在训练过程中绝对不可使用。

这种划分可以防止模型仅仅“记住”训练数据(过拟合),从而确保其学到的是普遍规律。


模型评估指标

仅仅知道模型有误差还不够,我们需要具体的指标来量化其性能。

对于分类任务,常用指标基于混淆矩阵,它统计了真正例、假正例、真反例、假反例的数量。

以下是基于混淆矩阵的关键评估指标:

  • 准确率:所有预测中正确的比例。Accuracy = (TP + TN) / (TP + TN + FP + FN)
  • 精确率:在所有预测为正的样本中,实际为正的比例。Precision = TP / (TP + FP)
  • 召回率:在所有实际为正的样本中,被预测为正的比例。Recall = TP / (TP + FN)
  • F1分数:精确率和召回率的调和平均数,用于平衡二者。F1 = 2 * (Precision * Recall) / (Precision + Recall)
  • ROC曲线与AUC:通过变化分类阈值,绘制真正例率与假正例率的关系曲线,曲线下面积越大,模型性能通常越好。

对于回归任务,常用皮尔逊相关系数斯皮尔曼秩相关系数来衡量预测值与真实值的关联程度。


神经网络基础

现在,让我们将上述概念应用到神经网络中。神经网络受到生物神经元的启发,由多层互连的“神经元”组成。

一个基本的神经元接收来自前一层神经元的输入 x,计算加权和 z = w·x + b,然后通过一个激活函数 σ 产生输出 a = σ(z)。激活函数引入了非线性,使得神经网络能够拟合复杂的函数。

以下是常见的激活函数:

  • Sigmoid:将输入压缩到(0,1)之间。公式为:σ(z) = 1 / (1 + e^{-z})
  • Tanh:将输入压缩到(-1,1)之间。
  • ReLU:整流线性单元,是目前最常用的激活函数。公式为:ReLU(z) = max(0, z)
  • Leaky ReLU:对ReLU的改进,当输入为负时有一个小的斜率,避免神经元“死亡”。

深度神经网络通过堆叠多个这样的层(输入层、隐藏层、输出层)来构建,深层网络可以学习从低级特征到高级特征的层次化表示。


训练神经网络:梯度下降与反向传播

神经网络拥有大量参数,我们需要一种高效的方法来优化它们。这就是梯度下降法

梯度下降的核心思想是:计算损失函数 L 关于每个参数 θ梯度(偏导数),这个梯度指明了损失函数上升最快的方向。为了最小化损失,我们让参数沿着梯度的反方向进行更新。

参数更新公式为:
θ_new = θ_old - η * ∇L(θ_old)
其中 η学习率,控制每次更新的步长。

对于多层神经网络,计算底层参数的梯度需要用到链式法则,这个过程被称为反向传播。反向传播从输出层开始,将误差梯度层层向后传递,从而高效地计算出所有参数的梯度。

在实践中,我们常使用其变体:

  • 随机梯度下降:每次迭代随机抽取一小批数据进行梯度计算和参数更新,效率更高。
  • 带动量的梯度下降:在更新时不仅考虑当前梯度,还考虑上一次更新的方向,有助于加速收敛并减少震荡。


模型容量与正则化

随着模型参数增多(容量增大),模型可以拟合更复杂的函数,但也更容易过拟合训练数据。

模型容量指的是模型拟合各种函数的能力。我们需要在容量不足(欠拟合)和容量过大(过拟合)之间找到平衡。

正则化是一系列用于防止过拟合、提高模型泛化能力的技术。

以下是常用的正则化方法:

  • L1/L2正则化:在损失函数中增加一项,惩罚较大的权重。L1正则化倾向于产生稀疏权重,L2正则化使权重趋向于较小值。
    • L2正则化项:λ * Σ w_i^2
    • L1正则化项:λ * Σ |w_i|
  • Dropout:在训练过程中,随机让网络中的一部分神经元暂时“失活”,这可以防止神经元之间产生复杂的共适应关系,相当于每次训练一个不同的子网络。
  • 早停:在训练过程中持续监控验证集误差,当验证集误差不再下降反而开始上升时,停止训练。
  • 数据增强:通过对训练数据进行随机变换(如旋转、裁剪、加噪声)来人工增加数据量,提高模型鲁棒性。


总结

本节课中,我们一起学习了机器学习的基础框架:

  1. 定义了机器学习及其核心要素:任务、经验和性能度量。
  2. 区分了不同类型的机器学习任务,如监督学习、无监督学习等。
  3. 介绍了模型、参数、损失函数和优化目标。
  4. 强调了通过划分训练集、验证集和测试集来可靠评估模型的重要性。
  5. 讲解了神经网络的基本结构,包括神经元、激活函数和深度层次。
  6. 深入探讨了使用梯度下降和反向传播算法来训练神经网络的原理。
  7. 最后,我们了解了模型容量的概念以及如何使用正则化技术(如L1/L2、Dropout)来避免过拟合,确保模型具有良好的泛化能力。

这些概念是理解所有现代深度学习模型的基石,在接下来的课程中,我们将在此基础上学习更具体的网络架构,如卷积神经网络和循环神经网络。

课程21:深度学习图像配准与分析 🧠📊

在本节课中,我们将学习如何利用深度学习技术进行医学图像配准与分析。我们将从核心概念出发,探讨如何将经典配准问题转化为可学习的神经网络任务,并介绍一系列提高模型鲁棒性、灵活性和效率的先进方法。


图像配准的核心问题与经典方法

上一节我们介绍了课程概述,本节中我们来看看图像配准要解决的核心问题。

医学图像提供了大量关于人体解剖结构的信息。在研究中,我们通过分析医学图像来识别特定结构、捕捉随年龄或疾病发生的变化、建立解剖学与临床结果的关联,甚至预测大脑的未来形态。所有这些分析的核心操作,是将图像对齐到一个共同的参考坐标系中。

图像配准问题可以表述为:给定两个图像(通常是三维体数据),目标是找到一个变形场。这个场在每个位置都包含一个小箭头,指示如何移动一个图像(源图像)的像素,使其与另一个图像(目标图像)匹配。

公式表示: 寻找变形场 φ,使得变形后的源图像 I_s ∘ φ 与目标图像 I_t 尽可能相似。

这个问题至关重要,因此人们已经进行了数十年的研究。经典方法将其归结为一个优化问题:我们希望找到的变形场 φ 应具备两个特性。

  1. 图像匹配:变形后的源图像应与目标图像相似。
  2. 场平滑:变形场本身应该以某种方式保持平滑(正则化)。

优化目标可以概括为:
L_total = L_similarity(I_s ∘ φ, I_t) + λ * L_smooth(φ)
其中,λ 是权衡两项损失的超参数。

然而,经典优化方法速度很慢,处理一对三维图像可能需要数小时,这严重限制了复杂模型的开发和应用。


基于学习的配准:VoxelMorph 框架

上一节我们了解了经典配准方法的瓶颈,本节中我们来看看如何用深度学习来加速这一过程。

大约三年前,基于学习的方法开始尝试解决速度问题。这些方法将配准视为一个“黑箱”问题:输入一对图像,通过神经网络直接输出变形场。最初的思路是监督学习,需要大量“图像对-真实变形场”数据来训练网络。但获取真实的变形场标注极其困难且昂贵。

我们的方法转向了无监督学习。我们借鉴经典配准的损失函数思想,但将其用于训练神经网络。核心思想是:我们向网络输入随机的图像对,网络输出一个变形场 φ。我们使用与经典方法类似的损失函数来评价这个场的好坏,但关键是我们不优化单个 φ,而是优化整个神经网络的参数,使其能为任何输入图像对都产生低损失的变形场。

以下是实现这一框架的关键步骤:

  1. 网络架构:通常使用U-Net等编码器-解码器结构,输入是拼接在一起的源图像和目标图像,输出是密集的变形场。
  2. 损失函数:包含图像相似性损失(如均方误差 MSE 或归一化互相关 NCC)和变形场平滑损失(如基于空间梯度的正则化)。
  3. 图像变换:通过网络输出的变形场 φ 对源图像进行空间变换,这一操作(如线性插值)需要是可微的,以便梯度可以回传。
  4. 训练:使用随机梯度下降法在大量未标注的图像数据上优化网络参数。

这个方法被称为 VoxelMorph。其优势在于,训练完成后,配准只需一次前向传播,在CPU上耗时不到一分钟,在GPU上不到一秒钟,速度实现了数量级的提升。


效果验证与小样本学习

我们如何知道VoxelMorph是否真的工作良好?除了视觉上检查解剖结构(如脑室、海马体)是否对齐,我们还需要定量评估。

我们通过分割好的解剖结构标签来计算戴斯相似系数(Dice Score),以衡量重叠度。实验表明,VoxelMorph在配准精度上与需要数小时优化的经典方法相当,但速度极快。

一个常见问题是:需要多少数据来训练这样的网络?我们分析了使用不同数量图像(10, 25, 50, 100张)训练模型的效果。发现即使只有10张图像,模型也能达到接近最先进方法的性能。虽然不完美,但我们可以将其输出作为初始值,再进行短暂的(例如20秒)经典优化微调,就能获得最优结果。这使得该方法对于只有少量数据的研究也非常实用。


针对特定结构的配准

在实践中,研究者可能只关心某个特定解剖结构(如海马体)的精确对齐。经典方法需要在测试数据中手动标注该结构来引导配准,这在大规模研究中不现实。

我们的解决方案是:在训练阶段,除了图像,我们向网络提供一些带有解剖标签的数据(但不需要所有训练数据都有标签)。我们在损失函数中增加一项,要求网络在输出变形场时,也要确保这些已知的解剖标签能够对齐。这样,网络在学会通用配准的同时,也隐式地学习了这些结构的位置和形态。

测试阶段,我们只需要输入图像,网络就能自动地、更精确地对齐我们关心的结构。实验证明,这种方法能显著提升在特定解剖区域上的配准精度。


提高模型鲁棒性:处理多模态图像

医学影像存在多种模态(如T1, T2, FLAIR等),同一大脑在不同模态下看起来差异很大。一个在特定模态上训练的配准网络,可能无法泛化到其他模态。

为了解决这个域适应问题,我们提出了 SynthMorph 方法。其核心思想是:通过模拟生成极其多样化和不现实的图像数据来训练网络,使网络暴露在远超真实数据范围的变异中,从而迫使它学习到对图像对比度(强度)不变的特征,只关注解剖形状信息。

以下是生成模拟数据的流程:

  1. 从公开的脑图谱中获取解剖标签图。
  2. 随机变形这些标签图,生成多样的解剖形状。
  3. 在变形后的不同标签区域内,填充随机的强度值,并添加各种噪声、伪影等效果,模拟不同模态甚至“非真实”的图像。

网络在训练时只看到这些模拟的图像对,但我们可以通过检查它是否对齐了已知的标签图(我们在模拟时是知道的)来监督它。最终,网络学会了忽略强度差异,只根据形状进行配准。

实验表明,用SynthMorph训练的模型,不仅在见过的模态上表现良好,在从未见过的全新模态图像上进行配准时,也展现出卓越的鲁棒性,性能显著优于在单一模态真实数据上训练的模型。


超参数自适应:HyperMorph

无论是经典方法还是学习式方法,配准都有一个关键超参数 λ,它控制着图像匹配损失与变形场平滑损失之间的权衡。手动调整 λ 非常耗时。

我们提出了 HyperMorph。其思路是训练一个“超网络”,该网络以超参数 λ 的值作为额外输入。在训练过程中,网络会看到不同的 λ 值,并学习根据 λ 的值来调整其行为(例如,当 λ=0 时,输出尽可能匹配图像但不平滑的场;当 λ 很大时,输出非常平滑但匹配度可能稍差的场)。

技术实现:我们使用一个小的超网络,输入 λ 值,输出主配准网络(如VoxelMorph)的部分或全部权重。这样,一个单一的HyperMorph模型就涵盖了整个 λ 值范围内的行为。

这意味着:

  • 训练一次:只需训练一个模型,而非多个不同 λ 的模型。
  • 实时调整:在推理时,用户可以像调节旋钮一样实时改变 λ,并立即看到配准结果的变化。
  • 事后优化:可以在一个小验证集上自动搜索针对当前数据或任务的最佳 λ,而无需重新训练模型。

实验证明,最优的 λ 值会因数据集、患者群体、配准任务类型甚至关心的解剖区域不同而变化。HyperMorph 提供了一种灵活高效的解决方案。


联合学习图谱与配准:条件化模板构建

在许多研究中,我们需要将所有数据对齐到一个公共模板(图谱)上。构建一个好的模板通常是一个迭代、耗时的过程。

我们思考:既然配准网络已经看到了大量数据并学会了对齐,能否让它同时学习最优的模板?我们扩展了VoxelMorph框架,让网络在学会将图像配准到一个隐式模板的同时,也估计出这个模板图像本身。网络从数据中直接学习出最具代表性的公共参考框架。

更进一步,当数据集中包含不同属性的个体(如不同年龄)时,单一模板可能不是最佳表示。我们提出了 条件化模板构建

我们让网络学习一个函数,该函数以属性(如年龄)为条件,生成对应的模板。在训练时,我们向网络输入图像以及该图像对应的属性(如年龄)。网络逐渐学会建立一个平滑变化的、依赖于年龄的模板序列。

这样,我们可以得到从青少年到老年的连续变化的脑图谱,清晰展示如脑室随年龄增长而扩大等解剖变化。这一切仅从数据中学习得到,无需预先定义任何解剖变化模型。


总结

本节课中我们一起学习了深度学习在医学图像配准与分析中的革命性应用。

我们从经典的优化配准方法出发,介绍了如何通过无监督学习框架 VoxelMorph 将配准速度提升数个数量级。我们探讨了如何在小样本数据下应用该方法,以及如何使其专注于对齐特定解剖结构。

接着,我们深入研究了提高模型实用性的关键进展:使用 SynthMorph 通过模拟极端多样化的数据来解决多模态图像的域适应问题,使模型对未见过的图像类型具有强鲁棒性;通过 HyperMorph 将超参数调节过程融入网络本身,实现了配准行为的实时、灵活控制。

最后,我们展示了如何将配准与模板构建统一在一个框架内,并实现条件化模板学习,从而能够从数据中直接学习出随连续属性(如年龄)平滑变化的解剖图谱。

这些方法不仅解决了配准本身的速度和精度问题,更重要的是,它们改变了我们进行医学图像分析的研究范式,为下游的形态学分析、疾病建模和临床应用打开了新的道路。

课程P21:第22讲 - 电子健康记录 📊

在本节课中,我们将学习如何利用机器学习对电子健康记录(EHR)数据进行建模,特别是针对疾病进展的建模。我们将探讨数据的特点、建模的挑战,以及如何结合领域知识设计更有效的深度生成模型。


概述

电子健康记录数据的数字化进程,尤其是在美国,自2008年至2015年间迅速增长。这主要是由行政压力驱动,旨在更好地追踪医院系统的支出。然而,这一过程带来了一个有趣的后果:我们拥有了大量关于患者的数据,包括医学影像、住院监测、实验室结果甚至移动设备收集的健康信息。这促使了“医疗保健机器学习”这一领域的兴起,其核心问题是如何利用这些数据做出有意义的发现。

从广义上讲,该领域的工作主要围绕两个方面展开:一是通过对数据进行无监督学习,探索数据中存在的子结构,这些子结构可能与未来的临床结果相关;二是构建工具来辅助临床医生的工作流程。此外,还存在一种称为“疾病登记处”的特定数据集,它由非营利组织发布,专注于某一种疾病,为研究人员提供了更集中的数据来研究特定问题。


疾病登记处数据介绍

疾病登记处数据集通常包含以下信息:

  • 基线特征:包括人口统计学信息、遗传数据(如RNA测序)以及基线实验室生物标志物。
  • 纵向数据:患者随时间推移产生的数据,例如多次就诊记录。
  • 治疗信息:记录患者接受的治疗方案,通常以“治疗线”的形式组织。一线治疗是初始的标准方案,若效果不佳,则可能升级为二线或三线治疗。
  • 实验室结果:随时间变化的生物标志物测量值,这些数据通常存在缺失和噪声。

这类数据虽然包含了患者丰富的表型信息,但处理起来非常复杂,需要应对数据缺失、噪声等问题。


疾病进展建模问题

疾病进展模型通常被视为一个无监督学习问题,旨在对临床生物标志物的纵向序列进行建模。

具体而言,模型的目标是最大化给定患者基线特征和治疗历史条件下,观察到其临床生物标志物序列的概率。用公式表示,即最大化以下对数似然:

log P(X | A, B)

其中:

  • X 代表随时间变化的临床生物标志物序列。
  • A 代表基线协变量(如人口学特征)。
  • B 代表随时间进行的干预或治疗序列。


建模挑战与动机

我们将在多发性骨髓瘤(一种罕见的骨髓癌)的背景下探讨条件密度估计问题。这种罕见病带来了独特的建模挑战:

  1. 样本量少:由于疾病罕见,可用于学习的数据样本非常有限。
  2. 高维非线性数据:纵向生物标志物数据维度高,且随时间呈现非线性变化。
  3. 数据缺失:包括常规缺失和因患者退出研究导致的“右删失”数据。
  4. 治疗影响:生物标志物的变化不仅受其自身历史影响,也受治疗方案的影响。

上一节我们介绍了疾病进展建模的基本问题,本节中我们来看看解决这些问题可能面临的挑战。


建模工具选择

面对条件密度估计问题,我们有哪些工具呢?

以下是几种可能的模型选择:

  • 递归神经网络(RNN):擅长处理序列数据,可用于建模条件概率分布 P(X | A, B)
  • 隐马尔可夫模型(HMM)及其变体:如高斯状态空间模型,提供了另一种序列建模框架,其方程描述了状态如何演化并生成观测值。

然而,线性模型可能不足以捕捉数据的非线性动态。因此,深度生成模型,如深度马尔可夫模型(DMM),成为一个有吸引力的选择。DMM 使用神经网络来参数化潜在状态的转移函数和观测函数。

该模型的生成故事如下:从一个初始潜在状态 z1 开始,它生成初始观测 x1。随后,医生介入并开具治疗,这通过转移函数影响潜在状态,使其演变为 z2,进而生成新的观测 x2,如此循环。

模型参数通过最大似然估计进行学习,并利用变分推断和推理网络来近似棘手的后验分布。


融入领域知识

我们之前讨论的工具(如RNN和DMM)是强大的黑盒模型,但在数据稀缺时容易过拟合。而传统的线性模型(如状态空间模型)虽然在该领域有悠久历史,却无法捕捉非线性动态。

因此,我们提出的核心问题是:能否找到一个折中方案,通过融入领域知识来设计更有效的深度生成模型?

这项工作主要关注两种类型的领域知识:

  1. 治疗路线:用“全局时钟”(治疗总时长)和“局部时钟”(距重大进展事件的时间)来增强治疗表示。
  2. 药物作用机制:借鉴药代动力学/药效学(PK/PD)模型的思想,来近似药物组合(鸡尾酒疗法)对患者潜在状态的影响。

我们设计了三种受不同PK/PD模型启发的神经结构,并通过注意力机制将它们组合起来,形成一个统一的转换函数,我们称之为 SSM-PKPD 模型。


实验与结果

我们将 SSM-PKPD 模型应用于一个包含约1000名多发性骨髓瘤患者的数据集。数据包括16个纵向生物标志物、9种治疗方式以及16个基线特征。

我们与多个基线模型进行比较:

  • 线性状态空间模型(Linear)
  • 非线性状态空间模型(Nonlinear)
  • 专家混合状态空间模型(SSM-MoE)
  • 基于注意力的状态空间模型(SSM-Attn)

评估指标是负变分下界(负对数似然的近似),数值越低表示模型泛化能力越好。

实验结果如下:

  • 在不同训练集规模下的半合成数据上,SSM-PKPD 比线性和非线性基线模型表现出更好的泛化性能。
  • 在真实多发性骨髓瘤数据上,SSM-PKPD 在大多数成对比较中取得了更优的负对数似然。
  • 消融分析表明,收益部分来源于模型更好地捕捉了特定生物标志物(如血清IgG)的非线性动态,以及全局和局部时钟的有效性。

此外,对模型潜在空间的探索显示,它能够学习到与治疗线相关的有意义的结构。


总结与未来方向

本节课中,我们一起学习了如何为电子健康记录数据,特别是疾病进展数据,进行条件密度估计。

我们面临的挑战包括数据稀缺、缺失和非线性。传统方法要么容易过拟合,要么表达能力不足。我们的解决方案是深入思考数据生成过程,并将领域知识——特别是关于治疗路线和药物作用机制的知识——融入模型设计。这催生了新的 SSM-PKPD 模型,并在多发性骨髓瘤患者数据上展示了其改进的泛化能力。

从这项工作中可以获得的更广泛启示是:在设计生成模型时,值得深入思考数据背后的生成机制,并与领域专家合作,将他们的知识直接编码到模型中,从而使模型能更专注于学习数据中更复杂的方面。

未来工作可能包括:

  • 在更大规模的独立患者队列中验证模型。
  • 探索将模型用于临床决策支持工具,例如预测生物标志物轨迹以辅助治疗调整。
  • 扩展模型以进行反事实推理,即预测如果改变治疗方案会有什么结果。
  • 将模型整合到强化学习框架中,用于优化治疗策略。

总之,在医疗保健机器学习领域,特别是在临床数据建模、结果预测和多模态数据融合方面,仍然存在大量令人兴奋的研究机会。


感谢阅读本教程!

课程 P22:第23讲 - 深度学习与神经科学 🧠

在本节课中,我们将探讨深度学习与神经科学之间的深刻联系。我们将了解如何将深度网络视为关于大脑功能的科学假设,并回顾神经科学如何启发并受益于深度学习的发展。课程将涵盖从视觉系统研究到循环神经网络中记忆与计算的前沿探索。


概述:逆向工程人类智能 🎯

本次讲座的核心目标是理解如何“逆向工程”人类的数字智能,特别是视觉智能。我们希望用机制性的语言来解释人类如何根据输入的光子模式(例如视觉图像)产生智能行为输出。这本质上是在探索大脑——一个由模拟神经元组成的深层循环网络——如何工作。

上一节我们介绍了课程的整体目标,本节中我们来看看逆向工程方法的具体内涵。

神经科学的目标是解释人类智力的所有方面。当我们聚焦于“人类视觉智能”时,指的是由进入眼睛的光子输入所驱动的、可被观察到的行为能力。我们希望这种解释能用工程语言描述,即具体说明执行该功能的神经网络的参数,从而构建可预测、可与数据比较的系统。

这引出了三个互相关联的方面:

  1. 经验科学(神经科学与认知科学):从行为或大脑测量中观察现象。
  2. 合成工具(工程学):构建深度网络、机器人系统或算法。
  3. 深度人工网络作为科学假设:将特定的深度网络视为关于大脑功能如何运作的假设,并用神经科学数据对其进行评估。

令人兴奋的是,源于科学和工程的这两种方法正在汇聚,特别是深度人工网络已成为理解视觉系统(以及听觉系统等)功能的主要假设。


历史背景与核心问题 🔍

为了理解我们如何走到今天,需要一些历史背景。研究视觉智能时,我们面临一个难题:输入是击中眼睛的约百万像素的亮度阵列,而大脑却能推断出场景中的物体(如汽车、人)并预测接下来可能发生的事。

然而,从生物学可知,人类视觉并非一次性处理整个场景。视野中心约10度范围内具有高敏锐度,我们通过快速的眼球运动(眼跳)来采样场景,在每个位置停留约200毫秒。因此,我们可以将问题简化为研究在每一“瞥”(约10度、200毫秒的快照)中,大脑如何识别其中的核心物体(如汽车或人)。

以下是研究中使用的一种行为测试方法:

  • 向受试者快速闪现图像(约100毫秒)。
  • 要求受试者判断图像中的物体类别(例如,“更像鸟还是大象?”)。
  • 通过测量成功与失败的详细模式,来量化人类(及其他灵长类动物)的视觉识别能力。

研究发现,人类与恒河猴在核心物体识别任务上的表现非常相似。当前的计算机视觉系统虽然与人类的差距正在缩小,但尚未完全赶上。这种差异正是我们感兴趣的,因为它可能揭示人类大脑独特的工作机制。


腹侧视觉流:大脑的“深度网络”区域 🧬

当执行核心视觉识别任务时,大脑并非只有一个区域在工作。涉及一系列被称为“腹侧视觉流”的皮层区域。这些区域位于大脑底部,从初级视觉皮层(V1)到高级的颞下皮层(IT),形成一个具有前馈和反馈连接的深层网络。

以下是关于腹侧视觉流的关键事实:

  • 层级结构:信息从V1、V2、V4流向IT皮层,IT被认为是处理物体识别的高级区域。
  • 功能:损伤这些区域会导致物体识别任务缺陷。
  • 时间尺度:从图像呈现到IT皮层产生神经活动模式,大约有100毫秒的延迟,这与行为采样的时间尺度(约200毫秒/瞥)相匹配。

我们如何知道这些?主要通过侵入性电生理记录来研究。例如,在恒河猴的IT皮层植入记录电极,当呈现图像时,可以记录到单个神经元的放电活动(尖峰)。不同图像会引发不同神经元产生不同的放电模式。

通过平均放电率,我们可以将每个神经元对每个图像的响应量化为一个数字。使用慢性记录阵列,我们可以同时记录数百个神经元位点对成千上万张图像的响应,从而获得大规模的神经活动数据集。


从神经活动到行为:强大的特征空间 📊

一个重要的发现是:IT皮层的神经群体活动构成了一个强大的特征空间。如果在这个神经活动模式上训练一个简单的线性解码器(分类器),即使只用少量图像训练,它也能很好地推广到新图像,并且其产生的行为错误模式与人类和猴子的行为错误模式高度相似。

这意味着,在完成核心识别任务时,IT皮层似乎已经解决了大部分计算上困难的问题,其表征空间近乎线性可分。这不仅说明了该神经表征的强大,也使其成为脑机接口(如通过刺激引发特定感知)和人工智能模型构建的宝贵灵感来源。

因此,核心问题变成了:图像是如何经过一系列非线性变换,最终形成IT皮层中这种强大的神经表征的? 这正是深度网络可以建模的过程。


深度卷积网络作为视觉系统的假设 🤖

视觉神经科学的许多发现直接影响了深度学习架构的设计。例如:

  • 边缘滤波器:V1区神经元对特定方向的边缘响应,这类似于卷积神经网络中的卷积核。
  • 卷积结构:滤波器在视野中的平铺特性,启发了卷积操作。
  • 归一化:视觉系统中的增益控制机制,类似于网络中的归一化层。

因此,一个深度卷积网络在结构上就与已知的腹侧视觉流解剖结构相似。早期的神经科学启发模型(如HMAX)是假设,但它们在预测真实神经数据方面表现不足。

关键的突破来自于将工程优化引入到受神经科学启发的架构中。具体方法是:

  1. 构建一个深度卷积网络(作为假设的架构)。
  2. 让其执行核心物体识别任务(定义目标)。
  3. 使用反向传播等优化方法调整网络参数,以完成该任务(工程工具)。
  4. 优化完成后,固定网络参数,将其视为一个具体的“人工腹侧流”模型。
  5. 将模型的内部神经元活动与真实大脑(如猴子的V1、V4、IT区)记录的神经活动进行一对一的定量比较。

研究发现,经过任务优化的深度网络,其内部表征与真实大脑各层级(V1, V4, IT)的神经活动模式相似度显著高于早期模型。这意味着,通过结合神经科学的架构指导和工程化的性能优化,我们得到了更接近大脑工作机制的假设模型。


循环神经网络与类脑计算 💭

视觉系统主要是前馈处理,但大脑的许多高级功能(如工作记忆、规划、推理)依赖于循环连接。循环神经网络因其具有内部状态(记忆)和动态特性,成为模拟这类功能的强大工具。

真正的神经系统擅长操纵内部表征。例如:

  • 海马体中的位置细胞:不仅能编码当前位置,还能在老鼠行动前“规划”未来的运动轨迹。
  • 鸣禽的歌声学习:通过模仿形成复杂的时间序列记忆,并能通过冷却特定脑区来线性改变歌声时长。

研究问题是:RNN如何仅通过观察示例,就学会存储、修改和操纵复杂的记忆(如混沌吸引子)?

一种方法是使用“储备池计算”框架。通过将记忆(如洛伦兹吸引子的时间序列)作为输入驱动储备池,然后仅训练一个线性输出层来重建输入。之后,用输出反馈替代外部输入,网络就能自主地演化出该记忆。

更神奇的是,如果我们在训练时将不同的记忆(如平移或扭曲后的吸引子)与不同的“上下文”控制信号关联,训练后的网络能够学会根据控制信号的值,对其内部记忆表征进行插值和外推,甚至能预测从未见过的、复杂的动力学分岔行为。

这背后的机制是,网络在学习重建输入的同时,其输出权重矩阵也隐式地学习了内部状态变化与期望表征变化之间的微分关系。这展示了RNN通过简单模仿来学习复杂表征操作和计算的巨大潜力。


总结与展望 🚀

本节课我们一起学习了深度学习与神经科学之间丰富的双向互动:

  1. 深度网络作为假设:我们将深度卷积网络视为关于腹侧视觉流如何工作的可测试假设。通过结合神经科学架构与工程优化,得到的模型能更好地预测大脑神经活动。
  2. 神经科学启发AI:对视觉皮层的研究直接催生了卷积网络等关键架构思想。
  3. 循环网络与高级认知:RNN展示了通过模仿学习来获得工作记忆、操纵内部表征和进行预测的强大能力,为理解更高级的脑功能提供了框架。
  4. 未来方向:当前的模型仍不完美,例如缺乏足够的循环连接。差异之处正是指导未来研究的线索。通过持续整合更真实的神经约束(如连接性、动力学)和开发新的优化目标,我们有望构建更接近大脑的模型,这不仅能深化我们对智能的理解,也将推动人工智能的进步。

最终,我们应开始将神经网络视为具有内在动力和状态的“活”的系统,而不仅仅是函数逼近器。理解这些系统如何通过与世界互动来学习、记忆和规划,是通向通用人工智能和理解我们自身心智的关键一步。

🧠 课程三:卷积神经网络(CNNs)详解

在本节课中,我们将学习卷积神经网络(CNNs)的核心概念、工作原理及其与生物视觉系统的联系。我们将从基础原理出发,逐步构建对CNN架构的完整理解。


🧬 生物视觉的启发

卷积神经网络的设计灵感很大程度上来源于人类和动物的视觉系统。神经科学研究,特别是对猫和猴子视觉皮层的研究,揭示了几个塑造了机器学习领域的关键原则。

核心原则

以下是视觉皮层研究中发现的关键原则,它们直接影响了CNN的设计:

  1. 局部感受野:视觉皮层的神经元并非连接到整个图像,而是只对图像中特定的、重叠的局部区域(感受野)做出反应。这对应了CNN中卷积核的局部计算特性。
  2. 简单细胞与特征检测:存在“简单细胞”,它们只对特定方向的边缘等简单特征做出反应。这启发了CNN中用于检测边缘、角点等基础特征的卷积滤波器。
  3. 复杂细胞与位置不变性:在视觉皮层更高层,存在“复杂细胞”,它们对特征的具体位置不敏感(例如,无论老鼠出现在视野的哪个位置,相应的神经元都会激活)。这对应了CNN中的池化(Pooling)操作,它提供了平移不变性并减少了参数数量。
  4. 分层抽象:视觉信息从像素到边缘,再到形状和复杂物体,是通过层层抽象来处理的。这直接对应了深度学习“深度”的概念,即通过多层网络学习越来越抽象的特征。

神经元的计算模型

单个神经元的工作方式可以简化为一个计算模型:

  • 加权求和:树突接收来自其他神经元的信号,这些信号根据突触强度(权重)进行加权并求和。公式可表示为:z = Σ(w_i * x_i) + b,其中 w_i 是权重,x_i 是输入,b 是偏置(激活阈值)。
  • 非线性激活:细胞体对加权和进行整合,如果超过某个阈值,则通过轴突产生一个输出信号(“放电”)。这个“是否放电”或“放电强度”的函数就是激活函数,它引入了非线性,使得网络能够学习复杂的函数。

🏗️ CNN的核心组件

基于生物视觉的启发,CNN由以下几个关键组件构成。上一节我们介绍了生物学的灵感,本节中我们来看看这些灵感如何转化为具体的计算模块。

1. 卷积层(Convolution)

卷积操作是CNN的基石,它利用了两个关键思想:局部连接参数共享

  • 局部连接:每个神经元(或滤波器)只与输入数据的一个小局部区域(如3x3的像素块)连接,而不是与全部输入连接。这大幅减少了参数数量。
  • 参数共享:同一个滤波器(一组固定的权重)会滑过整个输入图像的所有位置,进行相同的计算。这意味着我们只需学习一个小的滤波器,就能检测图像中任何位置出现的特定特征(如垂直边缘)。

计算示例
一个3x3的滤波器在5x5的图像上进行卷积。滤波器矩阵与图像上每一个3x3的局部区域进行逐元素相乘后求和,得到一个特征值,最终生成一个特征图(Feature Map),该图指示了原图中每个位置该特征出现的“强度”。

# 概念性代码:卷积运算
# 假设 image 是输入矩阵,kernel 是卷积核
feature_map = convolve(image, kernel, stride=1, padding='same')

2. 激活函数(Activation Function)

卷积运算是线性的。为了引入非线性,使网络能够学习复杂模式,我们在卷积后立即应用一个激活函数。

  • 作用:决定神经元是否“激活”以及激活的程度。它模拟了生物神经元超过阈值后放电的行为。
  • 常用函数:ReLU(Rectified Linear Unit)是最常用的,其公式为 f(x) = max(0, x)。它简单且能有效缓解梯度消失问题。

3. 池化层(Pooling Layer)

池化层通常跟在卷积-激活层之后,用于下采样(降低维度)和增强特征的空间不变性。

  • 作用
    • 降维:减少特征图的大小,从而减少计算量和参数。
    • 位置不变性:通过对局部区域取最大值(Max Pooling)或平均值(Average Pooling),使得网络对特征的微小位移不那么敏感。
  • 操作:例如,一个2x2、步幅为2的最大池化,会在每个2x2区域中取最大值,并将输出尺寸减半。

# 概念性代码:最大池化
pooled_map = max_pool(feature_map, pool_size=(2, 2), strides=2)

4. 全连接层(Fully Connected Layer)

在经过多次“卷积-激活-池化”的循环后,我们得到了高级的抽象特征。这些特征将被展平(Flatten),并输入到一个或多个全连接层中。

  • 作用:综合所有提取到的高级特征,进行最终的分类或回归决策。例如,判断图像中是“猫”、“狗”还是“汽车”。
  • 特点:这一层的每个神经元都与前一层的所有神经元相连,因此参数数量通常非常庞大。


🧩 构建完整的CNN架构

现在,让我们把上述所有组件组合起来,形成一个典型的深度CNN。以下是构建流程:

  1. 输入:原始图像(例如,39x39x3的RGB图像)。
  2. 特征提取堆栈:重复多次“卷积 -> 激活 -> 池化”的序列。
    • 第一层卷积可能使用多个滤波器(如20个),生成20个特征图(深度为20)。
    • 池化层减小特征图的空间尺寸(宽度和高度)。
    • 后续的卷积层可以探测更复杂的特征,滤波器数量也可能增加(如40个、80个)。
  3. 展平:将最后一个池化层输出的多维特征图(例如,7x7x40)转换成一维向量(例如,7740=1960维)。
  4. 分类:将展平后的向量输入到一个或多个全连接层,最后通过一个Softmax层输出各类别的概率。

# 概念性TensorFlow/Keras代码结构
model = Sequential([
    Conv2D(filters=20, kernel_size=(5,5), activation='relu', input_shape=(39,39,3)),
    MaxPooling2D(pool_size=(2,2), strides=2),
    Conv2D(filters=40, kernel_size=(5,5), activation='relu'),
    MaxPooling2D(pool_size=(2,2), strides=2),
    Flatten(),
    Dense(units=100, activation='relu'),
    Dense(units=10, activation='softmax') # 假设是10分类
])


⚙️ 训练与实际考虑

训练一个高效的CNN不仅需要理解架构,还需要掌握一些实践技巧。

数据增强(Data Augmentation)

为了让模型对现实世界的变化(如旋转、缩放、光照变化)具有鲁棒性,我们通常使用数据增强。

  • 方法:在训练过程中,实时对输入图像进行随机变换,如旋转、翻转、裁剪、调整亮度等。
  • 效果:这相当于人为扩大了训练数据集,让模型看到同一样本的不同变体,从而学习到更本质、更不变的特征,而不是死记硬背具体的像素排列。

处理边界与步幅

  • 填充(Padding):在图像边缘应用卷积时,可以选择用零填充边缘,使得输出特征图与输入尺寸相同(padding='same'),也可以不填充,导致输出尺寸缩小(padding='valid')。
  • 步幅(Stride):卷积核每次移动的像素数。步幅大于1可以快速下采样,但会丢失一些信息。

训练策略与超参数

  • 批处理(Batching):使用小批量随机梯度下降,在计算效率和收敛稳定性之间取得平衡。
  • 优化器:使用如Adam、RMSprop等自适应学习率优化器,它们通常比标准SGD收敛更快。
  • 超参数调优:包括学习率、网络深度、每层滤波器数量、批大小等。由于训练成本高,通常采用随机搜索而非网格搜索来寻找较优的超参数组合。

📚 总结

在本节课中,我们一起学习了卷积神经网络(CNN)的核心知识。我们从生物视觉系统获得灵感,理解了局部感受野层次抽象位置不变性等原则如何转化为CNN的卷积层池化层全连接层

我们详细探讨了:

  • 卷积层如何通过局部连接和参数共享高效地提取特征。
  • 激活函数(如ReLU)如何引入非线性,使网络能够拟合复杂函数。
  • 池化层如何实现降维和一定程度的空间不变性。
  • 如何将这些组件堆叠起来,构建一个从原始像素到高级语义概念的深度特征提取管道
  • 一些关键的训练实践,如数据增强和超参数调整,以确保模型的有效性和鲁棒性。

CNN的成功不仅在于其强大的性能,更在于它以一种与生物感知相似的方式处理信息。理解这些基础原理,将帮助你更好地应用CNN,甚至在未来为新的数据类型和任务设计创新的网络架构。

课程P4:第04讲 - RNN、LSTM、Transformer与GNN 🧠

在本节课中,我们将学习如何处理和理解序列数据。我们将从如何编码时间信息开始,探讨循环神经网络(RNN)及其变体,特别是长短期记忆网络(LSTM)。接着,我们将了解一种无需循环结构即可处理序列关系的新架构——Transformer。最后,我们将把视野扩展到图结构数据,学习图神经网络(GNN)的基本原理。

1. 如何阅读、聆听、理解与书写:上下文与注意力 📖

上一讲我们介绍了卷积神经网络,它擅长处理图像这类具有空间结构的数据。本节中,我们来看看如何处理像语言、声音这样的序列数据。人类在理解序列时,会利用上下文信息来解读每一个元素。

例如,观察下面的句子,尽管中间的字符完全相同,但你却能清晰地理解其含义是关于“猫”的。这是因为你在扫描句子时,是在整个句子的上下文中解读每一个字符的。

The cat sat on the mat.

这种自上而下的处理方式,允许我们根据整体语境来理解局部刺激。研究表明,人类阅读时并非逐个识别字母,而是将单词作为一个整体来理解。只要单词的首尾字母位置正确,即使中间的字母顺序混乱,我们依然能够顺利阅读。

这种现象不仅存在于视觉,也存在于听觉,例如“音素恢复效应”(Phonemic Restoration Effect)。当句子中的某个音节被噪音覆盖时,我们的大脑会根据上下文自动“填补”缺失的声音。另一个著名的例子是“麦格克效应”(McGurk Effect),它展示了视觉信息(如唇形)如何影响我们对听觉信息的感知。

所有这些都表明,我们的大脑在持续地预测接下来会发生什么,并根据实际接收到的信息来更新我们的认知模型。这正是我们今天要探讨的循环神经网络、Transformer等时序模型试图实现的核心思想。

2. 编码时间信息:从隐马尔可夫模型到循环神经网络 ⏳

那么,计算上我们如何编码这种时序上下文呢?我们如何确保计算机能够像人脑一样自然地处理序列信息?

首先,我们来看简单的模型,如隐马尔可夫模型。HMM假设系统处于一系列离散的隐藏状态中,状态间的转移和状态的输出都是随机的,由转移矩阵和发射矩阵控制。其核心思想是,当前观测值仅依赖于当前隐藏状态,而当前隐藏状态仅依赖于前一个隐藏状态

HMM的局限性在于,其记忆能力受限于隐藏状态的数量。要记住大量过去的信息,就需要指数级增长的隐藏状态数,这在实践中是不可行的。

这就引出了循环神经网络。RNN通过一个分布式的隐藏状态来高效地存储大量关于过去的信息。这个隐藏状态是显式表示的,并且可以通过非线性动态进行更复杂的更新。与HMM的随机性不同,标准的RNN是确定性的。

从计算图的角度看,RNN可以看作是通过时间展开的前馈神经网络。网络在每一个时间步都使用相同的权重,这使得模型能够学习一个通用的函数,并将其应用于整个序列。

以下是RNN单元在一个时间步的基本计算过程,其中 h_t 是当前隐藏状态,x_t 是当前输入,WU 是权重矩阵,b 是偏置,σ 是激活函数(如tanh):

h_t = σ(W * h_{t-1} + U * x_t + b)

3. RNN的架构与训练:通过时间反向传播 🔄

RNN可以有多种架构变体,主要区别在于信息如何流动:

  1. 隐藏状态到隐藏状态:最常见的架构,当前隐藏状态接收来自前一个隐藏状态和当前输入的信息。
  2. 输出到隐藏状态:将前一个时间步的模型输出作为当前时间步的输入。这只能在序列生成任务中顺序训练。
  3. 目标到隐藏状态(教师强制):在训练时,将前一个时间步的真实目标值(而非模型输出)作为当前输入。这可以加速训练,但在测试时需要切换回模式2。

无论哪种架构,其训练都依赖于通过时间反向传播。基本思想是将RNN按时间步展开成一个深层的网络,然后使用标准反向传播算法计算梯度,并约束不同时间步的相同权重必须共享更新

4. 应对梯度消失:长短期记忆网络 🧠➡️💾

然而,RNN在处理长序列时面临一个严峻挑战:梯度消失/爆炸。当误差通过许多时间步反向传播时,梯度会指数级地缩小或增大,导致早期时间步的信息无法有效影响模型参数更新。

为了解决这个问题,研究者提出了长短期记忆网络。LSTM引入了一个称为“细胞状态”的传送带,它贯穿整个序列,只有少量的线性交互,信息在上面流传很容易保持不变。LSTM通过三个“门”结构来精细调控细胞状态:

  • 遗忘门:决定从细胞状态中丢弃哪些信息。
  • 输入门:决定将哪些新信息存入细胞状态。
  • 输出门:决定基于细胞状态输出什么。

这些门(通常由sigmoid函数实现)让LSTM能够学习长期依赖关系,决定何时记住、何时遗忘信息。其核心公式如下:

f_t = σ(W_f · [h_{t-1}, x_t] + b_f)  # 遗忘门
i_t = σ(W_i · [h_{t-1}, x_t] + b_i)  # 输入门
C̃_t = tanh(W_C · [h_{t-1}, x_t] + b_C) # 候选细胞状态
C_t = f_t * C_{t-1} + i_t * C̃_t       # 更新细胞状态
o_t = σ(W_o · [h_{t-1}, x_t] + b_o)  # 输出门
h_t = o_t * tanh(C_t)                # 输出隐藏状态

LSTM在诸如手写识别、机器翻译等需要长程记忆的任务上取得了巨大成功。

5. 超越循环:Transformer与注意力机制 ⚡

尽管LSTM有效,但循环结构本质上还是顺序的,限制了计算并行性。Transformer 架构完全摒弃了循环,仅依赖注意力机制来捕获序列中任意位置之间的依赖关系。

Transformer的核心是自注意力机制。对于序列中的每个元素,它计算一个“查询”向量,并与序列中所有元素的“键”向量进行匹配,得到一个注意力权重分布。然后,用这个权重对所有的“值”向量进行加权求和,从而得到该元素的新的表示。这个过程允许模型直接关注到序列中任何相关的部分,无论距离多远。

Transformer模型通常采用编码器-解码器架构:

  • 编码器:将输入序列映射为一组上下文表示。
  • 解码器:基于编码器的输出和之前已生成的输出,自回归地生成目标序列。

关键创新在于,解码器的输入是目标序列向右移动一位(即“偏移”),这使得模型在训练时能学习预测下一个词。Transformer通过位置编码来注入序列的顺序信息,因为自注意力机制本身是不感知顺序的。

注意力权重的计算公式如下,其中Q、K、V分别是查询、键、值矩阵,d_k是键向量的维度:

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V

6. 从序列到图:图神经网络 🌐

我们之前看到的CNN处理网格数据(如图像),RNN和Transformer处理序列数据(一维网格)。但现实世界中许多数据的关系可以用来表示,例如社交网络、分子结构、知识图谱。

图神经网络 的目标是学习如何将信息在图中的节点之间进行传播和聚合。GNN的核心操作是“消息传递”:在每一层,每个节点会聚合其邻居节点的特征信息,并结合自身特征,更新自己的表示。

一个经典的GNN模型是图卷积网络。其节点更新公式可以简化为:

H^{(l+1)} = σ(Â H^{(l)} W^{(l)})

其中 H^{(l)} 是第l层的节点特征矩阵,W^{(l)} 是可学习的权重矩阵, 是经过归一化的邻接矩阵(加入了自环),σ 是非线性激活函数。

GNN具有以下优点:

  • 参数共享:同一层的权重在所有节点间共享,与图大小无关。
  • 置换不变性:对节点重新排序不会影响计算结果。
  • 可扩展性:可以处理不同大小的图,适用于归纳学习和直推学习。

更强大的变体如图注意力网络,引入了注意力机制,让节点在聚合邻居信息时能够区分不同邻居的重要性。

GNN可以应用于节点分类、链接预测、图分类等多种任务,在药物发现、推荐系统、物理模拟等领域有广泛应用。

总结 📝

本节课中,我们一起学习了处理序列和图结构数据的核心神经网络架构。

我们首先探讨了人类利用上下文理解序列的认知原理。接着,从隐马尔可夫模型的局限性出发,引入了循环神经网络,并学习了如何通过时间反向传播来训练它。为了克服RNN的梯度消失问题,我们深入了解了长短期记忆网络的门控机制。然后,我们看到了完全基于注意力机制的Transformer如何革命性地处理序列,实现了高效的并行计算。最后,我们将神经网络的应用范围扩展到了非欧几里得数据,学习了图神经网络的基本思想和消息传递框架。

这些模型构成了现代深度学习处理时序与关系数据的基石,并将为后续课程中蛋白质结构预测、药物设计等复杂项目提供强大的工具。

📚 课程05:可解释的深度学习

在本节课中,我们将学习什么是深度学习的可解释性,以及如何将神经网络这个“黑箱”中的信息,转化为人类能够理解的形式。我们将探讨可解释性的重要性、不同的解释方法,并学习如何评估这些方法的有效性。


🎯 什么是可解释性?

可解释性是指将神经网络中隐含的、复杂的信息,转换为人可以理解的信息的过程。

当人类顶尖棋手李世石与AlphaGo对弈时,AlphaGo走出了一些人类棋手从未见过的“非人类”棋步。这揭示了围棋更深层的奥秘,但AlphaGo本身并没有告诉我们这些奥秘是什么。它只是凭借强大的计算能力获胜。机器在学习,但我们无法从中提取知识。

因此,我们需要可解释性来理解:为什么机器能做得更好?我们能从中学到什么?


🔍 为什么可解释性很重要?

可解释性至关重要,原因有以下几点:

  1. 验证与调试模型:我们需要确保模型按照预期工作。错误的决策代价可能极高(例如,自动驾驶汽车事故、医疗误诊)。可解释性有助于我们定位问题。
  2. 获得新发现:在医疗诊断等领域,理解模型为何将肿瘤分类为恶性,不仅能验证诊断,还能帮助医生学习新的病理特征,甚至改进未来的诊断方法。
  3. 解释的权利:当算法做出影响个人的决策时(如贷款审批、招聘),当事人有权知道决策的依据。这有助于发现并消除模型训练数据中可能存在的偏见。
  4. 理解人类自身:通过研究模型如何“看”图像(例如,区分松饼和吉娃娃),我们也能反思人类视觉和决策的过程。

🛠️ 两种可解释性方法

根据引入解释的时机,方法可分为两类:

  • 事前可解释方法:在模型设计之初就构建可解释性。例如,直接使用决策树等本身结构清晰、易于理解的模型。但这类模型表达能力有限,难以处理像深度学习所应对的复杂任务。
  • 事后可解释方法:先构建复杂的“黑箱”模型(如深度神经网络),训练完成后,再开发专门的技术来解释它。这是目前深度学习领域的主流方法。

📊 解释的层次:模型 vs. 决策

事后解释方法可以根据其关注的粒度分为两个层次:

  • 解释模型:这是宏观视角,侧重于理解模型的内部工作机制。例如,模型学到了哪些特征?整个决策边界是怎样的?
  • 解释决策:这是微观视角,侧重于解释单个具体的预测结果。例如,为什么这张图片被分类为“猫”?是哪些像素导致了这一判断?

接下来,我们将分别深入这两个层次。


🧠 第一部分:解释模型(宏观)

解释模型旨在理解神经网络的内部表示。主要有四种方法:

1. 权重可视化

这种方法直接可视化卷积神经网络中学习到的滤波器。早期的研究发现,第一层滤波器学习到的是边缘、颜色块等基础特征,这与生物视觉皮层的研究结果惊人地相似。公式上,我们观察的是卷积核 W 本身。

# 伪代码:可视化第一层卷积核
for filter in model.conv1.weights:
    visualize(filter)

2. 构建代理模型

用一个简单的、可解释的模型(如线性模型或决策树)去近似模拟复杂黑箱模型的预测行为。我们训练这个代理模型的目标不是拟合真实数据,而是拟合黑箱模型的输出。

代理模型 ≈ 黑箱模型的决策函数

3. 激活最大化

这种方法试图找到能够最大化某个神经元或输出类别激活的输入模式。其核心思想是:什么样的输入最能代表这个神经元或类别所学习的概念?

其目标可表示为以下公式:

x* = argmax_x (f_c(x) - λ * R(x))

其中:

  • f_c(x) 是模型对于类别 c 的激活值或置信度。
  • R(x) 是正则化项,用于约束生成的图像 x* 看起来更自然、更像真实数据。
  • λ 是权衡参数。

早期的无约束激活最大化会产生无意义的、叠加的噪声图像。通过加入从数据分布中采样的约束,可以生成更接近真实样本、人类可理解的“原型”图像。

4. 基于示例的方法

通过寻找训练集中最能代表(原型)或最能反驳(批评)某个类别的具体样本来解释模型。例如,找出那些“几乎”是某个类别但不是的样本(接近错过),这能揭示模型分类的边界和潜在缺陷。


上一节我们介绍了从宏观层面理解模型内部的四种方法。本节中,我们来看看如何解释模型做出的每一个具体决策。

🎯 第二部分:解释决策(微观)

解释决策关注单个输入和输出,旨在回答“为什么是这个结果?”。

1. 基于示例的解释

这种方法不关注输入图像的像素,而是追溯训练过程。它试图找出训练集中哪些样本对当前这个预测的影响最大。这类似于法律中引用先例来论证判决。

2. 归因方法

这是最直接的方法,它为输入(如图像)的每一个特征(如每个像素)分配一个属性分数,用以衡量该特征对最终决策的贡献程度。这些分数可以可视化为热图(显著图)。

基线方法:梯度显著性

最简单的方法是计算模型输出相对于输入图像的梯度:

Saliency Map = |∂f_c(x) / ∂x|

这个梯度图显示了微小改变每个像素会对类别 c 的置信度产生多大影响。

问题:原始的梯度显著性图通常非常嘈杂,像素点分散,难以聚焦在目标物体上。

假设与改进

  • 假设1:梯度不连续:由于ReLU等分段线性函数,深度网络的决策函数可能不平滑,导致梯度噪声。
    • 改进:平滑梯度:通过对输入添加微小随机噪声并计算多个噪声样本梯度的平均值,来平滑梯度。
      SmoothGrad(x) ≈ 1/n * Σ Saliency Map(x + N(0, σ))
      
  • 假设2:函数饱和:对于某些输入,模型可能已经达到很高的置信度,梯度很小,无法反映特征重要性。
    • 改进:积分梯度:不是计算在原始输入点的梯度,而是计算从基线(如全黑图像)到当前输入点路径上的梯度积分。
      IntegratedGrads(x) = (x - x') * ∫_{α=0}^{1} [∂f(x' + α(x-x'))/∂x] dα
      
  • 基于反向传播的改进
    • 反卷积:尝试反转卷积操作,将高层特征映射回输入像素空间。
    • 导向反向传播:结合前向传播中的激活信息,在反向传播时只回传正梯度,从而生成更清晰、聚焦于目标物体的显著图。

📈 如何评估归因方法?

我们如何知道一种归因方法的好坏?可以从定性和定量两方面评估:

以下是主要的评估维度:

  • 定性评估

    • 连贯性:归因热点是否准确地落在了图像中的目标物体上,而不是分散在背景?
    • 类别敏感性:当解释不同类别的预测时,其归因图是否具有区分度?例如,解释“猫”和“狗”的显著图应该聚焦于不同的特征。
  • 定量评估

    • 特征删除测试:按照归因分数从高到低删除像素(或设为基线值),观察模型预测置信度的下降速度。好的归因方法,删除高分像素会导致置信度急剧下降。
    • 保留与再训练测试:修改输入图像(如遮挡高归因区域),然后用这些修改后的图像重新训练一个模型。如果归因准确,新模型在测试集上的性能应该显著下降。

🎓 课程总结

本节课中我们一起学习了深度学习的可解释性:

  1. 定义与动机:我们明确了可解释性是将神经网络隐含信息转化为人类可理解信息的过程。其动机包括验证模型、调试错误、获得新发现以及保障“解释的权利”。
  2. 方法分类:我们区分了事前事后解释方法,以及解释模型(宏观)和解释决策(微观)两个层次。
  3. 解释模型的方法:我们学习了权重可视化构建代理模型激活最大化(及其约束版本)和基于示例的方法,以理解模型的内部表示。
  4. 解释决策的方法:我们探讨了基于示例归因方法。重点分析了原始梯度显著性图的噪声问题,并介绍了平滑梯度积分梯度反卷积导向反向传播等改进技术。
  5. 评估方法:最后,我们了解了如何通过连贯性类别敏感性特征删除测试保留再训练测试等指标,定性和定量地评估不同归因方法的优劣。

通过本课的学习,希望你不仅掌握了让深度学习模型“开口说话”的工具,也深刻理解了在关键应用领域追求模型透明与可信的重要性。

课程P6:生成模型、GAN、VAE与表征学习 🧠

在本节课中,我们将要学习生成模型的核心概念。生成模型不仅能识别世界,更能创造世界。我们将重点探讨两种最流行的生成模型:生成对抗网络和变分自编码器。更广泛地说,我们将讨论模型如何学习对世界的“表征”。


概述:表征学习的力量

我们之前讨论卷积神经网络时提到,深度学习的真正创新在于“表征学习”。在分类任务中,模型的大部分能力并非来自最后的分类层,而是来自学习到的中间特征,例如边缘、角落、轮子等更一般的场景。这种特征提取是卷积神经网络中最重要的概念。

事实上,表征学习是贯穿图神经网络、循环神经网络、自编码器及其变体、对抗网络等领域的普遍关键思想。分类任务实际上是驱动特征提取的“借口”,而特征提取是所有知识表示的来源。这是一个非常强大的通用范式。

当前,除了图像,还有许多具有结构的应用领域(如基因组学、生物学、神经科学)尚未被现有架构充分捕获和利用。思考表征学习,是进行架构创新的绝佳起点。


从监督学习到无监督学习

在传统的监督学习中,我们有数据 X 和标签 Y。但最令人兴奋的部分是潜在空间表示 Z。最大的问题是:我们能否完全抛弃标签 Y,专注于学习表征 Z?这样我们就可以利用多出数个数量级的无标签数据。

本节的目标是探索如何摆脱 Y,专注于通过各种方法学习表征。


借口任务:学习的“伪装”

上一节我们介绍了抛弃标签 Y 的目标,本节中我们来看看如何实现。一种核心思想是“借口任务”。我们并不真正关心任务本身,而是利用它作为学习世界表征的“借口”。

以下是几种常见的借口任务:

  • 预测自我:这是自编码器的核心。输入一张图像,网络学习一个压缩的表示 Z,然后尝试用 Z 重建原始图像。任务本身(重建)并不重要,重要的是中间学到的压缩表示。
  • 预测未来:在循环神经网络的背景下,利用时间序列数据(如语音、视频、文本)预测下一个元素。为了准确预测,模型必须学习能捕捉世界动态的有意义表征。
  • 预测图像间关系:例如,给定两张连续图像(如射门和球入门),预测哪张在前。这迫使模型学习物理和因果模型。
  • 预测缺失部分:从图像中移除一块补丁,然后让模型预测缺失的像素。除非模型理解世界,否则无法完成。
  • 预测旋转:将图像旋转,让模型预测原始方向。这迫使模型理解图像内容。
  • 图像上色:输入黑白图像,让模型预测彩色版本。
  • 图像超分辨率:输入低分辨率图像,让模型预测高分辨率版本。
  • 多模态匹配:例如,匹配视频画面与对应的声音。

所有这些任务都将无标签的输入数据 X 进行某种变换,然后将原始数据作为目标 Y,从而“伪装”成一个监督学习任务。我们真正关心的是网络在学习解决这些任务过程中所获得的中间表征 Z


自编码器:通过压缩学习表征

上一节我们看到了各种“伪装”学习的方法,本节我们深入探讨其中最直接的一种:自编码器。自编码器的核心思想正是“预测自我”,但通过一个信息瓶颈。

自编码器包含两部分:

  1. 编码器:将输入数据 X 编码为低维的潜在表示 ZZ 的维度远小于 X)。
  2. 解码器:将潜在表示 Z 解码,重建输入数据 hat{X}

其目标函数是最小化原始输入 X 与重建输出 hat{X} 之间的差异(如均方误差):
Loss = ||X - hat{X}||^2

由于 Z 的维度很小,网络不能简单地记忆输入,而是被迫学习数据中最重要、最具代表性的特征,从而形成有意义的压缩表示。

自编码器的美妙之处在于,训练完成后,编码器和解码器可以分开使用:

  • 编码器:可作为特征提取器,将任何输入映射到有意义的低维特征空间 Z,用于比较、聚类或其他下游任务。
  • 解码器:可作为生成模型。给定一个潜在向量 Z,它可以生成对应的数据 X。通过改变 Z,我们可以生成不同的数据样本。

变分自编码器:概率化的生成模型

上一节介绍的自编码器能学习表征并生成数据,但它的潜在空间 Z 是确定性的。本节我们看看如何将其概率化,从而获得更强大的生成模型——变分自编码器。

VAE 是自编码器的概率版本。关键区别在于:

  • 编码器不再输出一个确定的向量 Z,而是输出一个概率分布的参数(通常是均值 μ 和方差 σ),假设 Z 服从高斯分布:Z ~ N(μ, σ^2)
  • 解码器从这个分布中采样一个 Z,然后重建数据。

这样做的好处是,我们显式地对数据的潜在变化进行了建模。潜在空间 Z 的每个维度都可能对应数据中有意义的、独立的特征(如人脸图像的微笑程度、头发颜色、头部朝向等)。

训练 VAE 需要最大化训练数据的对数似然,但这通常难以直接计算。因此,VAE 通过优化一个称为“证据下界”的可处理目标函数来间接实现:
ELBO = E[log p(X|Z)] - KL(q(Z|X) || p(Z))
其中:

  • E[log p(X|Z)] 是重建项,衡量解码器重建数据的好坏。
  • KL(q(Z|X) || p(Z)) 是正则化项,衡量编码器产生的分布 q(Z|X) 与先验分布 p(Z)(通常为标准正态分布)的接近程度。它促使潜在空间变得规整、连续。

总结 VAE:

  • 优点:是原则性的生成模型方法;能进行概率推断;学习到的潜在空间通常具有良好结构(连续、可插值)。
  • 缺点:最大化的是似然下界,而非精确似然;生成的样本有时可能比较模糊。

通过 VAE,我们不仅学到了数据的表征,还学到了这些表征的分布,使我们能够通过从先验分布 p(Z) 中采样 Z,然后通过解码器生成全新的、合理的数据样本。


生成对抗网络:通过对抗提升质量

VAE 生成的图像有时较为模糊。本节我们介绍另一种强大的生成模型——生成对抗网络,它能生成质量更高、更清晰的图像。

GAN 的核心思想是“对抗训练”。它同时训练两个网络:

  1. 生成器 G:接收随机噪声 Z,尝试生成逼真的假数据 G(Z)
  2. 判别器 D:接收数据(真实数据 X 或生成数据 G(Z)),尝试判断其真伪。

这两个网络玩一个“极小极大”游戏:

  • 判别器 D 的目标是最大化正确分类的概率(给真数据高分,给假数据低分)。
  • 生成器 G 的目标是最小化判别器做出正确判断的概率(即生成能骗过判别器的数据)。

其目标函数可以表示为:
min_G max_D V(D, G) = E[log D(X)] + E[log(1 - D(G(Z)))]

训练过程是交替进行的:

  1. 固定生成器 G,训练判别器 D 几轮,使其更好地区分真假。
  2. 固定判别器 D,训练生成器 G 几轮,使其生成更能欺骗当前判别器的数据。

随着对抗训练的进行,生成器和判别器的能力共同进化,最终生成器能产生极其逼真的样本。

GAN 的变体与进展:

  • DCGAN:将 CNN 架构引入 GAN,使用跨步卷积代替池化,使用批归一化等,使训练更稳定。
  • Progressive GAN:从低分辨率图像开始训练,逐步增加分辨率,极大地提升了生成高分辨率图像的质量和稳定性。
  • StyleGAN:对潜在空间进行更精细的控制,可以分离并操控图像的高层属性(如姿态、发型)和细节纹理。

GAN 已被广泛应用于图像生成、风格迁移、图像超分辨率、图像修复等领域,生成的图像质量 often 能达到以假乱真的程度。


总结与展望

本节课中,我们一起深入探讨了生成模型的世界。

  1. 核心范式:我们首先确立了“表征学习”是深度学习的核心力量。分类任务只是学习世界表征的“借口”。
  2. 无监督学习:我们探索了如何通过“借口任务”在无标签数据上学习有意义的表征。
  3. 自编码器:我们学习了通过压缩与重建来学习表征的基本模型,其编码器和解码器可分别用于特征提取和生成。
  4. 变分自编码器:我们将自编码器概率化,学习了如何显式建模潜在空间的分布,从而能够从分布中采样并生成多样化的数据。
  5. 生成对抗网络:我们介绍了通过生成器与判别器的对抗训练来获得高质量生成样本的框架,并看到了它在图像生成方面的惊人效果。

生成模型领域仍然非常年轻且充满活力。从 VAE 的原则性概率框架到 GAN 的高质量输出,再到各种混合模型和新颖架构,天空才是极限。理解这些基础模型,将为你探索、创新乃至在生物、物理、艺术等跨领域应用打下坚实的基础。

🧬 课程七:调控基因组学

在本节课中,我们将学习调控基因组学的基础知识,包括基因调控的组成部分、染色质可及性以及DNA调控码。我们将探讨如何利用深度学习模型来理解DNA序列如何编码复杂的基因调控信息。


基因调控的组成部分

基因调控是生物学中最迷人的领域之一。从一个包含30亿个字母(A、C、G、T)的DNA“程序”出发,通过一系列细胞分裂,最终构建出具有复杂结构和功能的生物体。这一切的实现,依赖于细胞内的调控回路。

调控回路的基础是一系列结构和修饰,它们使细胞能够“记住”并响应不同的信号,从而决定细胞的身份和功能。DNA的包装方式是实现这一点的关键。


DNA的包装与修饰

每个细胞都含有约两米长的DNA。为了将其压缩到微小的细胞核内,DNA被紧密地包装起来。这种包装本身也承载着重要的调控信息。

  • 核小体:DNA缠绕在组蛋白八聚体(由H2A、H2B、H3、H4各两份组成)上,形成“串珠”状结构。每个“珠子”就是一个核小体,大约包裹147个碱基对的DNA。
  • 组蛋白修饰:组蛋白的氨基酸尾巴可以进行多种翻译后修饰,例如甲基化、乙酰化等。这些修饰(如H3K4me3, H3K27ac)是重要的表观遗传标记,影响着DNA的可及性和基因表达。
  • DNA甲基化:在CpG二核苷酸(C后接G)上的胞嘧啶(C)可以添加甲基,形成5-甲基胞嘧啶。DNA甲基化通常与基因沉默相关,并能影响转录因子的结合。

这三种修饰(DNA可及性、组蛋白修饰、DNA甲基化)共同作用,构成了基因调控的“语言”。


染色质状态与调控元件

通过组合上述修饰模式,我们可以定义基因组的不同功能区域,即“染色质状态”。利用隐马尔可夫模型等方法,可以系统性地发现和注释这些状态。

以下是几类关键的调控元件及其标志性修饰:

  • 启动子:RNA聚合酶结合并启动转录的区域。标志包括H3K4三甲基化、H3K9乙酰化和DNA可及性。
  • 增强子:可以远距离调控基因转录的动态区域。标志包括H3K4单甲基化、H3K27乙酰化和中等程度的DNA可及性。
  • 转录区:正在被活跃转录的基因区域。标志包括H3K36三甲基化等。
  • 抑制区:基因表达被抑制的区域。可通过DNA甲基化、H3K27三甲基化(多梳抑制)或H3K9三甲基化(异染色质)来标记。

识别DNA调控语言:基序与语法

基因组如何编码这些复杂的调控信息?关键在于DNA序列本身。

  • 转录因子与DNA基序:转录因子是能够结合特定DNA序列的蛋白质。它们识别的短DNA序列模式称为“基序”。例如,一个转录因子可能偏好结合“CCATGG”这样的序列。
  • 位置权重矩阵:通过比对某个转录因子的多个结合位点,可以构建一个位置权重矩阵来描述其结合偏好。矩阵中每个位置的信息含量(比特数)代表了该位置对结合特异性的重要程度。
  • 调控语法:基因调控不仅仅是多个转录因子独立结合的总和。它们之间存在复杂的“语法”,包括:
    • 组合规则:哪些基序倾向于同时出现。
    • 排列规则:基序之间的优选间距和方向。

非编码区的DNA序列变异常常会破坏这些基序或语法规则,从而导致基因调控紊乱和疾病。


探索基因调控的实验技术

为了绘制全基因组的调控图谱,科学家们开发了多种高通量实验技术。

以下是几种核心技术的简介:

  • 染色质免疫沉淀测序:利用特异性抗体富集与特定蛋白(如转录因子)或组蛋白修饰结合的DNA片段,然后进行测序,从而定位这些因子或修饰在全基因组中的分布。
  • DNA可及性测定
    • DNase-seq:使用DNase I酶切割开放的染色质区域,并对切割片段进行测序。
    • ATAC-seq:使用Tn5转座酶插入测序接头到可及的染色质区域,效率更高,所需细胞量更少。

这些技术为我们提供了海量的数据,用以理解基因调控的机制。


应用深度学习解析调控基因组学

上一节我们介绍了基因调控的基础知识和实验技术。本节中,我们来看看如何利用深度学习模型,从这些高通量数据中挖掘DNA序列的调控逻辑。

🧠 从序列到轮廓:BpNet模型

传统的机器学习方法通常将一段基因组序列(如1000个碱基对)映射为一个标量信号(如该区域的总读数),这丢失了高分辨率的结合“足迹”信息。

BpNet模型创新地将此问题视为一个“文本到语音”的转换任务:

  • 输入:DNA序列(文本)。
  • 输出:单碱基分辨率的实验读数轮廓(语音),例如ChIP-nexus或ATAC-seq数据。

模型架构与损失函数

  • 架构:采用全卷积神经网络,结合扩张卷积以用更少的层获得更大的感受野,以及残差连接以促进信息流动。
  • 损失函数:设计了一个复合损失函数,同时优化两个目标:
    1. 预测区域的总读数(使用负二项式或对数均方误差损失)。
    2. 预测读数在序列每个位置上的精确分布(使用多项分布的负对数似然损失)。多项分布完美模拟了将N次测序读数分配到多个基因组“箱子”中的过程。

该模型能够极其准确地预测蛋白质结合的高分辨率足迹。


🔍 解释模型:揭示调控语法

拥有一个高精度的预测模型并非最终目标。我们更希望打开这个“黑箱”,理解它学到了什么。

  • 特征归因:使用如DeepLIFT的算法,可以回溯模型的预测,计算出序列中每个核苷酸对最终预测的贡献度。这能直观展示驱动特定转录因子结合的序列模式。
  • 基序发现:通过聚合分析成千上万个序列的归因分数,可以系统性地发现模型学习到的所有重要序列模式(基序)。研究发现,解释四种多能性转录因子(如Sox2, Nanog)的结合,需要约50个基序,远超传统认知,揭示了大量的组合与协作关系。
  • 语法发现:模型能够学习到基序间高阶的排列规则。例如,分析发现Nanog结合位点侧翼的重要核苷酸呈现出10.5个碱基对的周期性模式,这正好是DNA双螺旋一圈的长度。这表明Nanog倾向于以二聚体形式结合在DNA螺旋的同一侧。

🧪 在硅片中验证:扰动实验

为了验证模型学到的语法规则如何驱动蛋白质的合作结合,可以在计算机中进行“在硅片”扰动实验。

  • 合成实验:在随机DNA序列中嵌入两个基序,并系统地改变它们之间的距离。模型预测显示,Sox2的结合几乎不受与Nanog基序距离的影响,而Nanog的结合则强烈依赖于这个距离,并表现出10.5个碱基对倍数的偏好性,体现了非对称的协作效应。
  • 基因组扰动:在真实的基因组增强子中,利用模型注释的基序,系统地“突变”掉某个基序,并预测其对所有因子结合的影响。这些计算预测与后续真实的CRISPR基因编辑实验结果高度一致,证明了模型解释的生物学可靠性。

深度学习增强表观基因组数据:AtacWorks

单细胞ATAC-seq技术让我们能在细胞分辨率下研究染色质可及性,但由于每个细胞的测序读数很少,数据非常稀疏嘈杂,难以准确识别开放区域。

AtacWorks模型旨在解决这一问题:

  • 目标:输入低质量、低覆盖度或单细胞的ATAC-seq信号轨道,输出去噪增强后的信号轨道以及峰值(可及区域)位置。
  • 关键特点
    • 使用一维残差卷积神经网络。
    • 不将DNA序列作为输入,只使用覆盖度信号。这使得模型更容易在不同细胞类型和物种间迁移和泛化。
    • 通过从高质量数据中随机下采样来生成“噪声-干净”数据对,用于训练模型学习去噪和增强。
  • 效果
    • 能显著提升低覆盖度数据的信噪比,准确识别峰值。
    • 在单细胞数据中,仅用十分之一数量的细胞就能达到与传统方法使用全部细胞相当的分析效果。这使得研究稀有细胞亚群的染色质可及性成为可能。
  • 应用案例:应用于人类造血干细胞,成功地从仅50个细胞的稀有祖细胞亚群中,获得了清晰的染色质可及性图谱,并发现了驱动其向不同血统分化的特定调控元件。

总结

在本节课中,我们一起学习了:

  1. 基因调控的基础:包括染色质结构、组蛋白修饰、DNA甲基化以及它们如何定义启动子、增强子等调控元件。
  2. 调控密码:DNA序列通过基序和复杂的语法规则编码调控信息。
  3. 实验技术:ChIP-seq、ATAC-seq等技术如何帮助我们绘制全基因组调控图谱。
  4. 深度学习的应用
    • BpNet展示了如何用序列到轮廓的模型高精度预测蛋白质结合,并通过解释模型揭示了前所未有的复杂调控基序和语法。
    • AtacWorks展示了如何用深度学习增强低质量表观基因组数据,特别是在单细胞水平上,极大地提升了我们研究稀有细胞类型的能力。

这些工作标志着我们正从单纯描述调控现象,走向真正理解其序列编码原理,并为解读非编码变异在健康和疾病中的作用提供了强大工具。

🧬 课程 P8:转录因子结合与三维染色质结构

在本节课中,我们将学习基因调控的核心机制,特别是转录因子如何结合DNA,以及三维染色质结构如何影响基因表达。我们将回顾传统方法,并重点介绍深度学习在调控基因组学中的应用。


🔍 回顾:基因调控与染色质状态

上一节我们介绍了基因调控是人体细胞类型多样性的基础。这通过染色质从DNA到核小体、染色质纤维、高级结构直至染色体的逐级压缩得以实现。这种包装不仅是结构性的,也具有功能性,能够通过特定的组蛋白修饰标记来标注不同区域,从而形成基因调控框架。

我们讨论了如何基于组蛋白修饰标记的组合来发现这些染色质状态。然而,在许多方面,这只是输入。真正的输入是DNA序列。因此,我们今天要解决的主要挑战是如何利用DNA序列和深度学习来预测基因调控基因组的不同特征,特别是如何区分构成增强子区域、启动子区域以及它们在三维空间中环化的特定基序。

我们讨论了基序如何由短序列模式表示,这些将成为我们卷积滤波器的基础。我们还讨论了深度学习网络在图像上下文中的分层表征学习能力。在本模块中,我们将探讨这些表示如何成为我们的基序,并成为深度学习框架底层的卷积滤波器。

最底层、最接近DNA序列的将是这些基序标识,它们将被学习为新的特征。这些基序标识将使我们能够开始预测调控因子是谁,以及它们如何组合以预测基因调控功能。这些标识基本上源自位置特异性权重矩阵或位置权重矩阵,这些模型独立地告诉你每个位置如何由每个转录因子的结合特异性决定。


🧵 三维染色质结构

接下来,我们增加一个层次:允许区域相互折叠的三维染色质结构。

细胞核是巨大的。细胞质是细胞的大部分区域,蛋白质在那里翻译。我们现在放大到细胞核本身,所有DNA都在其中压缩。在细胞核内,甚至还有更小的核仁,哺乳动物细胞核内也发生区室化。

在细胞核内,不同的DNA链有时会接触到外围,这个外围被称为核纤层。许多被抑制的区域基本上堆积并紧贴核纤层。而活跃区域则被推离核纤层,更靠近细胞核中心,并位于染色体领域内。这实现了基因组的空间组织,你甚至可以在显微镜下观察到。

细胞核的直径约为6微米,而DNA的长度约为2米。压缩的规模相当惊人,基本上跨越了九个数量级。所有这些压缩都是分阶段、在不同组织层次上发生的。我们对核小体了解得很清楚,但对于这些中间阶段,直到最近才被阐明。

我们还认识到存在染色体结构域,不同的染色体实际上位于细胞核内。


🧪 染色体构象捕获技术

今天我们要讨论的是一种用于推断什么环化到什么的技术:染色体如何相互环化?

在深入之前,我们先介绍一种探测染色体组织的非常酷的技术:染色体构象捕获技术。这项技术的基本原理是:如果我有一碗意大利面(代表DNA),想弄清楚碗内蓝色面条与红色面条的接触点,我可以随机地将所有面条粘在一起,然后在随机长度和固定间隔处随机切割。例如,每次我看到特定的限制性内切酶切割位点时,我就会切割,这基本上会每四个核苷酸切割一次,从而产生这些随机切割的面条。

然后,我使用一种特殊的“胶水”来连接这些悬挂的切割末端,从而创建嵌合分子,这些分子包含部分蓝色面条和部分红色面条。接着,我对它们进行测序,以查看红色部分和蓝色部分在基因组中的定位。如果红色部分定位在这里,蓝色部分定位在那里,这基本上告诉我这两部分是相互环化的。

这项技术可以让我们深入了解三维基因组是如何包装的。我们可以在一个位点与另一个位点的水平上进行,这就是原始的3C技术。或者可以使用一对多技术,或者使用多对多技术。还有一种技术是通过随机切割,然后选择被标记为最近切割的片段,并特异性捕获这些嵌合区域。例如,通过添加生物素标记,这样每次红色片段被切割并与蓝色片段连接时,我都可以通过生物素化来特异性下拉这些嵌合区域。

还有其他技术,例如ChIA-PET,它类似于染色质免疫沉淀,但最终进行配对末端标记,从而能够通过特定蛋白质(如CTCF蛋白)的视角,只查看所有连接中的一个子集。


📊 三维相互作用的特征

通过高通量染色体构象捕获技术,我们可以获得类似这样的图谱。这些图谱基本上告诉我们,基因组沿着对角线分布,但同时也向两个方向延伸。每次你看到一个非对角线条目,它基本上告诉你基因组的这个区域与那个区域有多少相互作用。

因此,无论你在图片中实际看到什么,每个点都代表了环化信息。靠近对角线的地方,区域倾向于相互自相互作用,形成一条粗带。第二个特征是似乎存在一些边界,在这些边界内,区域内部的相互作用远多于与外部的相互作用,这些被称为拓扑关联结构域。第三个特征是这些结构域似乎是分层的,存在嵌套的层次结构。第四个特征是存在棋盘格模式,即A区室倾向于与其他A区室相互作用,B区室倾向于与其他B区室相互作用。

我们可以利用这些开始询问基因组实际上是如何组织的。我们可以开始可视化一些压缩过程,并观察放大时的特征。基本上,在整个染色体上,你可以看到这些区块,然后放大其中一个区块,再次看到这种分层性质,再进一步放大,开始看到个体相互作用,其中这个区域与那个区域非常强烈地相互作用。

我们称之为顺式相互作用和反式相互作用。有趣的是,许多反式相互作用现在被认为在不同实验中可重复地观察到。这种领域性表明,不同的染色体倾向于在细胞核内占据自己的空间。


🧠 从序列预测调控:传统与深度学习方法

现在,让我们深入探讨这些区域的计算分析。首先,我们如何理解DNA被所有这些不同调控因子读取并执行所有这些组织的语言?

第一件事是,我们将使用传统方法寻找调控基序。在深度学习之前,这些传统方法是关于寻找重复的模式。你基本上会说,我有一组共表达的基因,我的假设是它们受到一个共同的上游调控因子的共调控,该因子结合它们所有的上游区域。因此,我将开发计算方法来寻找它们之间共享的基序。这就是早期方法所做的。它们基本上是说,让我们使用位置权重矩阵来定义共享基序,该矩阵将是一个潜在变量。然后,我将迭代使用该矩阵来查找该基序的实例,然后使用这些实例来优化矩阵,再使用该矩阵来优化实例,如此反复。

现在,我们也可以使用相同的深度学习方法,利用表征学习、分层和从头发现滤波器,所有这些最初为图像开发的技术,现在可以用于调控基因组学。关键思想如下:就像图像分析有RGB输入图像一样,我现在不仅有三个通道,而是有四个通道,每个DNA字母对应一个通道。这被称为独热编码。因此,G通道只有在有G时才为1,否则为0。所以,我可以将我的序列表示视为一个四通道的“图像”。

在下一层,表征学习变得非常酷和有用。表征学习基本上是说,我将有一个卷积滤波器,将其应用于我的整个DNA序列的每个位置。就像在图像中扫描以检测边缘的边缘检测器一样,我将有一个基序检测器来扫描我的DNA序列,以识别何时出现特定的转录因子结合位点。以同样的方式,我们寻找轮子、鼻子、手电筒、帽子等特征,我们现在将搜索DNA的不同特征,这些特征将是基序。

因此,这里的核心概念是,我们将拥有一个深度学习架构,就像之前一样,具有越来越抽象的表征层。在最底层,我们将有经过独热编码的输入序列。在紧邻其上的层,我们将有卷积滤波器,这些滤波器将被从头学习。它们是卷积的,因为我在DNA的每个位置都应用完全相同的操作。

卷积滤波器通过在DNA的不同区域共享参数,学习轮子、边缘、鼻子或CTCF结合位点等概念。CTCF结合位点的概念将是“GATTAC”,我将在我的DNA中扫描它。一旦我学习了底层的表征,深度学习框架的美妙之处在于,我可以基于某些任务(例如,转录因子是否在此结合)动态地进行参数优化。基于某些任务,我将学习能够让我执行该任务的表征。我将学习这些在整个基因组中共享参数的表征。我的深度学习框架将意识到“GATTAC”的概念是有用的,并将学习该基序。它将学习CTCF结合位点的概念是有用的,ABF1结合位点是有用的,等等。

因此,它将学习所有这些卷积滤波器,然后与特定的预测任务一起在整个基因组中应用这些滤波器。一旦你有了这个概念,你就可以改变卷积滤波器的数量、长度和大小、层数、预测任务,以及各种输入-输出关系。我们将看到这个主题的许多不同变体。


🤖 嘉宾讲座:BASSET——深度学习在调控基因组学中的应用

现在,我们很高兴邀请David Kelly,他是最早开发深度学习框架的作者之一。他将深入讲解卷积神经网络在基因组学中如何工作的基础。

David的讲座将涵盖BASSET模型,这是一个用于预测DNA可及性的卷积神经网络框架。模型接收独热编码的DNA序列作为输入,通过卷积层学习基序,然后通过池化层和全连接层进行预测。BASSET采用多任务学习,同时预测多个细胞类型的染色质可及性,从而学习共享的表征。

模型的第一层卷积滤波器可以解释为转录因子结合位点的位置权重矩阵。通过分析这些滤波器,我们可以识别模型学习到的基序。此外,模型还可以通过扰动输入序列来研究特定基序对预测的影响,或者通过计算梯度来识别对预测重要的核苷酸。

为了处理长程相互作用和预测基因表达,David进一步开发了使用扩张卷积的模型。扩张卷积允许模型在更大的基因组区域内整合信息,从而能够考虑增强子、启动子和绝缘子等远端调控元件对基因表达的影响。通过残差连接,模型可以更有效地训练深层网络。

最后,David还探讨了如何利用深度学习预测三维染色质相互作用。通过将一维序列表征转换为二维接触矩阵,并使用二维扩张卷积,模型能够从DNA序列预测Hi-C数据中观察到的染色质环和拓扑关联结构域。


📝 总结

本节课中,我们一起学习了基因调控的核心机制,包括转录因子结合和三维染色质结构。我们回顾了传统的基序发现方法,并深入探讨了深度学习在调控基因组学中的应用,特别是卷积神经网络如何从DNA序列中学习调控基序和预测染色质特征。通过嘉宾讲座,我们了解了BASSET等工具的实际应用,以及如何利用扩张卷积和残差网络处理长程基因组相互作用和预测基因表达。这些技术为我们理解复杂的基因调控网络提供了强大的计算工具。

🧬 课程09:基因表达预测

在本节课中,我们将学习如何利用深度学习技术预测基因表达。我们将从基因表达分析的基础概念入手,探讨如何从少量基因数据预测全基因组表达,以及如何利用染色质特征和序列信息来预测基因表达和剪接事件。


📊 基因表达分析基础

基因表达分析的核心是测量细胞中RNA的水平。传统方法使用杂交技术,例如通过微阵列芯片测量特定基因的表达。近年来,随着测序成本的急剧下降,RNA测序(RNA-seq)已成为主流技术,它能够直接对转录组进行测序,从而更全面地获取基因表达数据。

这些技术最终会生成一个表达矩阵。矩阵的行代表基因组中的约20,000个基因,列代表不同的实验条件、组织类型或细胞状态。矩阵中的每个值代表特定基因在特定条件下的表达水平。

这个矩阵可以从两个维度进行分析。在垂直维度上,我们可以比较不同条件下同一基因的表达模式。在水平维度上,我们可以比较不同基因在同一条件下的表达模式。


🔍 无监督学习:聚类分析

在获得表达矩阵后,最基础的分析方法是进行无监督的聚类分析。

以下是两种主要的聚类分析思路:

  • 条件聚类: 沿着矩阵的列(条件维度)进行聚类,可以找出在基因表达模式上相似的实验条件。例如,阿尔茨海默症患者与老年人的表达谱可能相似,这暗示了疾病与衰老过程可能存在关联。
  • 基因聚类: 沿着矩阵的行(基因维度)进行聚类,可以找出在不同条件下共表达的基因。这些基因可能具有相似的功能,例如都参与B细胞或血细胞谱系的分化。

聚类分析是完全无监督的,不需要预先的训练标签,旨在发现数据中内在的结构和模式。


🎯 有监督学习与高级分析框架

上一节我们介绍了无监督的聚类分析,本节中我们来看看如何利用有监督学习和更高级的框架来分析基因表达数据。

除了聚类,我们还可以进行有监督的分类任务。例如,已知一组与T细胞功能相关的基因,我们可以训练一个分类器,在表达矩阵中寻找具有类似表达特征的其他基因,从而基于“关联内疚”原则推断新基因的功能。

更重要的是,我们可以利用在整个课程中学到的深度学习框架来处理表达数据。例如:

  • 自监督学习: 我们可以随机遮盖表达矩阵的一部分,然后训练模型来预测这些缺失值。这迫使模型学习基因表达模式的潜在表征。
  • 多任务学习: 我们可以同时预测多个生物学类别(如增殖、分化等),利用非线性特征和更高阶的交互信息。
  • 降维与表征学习: 我们可以使用主成分分析(PCA)或自编码器等方法来学习基因或条件的低维“元表征”。公式 X ≈ U Σ V^T 表示通过奇异值分解(SVD)进行低秩矩阵近似。t-SNE等方法则可以学习一个能更好分离不同类别的低维嵌入空间。

这些工具使我们能够结合基因表达向量和染色质特征向量,来探索更复杂的生物学问题。


🚀 本节课的核心议题

基于上述分析框架,本节课将深入探讨三个前沿的基因表达预测议题。

以下是本节课三位客座讲师将重点介绍的内容:

  1. 表达上采样: 如何从少量(如1000个)基因的测量值,预测全基因组(约20000个)的表达水平。这类似于图像分析中的超分辨率任务。
  2. 从染色质特征预测表达: 基因的表达水平与其启动子、增强子等区域的染色质状态(如DNA可及性、组蛋白修饰)密切相关。因此,可以利用染色质信息来预测基因表达。
  3. 从序列预测剪接: 前体mRNA的剪接过程决定了最终蛋白质的构成。我们可以利用深度神经网络,直接根据DNA序列来预测外显子的包含或排除,以及剪接位点的使用。

🧪 讲座一:从染色质特征预测增强子活性

首先,弗林·陈将介绍如何利用弱监督学习框架,从染色质特征中精确预测和定位增强子。

增强子是能够增加基因转录活性的调控元件。定位增强子对于理解疾病遗传驱动因素至关重要。早期方法因缺乏标注数据,多采用无监督方法(如ChromHMM)。随着STARR-seq等大规模并行报告基因检测技术的发展,我们现在可以获得大量关于基因组片段增强子活性的标注数据,从而转向有监督的学习范式。

STARR-seq实验能够高通量地检测基因组中每个片段是否具有增强子活性。然而,该实验的局限性在于,每个片段是在其原始表观遗传背景之外被评估的。

我们的方法旨在利用卷积神经网络,整合多种染色质特征(如DNA可及性ATAC-seq,组蛋白修饰H3K27ac, H3K4me3等),来预测STARR-seq的实验结果。模型输入是这些特征在基因组区域上的矩阵,输出是一个二元分类(是否有增强子活性)。

更巧妙的是,在模型做出阳性预测后,我们使用Grad-CAM(梯度加权类激活映射)方法。通过计算正向传播的梯度并将其反向传播到特定网络层,我们可以生成一个热图,高亮显示输入区域中对模型决策最重要的部分。这使我们能够将原始的宽窗口(如4kb)预测,细化为更精确、更高分辨率的“核心增强子区域”。


📈 讲座二:深度学习在基因表达分析中的应用

接下来,邵慰教授将介绍深度学习在基因表达分析中的多种应用,特别是深度生成模型。

我们开发了多种工具,例如DeepExpression(D-GEX),它使用深度神经网络从少量“标志基因”的表达来预测全基因组的表达谱。模型是一个简单的多层感知机,输入是约978个标志基因的表达向量,通过全连接层,最终输出预测的约20000个基因的表达向量。这比简单的线性回归基准表现更好。

对于更常见的无标注基因组数据,深度生成模型更为适用。其核心思想是将高维、复杂、嘈杂的数据映射到一个低维流形上进行研究。变分自编码器(VAE)是其中一种重要框架。

VAE的目标是最大化证据下界(ELBO):
ELBO = E_{q(z|x)}[log p(x|z)] - D_{KL}(q(z|x) || p(z))
其中,第一项是重构损失,第二项是让近似后验分布 q(z|x) 接近先验分布 p(z)(通常为标准正态分布)的KL散度。

在单细胞RNA-seq数据分析中,人们通常使用零膨胀负二项分布(ZINB)来建模计数的离散性和高零值特性。将VAE与ZINB结合,可以有效地学习单细胞数据的低维表征。

然而,学习到的表征常常混杂了实验批次效应、测序深度等技术噪音。为此,我们提出了条件生成模型,在建模时显式地考虑这些混杂因素(c),并同时最小化潜在变量(z)与混杂因素(c)之间的互信息 I(z; c),从而迫使模型学习到只反映真实生物学状态、去除技术噪音的表征。


✂️ 讲座三:从序列预测RNA剪接

最后,凯尔·法尔博士将介绍如何直接从DNA序列预测RNA剪接,以及其在解读非编码区变异中的临床应用。

人类基因组中约99%是非编码区,大部分功能未知。剪接是高等生物中从前体mRNA中去除内含子、连接外显子的关键过程。剪接供体(GT)和受体(AG)位点本身特异性很低,需要广泛的序列上下文来精确定义。

我们开发了SpliceAI,这是一个深度卷积神经网络。它以约10kb的DNA序列作为输入,为每个核苷酸位置预测它是剪接供体、受体还是其他。模型采用残差网络和扩张卷积架构,能够在保持序列位置一一对应关系的同时,捕获长距离的序列上下文信息。

模型自动学习到了许多已知的剪接调控特征,如分支点、多嘧啶束、外显子长度以及外显子簇效应。长距离上下文信息可以补偿局部剪接位点模体的弱化,这是之前基于位置权重矩阵(PWM)的方法失败的主要原因。

我们将SpliceAI应用于罕见病患者的全基因组数据。通过比较野生型和突变型序列的预测结果,可以识别出导致异常剪接(如外显子跳跃、内含子保留)的非编码区变异。在自闭症谱系障碍、智力障碍等大型队列中,SpliceAI预测的高影响剪接变异在患者中显著富集,并通过患者血液RNA-seq验证了预测的异常剪接事件。自然选择分析也表明,这些预测的隐性剪接变异与蛋白质截短变异一样受到强烈负选择。


📝 总结

本节课中我们一起学习了基因表达预测的多个方面。我们从基础的表达矩阵和聚类分析出发,探讨了如何利用深度学习进行表达上采样。通过三位客座讲师的分享,我们深入了解了如何从染色质特征预测增强子活性(弱监督学习),如何应用深度生成模型(如VAE)分析并校正单细胞基因表达数据,以及如何直接从DNA序列高精度预测RNA剪接事件(SpliceAI),并将其用于解读非编码区变异在人类疾病中的作用。这些工作展示了深度学习在解析基因组复杂调控逻辑和推进精准医疗方面的强大潜力。

posted @ 2026-02-03 19:59  绝不原创的飞龙  阅读(0)  评论(0)    收藏  举报