☰
【AI学习日记 Day 1|10.10】暴刷CS231:Transformer
2026/10/11 2:47:38 网站建设 项目流程

一、Transformer 与 Vision Transformer(ViT)

主要梳理了 Transformer 及现代大模型的基础组件,进一步理解了大模型内部的信息处理过程。

1.1 Transformer 基础架构

Transformer 是一种基于 Attention(注意力机制)的深度学习架构,最早应用于自然语言处理,目前已经广泛应用于 LLM、VLM 和计算机视觉等领域。

经典 Transformer 由 Encoder 和 Decoder 组成。

Encoder 主要负责特征提取和上下文建模,Decoder 主要负责根据已有信息生成目标序列。

主要学习的模块包括:

  • Embedding(嵌入层):将输入 Token 映射为向量表示。

  • Positional Encoding(位置编码):为模型提供位置信息。

  • Multi-Head Attention(多头注意力):使用多个注意力头学习不同的特征关系。

  • Feed Forward Network(FFN):对每个 Token 进行非线性特征变换。

  • Residual Connection(残差连接):改善深层网络的梯度传播和训练稳定性。

  • Layer Normalization(层归一化):对特征进行归一化,提高训练稳定性。

其中,Attention 是 Transformer 最核心的组成部分。

1.2 Self-Attention(SA,自注意力)

Self-Attention 的核心思想是:

序列中的每个 Token,都可以根据其他 Token 的信息更新自身的特征表示。

通过三个线性映射矩阵,将输入映射为:

  • Q(Query):查询向量。

  • K(Key):键向量。

  • V(Value):值向量。

Scaled Dot-Product Attention(缩放点积注意力)的计算公式为:

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

其中,d_k 表示 Key 向量的维度。

计算过程:

  1. 计算相关性:通过 Q 与 K 的点积计算注意力分数。

  2. 缩放:除以 sqrt(d_k),避免点积数值过大。

  3. 归一化:使用 Softmax 获得注意力权重。

  4. 加权求和:根据注意力权重对 V 进行加权求和。

Self-Attention 的特点是 Q、K、V 来自同一输入序列,但经过不同的线性变换。

总结:SA 让模型能够在同一序列内部建立全局信息关联,而不是像传统卷积(Conv)一样,主要通过局部感受野逐步提取特征。

1.3 Cross-Attention(CA,交叉注意力)

Cross-Attention 与 Self-Attention 的计算形式基本相同,关键区别在于 Q、K、V 的来源。

  • Self-Attention:Q、K、V 来自同一个序列。

  • Cross-Attention:Q 来自查询序列,K 和 V 来自另一个序列。

例如,在经典 Transformer Encoder-Decoder 架构中:

  • Q:来自 Decoder 的隐藏状态。

  • K、V:来自 Encoder 的输出。

Decoder 通过 Cross-Attention 读取 Encoder 提供的信息。

在多模态模型中,Cross-Attention 还可以用于图像特征与文本特征之间的信息交互。

总结:SA 主要解决同一序列内部的信息交互,CA 主要解决两个不同序列之间的信息交互。

二者并不是完全不同的注意力算法,而是注意力机制在不同信息来源下的应用。

1.4 Vision Transformer(ViT)

ViT 将 Transformer Encoder 引入计算机视觉,使图像能够像文本序列一样输入 Transformer 进行建模。

ViT 的主要流程:

Image → Patch Partition → Patch Embedding → Position Embedding → Transformer Encoder → Classification Head

具体过程:

  1. Patch Partition(图像分块):将图像划分为固定大小的 Patch。

  2. Patch Embedding(图像块嵌入):将每个 Patch 展平,通过线性投影转化为 Token。

  3. Position Embedding(位置嵌入):为 Patch Token 添加位置信息。

  4. Transformer Encoder(特征编码):利用 Multi-Head Self-Attention 建模不同 Patch 之间的关系。

  5. Classification Head(分类头):根据编码后的特征完成图像分类等任务。

例如,一张 224×224 的图像,采用 16×16 的 Patch:

Patch 数量 = (224 / 16)^2 = 196

因此,图像可以转换为 196 个 Patch Token。

在原始 ViT 分类架构中,还会额外加入一个 CLS Token,因此输入 Transformer Encoder 的 Token 总数为 197。

与传统 CNN 主要通过局部卷积提取特征不同,ViT 可以通过 Self-Attention 直接建模不同图像区域之间的全局关系。

1.5 Transformer 与 ViT 的联系

通过学习,我进一步理解了 Transformer 和 ViT 的关系:

  • Transformer:一种通用的序列建模架构。

  • ViT:使用 Transformer Encoder 处理图像。

  • Self-Attention:二者共有的核心计算模块。

  • Cross-Attention:可以进一步实现不同序列、不同模态之间的信息融合。

对于后续学习多模态大模型而言,ViT 是重要的视觉编码器基础,而 Cross-Attention 是理解多模态信息交互的重要技术。


二、计算机视觉一些案例

2.1 DETR 目标检测

DETR(Detection Transformer)是一种将 Transformer 应用于目标检测的模型。

今天主要学习了 DETR 中 Transformer Encoder 和 Decoder 的作用。

Encoder:

  • 接收 CNN Backbone 提取的图像特征。

  • 通过 Self-Attention 建模不同图像区域之间的全局关系。

  • 输出包含上下文信息的视觉特征。

Decoder:

  • 引入 Object Queries(目标查询向量)。

  • 通过 Self-Attention 建模不同 Object Queries 之间的关系。

  • 通过 Cross-Attention 从 Encoder 输出的图像特征中提取目标信息。

  • 输出用于后续目标分类与边界框回归的特征。

DETR 的主要处理流程:

Image → CNN Backbone → Transformer Encoder → Transformer Decoder → Prediction Heads

最终通过两个预测分支输出检测结果:

  • Classification Head:预测目标类别。

  • Bounding Box Regression Head:预测目标边界框坐标。

同时理解了 FFN 在特征变换中的作用,以及 Object Queries 如何通过注意力机制获取目标相关信息。

2.2 CAM 与 Grad-CAM

今天还学习了两种常见的模型可解释性方法:CAM 和 Grad-CAM。

1. CAM(Class Activation Mapping)

CAM 通过结合卷积特征图和分类层权重,生成类别激活图,用于展示图像中哪些区域对某一类别的预测贡献较大。

2. Grad-CAM(Gradient-weighted Class Activation Mapping)

Grad-CAM 利用目标类别输出对卷积特征图的梯度,计算各通道的重要性权重,进而生成可视化热力图。

两者的核心区别:

  • CAM:依赖特定的网络结构,通常需要全局平均池化与对应的线性分类层。

  • Grad-CAM:利用梯度计算特征重要性,可以应用于更多网络架构。

总结:CAM 和 Grad-CAM 都是在尝试解释模型为什么会做出某个预测,帮助分析模型关注的图像区域。

2.3 视频理解(Video Understanding)

初步了解了视频理解的主要研究任务,包括:

  • Video Classification(视频分类):判断视频整体所属类别。

  • Action Recognition(动作识别):识别视频中的人物或物体动作。

  • Temporal Action Localization(时序动作定位):判断特定动作在视频中发生的时间区间。

  • Video Question Answering(视频问答):根据视频内容回答自然语言问题。

  • Video-Language Understanding(视频语言理解):建立视频内容与语言语义之间的联系。

相较于静态图像,视频模型不仅需要理解空间特征,还需要建模时间维度上的动态变化。

总结:图像理解主要关注单帧的空间信息,而视频理解需要进一步理解跨帧之间的时序关系和动态变化。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询