当前位置: 首页 > news >正文

Transformer的前世今生 day06(Self-Attention和RNN、LSTM的区别)

Self-Attention和RNN、LSTM的区别

  • RNN的缺点:无法做长序列,当输入很长时,最后面的输出很难参考前面的输入,即长序列会缺失上文信息,如下:
    • 可能一段话超过50个字,输出效果就会很差了
      在这里插入图片描述
  • LSTM通过忘记门、输入门、输出门、记忆单元,来有选择性的记忆之前的信息,如下:
    • 可能一段话超过200个字,输出效果才会很差
      在这里插入图片描述
  • 总结:RNN和LSTM无法解决长序列依赖问题,而且它们都是序列模型,必须上一个做完了才能做下一个,无法做并行
  • Self-Attention针对以上的两个问题,有以下解决
    • 1、由于集合中的每一个词都会和其他的词做相似度计算,所以即使序列再长,两个词之间的联系都能通过相似度存储到它们的词向量上,保留下来。
      在这里插入图片描述
  • 2、由于我们将集合中的每一个词都要得到它的Q、K、V,并要做相似度计算以及乘和操作,所以不需要等前一个词做完了才能做下一个词,而是可以很多个词一起做,可以做并行,如下:
    在这里插入图片描述
  • 而且,通过Self-Attention得到的新的词向量具有句法特征和语义特征(词向量的表征更完善)
  • 但是,Self-Attention的计算量特别大(集合中的每一个单词和其他所有单词都要计算相似度),所以在文本量为50个单词左右,模型的效果最好。而LSTM虽然没有解决长序列依赖,但是它在处理长文本任务时,文本量在200个单词左右,模型的效果最好

RNN(循环神经网络)

  • RNN,当前的输出 o t o_t ot取决于上一个的输出 o t − 1 o_{t-1} ot1(作为当前的输入 x t − 1 x_{t-1} xt1)和当前状态下前一时间的隐变量 h t h_t ht,隐变量和隐变量的权重 W h h W_hh Whh存储当前状态下前一段时间的历史信息,如果我们去掉 W h h ∗ h t − 1 W_{hh} * h_{t-1} Whhht1,RNN就退化为MLP
  • 在RNN中,我们根据前一个的输出和当前的隐变量,就可以预测当前的输出。当前的隐变量也是由上一个隐变量和前一个输出
    (即当前的输入)所决定的在这里插入图片描述
    在这里插入图片描述
  • 所以RNN其实就是MLP多了一个时间轴,能存储前一段时间的历史信息,并根据这个历史信息来更新层的参数
    • 同时由于RNN会不加选择的存储前一段时间的历史信息,所以如果序列太长,即句子太长,隐变量会存储太多信息,那么RNN就不容易提取很早之前的信。
      在这里插入图片描述

GRU(门控神经网络)

  • 为了解决RNN处理不了很长的序列,我们可以有选择的存储历史信息,通过更新门和重置门,来只关注有变化的重点信息
    在这里插入图片描述
  • GRU引入了 R t R_t Rt Z t Z_t Zt H ~ t \widetilde{H}_t H t
    • 其中 R t R_t Rt Z t Z_t Zt为控制单元,是可以学习的参数,由于最后用了sigmoid函数,所以范围在(0,1),表示要不要进行Reset和Update操作
      在这里插入图片描述
    • 其中 H ~ t \widetilde{H}_t H t为候选隐变量,跟 R t R_t Rt有关, R t ∗ H t − 1 R_t * H_{t-1} RtHt1表示:候选隐变量要使用多少过去隐变量的信息
      在这里插入图片描述
    • H t H_t Ht为真正的新的隐变量,跟 Z t Z_t Zt有关, ( 1 − Z t ) ⊙ H ~ t (1 - Z_t)\odot\widetilde{H}_t (1Zt)H t表示:新的隐变量要使用多少当前输入的信息
    • 通常情况下:GRU会在以下极端情况中,进行可学习的调整,来决定是多去看当前的输入信息,还是多去看前一次的隐变量
    • 极端情况如下:
  • Z t Z_t Zt为0, R t R_t Rt为1时: H t H_t Ht = H ~ t \widetilde{H}_t H t,不遗忘前一次的隐变量,GRU就退化为RNN
  • Z t Z_t Zt为1时:不考虑候选隐变量, H t H_t Ht = H t − 1 H_{t-1} Ht1,即不使用 X t X_t Xt更新隐变量,当前隐变量和上一次的隐变量相同
  • R t R_t Rt为0, Z t Z_t Zt为0时: H t H_t Ht = H ~ t \widetilde{H}_t H t,不使用前一次的隐变量,只用 X t X_t Xt来更新隐变量
    在这里插入图片描述

