【AI学习日记 Day 1|10.10】暴刷CS231:Transformer
一、Transformer 与 Vision TransformerViT主要梳理了 Transformer 及现代大模型的基础组件进一步理解了大模型内部的信息处理过程。1.1 Transformer 基础架构Transformer 是一种基于 Attention注意力机制的深度学习架构最早应用于自然语言处理目前已经广泛应用于 LLM、VLM 和计算机视觉等领域。经典 Transformer 由 Encoder 和 Decoder 组成。Encoder 主要负责特征提取和上下文建模Decoder 主要负责根据已有信息生成目标序列。主要学习的模块包括Embedding嵌入层将输入 Token 映射为向量表示。Positional Encoding位置编码为模型提供位置信息。Multi-Head Attention多头注意力使用多个注意力头学习不同的特征关系。Feed Forward NetworkFFN对每个 Token 进行非线性特征变换。Residual Connection残差连接改善深层网络的梯度传播和训练稳定性。Layer Normalization层归一化对特征进行归一化提高训练稳定性。其中Attention 是 Transformer 最核心的组成部分。1.2 Self-AttentionSA自注意力Self-Attention 的核心思想是序列中的每个 Token都可以根据其他 Token 的信息更新自身的特征表示。通过三个线性映射矩阵将输入映射为QQuery查询向量。KKey键向量。VValue值向量。Scaled Dot-Product Attention缩放点积注意力的计算公式为Attention(Q, K, V) softmax(QK^T / sqrt(d_k)) V其中d_k 表示 Key 向量的维度。计算过程计算相关性通过 Q 与 K 的点积计算注意力分数。缩放除以 sqrt(d_k)避免点积数值过大。归一化使用 Softmax 获得注意力权重。加权求和根据注意力权重对 V 进行加权求和。Self-Attention 的特点是 Q、K、V 来自同一输入序列但经过不同的线性变换。总结SA 让模型能够在同一序列内部建立全局信息关联而不是像传统卷积Conv一样主要通过局部感受野逐步提取特征。1.3 Cross-AttentionCA交叉注意力Cross-Attention 与 Self-Attention 的计算形式基本相同关键区别在于 Q、K、V 的来源。Self-AttentionQ、K、V 来自同一个序列。Cross-AttentionQ 来自查询序列K 和 V 来自另一个序列。例如在经典 Transformer Encoder-Decoder 架构中Q来自 Decoder 的隐藏状态。K、V来自 Encoder 的输出。Decoder 通过 Cross-Attention 读取 Encoder 提供的信息。在多模态模型中Cross-Attention 还可以用于图像特征与文本特征之间的信息交互。总结SA 主要解决同一序列内部的信息交互CA 主要解决两个不同序列之间的信息交互。二者并不是完全不同的注意力算法而是注意力机制在不同信息来源下的应用。1.4 Vision TransformerViTViT 将 Transformer Encoder 引入计算机视觉使图像能够像文本序列一样输入 Transformer 进行建模。ViT 的主要流程Image → Patch Partition → Patch Embedding → Position Embedding → Transformer Encoder → Classification Head具体过程Patch Partition图像分块将图像划分为固定大小的 Patch。Patch Embedding图像块嵌入将每个 Patch 展平通过线性投影转化为 Token。Position Embedding位置嵌入为 Patch Token 添加位置信息。Transformer Encoder特征编码利用 Multi-Head Self-Attention 建模不同 Patch 之间的关系。Classification Head分类头根据编码后的特征完成图像分类等任务。例如一张 224×224 的图像采用 16×16 的 PatchPatch 数量 (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 目标检测DETRDetection 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. CAMClass Activation MappingCAM 通过结合卷积特征图和分类层权重生成类别激活图用于展示图像中哪些区域对某一类别的预测贡献较大。2. Grad-CAMGradient-weighted Class Activation MappingGrad-CAM 利用目标类别输出对卷积特征图的梯度计算各通道的重要性权重进而生成可视化热力图。两者的核心区别CAM依赖特定的网络结构通常需要全局平均池化与对应的线性分类层。Grad-CAM利用梯度计算特征重要性可以应用于更多网络架构。总结CAM 和 Grad-CAM 都是在尝试解释模型为什么会做出某个预测帮助分析模型关注的图像区域。2.3 视频理解Video Understanding初步了解了视频理解的主要研究任务包括Video Classification视频分类判断视频整体所属类别。Action Recognition动作识别识别视频中的人物或物体动作。Temporal Action Localization时序动作定位判断特定动作在视频中发生的时间区间。Video Question Answering视频问答根据视频内容回答自然语言问题。Video-Language Understanding视频语言理解建立视频内容与语言语义之间的联系。相较于静态图像视频模型不仅需要理解空间特征还需要建模时间维度上的动态变化。总结图像理解主要关注单帧的空间信息而视频理解需要进一步理解跨帧之间的时序关系和动态变化。