Outlines about Deep Learning.

深度学习(Deep Learning)是一种以深度神经网络为工具的机器学习方法。 本文首先介绍深度学习的基本组件方法技巧,其次介绍深度神经网络的类型,最后介绍深度学习在计算机视觉、自然语言处理与自然科学等领域的应用

本文目录:

1. 深度学习的基本组件和方法技巧

(1) 深度学习的基本组件

激活函数 (Activation Function)

激活函数为神经网络引入不可或缺的非线性。设计激活函数时可以考虑的七条准则包括:连续可导、计算量小、没有饱和区、没有偏置偏移、具有生物可解释性、能够提取上下文信息、具有通用近似性。

常见的激活函数按设计思路可以分为七族:

优化方法 (Optimization)

深度学习中的优化问题是指在已有的数据集上最小化训练损失$L(\theta)$,通常用基于梯度的数值方法求解。在实际应用梯度方法时,可以根据截止到当前步$t$的历史梯度信息\(\{g_{1},...,g_{t}\}\)计算修正的参数更新量$h_t$(比如累积动量、累积二阶矩校正学习率等)。指定每次计算梯度所使用的数据批量$\mathcal{B}$和学习率$\gamma$,则第$t$次参数更新为:

\[\begin{aligned} g_t&=\frac{1}{|\mathcal{B}|}\sum_{x \in \mathcal{B}}^{}\nabla_{\theta} l(\theta_{t-1};x) \\ h_t &= f(g_{1},...,g_{t}) \\ \theta_t&=\theta_{t-1}-\gamma h_t \end{aligned}\]

梯度下降可以从动力学逼近概率三个角度理解,此外还有隐式梯度正则化、与核方法的联系、深度集成与损失曲面等分析视角。针对基于梯度的方法的不同缺陷,优化器可以分为八族:

与优化器正交的还有三类训练技巧:学习率与批量的调度warmup、余弦与线性衰减、梯度裁剪、线性缩放律、增大批量代替衰减学习率)、权重平均SWA, EMA, Lookahead)与数据流水线加速Data Echoing)。

正则化方法 (Regularization)

正则化指的是通过引入噪声或限制模型的复杂度,降低模型对输入或参数的敏感性,从而避免过拟合、提高泛化能力。从偏差-方差分解的角度看,正则化是用可控的偏差增加换取方差的显著下降;其实现有两条路径:限制假设空间在训练中注入噪声

常用的正则化方法按作用对象分为三族:

这些方法之间存在深刻的联系:DropoutEarly Stopping都可以在特定条件下等价于L2正则化,SGD本身也带有隐式正则化效应,而”梯度惩罚”是贯穿多种方法的一条统一主线。

归一化方法 (Normalization)

输入数据的特征通常具有不同的量纲和取值范围,使得不同特征的尺度差异很大。归一化泛指把数据特征的不同维度转换到相同尺度的方法。它之所以有效,通常归因于缓解特征尺度差异、减少内部协变量偏移、平滑损失曲面、引入尺度不变性(从而自动调节有效学习率)与隐式正则化效应。

深度学习中的归一化方法按作用对象分为六族:

参数初始化方法 (Parameter Initialization)

对神经网络进行训练时需要先对参数进行初始化。糟糕的初始化不仅会使模型效果变差,还有可能使得模型根本训练不动或者不收敛。初始化要解决的核心问题有两个:打破神经元之间的对称性,以及让前向激活值与反向梯度的方差在逐层传播中保持稳定(否则表现为梯度消失或梯度爆炸)。初始化的具体取值还与激活函数、归一化层和学习率相互耦合。

常见的初始化方法分为六族:

其中,Spectral Condition用统一的算子范数条件\(\lVert W\rVert_2,\lVert\Delta W\rVert_2=\Theta\left(\sqrt{n_{out}/n_{in}}\right)\)描述特征学习;muP的输入层、隐藏层与输出层缩放规则可以看成这一条件在不同矩阵形状下的逐元素表达。

(2) 深度学习的方法

半监督学习 (Semi-Supervised Learning)

半监督学习是指同时从有标签数据和无标签数据中进行学习。半监督学习的假设包括平滑性假设、聚类假设、低密度分离假设和流形假设。

常用的半监督学习方法包括:

自监督学习 (Self-Supervised Learning)

自监督学习是一种无监督表示学习方法,旨在根据无标签数据集中的一部分信息预测剩余的信息,并以有监督的方式来训练该数据集。

适用于图像数据集的自监督任务包括:

度量学习 (Metric Learning)

深度度量学习通过共享权重的Siamese网络把原始样本映射到低维特征空间,并设计合理的度量损失使得同类样本在特征空间上的距离比较近,不同类样本之间的距离比较远。

度量学习的目标在于最小化相似样本(正样本对)之间的距离,最大化不相似样本(负样本对)之间的距离。深度度量损失包括:

多实例学习 (Multi-Instance Learning)

在标准的监督学习框架下,每一个实例(instance)都会被赋予一个标签。多实例学习是一种弱监督学习框架,它将数据组织成一种层级结构:由多个实例构成一个包(Bag),标签是在“包”的层面上给出的。

多实例学习的标准假设是:一个包被标记为正,当且仅当它至少包含一个正实例;一个包被标记为负,当且仅当它所有实例均为负。

现有的Deep MIL方法根据其分类粒度(Classification Granularity)可以分为:

多任务学习 (Multi-Task Learning)

多任务学习是指同时学习多个属于不同领域的任务,并通过特定任务的领域信息提高泛化能力。多任务学习的方法设计可以分别从网络结构损失函数两个角度出发。