LSTM(长短期记忆网络)

  • LSTM和GRU都是实现这个效果:是要多去看现在的输入信息,还是要多去看前一次的隐变量,即过去的信息
  • 但是LSTM可以多实现一个效果:什么都不看,直接重置清零
  • LSTM中的状态有两个: C t C_t Ct记忆单元、 H t H_t Ht隐变量
    • 注意:LSTM额外引入的 C t C_t Ct记忆单元, C t C_t Ct的范围无法保证,可以用来增加模型复杂度,多存储信息。但是最终仍然需要让 H t H_t Ht的范围仍在(-1,1)之间,防止梯度爆炸。
    • 注意:LSTM中的忘记门、输入门、输出门的具体公式和GRU的更新门、重置门一样
      在这里插入图片描述
      在这里插入图片描述
  • C ~ t \widetilde{C}_t C t候选记忆单元:LSTM中的候选记忆单元和RNN中的 H t H_t Ht的计算公式一样,没有用到任何门,但是由于最后用了tanh(),所以范围在(-1,1)之间
    在这里插入图片描述
  • C t C_t Ct记忆单元:LSTM中的记忆单元和GRU中的 H t H_t Ht不一样,记忆单元可以既多看上一个的记忆单元,又多看当前的候选记忆单元(当前的输入信息 X t X_t Xt)。记忆单元也可以即不要上一个的记忆单元,又不要当前的候选记忆单元。但是GRU中的 H t H_t Ht Z T Z_T ZT 1 − Z t 1-Z_t 1Zt,所以要么多看上一个的隐变量,要么多看当前的候选隐变量
    在这里插入图片描述
  • H t H_t Ht隐变量:由于 F t F_t Ft I t I_t It都是(0,1),而 C ~ t \widetilde{C}_t C t在(-1,1),但是 C t − 1 C_{t-1} Ct1可以特别大(跟 C C C的初始值有关),所以上一步的 C t C_t Ct的范围无法保证,那么为了防止梯度爆炸,我们需要再做一次tanh()变换。
    • 注意:此时的 O t O_t Ot来控制要不要输出当前的输入信息和前一次的隐变量,当 O t O_t Ot为0时,表示重置清零
      在这里插入图片描述
  • 总结:通过引入记忆单元,LSTM比GRU更灵活,即可以既多看当前的候补记忆单元(当前的输入信息 X t X_t Xt),又可以多看前一个的记忆单元,也可以两者都不看都忘掉。通过引入记忆单元还可以多存储信息。同时保留 H t H_t Ht,防止梯度爆炸,还能重置清零隐变量
    请添加图片描述

参考文献

  1. 11 Self-Attention相比较 RNN和LSTM的优缺点

相关文章:

Transformer的前世今生 day06(Self-Attention和RNN、LSTM的区别)

Self-Attention和RNN、LSTM的区别 RNN的缺点:无法做长序列,当输入很长时,最后面的输出很难参考前面的输入,即长序列会缺失上文信息,如下: 可能一段话超过50个字,输出效果就会很差了 LSTM通过忘…...

UDP send 出现大量“Resource temporarily unavailable”

背景 最近排查用户现场环境,查看日志出现大量的“send: Resource temporarily unavailable”错误,UDP设置NO_BLOCK模式,send又发生在进程上下文,并且还设置了SO_SNDBUF 为8M,在此情况下为什么还会出现发送队列满的情况…...

怎么拆解台式电脑风扇CPU风扇的拆卸步骤-怎么挑

今天我就跟大家分享一下如何选购电脑风扇的知识。 我也会解释一下机箱散热风扇一般用多少转。 如果它恰好解决了您现在面临的问题,请不要忘记关注本站并立即开始! 文章目录列表:大家一般机箱散热风扇都用多少转? 机箱散热风扇选择…...

Windows安装Odoo结合内网穿透实现公网访问本地企业管理系统

文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…...

Portainer的替代Dockge?又一个Docker Compose管理器?

Dockge:让Docker Compose管理触手可及,一图胜千言,轻松构建与管控您的容器服务栈!- 精选真开源,释放新价值。 概览 Docker,这一开放源代码的创新平台,旨在实现应用程序部署、扩展与运维的自动化…...

Midjourney AI绘图工具介绍及使用

介绍 Midjourney是一款目前被誉为最强的AI绘图工具。只要输入想到的文字,就能通过人工智能产出相对应的图片。 官网只是宣传和登录入口,提供个人主页、订阅管理等功能,Midjourney实际的绘画功能,是在另外一个叫discord的产品中实…...

