视频详细讲解(一行一行代码讲解实现过程):逐行讲解Transformer的代码实现和原理讲解:多头掩码注意力机制(1)_哔哩哔哩_bilibili
1 多头掩码注意力机制总体流程
【总体流程图说明】
【12个块】
【多头掩码注意力机制公式】
【计算公式对应的步骤】
2 向量相似度计算
2.1 点积向量相似度点击的意义
q @ k.transpose(-2, -1)
这一操作的目的是为了计算查询向量(queries)和键向量(keys)之间的相似度或相关性得分。具体来说,这里的点积(也称为内积或标量积)是用来衡量查询向量和键向量之间匹配程度的一种方式。
-
相似度度量:通过计算查询向量和键向量之间的点积,我们得到了一个标量值,该值反映了这两个向量在多大程度上指向相同的方向。如果两个向量非常相似,它们的点积将会很大;如果几乎正交,则点积接近于零;如果是完全相反方向,则点积为负。
2.2点积的计算过程
当我们谈论相似度点积(dot product)的时候,我们通常是在讨论两个向量之间的相似性。点积是线性代数中的一个基本操作,可以用来衡量两个向量的方向和大小。在机器学习或信息检索中,点积常常用于计算文档、图像或其他数据对象之间的相似度。
假设我们有两个向量A和B,它们都是由数值构成的数组。为了简单起见,我们将使用二维向量作为例子,但这个概念同样适用于更高维度的数据。
例子
设向量 A = [2, 3],向量 B = [4, -1]。
计算这两个向量的点积的过程如下:
点积=A⋅B=(2∗4)+(3∗−1)=8−3=5点积=A⋅B=(2∗4)+(3∗−1)=8−3=5
这就是向量A和向量B的点积值。
解释
- 点积的计算方法是将两个向量对应的元素相乘后求和。
- 在本例中,我们分别将第一个向量的第一个元素与第二个向量的第一个元素相乘(2 * 4),然后将第一个向量的第二个元素与第二个向量的第二个元素相乘(3 * -1),最后将这两个结果相加得到点积的结果。
- 如果两个向量的方向越接近,则点积的绝对值越大;如果方向相反,则点积可能为负数。
3 相似度计算的其他函数
在计算机科学和数学中,计算向量之间的相似度通常涉及到测量两个向量之间的距离或角度。以下是一些常用的函数和方法来衡量向量相似度:
4 矩阵相乘
矩阵内部两个值要相等,也即是第一个矩阵的列,要等于第二个矩阵的行。
行乘以列,比如第一行与第一列相乘,然后相加得出第一个值。最终的矩阵维度是【第一个矩阵的行,第二个矩阵的列】。
比如【3,2】 * 【2,1】 = 【3,1】
5 Mask掩码
比如在训练“我喜欢范冰冰”这句话的时候,在预测我字的时候,需要根据我字预测下一个字,这个时候喜字是不能让模型看见的,比如模型预测出了我喜两个字以后,欢字是不能让模型看见的。
目的就是让模型能正确预测出下一个字,如果预测不准确,会通过反向传播,根据学习率更新各个权重参数,知道通过梯度下降算法得到最优的结果为止。
6 SoftMax激活函数
6.1 激活函数的作用
Softmax 函数是一种常用的激活函数,在机器学习尤其是深度学习中具有重要作用。它的主要用途包括:
-
概率化输出:
- Softmax 函数将一个 K 维的实数向量转换为另一个 K 维的向量,其中每个元素都是 [0, 1] 区间内的值,并且所有元素的和为 1。因此,经过 Softmax 处理后的输出可以解释为概率分布,这使得模型能够输出每个类别的预测概率。
6.2 激活函数的计算过程
假设我们有一个未归一化的得分向量 z=[1.0,2.0,3.0]z=[1.0,2.0,3.0],代表三个类别的得分。
标签:函数,点积,矩阵,逐行,相似,讲解,掩码,向量 From: https://blog.csdn.net/congzi1984/article/details/141760318