一个高效的多任务网络,应同时兼顾特征共享部分和任务特定部分。根据模型在处理不同任务时网络参数的共享程度,多任务学习方法的网络结构可分为:

多任务学习将多个相关的任务共同训练,其总损失函数是每个任务的损失函数的加权求和式:\(\mathcal{L}_{total} = \sum_{k}^{} w_k\mathcal{L}_k\)。多任务学习的目的是寻找模型参数的帕累托最优解,因此需要设置合适的任务权重。一些权重自动设置方法包括Uncertainty, Gradient Normalization, Dynamic Weight Average, Multi-Objective Optimization, Dynamic Task Prioritization, Loss-Balanced Task Weighting

主动学习 (Active Learning)

主动学习是指从未标注数据中只选择一小部分样本进行标注和训练来降低标注成本。深度主动学习最常见的场景是基于(pool-based)的主动学习,即从大量未标注的数据样本中迭代地选择最“有价值”的数据,直到性能达到指定要求或标注预算耗尽;选择最“有价值”的数据的过程被称为采样策略

深度主动学习方法可以根据不同的采样策略进行分类:

迁移学习 (Transfer Learning)

迁移学习是指将解决某个问题时获取的知识应用在另一个不同但相关的问题中。根据源域数据和目标域数据的标签存在情况,迁移学习可以细分为:

模型微调是指用带有标签的源域数据预训练模型后,再用带有标签的目标域数据微调模型。

领域自适应是指通过构造合适的特征提取模型,使得源域数据和目标域数据的特征落入相同或相似的特征空间中,再用这些特征解决下游任务。常用的领域自适应方法包括:

终身学习(lifelong learning)

终身学习也叫持续学习(Continuous Learning, Never Ending Learning)增量学习(Incremental Learning);是指把模型应用到新任务后,对之前的任务和新任务都能有较好的表现;作为对比,迁移学习则不能保证模型在之前的任务上还有较好的表现。

一些常见的终身学习算法包括多任务学习、Elastic Weight ConsolidationGradient Episodic MemoryProgressive Neural NetworksNet2NetCurriculum LearningSupSup

元学习(meta-learning)

元学习(Meta Learning)又叫学会学习(Learning to learn),是指给定数据集后,训练一个函数$F$,使得该函数$F$能够选择一个合适的函数$f$解决问题。

一些常见的元学习算法包括MAMLRaptileiMAML

(3) 深度学习的技巧

图像的数据增强 (Image Augmentation)

图像数据增强通过随机变换、样本重组或生成模型扩展训练分布,并把任务先验编码成不变性或等变性约束。它不仅是正则化技巧,也是检测、分割、自监督学习和小样本学习中定义训练样本的重要组成部分。

常用方法按生成机制分为六族:

混合精度训练 (Mixed Precision Training)

混合精度训练是指在训练深度学习模型的过程中,同时使用不同的数值精度(如半精度浮点数float16和单精度浮点数float32)进行计算,以提高计算速度并降低内存占用。混合精度训练的关键技巧包括FP32权重备份、损失缩放和改进算术方式。

长尾分布 (Long-Tailed)

实际应用中的数据集大多服从长尾分布,即少数类别(head class)占据绝大多数样本,多数类别(tail class)仅有少量样本。解决长尾分布问题的方法包括:

对抗训练 (Adversarial Training)

对抗训练是指通过构造对抗样本,对模型进行对抗攻击和防御来增强模型的稳健性。对抗训练的一般形式如下:

\[\mathcal{\min}_{\theta} \mathbb{E}_{(x,y)\sim \mathcal{D}} \left[ \mathcal{\max}_{\Delta x \in \Omega} \mathcal{L}(x+\Delta x,y;\theta) \right]\]

大模型的参数高效微调 (Parameter-Efficient Fine-Tuning)

将预训练好的大型模型在下游任务上进行微调已成为处理不同任务的通用范式;但是随着模型越来越大,对模型进行全部参数的微调(full fine-tuning)变得非常昂贵。参数高效微调是指冻结预训练模型的大部分参数,仅微调少量或额外的模型参数。

参数高效微调方法有以下几种形式:

() 网络压缩

网络压缩旨在平衡网络的准确性和运算效率。 压缩预训练的网络 设计新的网络结构

2. 深度神经网络的类型

(1) 卷积神经网络

卷积神经网络(Convolutional Neural Network)的基本概念

卷积神经网络是由卷积层、激活函数和池化层堆叠构成的深度神经网络,可以从图像数据中自适应的提取特征。

卷积层是一种局部的互相关操作,使用卷积核在输入图像或特征上按照光栅扫描顺序滑动,并通过局部仿射变换构造输出特征。它引入了三条针对自然图像的归纳偏置:稀疏连接、权值共享和平移等变性;这既是卷积高效的原因,也是后续各种改进试图放松的对象。卷积层的基准形式为$y(p_0)=\sum_{p_n \in \mathcal{R}} w(p_n)\cdot x(p_0+p_n)+b$,几乎所有改进都可以看作对它某一部分的修改。

卷积层的基本超参数与形态:$1\times 1$卷积, 扩张卷积(Dilated Conv, HDC, IC-Conv), 转置卷积(及棋盘效应), 子像素卷积(PixelShuffle, ICNR), 组卷积, 深度卷积。

卷积算子的改进可以按“改动了基准公式的哪一部分”分为六族:

卷积的高效实现决定了FLOPs能否兑换成实际速度:im2col + GEMM, FFT卷积, Winograd卷积;深度卷积与大核卷积属于访存受限算子,需要专用核实现。

卷积神经网络中的池化(Pooling)层

