图解Attention

news2024/11/18 23:23:38

深度学习知识点总结

专栏链接:
https://blog.csdn.net/qq_39707285/article/details/124005405

此专栏主要总结深度学习中的知识点,从各大数据集比赛开始,介绍历年冠军算法;同时总结深度学习中重要的知识点,包括损失函数、优化器、各种经典算法、各种算法的优化策略Bag of Freebies (BoF)等。


从RNN到Attention到Transformer系列

专栏链接:
https://blog.csdn.net/qq_39707285/category_11814303.html

此专栏主要介绍RNN、LSTM、Attention、Transformer及其代码实现。


本章目录

  • 1. Encoder
  • 2. Attention
  • 3. Decoder
  • 4. 整体过程图解


图解Attention

Attention相关详细介绍及其代码实现见文章《从RNN到Attention到Transformer系列-Attention介绍及代码实现》-https://blog.csdn.net/qq_39707285/article/details/124732447

本文以实现翻译为例。假如batchsize=8,第一个batchsize内最大输入单词数为17,最大输出单词数为15(每个batchsize内的最大输入长度根据相应情况变动)。输入词典总数7853(德语),输出词典总数5893(英语)。

编码器输入size=256,隐藏层size=512,双向GPU

解码器输入size=256,隐藏层size=512,单向GPU

1. Encoder

  • one-hot
    输入一个batch的原句,进行one-hot转换,如下所示:
    在这里插入图片描述

第一个batchsize内的输入单词的one-hot表示,如下所示:
在这里插入图片描述
shape大小为(17×8),第一行的2代表<sos>,最后一行的1代表<eos>,每一列代表一句话。

  • 词向量编码-(nn.Embedding(7853,256))
    把原句进行词向量编码,如下:
    在这里插入图片描述

  • GRU
    编码后的词向量输入到GRU中,输出outputs和hidden。
    在这里插入图片描述
    GRU具体运行过程如下:
    在这里插入图片描述
    第一个输入为<sos>,最后一个输入为<eos>,由于是双向GPU,所以在这里插入图片描述 在这里插入图片描述 在这里插入图片描述,shape为(17×8×1024),
    h n h_n hn是最后一个输出,双向所以有两个,shape为(2×8×512)

  • 初始化解码器隐藏层状态 s 0 s_0 s0
    由于解码器不是双向的,因此只需要一个上下文向量:
    在这里插入图片描述
    s 0 = h n s_0=h_n s0=hn,shape为(8×512)。

  • 整体过程
    在这里插入图片描述
    或者
    在这里插入图片描述

2. Attention

  • 计算先前解码器隐藏状态和编码器隐藏状态之间的energy
    在这里插入图片描述
    更形象的图解如下,相当于去计算每个编码器隐藏状态与先前解码器隐藏状态 s 0 s_0 s0的“匹配”程度。
    在这里插入图片描述
  • 计算attention
    每个batch中每个example的Et维度是 [dec hid dim, src len],我们希望批处理中的每个示例都是 [src len],因为注意力应该放在源句子的长度上。这是通过将乘以 v=[1, dec hid dim] 张量来实现的:
    在这里插入图片描述

把v当为所有编码器隐藏状态的能量加权总和的权重。这些权重告诉我们应该关注源序列中的每个令牌的程度。参数v是随机初始化的,但通过反向传播与模型的其余部分一起学习。注意如何v不依赖于时间,并且相同v用于解码的每个时间步长。这里v使用没有偏差的线性层。

最后,确保注意力向量符合使所有元素在 0 和 1 之间以及向量求和为 1 的约束,使用softmax层。
在这里插入图片描述

  • 整体过程
    在这里插入图片描述
    或者:
    在这里插入图片描述

3. Decoder

  • 加权源向量w
    在这里插入图片描述
    在这里插入图片描述
    图中outputs是编码器的输出结果。

  • one-hot
    把目标句进行词向量编码,如下:
    在这里插入图片描述

第一个batchsize内的输入单词的one-hot表示,如下所示:
在这里插入图片描述
shape大小为(15×8),第一行的2代表<sos>,最后一行的1代表<eos>,每一列代表一句话。

  • 词向量编码-(nn.Embedding(5893,256))
    把原句进行词向量编码,如下:
    在这里插入图片描述
  • GRU
    编码后的词向量一个一个输入到GRU中,输出output和hidden,首先输入第一个时, s 0 = h n s_0=h_n s0=hn,输入编码后的target和加权源向量wt,如下:
    在这里插入图片描述
    第一个target为<sos>。

在这里插入图片描述

  • 第一个输出
    使用编码后的target,wt和st通过线性层f,以预测目标句子中的下一个单词。这是通过将它们连接在一起来完成的。
    在这里插入图片描述
  • 使用 s 1 s_1 s1更新w和a

不断更新w和a,直到最后一个输入<eos>。
在这里插入图片描述

  • 整体过程
    在这里插入图片描述

4. 整体过程图解

在这里插入图片描述
或者:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:JVM是如何判定对象已死的?

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 知道的越多&#xff0c;才知知道的越少。——苏格拉底 文章目录引用计数算法可达性分析算法引用类型Dead Or Alive永久代真的"永久"吗&#xff1f;垃圾收集算法标记-清除算法标记-复制算法标记-整理…

网络编程基础

1 网络协议栈分层协议栈是指网络中各层协议的总和&#xff0c;反映了一个网络中数据传输的过程&#xff0c;由上层协议到底层协议&#xff0c;使用分层实现提高灵活性以及简化实现。OSI七层模型 和TCP/IP五层模型&#xff1a;物理层&#xff1a;考虑的是怎样才能在连接各种计算…

学长教你学C-day14-C语言文件操作

“我们的C语言学习也马上接近尾声了&#xff0c;今天我们来讲最后一个内容&#xff1a;C语言的文件夹操作。” “那么什么是文件呢&#xff1f;其实C语言里的文件是数据源的一种&#xff0c;最主要的作用是保存数据。例如txt、word、pdf等等都是不同的存储数据的形式。通过C语…

WebView与 JS 交互方式

一 前言 现在很多App里都内置了Web网页&#xff08;Hybrid App&#xff09;&#xff0c;比如说很多电商平台&#xff0c;淘宝、京东、聚划算等等&#xff0c;如下图 上述功能是由Android的WebView实现的&#xff0c;其中涉及到Android客户端与Web网页交互的实现&#xff0c;今…

Vue路由使用的几个注意点

前言 在使用vue的路由的时候&#xff0c;是有几个需要注意的点&#xff0c;下面一一说明 组件的分类 组件分为两种&#xff1a;路由组件和一般组件 路由组件是注册到路由器中&#xff0c;并且是由路由相关标签代码进行展示 一般组件是注册到组件中&#xff0c;通过组件标签…

Linux常用命令——route命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) route 显示并设置Linux中静态路由表 补充说明 route命令用来显示并设置Linux内核中的网络路由表&#xff0c;route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信&#xff0c;需要一台连接两个…

【软件架构思想系列】从伟人《矛盾论》中悟到的软件架构思想真谛:“对象”即事物,“函数”即运动变化...

引子 形而上学和辩证法两种宇宙观是截然相反的。“所谓形而上学的或庸俗进化论的宇宙观,就是用孤立的、静止的和片面的观点去看世界。这种宇宙观把世界一切事物,一切事物的形态和种类,都看成是永远彼此孤立和永远不变化的”,“和形而上学的宇宙观相反,唯物辩证法的宇宙观主…

元宇宙与数字孪生有区别

在元宇宙爆红之前&#xff0c;有一项技术已经慢慢渗透到各行各业之中&#xff0c;它可以逼真、实时地还原现实世界&#xff0c;它就是——数字孪生。目前很多人认为元宇宙与数字孪生的区别不大&#xff0c;元宇宙是数字孪生在技术层面的进阶与优化。其实不然&#xff0c;元宇宙…

IMX Linux 用户手册 --- 2

IMX Linux 用户手册 — 2 第5章 启用单独仿真 可以在i.MX 6DualLite SABRE-SD和i.MX 6DualLite SABRE-AI板上启用单独仿真。这是通过使用 引导加载程序构建过程中的特定U-Boot配置。 当在i.MX 6DualLite SABRE平台上启用此单独仿真时&#xff0c;i.MX 6DualLite的功能将更改为…

