首页 > 其他分享 >逐行讲解Transformer的代码实现和原理讲解:多头掩码注意力机制

逐行讲解Transformer的代码实现和原理讲解:多头掩码注意力机制

时间:2024-09-05 22:25:06浏览次数:11  
标签:函数 点积 矩阵 逐行 相似 讲解 掩码 向量

视频详细讲解(一行一行代码讲解实现过程):逐行讲解Transformer的代码实现和原理讲解:多头掩码注意力机制(1)_哔哩哔哩_bilibili

1 多头掩码注意力机制总体流程

【总体流程图说明】

【12个块】

【多头掩码注意力机制公式】

【计算公式对应的步骤】

2 向量相似度计算

2.1 点积向量相似度点击的意义

q @ k.transpose(-2, -1)这一操作的目的是为了计算查询向量(queries)和键向量(keys)之间的相似度或相关性得分。具体来说,这里的点积(也称为内积或标量积)是用来衡量查询向量和键向量之间匹配程度的一种方式。

  1. 相似度度量:通过计算查询向量和键向量之间的点积,我们得到了一个标量值,该值反映了这两个向量在多大程度上指向相同的方向。如果两个向量非常相似,它们的点积将会很大;如果几乎正交,则点积接近于零;如果是完全相反方向,则点积为负。

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 函数是一种常用的激活函数,在机器学习尤其是深度学习中具有重要作用。它的主要用途包括:

  1. 概率化输出

    • 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

相关文章

  • springboot+vue+mybatis计算机毕业设计房屋租赁管理系统+PPT+论文+讲解+售后
    随着社会的不断进步与发展,人们经济水平也不断的提高,于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来,利用计算机网络来处理各行业事务这一概念更深入人心,由于工作繁忙以及疫情的原因,房屋租赁也是比较难实施的。如果开发一款房屋租赁管理系统,可以让用户在最......
  • Java毕业设计基于SpringBoot的毕业设计管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在学生模块,主要有学生进行注册和登录,学生可以查看开题报告、中期检查、论文提交、论文指导、毕业答辩等,还能......
  • Java毕业设计基于SpringBoot的城市公交运营管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在公交员模块,主要有公交员进行注册和登录,公交员可以查看公交调度、紧急上报、紧急调度、车辆状况等,还能修改......
  • Java毕业设计基于SpringBoot的图书管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言该系统利用Java语言、MySQL数据库,结合目前流行的B/S架构,将图书管理的各个方面都集中到数据库中,以便于用户的需要。该系统在确保系统稳定的前提下,能够实现多功能模块的设计和应......
  • Java毕业设计基于SpringBoot的多媒体信息共享平台(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言随着信息时代的来临,过去的武理多媒体信息共享管理方式缺点逐渐暴露,对过去的武理多媒体信息共享管理方式的缺点进行分析,采取计算机方式构建武理多媒体信息共享系统。本文通过阅读......
  • Java毕业设计基于SpringBoot的宠物服务中心小程序(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言疫情爆发以来,越来越多的用户借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合。本论文探讨利用不断发展和进步的网络技术,实现对个人信息修改、用户......
  • Java毕业设计基于SpringBoot的宠物医院微信小程序(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言本次将以宠物医院管理方面为切入点,论述了宠物医院管理的意义和内容,以此展开对宠物医院的开发与建设的详细分析。从数据挖掘的角度出发,了解信息管理系统的作用,对宠物医院的过程......
  • Java毕业设计基于SpringBoot的大棚蔬菜管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录前言主要使用技术研究内容核心代码文章目录前言二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破......
  • Java毕业设计基于SpringBoot的大学生成绩管理系统(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍利用电脑网络的这些便利,发展一套大学生成绩管理系统,将会给学生带来更大的效益,而在学生成绩效能上,也必然会有很大的方便!这样可以节省大量的人力、时间和金钱。该系统主要包括班......
  • Java毕业设计基于SpringBoot的大学生爱心互助代购网站(源码+文档+调试+讲解)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍本文讲述了大学生爱心互助代购网站。结合电子管理系统的特点,分析了大学生爱心互助代购网站的背景,给出了大学生爱心互助代购网站实现的设计方案。本论文主要完成不同用户的权限划......