池化层可以对特征图进行降采样,从而减小计算成本、扩大感受野、降低过拟合的风险。任何池化都可以拆解为聚合抽取两步,据此可以按三个维度分类:聚合函数是确定性还是随机的、是否包含可学习参数、以及输出的空间尺寸是缩小还是坍缩为一个向量。理解这一点也就理解了池化与平移不变性的真实关系——不变性主要来自数据增强与全局池化,而抽取步骤恰恰是破坏它的元凶。

通用的降采样池化分为三族:

面向下游任务的池化把特征坍缩为定长表示:

与池化相对的反池化与上采样:最大反池化, 平均反池化, 最近邻/双线性插值, 转置卷积, 子像素卷积。

卷积神经网络中的注意力机制(Attention Mechanism)

卷积神经网络中的注意力机制表现为在特征的某个维度上计算相应统计量,并根据所计算的统计量对该维度上的每一个元素赋予不同的权重,用以增强网络的特征表达能力。它把卷积”对所有通道、所有位置一视同仁”的固定权重变成了输入自适应的重标定,并且几乎所有模块都遵循同一个通用形式:聚合上下文 → 生成权重 → 融合回特征。这类模块的共同特点是即插即用、开销极低,但也因此存在增益不稳定、难以复现的问题。

卷积层的特征维度包括通道维度和空间维度,因此注意力机制可以应用在不同维度上:

卷积神经网络中的自注意力机制(Self-Attention Mechanism)

卷积神经网络中的自注意力机制表现为非局部滤波操作,通过计算任意两个位置之间的关系直接捕捉远程依赖,而不用局限于相邻点,相当于构造了一个和特征图尺寸一样大的卷积核,从而可以捕捉更多信息。它的通用形式$y_i=\frac{1}{\mathcal{C}(x)}\sum_j f(x_i,x_j)g(x_j)$源自图像去噪中的非局部均值,与Transformer的自注意力只是相似度函数与归一化方式的差别。这类模块的核心矛盾在于$O(N^2)$的复杂度:特征图的空间尺寸稍大就无法承受,因此绝大多数后续工作都在解决这个问题。

卷积神经网络中的自注意力机制包括:

卷积神经网络的可视化

轻量级(LightWeight)卷积神经网络

轻量级网络设计旨在设计计算复杂度更低的卷积网络结构。一个贯穿全篇的关键认识是:FLOPs不等于实际延迟。深度卷积、通道重排、逐元素加法等算子的算术强度很低,属于访存受限,因此”FLOPs降低$8$倍、实测只快$2$倍”是常态;评价轻量模型必须在目标硬件上实测时延,而不能只看参数量与FLOPs

轻量化的基本手段包括分解卷积、通道重排与稀疏连接、特征复用与廉价算子、降分辨率降通道与缩放、以及替代乘法。据此常见的轻量级网络可以分为六条路线:

(2) 循环神经网络

循环神经网络(Recurrent Neural Network)的基本概念

循环神经网络(RNN)可以处理输入长度不固定的文本等时间序列数据。RNN每一时刻的隐状态$h_t$不仅和当前时刻的输入$x_t$相关,也和上一时刻的隐状态$h_{t-1}$相关。RNN具有通用近似性、图灵完备性等特点,但这些理论表达力与实际可学习性之间存在明显的鸿沟。

\[h_t = f(h_{t-1},x_t), \quad y_t = g(h_t)\]

RNN的训练依赖随时间反向传播(BPTT)(也可用实时循环学习RTRL,以$O(d^3)$的计算换取$O(1)$的时间复杂度和在线更新能力)。它存在长程依赖问题:理论上可以建立长时间间隔的状态之间的依赖关系,但由于梯度沿时间维度以雅可比矩阵连乘的形式传播,实际上只能学习到短期的依赖关系。缓解长程依赖的非门控手段包括梯度裁剪, 恒等初始化与IRNN, 酉循环网络uRNN, 跳跃连接与多时间尺度, 截断BPTT, 归一化。

更根本的解决措施是引入门控机制,用加性的状态更新把连乘的雅可比矩阵变成接近恒等的传播路径。门控循环网络可以分为:

也可以通过增加循环层的深度增强RNN的特征提取能力,包括Stacked RNN, Bidirectional RNN, 残差与高速连接;循环网络专用的正则化包括Variational/Recurrent Dropout(跨时间步共享掩码)与Zoneout(随机保持上一时刻的状态)。

序列到序列模型 (Sequence to Sequence)

序列到序列(Seq2Seq)模型是一种序列生成模型,能够根据一个随机长度的输入序列生成另一个随机长度的序列。Seq2Seq模型通常采用编码器-解码器结构:

Seq2Seq模型在生成序列时可以通过贪婪搜索或束搜索实现。序列生成时存在曝光偏差问题,可以通过计划采样缓解。

典型的Seq2Seq模型包括条件Seq2Seq模型、指针网络。

序列到序列模型中的注意力机制 (Attention Mechanism)

Seq2Seq模型中,将输入序列通过编码器转换为一个上下文向量$c$,再喂入解码器。注意力机制是指在解码器的每一步中,通过输入序列的所有隐状态$h_{1:T}$构造注意力分布$(\alpha_1,…,\alpha_t,…,\alpha_T)$,然后构造当前步的上下文向量$c= \sum_{t=1}^{T} {\alpha_th_t}$。

(3) 自注意力网络

自注意力机制 (Self-Attention Mechanism)

自注意力机制用于捕捉单个序列$X$的内部关系。把输入序列$X$映射为查询矩阵$Q$, 键矩阵$K$和值矩阵$V$;根据查询矩阵$Q$和键矩阵$K$生成注意力图,并作用于值矩阵$V$获得自注意力的输出$H$。

