CS231N Lecture13 Attention
Lecture13 Attention
Attention 注意力机制
第一时间步(单个)
1.计算 标量alignment scores(对齐分数),
2.对
3.上下文向量通过线性计算得到:
4.解码器再对上下文向量解码:
(这个过程是可微的!没有对注意力的监督——对每个部分进行反向传播)

第二时间步(向前传递):
使用s1更新e、a值,生成c2、s2

举例:RNN+Attention
实际上,Attention机制并不关注输入数据的时序性,所以输入数据可以为无时序性

Attention layer 注意层
- 将
用收缩的简单点积 取代,简化运算; - 所得
除以sqrt(D),(如果存在一个e>>其他,在softmax中,其大小接近1而其他接近0) - 允许多个query vectors(查询向量).有一组query vectors、一组输入向量,对每个query vector生成输入向量的概率分布,从而计算相似度函数(query vector与输入向量)。输出:sum(aij*xj)
- 分离key和value。使用**可学习的关键矩阵W_{k}、可学习的值矩阵W_{v}**(而不是在操作内部将输入向量用于这两个不同函数)。使用可学习的矩阵,将输入向量转化至两组新向量K、V中,将相似度的计算转化为矩阵乘法。(使模型在使用输入数据时具有更大灵活性)

具体流程如图:

General attention layer – used in LLMs + beyond
Self-Attention Layer 自注意层
————恢复对排列的敏感性
对每个输入向量x,添加位置编码。(有多种方法实现)
例:可以使用一个pos函数,完成映射。
pos函数应具有一些特性:
1.它应该为每个时间步输出一个唯一的编码(单词在句子中的位置)
2.在不同长度的句子中,任意两个时间步之间的距离应该是一致的。
3.我们的模型可以毫不费力地推广到更长的句子。它的值是有界的。
4.它必须是确定性的。

Mask Self-Attention Layer 掩码子注意层
- 使用负无穷大, 将不注意的位置(非过去的位置)强制掩盖。
- 允许我们在时间上并行化注意力
- 不需要先计算前一个时间步的上下文向量

Multi-head self-attention layer 多头自注意层
- 假设输入向量维数为D,将每个输入向量分裂成相等边的 h 个块 ,将 h 个块放入平行的self-attention layer
- 再将平行得到的输出连接
- 两个需要设置的超参数:
- Query dimension
(内部的键向量) - Number of heads H(想使用的头部数量)
- 数据的输入/输出维度
- Query dimension
举例:
CNN with self-Attention

对比RNN与transformer

ViTs – Vision Transformers
将transformer应用于计算机视觉任务。
ViT的基本原理
ViT的核心思想是将图像视为一组固定大小的块(patches),而不是直接在像素级别上进行操作。这个方法受到了 Transformer 在自然语言处理(NLP)任务中成功应用的启发。
1. 图像分块(Patching):
- 输入的图像(例如一个大小为 224×224224 \times 224224×224 的 RGB 图像)会被切分成多个不重叠的小块,每个小块大小为 16×1616 \times 1616×16(假设为 224×224224 \times 224224×224 的图像,切分成 14x14 个块)。
- 每个图像块被展平(flatten),然后将这些展平后的图像块转换成一个固定维度的向量(例如每个块为 768 维向量)。这些向量作为模型的输入。
2. 线性嵌入(Linear Embedding):
- 每个图像块会通过一个线性变换(一个全连接层)来映射到一个高维的嵌入空间。这样,每个块就变成了一个向量,类似于 NLP 中单词的嵌入(word embedding)。
3. 位置编码(Positional Encoding):
- 因为 Transformer 本身没有顺序信息,所以需要为每个图像块加上位置编码。这与NLP中的位置编码(position encoding)相似,目的是给模型提供图像块的位置顺序,以便它可以识别图像块在空间上的相对位置。
4. Transformer Encoder:
- 在得到图像块的嵌入表示后,ViT使用标准的 Transformer 编码器(Encoder)来处理这些块。每个块的嵌入会通过多个 Transformer 层进行处理,类似于 NLP 中处理文本的方式。每个 Transformer 层包括:
- 自注意力机制(Self-Attention):模型可以在每一层计算各个图像块之间的依赖关系,从而理解图像中不同部分之间的关系。
- 前馈神经网络(Feedforward Network):每个位置的嵌入会经过一个简单的全连接网络,增强模型的表达能力。
Transformer 中的自注意力机制允许模型捕获图像全局的上下文信息,而不仅仅是局部特征。
5. 分类标记(Class Token):
- ViT 在输入序列的开始处添加了一个分类标记(class token),它与其他图像块一起输入 Transformer。这个分类标记的输出向量将在最后作为图像的表示,用于分类任务。
- 在最终的输出中,这个分类标记的向量会经过一个全连接层映射到类别空间,从而进行图像分类。
- 输出:
- Transformer 编码器通过多层自注意力和前馈神经网络处理图像块后,最终输出的分类标记向量将用于预测图像的类别。


Transformer encoder block 编码器块
- 是大模型的基本块(MLP multiple perceptron多个感知器)
- 只有在自注意层,向量之间能够相互作用;其他层,对单个向量单独作用。
- 高度可放缩、可平行,使用储存较大

Transformer decoder block 解码器
使用Masked self-attention,只与过去输入作用。
这里使用的Multi-head attention block 不是自注意层。需要将编码器的输出 输入多头注意层。

- Title: CS231N Lecture13 Attention
- Author: Rongying Liu
- Created at : 2025-02-26 13:52:34
- Updated at : 2025-02-27 15:43:42
- Link: https://github.com/Roinnnn11/Roinnnn11.github.io/2025/02/26/CS231N/13Attention/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments

