nanodiffusion代码逐行理解之Attention

目录

  • 一、注意力中的QKV
  • 二、注意力中的位置嵌入
  • 三、注意力中的多头
  • 四、注意力和自注意力
  • 五、注意力中的encode和decoder

一、注意力中的QKV

简单来说:
Q: 要查询的信息
K: 一个索引,要查询的向量
V: 我们查询得到的值
复杂一点的解释:
Query:Query(查询)是一个特征向量,描述我们在序列中寻找什么,即我们可能想要注意什么。Keys:每个输入元素有一个键,它也是一个特征向量。该特征向量粗略地描述了该元素“提供”什么,或者它何时可能很重要。键的设计应该使得我们可以根据Query来识别我们想要关注的元素。Values:每个输入元素,我们还有一个值向量。这个向量就是我们想要平均的向量。Score function:评分函数,为了对想要关注的元素进行评分,我们需要指定一个评分函数f该函数将查询和键作为输入,并输出查询-键对的得分/注意力权重。它通常通过简单的相似性度量来实现,例如点积或MLP。

二、注意力中的位置嵌入

此时假设序列数是5,模型维度是12,就会生成一个5x12的位置嵌入矩阵
在这里插入图片描述

三、注意力中的多头

多头就是从多个子空间关注不同方面的信息,也就是使用多组QKV进行运算。
如图所示,我们使用三组QKV,计算得到三个特征矩阵,z1、z2、z3,接下来把得到的三个特征矩阵拼接起来得到一个大特征矩阵,再和矩阵W0相乘。
图片来自bilibili博主狗中赤兔
图片来自bilibili博主狗中赤兔

四、注意力和自注意力

注意力机制:
通常涉及查询(Query)、键(Key)和值(Value)三个向量。在Seq2Seq模型中,查询通常来自解码器,而键和值则来自编码器。
通过计算查询与键之间的相似度(如点积、加性等),得到注意力分数,并据此对值进行加权求和。
自注意力机制:
同样涉及查询、键和值三个向量,但在这里它们都是来自同一序列的不同元素。
通过Query-Key-Value分解、注意力分数计算、注意力权重分配和加权求和等步骤,实现对序列内部信息的全面捕捉和处理。
注意力机制主要关注输入序列与输出序列之间的依赖关系,而自注意力机制则关注同一序列内部不同元素之间的依赖关系。
Transformer 架构内部应用的注意力称为自注意力(self-attention)。在自注意力中,每个序列元素提供一个键、值和query。对于每个元素,根据其query作用一个注意力神经层,检查所有序列元素键的相似性,并为每个元素返回一个不同的平均值向量。
自注意力机制能够有效捕捉序列信息中长距离依赖关系,相比于以往的RNNs,它在处理长序列时的表现更好。

五、注意力中的encode和decoder

图片来自bilibili博主狗中赤兔
图片来自知乎卜寒兮​

这片知乎文章写的不错:
https://www.zhihu.com/question/445556653/answer/3254012065

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/771499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何快速选择短剧系统源码:高效构建您的在线短剧平台

在数字化时代,短剧作为一种新兴的娱乐形式,受到了广泛的欢迎。随着市场需求的增长,构建一个在线短剧平台成为了很多创业者和开发者的目标。而选择正确的短剧系统源码则是实现这一目标的关键步骤。本文将为您提供一些实用的指导,帮…

论文解析——Transformer 模型压缩算法研究及硬件加速器实现

作者及发刊详情 邓晗珂,华南理工大学 摘要 正文 实验平台 选取模型: T r a n s f o r m e r b a s e Transformer_{base} Transformerbase​ 训练数据集:WMT-2014 英语-德语翻译数据集、IWSLT-2014 英语-德语互译数据集 Transformer模…

策略模式入门:基本概念与应用

目录 策略模式策略模式结构策略模式应用场景策略模式优缺点练手题目题目描述输入描述输出描述题解 策略模式 策略模式,又称政策模式,是一种行为型设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以…

基于Spring Boot的高校智慧采购系统

1 项目介绍 1.1 摘要 随着信息技术与网络技术的迅猛发展,人类社会已跨入全新信息化纪元。传统的管理手段因其内在局限,在处理海量信息资源时日渐捉襟见肘,难以匹配不断提升的信息管理效率和便捷化需求。顺应时代发展趋势,各类先…

http数据传输确保完整性和保密性整流程方案(含源码)

往期文章回顾 【深度学习】 【深度学习】物体检测/分割/追踪/姿态估计/图像分类检测演示系统【含源码】【深度学习】YOLOV8数据标注及模型训练方法整体流程介绍及演示【深度学习】行人跌倒行为检测软件系统【深度学习】火灾检测软件系统【深度学习】吸烟行为检测软件系统【深度…

rtpengine_mr12.0 基础建设容器运行

目录 Dockerfile rtpengine.conf 容器内编译安装 RTPEngine 正常提供功能 1. 启动RTPEngine服务 2. 删除 RTPEngine服务 3. 加载内核模块 检查所有进程是否正在运行 上传到仓库 博主wx:yuanlai45_csdn 博主qq:2777137742 后期会创建粉丝群&…

实验二 图像的代数运算

一、实验目的: 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验内容: 1.图像的加法运算 图像相加一般用于对同一场景的多幅图像求平均效果&…

【QT】概述|对象树模型|两种控件模式|信号和槽|lambda

目录 什么是QT 特点 QT程序 main函数 QT按钮 纯代码模式 图形化模式 对象树模型 信号和槽 连接与断开 自动连接 断开连接 信号的发射 lambda表达式 基本语法 捕获列表 Lambda表达式用于信号与槽的连接 例如 什么是QT Qt是一个跨平台的C图形用户界面应用…

如何在TikTok上获得更多观看量:12个流量秘诀

TikTok作为热门海外社媒,在跨境出海行业中成为新兴的推广渠道,但你知道如何让你的TikTok赢得更多关注次数吗?如果您正在寻找增加 TikTok 观看次数的方法,接下来这12种策略,你需要一一做好! 1. 在内容中添加…

女性经济崛起,天润融通用客户感知挖掘市场潜力

每逢一年一度的国际妇女节,“女性”话题都会被郑重地讨论。 从消费市场上来说,最近几年女性群体正在拥有越来越大的影响力,甚至出现了“她经济”这样的专属词汇在最近几年被市场反复讨论。 毫无疑问,女性消费群体的崛起已经成为…

2.8亿东亚五国建筑数据分享

数据是GIS的血液! 我们现在为你分享东亚5国的2.8亿条建筑轮廓数据,该数据包括中国、日本、朝鲜、韩国和蒙古5个东亚国家完整、高质量的建筑物轮廓数据,你可以在文末查看领取方法。 数据介绍 虽然开源的全球的建筑数据已经有微软的建筑数据…

【android】【adb shell】写一个shell脚本,监听进程pid变化

前言 当前业务,需要写一个脚本,不断监视com.android.phone 进程是否异常死掉 脚本 #!/system/bin/sh last_pid"" current_pid"" while(true){current_pidps -A | grep com.android.phone | awk {print $2}if [ -n "$current…

大牛“私藏”宝刊,易Accept!中科院1区-Top,偏爱国人,2个月可录!

本周投稿推荐 SCI • 能源科学类,1.5-2.0(来稿即录25天) • 计算机类,2.0-3.0(纯正刊29天录用) EI • 各领域沾边均可(2天录用) CNKI • 7天录用-检索(急录友好&a…

职场办公受欢迎的电脑桌面便签,手机电脑同步的备忘录

在快节奏的职场生活中,有效的时间管理和信息记录变得尤为重要。为了帮助大家更好地应对工作挑战,好用的电脑桌面便签和手机电脑同步的备忘录,好用便签应运而生,成为了当前职场办公中的得力助手。 好用便签是一款备受青睐的电脑桌…

SecureCRT--使用sftp上传和下载文件

原文网址:SecureCRT--使用sftp上传和下载文件_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SecureCRT如何在软件内直接上传和下载文件。 SecureCRT可以用如下两种方法上传和下载文件: 自带的sftp插件服务器安装rz/sz命令 本文介绍第一种方法&#xff0…

【Sping Boot2】笔记

Spring Boot 2入门 如何创建一个Spring Boot的Web例子?1.如何创建一个Spring Boot项目1.1 使用Maven构建一个Spring Boot 2项目1.1.1创建Maven工程注:Maven项目结构: 1.1.2引入SpingBoot相关依赖依赖注意事项: 1.1.3创建主类1.1.4…

CSS动画keyframes简单样例

一、代码部分 1.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><link rel"stylesheet" href…

go——Swagger使用

一. 为什么后端需要配置Swagger 在前后端分离的项目中&#xff0c;后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。 Swagger是一个用于设计&#xff0c;构建和文档化API的开源框架。在Go语言中&#xff0c;Swagger可以帮助后端开发人员快速创建和定义RESTf…

JVM 堆内存结构 年轻代 老年代

堆内存 内存划分 对于大多数应用&#xff0c;Java 堆是 Java 虚拟机管理的内存中最大的一块&#xff0c;被所有线程共享。此内存区域的唯一目的就是存放对象实例&#xff0c;几乎所有的对象实例以及数据都在这里分配内存。 为了进行高效的垃圾回收&#xff0c;虚拟机把堆内存…

关键路径——C语言(理论)

关键路径&#xff0c;是项目网络中从起始事件到终止事件的最长路径&#xff0c;决定了项目的最短完成时间。 关键路径中的任务没有任何可调整的余地&#xff0c;如果任何一个任务被延迟&#xff0c;整个项目的完成时间也会被延迟。 假设我们现在有一个图&#xff1a;把图的边…