Transformer

Transformer是一个基于多头自注意力机制的深度网络模型,网络结构包括编码器和解码器。编码器生成基于注意力的特征表示,该表示具有从全局上下文中定位特定信息的能力;解码器从特征表示中进行检索。

Transformer中的位置编码 (Position Encoding)

Transformer中的自注意力机制具有置换等变性(permutation equivariant),导致打乱输入序列的顺序只会同步打乱输出而不改变对应关系,因此必须显式注入位置信息以打破全对称性。从Taylor展开与注意力logit中的位置偏置这一统一视角看,各类位置编码可归纳为:

降低Transformer的计算复杂度

自注意力运算中计算注意力矩阵以及加权求和计算输出这两个步骤引入了$O(N^2)$的计算复杂度。降低复杂度有四条改进路线,另有一类专门针对推理阶段的显存瓶颈:

(4) 深度生成模型

生成模型(generative model)是指使用带参数$\theta$的概率分布$p_{\theta}(x)$拟合已有数据样本集\(\{x\}\)。由于概率分布$p_{\theta}(x)$的形式通常是未知的,可以将其假设为离散型或连续型分布;若进一步引入隐变量(latent variable) $z$,则可以间接地构造概率分布$p_{\theta}(x)$:

\[p_{\theta}(x) = \int p_{\theta}(x,z) dz = \int p_{\theta}(x|z)p(z) dz\]

参数$\theta$的求解可以通过极大似然估计。若记真实数据分布为$\tilde{p}(x)$,则优化目标为最大化对数似然\(\Bbb{E}_{x\text{~}\tilde{p}(x)}[\log p_{\theta}(x)]\)。由于该算式包含积分运算,直接求解比较困难;不同的生成模型通过不同的求解技巧避开这个困难。

⚪ 自回归模型 (Auto-Regressive)

条件分布的乘积

从最严格的角度来看,图像应该是一个离散的分布,因为它是由有限个像素组成的,而每个像素的取值也是离散的、有限的,因此可以通过离散分布来描述。这个思路的成果就是PixelRNN一类的模型了,我们称之为“自回归流”,其特点就是无法并行,所以计算量特别大。所以,我们更希望用连续分布来描述图像。当然,图像只是一个场景,其他场景下我们也有很多连续型的数据,所以连续型的分布的研究是很有必要的。

的本质,就是希望用一个我们知道的概率模型来拟合所给的数据样本,也就是说,我们得写出一个带参数θ的分布qθ(x)。然而,我们的神经网络只是“万能函数拟合器”,却不是“万能分布拟合器”,也就是它原则上能拟合任意函数,但不能随意拟合一个概率分布,因为概率分布有“非负”和“归一化”的要求。这样一来,我们能直接写出来的只有离散型的分布,或者是连续型的高斯分布。

生成对抗网络 (Generative Adversarial Network)

生成对抗网络通过交替优化的对抗训练绕开了似然的直接求解,使用生成器$G$构造真实分布的近似分布\(P_G(x)\),并使用判别器衡量生成分布和真实分布之间的差异。

\[\begin{aligned} \mathop{ \min}_{G} \mathop{\max}_{D} \Bbb{E}_{x \text{~} P_{data}(x)}[\log D(x)] + \Bbb{E}_{z \text{~} P(z)}[\log(1-D(G(z)))] \end{aligned}\]

生成对抗网络的设计是集目标函数、网络结构、优化过程于一体的,GAN的各种变体也是基于对这些方面的改进:

变分自编码器 (Variational Autoencoder)

变分自编码器的优化目标不是对数似然,而是对数似然的变分下界:

\[\log p_{\theta}(x) \geq \mathbb{E}_{z \text{~} q_{\phi}(z|x)} [\log p_{\theta}(x | z)] - KL[q_{\phi}(z|x)||p(z)]\]

VAE的优化目标共涉及三个不同的概率分布:由概率编码器表示的后验分布$q_{\phi}(z|x)$、隐变量的先验分布$p(z)$以及由概率解码器表示的生成分布$p_{\theta}(x|z)$。对VAE的各种改进可以落脚于对这些概率分布的改进:

流模型 (Flow-based Model)

流模型通过一系列可逆变换(双射函数$f$)建立较为简单的先验分布$p(z)$与较为复杂的实际数据分布$p(x)$之间的映射关系:

\[\begin{aligned} x&=f_K \circ \cdots \circ f_1(z) \\ p(x) &= p(z)\cdot |\prod_{k=1}^{K} \det J_{f_k}(z_{k-1})|^{-1} \end{aligned}\]

由于流模型给出了概率分布$p(x)$的显式表达式,可直接最大化对数似然:

\[\begin{aligned} \log p(x) = \log p(z) - \sum_{k=1}^{K}\log | \det J_{f_k}(z_{k-1})| \end{aligned}\]

从优化目标中可以看出,流模型是由先验分布$p(z)$和双射函数$x=f(z)$唯一确定的。根据双射函数的不同设计思路,流模型分为以下两类:

扩散模型

流匹配模型 (Flow Matching Model)

流匹配通过回归一个时变速度场$v_\theta(x,t)$来构造从先验分布$p_0$到数据分布$p_1$的连续变换,其轨迹由ODE $dx_t/dt = v_\theta(x_t,t)$ 给出。直接匹配边际速度场$u_t(x)$是不可行的,但可以证明条件流匹配目标与之具有相同的梯度:

\[\begin{aligned} \mathcal{L}_{CFM}(\theta) = \mathbb{E}_{t, q(z), p_t(x|z)} \| v_\theta(x, t) - u_t(x|z) \|^2, \quad \nabla_\theta \mathcal{L}_{FM} = \nabla_\theta \mathcal{L}_{CFM} \end{aligned}\]

其中条件路径$p_t(x|z)$与条件速度$u_t(x|z)$由人为设计,因而有解析形式,使训练完全无模拟。若采用仿射高斯路径$x_t=\alpha_tx_1+\sigma_tx_0$,则速度、$x_1$、$x_0$与分数四种预测目标可以相互线性换算,扩散模型的概率流ODE正是其中一个特例;流匹配的额外自由度在于路径调度、源分布的任意性以及回归目标与时间加权的选择。流匹配模型的研究可以分为以下几类:

⚪ 其他生成网络

Generative Moment Matching Network

(4) 其他类型的神经网络

递归神经网络 (Recursive Neural Network)

递归神经网络在树或有向无环图上递归地共享组合函数:先编码叶节点,再根据子节点表示计算父节点,直至得到根节点表示。循环神经网络是其链式特例,而TreeRNN也可以看成树上的单次有向消息传递。它适合句法树、程序抽象语法树、场景层级和3D部件树等具有可靠层级结构的数据。

递归网络的方法可以分为四族:

显式树结构能缩短句法相关成分之间的路径并提供可解释的组合过程,但依赖解析质量、难以批量并行。对一般自然语言任务,预训练Transformer通常是默认选择;对AST、XML和部件树等原生层级输入,递归网络仍具有直接而有效的结构归纳偏置。

记忆增强神经网络 (Memory Augmented Neural Network)

记忆增强神经网络在神经网络中引入外部记忆单元来提高网络容量。记忆网络的模块包括:主网络$C$负责信息处理以及与外界的交互;外部记忆单元$M$用来存储信息;读取模块$R$根据主网络生成的查询向量从外部记忆单元读取信息;写入模块$W$根据主网络生成的查询向量和要写入的信息更新外部记忆单元。读取或写入操作通常使用注意力机制实现。

典型的记忆增强神经网络包括端到端记忆网络、神经图灵机。

图神经网络 (Graph Neural Network)

图神经网络是用于处理图结构的神经网络,其核心思想是学习一个函数映射$f(\cdot)$,图中的节点$v_i$通过该映射可以聚合它自己的特征$x_i$与它的邻居特征$x_{j \in N(v_i)}$来生成节点$v_i$的新表示。

GNN可以分为两大类,基于空间(spatial-based)和基于谱(spectral-based)。

状态空间模型 (State Space Model)

状态空间包含完整描述系统的最小变量数,这些变量称为状态向量状态空间模型是用于描述这些状态向量的模型,并根据额外的输入预测它们的下一个状态。

状态方程描述了系统内部状态$h(t)$随时间和输入的演化:

\[h^\prime(t) = Ah(t) + Bx(t)\]

观测方程描述了系统的输出$y(t)$如何依赖于系统状态和控制输入:

\[y(t) = Ch(t)\]

现代研究揭示状态空间模型、线性注意力与门控线性RNN在”带状态的线性递归”这一模板下是统一的(均可写成$h_t=A_t h_{t-1}+B_t x_t$的循环形式,并支持并行/递归/分块递归三种等价计算)。深度学习中的相关模型包括:

胶囊网络

3. 深度学习的应用

(1) High-Level视觉

图像识别 (Image Recognition)

图像识别是计算机视觉的基本任务,旨在对每张图像内出现的物体进行类别区分。基于深度学习的图像识别方法不需要手工提取特征,而是使用卷积神经网络自动提取特征并进行分类。应用于图像识别任务的卷积神经网络的结构发展包括:

  1. 早期探索:奠定“卷积层-下采样层-全连接层”的拓扑结构。如LeNet5, AlexNet, ZFNet, NIN, SPP-net, VGGNet
  2. 深度化:增加堆叠卷积层的数量。如Highway Network, ResNet, Stochastic Depth, DenseNet, Pyramidal ResNet, DPN, Res2Net, SpineNet, SpinalNet
  3. 模块化:设计用于堆叠的网络模块。如Inception v1-4, WideResNet, Xception, ResNeXt, SENet, ResNeSt
  4. 缩放与架构搜索:用NAS或复合缩放自动设计网络。如NASNet, MnasNet, DARTS, EfficientNet/V2, RegNet
  5. 结构重参数化:训练用多分支、推理时合并为单路。如ACNet, RepVGG, DBB
  6. 大核卷积与现代卷积网络:用大卷积核重新逼近自注意力的全局感受野。如ConvNeXt v1-2, RepLKNet, SLaK, InternImage, MogaNet, InceptionNeXt, UniRepLKNet, OverLoCK
  7. 轻量化:设计轻量级卷积层,可参考轻量级卷积神经网络
  8. 训练配方与稳定性:架构之外的训练技巧同样关键。如Bag of Tricks, ResNet strikes back, NFNet, ResNet-RS
  9. 少标注学习范式:如Noisy Student, Meta Pseudo Labels, SCAN, BiTImageNet-21k预训练)

图像识别的常用训练基准是ImageNet-1k/21k;评估分布外泛化与鲁棒性时还会用到ImageNet-V2, -A, -R, -Sketch, -C等测试集。

除卷积网络外,基于自注意力的视觉Transformer已成为图像识别的另一条主线。

目标检测 (Object Detection)

目标检测任务是指在图像中检测出可能存在的目标;包括定位分类两个子任务:其中定位是指确定目标在图像中的具体位置,分类是确定目标的具体类别。

