神经网络与深度学习笔记(4/4)
【课程总结】神经网络与深度学习:视觉大模型基础与 Vision Transformer (ViT) 深度解析
摘要: 本周课程我们迈入了深度学习的最前沿领域——视觉大模型基础,并重点对大模型时代的里程碑架构 Vision Transformer (ViT) 进行了全方位的源码级理论拆解,不仅理解了大模型技术在多模态方向的发展趋势,更深入探讨了图像如何通过打块(Patch)演变为序列、ViT 编码器的前向计算流,以及 CLIP、DINO 等前沿视觉大模型的构建范式。以下为本周课堂的核心知识梳理与总结。
一、 视觉大模型技术与多模态概述
1.1 大模型(Large-scale Models)的发展跨界
大模型技术最初在自然语言处理(NLP)领域凭借 GPT、BERT 等架构大放异彩。本周课程展示了其向计算机视觉(CV)领域全方位跨界的必然趋势。
- 核心驱动力:打破传统 CNN 的局部感受野限制,通过海量数据与超大参数量,让模型建立对视觉世界更本质的常识性、通用性理解。
1.2 多模态大模型(Multimodal LLM)
- 传统的深度学习网络通常局限于单一模态(如只看图或只读文)。
- 多模态大模型的核心在于打破单一模态的壁垒,通过统一的特征对齐机制,实现“文本-视觉-语音”等多源信息的联合表征与互补理解。这也是实现通用人工智能(AGI)的核心基石。
二、 Vision Transformer (ViT) 核心机制详解
作为将 Transformer 完美引入 CV 领域的开山之作,ViT 的核心逻辑是:把图像当成“句子”,把图像块(Patch)当成“单词”。
2.1 图像如何变“句子”:嵌入层与 Patch 分割
输入一张标准的二维图像 x∈RH×W×C\mathbf{x} \in \mathbb{R}^{H \times W \times C}x∈RH×W×C,由于标准 Transformer 只能处理一维序列,ViT 会将其切分为互不重叠的图像块(Patches) xp∈RN×(P2⋅C)\mathbf{x}_p \in \mathbb{R}^{N \times (P^2 \cdot C)}xp∈RN×(P2⋅C)。
- 数量计算公式:
N=HWP2N = \frac{HW}{P^2}N=P2HW
(其中 P×PP \times PP×P 是指定的 Patch 大小,NNN 即为切分后的序列长度,等同于一句话里单词的个数。) - 经典案例解析:以 ImageNet 常用的 224×224×3224 \times 224 \times 3224×224×3 图像为例,若设定 Patch 大小 P=16P = 16P=16,则可以切分为 22416×22416=14×14=196\frac{224}{16} \times \frac{224}{16} = 14 \times 14 = 19616224×16224=14×14=196 个 Patch token。
- 特殊 Token 的引入(Class Token):为了执行图像分类任务,ViT 借鉴了 BERT 的做法,在序列最前面(0号位置)强行插入一个可学习的特殊状态向量 xclass\mathbf{x}_{class}xclass。此时,送入网络的总序列长度变成了 196+1=197196 + 1 = 197196+1=197,特征维度映射为 768768768。
2.2 线性映射与位置编码
- 线性映射(Linear Transformation):展平后的图像块通过一个可学习的线性变换矩阵 E\mathbf{E}E,将维度从原先的 P2⋅CP^2 \cdot CP2⋅C(如 16×16×3=76816 \times 16 \times 3 = 76816×16×3=768)映射到 Transformer 要求的隐藏层维度 DDD(即 Patch Embedding)。
- 位置编码(Position Embedding):自注意力机制天生对输入顺序不敏感,为了赋予网络捕捉物体空间几何相对关系的能力,必须加上一维(1-D)正余弦或可学习的位置编码 Epos\mathbf{E}_{pos}Epos。
2.3 完整的 ViT 输入表示公式
最终,在第 0 层送入 ViT 编码器的混合序列表达式为:
z0=[xclass;xp1E;xp2E;… ;xpNE]+Epos\mathbf{z}_0 = [\mathbf{x}_{class}; \mathbf{x}_p^1\mathbf{E}; \mathbf{x}_p^2\mathbf{E}; \dots; \mathbf{x}_p^N\mathbf{E}] + \mathbf{E}_{pos}z0=[xclass;xp1E;xp2E;…;xpNE]+Epos
(其中线性投影矩阵 E∈R(P2⋅C)×D\mathbf{E} \in \mathbb{R}^{(P^2 \cdot C) \times D}E∈R(P2⋅C)×D,位置编码 Epos∈R(N+1)×D\mathbf{E}_{pos} \in \mathbb{R}^{(N+1) \times D}Epos∈R(N+1)×D。)
三、 ViT 编码器与前向计算流
ViT Encoder 内部由 LLL 个完全相同的 Block 堆叠而成,其前向传播计算流严格遵循以下公式组:
3.1 编码器层前向计算公式
zℓ′=MSA(LN(zℓ−1))+zℓ−1,ℓ=1…L\mathbf{z}_\ell' = \text{MSA}(\text{LN}(\mathbf{z}_{\ell-1})) + \mathbf{z}_{\ell-1}, \quad \ell = 1\dots Lzℓ′=MSA(LN(zℓ−1))+zℓ−1,ℓ=1…L
zℓ=MLP(LN(zℓ′))+zℓ′,ℓ=1…L\mathbf{z}_\ell = \text{MLP}(\text{LN}(\mathbf{z}_\ell')) + \mathbf{z}_\ell', \quad \ell = 1\dots Lzℓ=MLP(LN(zℓ′))+zℓ′,ℓ=1…L
y=LN(zL0)\mathbf{y} = \text{LN}(\mathbf{z}_L^0)y=LN(zL0)
- 核心算子解析:
- LN (Layer Normalization):层归一化在每一个注意力子层和前馈网络子层之前(Pre-LN)进行,极大地稳定了极深网络的训练过程。
- MSA (Multi-Head Self-Attention):多头自注意力机制,负责跨空间块建立全局的横向语义关联。
- MLP (Multi-Layer Perceptron):全连接前馈层。最终的分类预测结果 y\mathbf{y}y,仅仅提取经过 LLL 层演化后的 0号分类状态向量 zL0\mathbf{z}_L^0zL0(即
Class Token的最终输出),通过层归一化后送入分类头进行预测。
3.2 激活函数的高阶演进:GELU
传统的 CNN 常采用 ReLU 激活函数,但其在负半轴导数为 0 容易引发“神经元坏死”现象。ViT 引入了高斯误差线性单元(GELU):
GELU(x)=xΦ(x)\text{GELU}(x) = x\Phi(x)GELU(x)=xΦ(x)
Φ(x)=∫−∞xe−t2/22πdt=12[1+erf(x2)]\Phi(x) = \int_{-\infty}^{x} \frac{e^{-t^2/2}}{\sqrt{2\pi}} dt = \frac{1}{2}\left[1 + \text{erf}\left(\frac{x}{\sqrt{2}}\right)\right]Φ(x)=∫−∞x2πe−t2/2dt=21[1+erf(2x)]
(GELU 巧妙地将随机正则化(Stochastic Regularization)的思想与非线性激活融合在一起,权重取决于输入本身的表现,在负半轴保留了微弱的、概率性的梯度流,使大模型的泛化能力和训练稳定性显著提升。)
四、 典型视觉大模型架构拓展
除了标准的 ViT 分类网络,本周课堂还拓展了两大处于统治地位的视觉大模型应用范式:
4.1 CLIP (Contrastive Language-Image Pre-training)
- 核心思想:通过“文本塔-图像塔”的双塔对比学习机制。
- 机制:利用数以亿计的“图像-文本”配对数据进行预训练,最大化矩阵对角线上的正样本相似度,最小化非对角线上的负样本相似度。
- 价值:成功打通了文本与视觉特征的统一语义空间,赋予了模型惊人的 Zero-shot(零样本) 迁移与广义分类能力。
4.2 知识蒸馏与 DINO (Self-distillation with no labels)
- 核心思想:开创了“无标签自蒸馏”视觉大模型的先河。
- 机制:通过构建一个 Student 网络和一个具有动量更新的 Teacher 网络,对同一张图像的不同裁剪视角(Global & Local Crops)输出进行相互匹配和逼近。
- 价值:在完全不需要人工标注标签的前提下,DINO 训练出的 ViT 特征中自发包含了清晰的场景排布、边缘轮廓,甚至具备了极为优秀的自发语义分割特性,证明了自监督视觉大模型的广阔未来。
五、 本周学习体会与心得
在过去,CNN(如 ResNet)通过局部卷积核和池化层,被赋予了极强的“归纳偏置”(Locality and Translation Equivariance)。然而,ViT 彻底丢弃了这些传统视觉假设,它几乎没有针对图像空间结构的特殊定制,完全依赖全局自注意力去从零学习空间关联。
这种“弱归纳偏置”的设计,在小数据集上极其容易过拟合;然而一旦迈入大模型时代——当注入数以亿计的海量数据并施加千亿级参数规模时,ViT 展现出了远超传统 CNN 的规模化效应(Scaling Law)。理解了图像切块(Patch)、多头自注意力的前向计算流以及多模态对齐,才算是真正推开了当今多模态多维度大模型(如 GPT-4V、Sora 骨干等)的底层理论大门。
更多推荐
所有评论(0)