系列论文研读目录
文章目录
- 系列论文研读目录
- 论文中经常出现的如下图中所示结果,其中到底做了什么?
- 1、一张图片 经过self attention 和Feed forward 生成的是什么?
- 2、在高级特征表示 \( H_2 \) 中,行和列分别具有特定的意义。
- 3、举个分类图片的用自注意力(self-attention)和前馈网络(feed-forward network)的例子
- 4、高级特征表示 H 2 H_2 H2 包含CLS吗
- 5、举个CLS用于分类的详细例子
- 6、详细写一下上面 分类输出 举个例子进行计算
- 7、既然 H 2 H_2 H2[0]中已经有了对每个类别的预测,那么为什么还要乘以线性层的权重矩阵
- 8、 H 2 H_2 H2的第一行是怎么做到综合了输入图像的所有特征信息。
- 9、为什么 H 2 H_2 H2的其他行无法做到综合了输入图像的所有特征信息。
- 10、那CLS的初始化是怎样的
- 11、那我已经有了CLS,在 H 2 H_2 H2中其他特征还有什么用呢?
论文中经常出现的如下图中所示结果,其中到底做了什么?
1、一张图片 经过self attention 和Feed forward 生成的是什么?
一张图片经过自注意力(self-attention)和前馈网络(feed-forward network)后,生成的是该图片的高级特征表示。这些特征表示可以用于多种任务,如图像分类、目标检测或图像生成。
具体流程如下:
- 自注意力(Self-Attention):
- 自注意力机制会计算图像中不同部分之间的关系,允许模型关注图像中最重要的区域。
- 通过计算每个像素(或特征)与其他像素之间的相关性,生成加权的特征表示。
- 前馈网络(Feed-Forward Network):
- 在自注意力层之后,通常会经过一个前馈神经网络,对特征进行非线性变换。
- 这个网络通常包括两个线性层和一个激活函数(如ReLU),用于进一步提炼特征。
结果:
- 高级特征表示:经过这两个步骤后,最终得到的是一个更为抽象和高维的特征表示,能够更好地捕捉图像的语义信息。
- 嵌入向量:这种表示可以被视为一个嵌入向量,适合用于后续的机器学习任务。
总结来说,自注意力和前馈网络的组合使得模型能够有效地理解和处理图像中的复杂信息。
举个具体计算的例子
下面是一个自注意力和前馈网络的计算示例,假设我们有一个小的图像特征表示。
假设条件
- 输入特征矩阵 X X X 为 2 × 4 2 \times 4 2×4,代表两个特征向量,每个特征向量有四个维度。
X = [ 1 0 1 0 0 1 0 1 ] X = \begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \end{bmatrix} X=[10011001]
1. 自注意力计算
1.1 计算查询(Query)、键(Key)和值(Value)
我们定义查询、键和值的权重矩阵:
W Q = [ 1 0 0 0 1 0 0 0 1 0 0 1 ] , W K = [ 1 0 0 0 1 0 0 0 1 0 0 1 ] , W V = [ 1 0 0 0 1 0 0 0 1 0 0 1 ] W_Q = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 1 \end{bmatrix}, \quad W_K = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 1 \end{bmatrix}, \quad W_V = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 1 \end{bmatrix} WQ= 100001000011 ,WK= 100001000011 ,WV= 100001000011
计算查询、键和值:
Q = X W Q = [ 1 0 1 0 1 1 ] , K = X W K = [ 1 0 1 0 1 1 ] , V = X W V = [ 1 0 1 0 1 1 ] Q = X W_Q = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix}, \quad K = X W_K = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix}, \quad V = X W_V = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} Q=XWQ=[100111],K=XWK=[100111],V=XWV=[100111]
1.2 计算注意力权重
计算注意力分数:
Attention_scores = Q K T = [ 2 1 1 2 ] \text{Attention\_scores} = Q K^T = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} Attention_scores=QKT=[2112]
然后进行 softmax 操作,得到注意力权重:
Attention_weights = softmax ( Attention_scores ) = [ e 2 e 2 + e 1 e 1 e 2 + e 1 e 1 e 2 + e 1 e 2 e 2 + e 1 ] ≈ [ 0.731 0.269 0.269 0.731 ] \text{Attention\_weights} = \text{softmax}(\text{Attention\_scores}) = \begin{bmatrix} \frac{e^2}{e^2 + e^1} & \frac{e^1}{e^2 + e^1} \\ \frac{e^1}{e^2 + e^1} & \frac{e^2}{e^2 + e^1} \end{bmatrix} \approx \begin{bmatrix} 0.731 & 0.269 \\ 0.269 & 0.731 \end{bmatrix} Attention_weights=softmax(Attention_scores)=[e2+e1e2e2+e1e1e2+e1e1e2+e1