传统的目标检测算法首先在图像中生成候选区域,然后对每个候选区域提取特征向量,最后对每个候选区域提取的特征进行分类。常用的候选区域生成方法包括滑动窗口、Felzenszwalb算法、选择搜索算法。常用的特征描述子包括图像梯度向量、方向梯度直方图HOG、尺度不变特征变换SIFT、可变形部位模型DPM

基于深度学习的目标检测模型包括:

目标检测的常用评估指标包括准确率、召回率、F-scoreP-R曲线、平均准确率AP、类别平均准确率mAP

非极大值抑制算法是目标检测等任务中常用的后处理方法,能够过滤掉多余的检测边界框。提高NMS算法精度的方法包括Soft-NMS, IoU-Guided NMS, Weighted NMS, Softer-NMS, Adaptive NMS, DIoU-NMS。提高NMS算法效率的方法包括CUDA NMS, Fast NMS, Cluster NMS, Matrix NMS

目标检测中的损失函数包括边界框的分类损失和回归损失。

标签分配策略是指在训练目标检测器时,为特征图不同位置的预测样本分配合适的标签(即区分anchor是正样本还是负样本),用于计算损失。标签分配根据非负即正划分为硬标签分配(hard LA)软标签分配(soft LA)

开放集合目标检测 (Open-Set Object Detection)

开集目标检测是指在可见类的数据上进行训练,然后完成对不可见类数据的定位与识别。一些常见的开集目标检测方法包括:

图像分割 (Image Segmentation)

图像分割是对图像中的每个像素进行分类,可以细分为:

图像分割模型通常采用编码器-解码器结构。编码器从预处理的图像数据中提取特征,解码器把特征解码为分割掩码。图像分割模型的发展趋势可以大致总结为:

图像分割中常用的评估指标包括:PA, CPA, MPA, IoU, MIoU, FWIoU, Dice Coefficient

图像分割的损失函数用于衡量预测分割结果和真实标签之间的差异。根据损失函数的推导方式不同,图像分割任务中常用的损失函数可以划分为:

点云分类 (Point Cloud Classification)

点云分类即点云形状分类,是一种重要的点云理解任务。该任务的方法通常首先学习每个点的嵌入,然后使用聚合方法从整个点云中提取全局形状嵌入,并通过分类器进行分类。根据神经网络输入的数据格式,三维点云分类方法可分为:

目标计数 (Object Counting)

目标计数任务旨在从图像或视频中统计特定目标实例的数量。本文主要讨论基于回归的计数方式,即直接学习图像到目标数量或目标密度图的映射关系,通用的目标技术方案包括:

  1. 少样本计数 (Few-Shot Counting):提供目标样本exemplar在查询图像中进行匹配,如GMN, FamNet, LaoNet, CFOCNet, SAFECount, BMNet+, Counting-DETR, CounTR, LOCA, SPDCN, VCN, SAM Counting, CACViT, DAVE, SSD
  2. 无参考计数 (Reference-less Counting):自动挖掘和计数所有显著性目标,如LC, RLC, MoVie, DSAA, CaOC, RepRPN-Counter, RCC, GCNet, ZSC, ABC123, OmniCount
  3. 文本引导计数 (Text-Guided Counting):通过预训练视觉语言模型进行目标计数,如CountCLIP, CLIP-Count, CounTX, VLCounter, CLIP Counting, ExpressCount

(2) Low-Level视觉

图像超分辨率 (Super Resolution)

图像超分辨率旨在将低分辨率图像LR放大为对应的高分辨率图像HR,从而使图像更清晰。图像超分辨率的传统方法主要是基于插值的方法,如最邻近插值、双线性插值、双三次插值;而基于深度学习的图像超分辨率方法,可以根据上采样的位置不同进行分类:

图像超分辨率的评估指标主要包括峰值信噪比PSNR和结构相似度SSIM

全色锐化 (Panchromatic Sharpening)

全色锐化是指将全色图像的高分辨率空间细节信息与多光谱图像的丰富光谱信息进行融合,得到高质量、理想的高空间分辨率多光谱图像。像素级全色图像锐化方法通常分为:

  1. 成分替换法(CS-based):使用全色图像对多光谱图像的成分进行替换,如Brovey变换, PCA变换, IHS变换, GS变换, GSA, CNMF, GFPCA
  2. 多分辨率分析法(MRA-based):对全色图像和多光谱图像不同尺度的高、低频成份进行融合,如SFIM变换, Wavelet变换, MTF-GLP, MTF-GLP-HPM
  3. 模型优化法(MO-based):建立并优化融合图像与全色图像和多光谱图像之间的能量函数,如SIRF, PSFG$S^2$LR, LGC, PGCP-PS, BPSM, F-BMP
  4. 深度学习方法(DL-based):使用深度学习模型自动学习图像特征,从而实现图像分辨率的提升,如PNN, PanNet, MSDCNN, GPPNN, SRPPNN, INNformer, PanFormer, SFIIN, MIDPS, PanFlowNet, Pan-Mamba, HFIN

(3) GenAI (Generative AI)

生成式人工智能 (GenAI) 旨在从现有数据(如文本、图像、视频、音频和代码)中学习,然后生成具有相似特征的数据。

图像到图像翻译 (Image-to-Image Translation)

图像到图像翻译旨在学习一个映射使得图像可以从源图像域变换到目标图像域,同时保留图像内容。根据是否提供了一对一的学习样本对,将图像到图像翻译任务划分为有配对数据(paired data)无配对数据(unpaired data)两种情况。

布局引导图像生成 (Layout-to-Image Generation)