高通开发系列 - MSM8909指示灯操作

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 最近在做内核升级,但是内核串口log始终无法打印,也不清楚是不是内核跑飞了还是什么原因,先尝试点亮一个LED灯来判断下。 这里面我们…

docker start启动容器不报错,却无法正常启动

问题描述&#xff1a;想启动 1e 这个容器 start后&#xff0c;没有报错&#xff0c;但是就是启动不了… 原因 查看一下日志 docker logs 1e1b85322dfa好家伙,虽然它运行命令的时候不报错&#xff0c;但是它运行错误信息写到日志里面去了&#xff0c;查看最新的日记信息看…

回收租赁商城系统功能拆解14讲-分销设置

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

MySQL8.0版本怎样进行CentOS系统配置?

MySQL安装完成后&#xff0c;会自动配置为名称叫做&#xff1a;mysqld的服务&#xff0c;可以被systemctl所管理&#xff0c;我们在进行系统的配置时&#xff0c;主要修改root密码和允许root远程登录。 # 通过grep命令&#xff0c;在/var/log/mysqld.log文件中&#xff0c;过滤…

深度学习论文: Multi-modal Sensor Fusion for Auto Driving Perception: A Survey

深度学习论文: Multi-modal Sensor Fusion for Auto Driving Perception: A Survey Multi-modal Sensor Fusion for Auto Driving Perception: A Survey PDF: https://arxiv.org/pdf/2202.02703.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: h…

图论中的GLM模型

下面是我对GLM模型的理解&#xff1a; 数据编码的方式 在一般统计中&#xff0c;常用的coding方式有dummy&#xff0c;effect和cell.mean&#xff0c;这个在R和python中都可以实现。 dummy coding 举例 假设有4个组别A, B, C, D&#xff0c;它的自由度是4-13&#xff0c;因此…

自动驾驶专题介绍 ———— APA标准(ISO 16787)

文章目录介绍通用要求泊车控制最大运行速度退出条件建议空间车位水平空间车位垂直空间车位泊车流程流程定义Queiscent ModeSearch ModeSlot FoundMode SelectionAssisted Parking ModeEnd of Assisted Parking Mode人机交互策略车位搜索阶段车位搜索到且未激活泊车驾驶员请求泊…

【手写 Promise 源码】第七篇 - 实现 Promise 返回值 x 的处理

一&#xff0c;前言 上篇&#xff0c;实现了 Promise 的链式调用功能&#xff0c;主要涉及到以下几个点&#xff1a; 介绍了 Promise 的链式调用&#xff0c;返回普通值和抛出异常的共5种情况&#xff1b;分析了当前 Promise 源码的问题以及解决方案&#xff1b;Promise 链式…

亚马逊云科技:大模型的训练和应用门槛亟需降低

在过去的两周里&#xff0c;ChatGPT的热度居高不下&#xff0c;引发全网讨论。虽然AlphaGo这类AI产品也曾引起热议&#xff0c;但是在应用层面终究还是离用户太远了。而ChatGPT更像是「民用级」的产品&#xff0c;真正意义上让AI技术跨入广泛破圈应用时代。在当下&#xff0c;机…

如何准确测试75 Ohm系统的信号?

射频同轴线缆特征阻抗的选择&#xff0c;主要取决于功率容量、衰减强度、可加工性等因素&#xff0c;然而最大功率容量和最小衰减性能对应的特征阻抗是不同的。在射频领域通常采用50 Ohm特征阻抗的原因&#xff0c;就是综合考虑了以上因素。也就是说&#xff0c;50 Ohm特征阻抗…

Vue安装并使用路由和路由器实现页面跳转

前言 想要使用路由和路由器实&#xff0c;必须要知道什么是路由和路由器&#xff0c;可以参考这篇文章&#xff1a;Vue路由和路由器简介 下面通过编写代码演示一下如何使用路由和路由器实现页面跳转。 引入bootstrap.css 本案例所有相关的样式&#xff0c;都是引入的bootst…