clang-query 的编译安装与使用示例

1,clang query 概述 作用: 检查一个程序源码的抽象语法树,测试 AST 匹配器; 帮助检查哪些 AST 节点与指定的 AST 匹配器相匹配; 2,clang-query 安装 准备: git clone --recursive https://git…...

echarts数据下钻如何配置

官方范例:https://echarts.apache.org/examples/zh/editor.html?cbar-multi-drilldown 看了一眼范例直接晕了,你这,一堆数据直接写死,这怎么用啊! 一般来说,实现步骤是: 1)后台&a…...

git 提交空目录

git 提交空目录 1. git 无法感应空目录2. git 提交空目录References 1. git 无法感应空目录 Git FAQ https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/GitFaq.html Currently the design of the Git index (staging area) only permits files to be liste…...

【优化方案】Java 将字符串中的星号替换为0-9中的数字,并返回所有可能的替换结果

需求 将输入的字符串中的星号替换为0-9中的数字,并返回所有可能的替换结果,允许存在多个*号。 分析: 在每个星号位置,我们需要进行 0-9 的循环遍历,因此每个星号位置都有 10 种可能性。如果字符数组中有k个星号&#x…...

C语言复习-链表

链表: 特点: 通过 next 指针 把内存上不连续 的几段数据 联系起来 set nu -- 打印行号 概念: 一种数据结构 -- 数据存放的思想 比如 -- 数组 -- 内存连续的一段空间,存放相同类型的一堆数据 缺点 -- 增删元素很 难 -- 不灵活 --> 引入链表 next指针的初步认识…...

Redis面试题-缓存雪崩、缓存穿透、缓存击穿问题

1 穿透: 两边都不存在(皇帝的新装) (黑名单) (布隆过滤器) 2 击穿:一个热点的key失效了,这时大量的并发请求直接到达数据库. (提前预热) 3 雪崩&#xff1a…...

【Node.js】npx

概述 npx 可以使用户在不安装全局包的情况下,运行已安装在本地项目中的包或者远程仓库中的包。 高版本npm会自带npx命令。 它可以直接运行 node_modules/.bin 下的 exe 可执行文件。而不像之前,我们需要在 scripts 里面配置,然后 npm run …...

hive授予指定用户特定权限及beeline使用

背景:因业务需要,需要使用beeline对hive数据进行查询,但是又不希望该用户可以查询所有的数据,希望有一个新用户bb给他指定的库表权限。 解决方案: 1.赋权语句,使用hive管理员用户在终端输入hive进入命令控…...

Vmware虚拟机无法用root直连说明

Vmware虚拟机无法用root直连说明 背景目的SSH服务介绍无法连接检查配置 背景 今天在VM上新装了一套Centos-stream-9系统,网络适配器的连接方式采用的是桥接,安装好虚拟机后,在本地用ssh工具进行远程连接,ip、用户、密码均是成功的…...

Visio中存在问题的解决方法

公式缩放 mathtype公式在visio缩放之后,出现了变形。 解决方法:每次输入公式都通过 插入->对象->mathType Equation 新建一个公式。可以避免 注:网上有的说在word中使用mathtype编写公式,之后复制到visio中。 插入波形 选择…...

taro之Swiper的使用

图样&#xff1a; 往往我们需要轮播图去显示我们想要的图片之类的 这是工作的代码 <View classNametop-title><SwiperclassNamebanner-swiperinterval{3000}circularautoplay>{homeBannerList.map((item) > {return (<SwiperItem key{item.id}><View…...

正大国际:金融行业发展趋势

2024金融科技趋势研究报告 大模型生态揭秘!金融行业迎来变革&#xff0c;中控成生态核心&#xff0c;大模型在金融行业的应用 随着大模型的不断发展&#xff0c;越来越多的金融机构开始尝试在一些业务场景中引入大模型和生成式A能力&#xff0c;预计2024年&#xff0c;领先的金…...

vue中实现超出一行 展开和收起的功能

html中: <divclass="txttype"ref="txttype"style="margin-bottom: 6px":class="hidetext == true ? hidetext : "><div style="width: 96%"><el-tagtype="info"style="margin-right: 10px&…...

记录一次使用cert-manager-颁发CA证书

一、官网 SelfSigned - cert-manager Documentation 二、例子 apiVersion: v1 kind: Namespace metadata:name: sandbox --- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata:name: selfsigned-issuer spec:selfSigned: {} --- apiVersion: cert-manager.io/v…...

Git-RSCLIP真实场景测试:城市新区地物分类,住宅区识别效果惊艳