布局引导图像生成是图像感知任务(如目标检测、图像分割)的逆过程,即根据给定的布局生成对应的图像。根据布局控制条件的输入形式,布局引导的图像生成模型包括:

(4) Human-Centric感知

人体姿态估计 (Human Pose Estimation)

人体姿态估计是指从图像、视频等输入信号中估计人体的姿态信息。姿态通常以关键点组成的人体骨骼表示。

2D单人人体姿态估计通常是从已完成定位的人体图像中计算人体关节点的位置,并进一步生成2D人体骨架。这些方法可以进一步分为:

与单人姿态估计相比,多人姿态估计需要同时完成检测估计任务。根据完成任务的顺序不同,多人姿态估计方法分为:

3D人体姿态估计是从图片或视频中估计出关节点的三维坐标,与2D人体姿态估计相比,3D人体姿态估计需要估计深度信息。3D人体姿态估计方法可以分为:

人体姿态估计中的技巧包括:

二维人体姿态估计中常用的评估指标包括PCP, PCK, OKS, AP, mAP。三维人体姿态估计中常用的评估指标包括MPJPE

常用的二维人体姿态估计数据集包括LSP, FLIC, MPII, MS COCO, AIC。常用的三维人体姿态估计数据集包括Human3.6M, MPI-INF-3DHP, CMU Panoptic, AMASS

人脸检测, 识别与验证 (Face Detection, Recognition, and Verification)

人脸检测是指检测任意一幅给定的图像中是否含有人脸,如果是则返回人脸的位置、大小和姿态,是人脸验证与识别的关键步骤。常用的人脸检测方法包括Eigenface, SSH

人脸识别是指判断给定的人脸图像属于用户数据库中的哪个人(或没有匹配),是一种多分类问题。常用的人脸识别方法包括DeepFace

人脸验证是指判断给定的人脸图像和用户ID是否匹配,是一种二分类问题。常用的人脸识别方法包括DeepID, DeepID2

行人检测与属性识别 (Pedestrian Detection and Attribute Recognition)

行人检测是指找出图像或视频帧中所有的行人,包括位置和大小;常用的行人检测方法包括DeepParts

行人属性识别是指从行人图像中挖掘具有高级语义的属性信息;常用的行人属性识别方法包括DeepSAR, DeepMAR, HydraPlus-Net

时空动作检测 (Spatio-Temporal Action Detection)

时空动作检测旨在识别视频中目标动作出现的区间和对应的类别,并在空间范围内用一个包围框标记出人物的空间位置。按照处理方式不同,时空动作检测可方法以分为:

射频人体感知(RF-based Human Perception)

射频人体感知又称为可见光谱外的人体感知,是指使用雷达系统进行人体感知应用。雷达系统向检测环境中发射电磁波信号,照射人体目标,并接收反射信号用于执行下游任务。与光学系统相比,雷达系统可以在低能见度等特殊环境中工作,并且可以提供更好的隐私保护性。在特定频段工作的雷达系统还可以穿透墙壁等非金属障碍物,从而实现隐蔽场景下的人体感知。

根据发射信号的工作频段不同,射频人体感知方法可以细分为基于毫米波雷达的方法、基于WiFi阵列的方法与基于穿墙雷达的方法。(部分工作简写为标题首字母)

(5) 自然语言处理

预训练语言模型 (Pretrained Language Model)

预训练语言模型是一种从大量无标签的语料库中学习通用的自然语言特征表示的方法。使用预训练语言模型的步骤如下:1. 在大量无标签的语料库上进行特定任务的预训练;2. 在下游任务的语料库上进行微调(或直接通过提示驱动)。

语言的特征表示可以分为上下文无关的嵌入(如Word2Vec,同一个词在任何句子中都得到同一个向量,无法表达多义性)和上下文相关的嵌入(如ELMo,根据上下文为每个词元位置动态生成表示)两类。

根据采用的模型结构不同,预训练语言模型可以划分为以下几类:

预训练语言模型的预训练任务包括概率语言建模、掩码语言建模、序列到序列的掩码语言建模、增强掩码语言建模、排列语言建模、前缀语言建模等。

模型规模、数据规模与算力之间的关系由规模化定律(scaling law)刻画:Kaplan等人给出了损失关于$N,D,C$的幂律形式,Chinchilla修正了最优配比(参数量与训练词元数应当同比例增长),而部分能力只在超过一定规模后才出现,即涌现能力(emergent ability)

现代大模型在预训练之后还有两个对齐阶段:指令微调(在大量任务的指令化数据上微调以获得零样本泛化,如FLAN)和偏好对齐(如基于人类反馈强化学习的InstructGPT/RLHF,以及把奖励模型解析地消去、直接在偏好数据上优化策略的DPO)。

预训练语言模型从文本数据中学习到的知识包括语言类知识(包括浅层语言知识和抽象语言知识)和世界知识(包括事实性知识和常识性知识)两大类。其中语言类知识主要分布在模型的浅层和中层,世界知识主要分布在模型的中层和深层。大型预训练模型在大规模数据上性能提升的主要驱动力是世界知识。

预训练语言模型的知识存储在Transformer的全连接层结构中。全连接层可以看作键-值记忆单元($FFN(x)=f(x⋅K^\top )⋅V$),其中第一层的参数$K$作为输入序列的模式检测器,第二层的参数$V$存储了对应模式下输出词汇表上的概率分布。

修正预训练语言模型里存储的错误或者过时的知识有三种手段:① 通过数据归因定位并删除对应的数据源,并重新进行预训练;② 在知识修正的数据集上进行约束微调;③ 定位存储知识的模型参数并进行修正(通常是修改全连接层参数$V$,如Knowledge Neuron, MEND, ROME, MEMIT)。

1

(6) 多模态

文本检测与识别 (Text Detection and Recognition)

文本检测是指找出图像中的文字区域;文本识别是指对定位好的文字区域进行识别,将图像中的文字区域进转化为字符信息。常用的文本检测与识别方法包括EAST, CRNN, Mask TextSpotter

视觉-语言预训练 (Vision-Language Pretraining)

视觉-语言预训练旨在从大规模的图像-文本对中学习通用的跨模态表示,使得模型能够理解图像和文本之间的语义关联。预训练完成后,模型可以直接在下游的视觉-语言任务上进行微调。

根据视觉数据和语言数据的特征交互和对齐方式不同,视觉-语言预训练方法可以分为:

4. AI for Science

(1)AI for Math

(2)AI for Physics

(3)AI for Computer Science

(4)AI for Life Science

组学 omics 通常指生物学中对各类研究对象(生物分子)的集合所进行的系统性研究(这些研究对象的集合被称为组 ome),旨在对转化为有机体的结构、功能和动力学的生物分子池(pools of biological molecules)进行集体表征和量化。

⭐ 基因组学(Genomics)

基因组学系统性研究生物体基因组(genome)中各种基因(gene)以及它们之间的相互关系。

基因组变异检测

基因组基础模型

序列到功能(Sequence-to-function)模型能够从DNA序列数据中预测基因表达,这对于理解调控过程及其对复杂表型的影响至关重要。基因组语言模型(Genomic language models)通过在海量DNA序列上进行预训练,能够生成蕴含基因组上下文信息的、鲁棒的序列表示。然而,目前很少有研究能够评估基因表达水平的可预测性,并将这两类模型结合起来,以探索个性化的基因表达预测。

EPInformer

enformer performer

片段组学模型 (Fragmentomics Model)

片段组学专注于分析细胞游离DNAcfDNA)的片段化特征(如长度分布、末端基序、分布模式等),该模式与核小体结构以及细胞死亡过程中的DNA片段化现象有关。

⭐ 转录组学(Transcriptomics)

转录组学研究在单个细胞或特定类型的细胞、组织、器官或发育阶段的细胞群内所生产的各类RNA(通常是mRNA)分子的类型和数量。

⭐ 蛋白质组学(Proteomics)

蛋白质组学是对蛋白质结构和功能的大规模研究,蛋白质组是由有机体或系统产生或修饰的整套蛋白质。

⭐ 表观基因组学(Epigenomics)

表观基因组学是对细胞遗传物质(称为表观基因组)上所有表观遗传修饰的研究。表观遗传修饰是细胞DNA或组蛋白的可逆修饰,它会影响基因表达,而不会改变DNA序列。

DNA甲基化组模型 (DNA Methylome Model)

DNA甲基化是指DNA分子在DNA甲基转移酶(DNMT)的作用下将甲基基团选择性地添加到特定碱基上的过程。

甲基化位点预测的目标是发现新位点。输入通常是围绕待预测碱基的一段固定长度的序列,输出是判断该序列中心某个特定的碱基(如CA)是否是一个甲基化位点。这是一个二元分类 问题。常用的甲基化位点预测模型包括:

甲基化数据插补 (Imputation) 的目标是填补缺失值。输入通常是稀疏的甲基化矩阵:包含大量细胞/样本(行)和 CpG 位点(列),但矩阵中有很多缺失值。输出是补全后的完整的甲基化水平矩阵。这是一个回归问题。常用的甲基化数据插补模型包括:DeepCpG, CpG Transformer, GraphCpG, MethylProphet, DMRU, scMeFormer, DiffuCpG

DNA甲基化应用模型是指利用标记好的甲基化数据集,通过监督学习等方法训练,以解决特定下游临床任务(如疾病诊断、分型或预后预测)的专用预测工具。包括HNSC or LUSC, MethylNet, DISMIR, AltumAge, Alzheimer Detector, MT-CAE & MT-LSTMAE, HiTAIC, CHCT, NCAE, Sturgeon, Decoding Depression, MethPriorGCN, cfMethylPre

DNA甲基化基础模型是指在海量的、通常是无标签的DNA甲基化数据上进行预训练的大规模深度学习模型,旨在学习通用的、富含上下文信息的特征表示(如CpG嵌入),并能通过微调快速适应多种不同的下游任务。包括CpGPT, MethylGPT, MethylQUEEN, scWGBS-GPT, MethylBERT

⭐ 单细胞多学组(Single-Cell Multiomics)

⚪ 单细胞多组学整合模型

⚪ 单细胞多组学翻译模型

5. 参考文献与扩展阅读

⚪ Life-Long Deep Learning

深度学习技术发展日新月异,快速并持续地获取新技术的发展十分关键。按照个人时间充裕程度,学习深度学习技术的渠道可以分为以下三种:

  1. 时间充裕指数⭐⭐⭐:推荐每天刷arxiv获取最新研究论文,或者借助Cool Papers辅助刷arxiv论文。
  2. 时间充裕指数⭐⭐:推荐关注顶会的出分和放榜时间,通过OpenReview等工具获取相关顶会的投递和接收论文,可以使用Paper Copilot工具查看顶会论文的得分排名等统计信息。
  3. 时间充裕指数⭐:推荐关注一些深度学习相关的自媒体,利用随便化时间从公众号、知乎、B站等渠道获取最新技术动态,不过能获取的大都是知名大佬的作品或网红论文,不建议作为主要学习方式。

⚪ 深度学习的相关课程

⚪ 深度学习的相关书籍

⚪ 深度学习的相关博客