Git-RSCLIP真实场景测试&#xff1a;城市新区地物分类&#xff0c;住宅区识别效果惊艳 1. 模型背景与核心能力 Git-RSCLIP是北航团队基于SigLIP架构专门开发的遥感图像理解模型&#xff0c;在1000万对遥感图文数据集(Git-10M)上进行了深度预训练。与通用视觉模型不同&#xf…...

WebAgent :基于 MCP 协议打造的智能应用“超级路由器”

本文由云软件体验技术团队李锦浩原创。 在 NextSDK 介绍文章里&#xff0c;我们聊了怎么用 opentiny/next-sdk 给前端页面快速接入智能化能力——几行代码嵌进去&#xff0c;用户扫个二维码&#xff0c;手机上就能弹出一个 Remoter 对话窗口&#xff0c;直接用自然语言远程操控…...

RWKV7-1.5B-g1a效果展示:‘请用一句中文介绍你自己’真实响应

RWKV7-1.5B-g1a效果展示&#xff1a;请用一句中文介绍你自己真实响应 1. 模型简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构开发的多语言文本生成模型&#xff0c;特别适合中文场景下的轻量级对话和文本生成任务。这个1.5B参数的版本在保持响应速度的同时&#xff0c;提供了…...

医疗器械小白必看:B型、BF型、CF型设备到底怎么选?附真实医院案例解析

医疗器械采购指南&#xff1a;B型、BF型与CF型设备的实战选择策略 去年某三甲医院ICU因监护仪选型不当导致患者数据异常的事件&#xff0c;让医疗器械电气安全标准重新成为行业焦点。作为医疗设备采购人员&#xff0c;面对B型、BF型、CF型这些专业术语时&#xff0c;是否常感到…...

知识科普短片,AI如何“看懂”并剪出逻辑?揭秘分段剪辑的内在逻辑链

傍晚&#xff0c;你面对电脑屏幕&#xff0c;刚刚录完一段长达2小时的行业知识分享。你的目标是将其剪成一部15分钟、节奏明快的知识科普短片。手动操作意味着你要反复聆听&#xff0c;识别核心论点&#xff0c;标记关键转折&#xff0c;再小心翼翼地将碎片串联——这个过程动辄…...

ofa_image-caption算力适配:A10G云GPU上稳定运行的最小配置方案

ofa_image-caption算力适配&#xff1a;A10G云GPU上稳定运行的最小配置方案 1. 引言 如果你正在寻找一个能自动为图片生成英文描述的本地工具&#xff0c;并且希望它能在消费级显卡上流畅运行&#xff0c;那么基于OFA模型的图像描述生成工具很可能就是你的答案。这个工具最大…...

代码生成神器实测:Yi-Coder-1.5B在Ollama上的真实体验与效果

代码生成神器实测&#xff1a;Yi-Coder-1.5B在Ollama上的真实体验与效果 1. 开箱体验&#xff1a;Yi-Coder-1.5B初印象 1.1 为什么选择Yi-Coder-1.5B 作为一名经常需要编写各种编程语言的开发者&#xff0c;我一直在寻找一个既轻量又强大的代码生成工具。Yi-Coder-1.5B以其1…...

GLM-4.1V-9B-Base惊艳效果:3D渲染图材质/光影/构图中文分析

GLM-4.1V-9B-Base惊艳效果&#xff1a;3D渲染图材质/光影/构图中文分析 1. 视觉理解新标杆 GLM-4.1V-9B-Base作为智谱开源的视觉多模态理解模型&#xff0c;在3D渲染图分析领域展现出令人惊艳的能力。不同于常规的图片识别工具&#xff0c;这款模型能够深入理解3D渲染图中的材…...

Nunchaku FLUX.1 CustomV3镜像免配置:预装ComfyUI+Custom Workflow+LoRA权重一体化方案

Nunchaku FLUX.1 CustomV3镜像免配置&#xff1a;预装ComfyUICustom WorkflowLoRA权重一体化方案 想体验最新的AI绘画模型&#xff0c;但被复杂的安装、配置和模型下载劝退&#xff1f;今天给大家介绍一个“开箱即用”的终极方案——Nunchaku FLUX.1 CustomV3镜像。它把文生图…...

Open62541内存泄漏实战:如何用Valgrind揪出隐藏的‘内存杀手‘

Open62541内存泄漏实战&#xff1a;用Valgrind精准定位与修复策略 引言&#xff1a;当OPC UA应用开始"悄悄吃内存" 在工业自动化领域&#xff0c;OPC UA服务器的稳定性直接影响着生产系统的可靠性。最近三个月&#xff0c;我们团队接手了四个因为内存泄漏导致系统崩溃…...